Jump to content

[1.0.5]AutoRove - autonomous rovermovement in the background


Wotano

Recommended Posts

How does it work?

Do you calculate an arrival time to the coordinate and just change the location of the craft after that amount of time?

What happens if i go back to the rover before the time has passed, will it be a fraction of the way there?

Sounds like an awesome mod :)

Link to comment
Share on other sites

10 hours ago, Kebra said:

How does it work?

Do you calculate an arrival time to the coordinate and just change the location of the craft after that amount of time?

What happens if i go back to the rover before the time has passed, will it be a fraction of the way there?

Sounds like an awesome mod :)

It records the time difference between two updates multiplies it with maximum allowed speed to get the driven distance then sets it on the corresponding position towards the target, or on the target if it would had been reached or turns it off if the vessel would have been splashed.

you can switch to the vessel as you like and do whatever you want. it will continue towards the target as soon as you leave the flight scene (as long as the vessel is landed, not splashed or in orbit)

 

3 hours ago, skykooler said:

This is awesome!

Would it be possible to have this work with other probe cores as well? The Rove Body is a rather late-game part.

It's so far only a single module that can be attached to any part (someone earlier posted a MM config to attach it to the MechJeb-case). Question is where it would fit best in the techtree.

Link to comment
Share on other sites

16 hours ago, Badsector said:

Seems work fine thanks !!!

Is possible set negative values for coordinates ?

Regards Luca

 

should work but it will translate them to the range of +0° to +360° and then follow the direct route.

Link to comment
Share on other sites

Maybe it could be tied to SAS level, as a marker of "advanced" probes -- with a patch like this, it can be applied to any probe core with SAS level 1 or more (or whatever value you prefer):

@PART[*]:HAS[@MODULE[ModuleSAS]:HAS[#SASServiceLevel[>0]],@MODULE[ModuleCommand]:HAS[#minimumCrew[0]]]
{
	MODULE
	{
		name = AutoRoveModule
	}
}

The RoveMate only has SAS "level 0", but I'd suggest leaving it with the AutoRove module (with the current patch), since it feels right for rover-oriented probes to have that capability.  I'd also suggest adding the AutoRove modules to the rover bodies from Dr. Jet's Chop Shop: roverBodyXL, RuggedRoverBody, and RtgRoverBody.

Link to comment
Share on other sites

This is great, a massive improvement over even rover autopilot (which still needed the active vessel)!

I'm curious, how do you account for differences in the terrain height at new locations?

I agree with attempts to automatically add the module to any relevant probe bodies, it's perfect for a lot of the RLA probes. 

 

Edit: NVM, found an answer to my question upon re-read of the thread, you have a good solution. This brings up a new question though: what happens when the rover encounters water? 

Edited by Starbuckminsterfullerton
Link to comment
Share on other sites

I have a problem on the mun, i get a speed of 0 for the target and my rover don't move at all, i don't know if is related at those exception i get at startup

[EXC 13:01:58.225] NullReferenceException: Object reference not set to an instance of an object
	AutoRove.autoRoveConfig.get_gravityScaleFactor ()
	AutoRove.AutoRoveModule..ctor ()
	UnityEngine.GameObject:AddComponent(Type)
	Part:AddModule(String)
	Part:AddModule(ConfigNode)
	PartLoader:ParsePart(UrlConfig, ConfigNode)
	:MoveNext()
[EXC 13:01:58.239] NullReferenceException: Object reference not set to an instance of an object
	AutoRove.autoRoveConfig.get_gravityScaleFactor ()
	AutoRove.AutoRoveModule..ctor ()
	UnityEngine.Object:Instantiate(Object)
	PartLoader:CreatePartIcon(GameObject, Single&)
	PartLoader:ParsePart(UrlConfig, ConfigNode)
	:MoveNext()
[LOG 13:01:58.260] PartLoader: Part 'Squad/Parts/Command/probeRoverBody/probeRoverBody/roverBody' has no database record. Creating.
[EXC 13:01:58.261] NullReferenceException: Object reference not set to an instance of an object
	AutoRove.autoRoveConfig.get_gravityScaleFactor ()
	AutoRove.AutoRoveModule..ctor ()
	UnityEngine.Object:Instantiate(Object, Vector3, Quaternion)
	:MoveNext()
	UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
	:MoveNext()
	UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
	:MoveNext()

Sorry for my bad english

Regards Luca

 

Link to comment
Share on other sites

Maybe I don't know what I'm talking about, but from how you've explained how it works, I feel this could also be somewhat easily adapted into an autopilot for boats if you flip the Splashed and Landed requirements.

I guess the difficulties would be coming up with a maximum speed for the ship based on some parameters, I'm not sure what could be used, and as most boats use jet engines at the moment (apart from RoverDudes Submersible) you would probably want some kind of resource usage so you didn't get infinite endurance with a finite amount of Liquid Fuel.

An idea for a future feature if you ever have the time and will. :)

Link to comment
Share on other sites

3 hours ago, Badsector said:

I have a problem on the mun, i get a speed of 0 for the target and my rover don't move at all, i don't know if is related at those exception i get at startup


[EXC 13:01:58.225] NullReferenceException: Object reference not set to an instance of an object
	AutoRove.autoRoveConfig.get_gravityScaleFactor ()
	AutoRove.AutoRoveModule..ctor ()
	UnityEngine.GameObject:AddComponent(Type)
	Part:AddModule(String)
	Part:AddModule(ConfigNode)
	PartLoader:ParsePart(UrlConfig, ConfigNode)
	:MoveNext()
[EXC 13:01:58.239] NullReferenceException: Object reference not set to an instance of an object
	AutoRove.autoRoveConfig.get_gravityScaleFactor ()
	AutoRove.AutoRoveModule..ctor ()
	UnityEngine.Object:Instantiate(Object)
	PartLoader:CreatePartIcon(GameObject, Single&)
	PartLoader:ParsePart(UrlConfig, ConfigNode)
	:MoveNext()
[LOG 13:01:58.260] PartLoader: Part 'Squad/Parts/Command/probeRoverBody/probeRoverBody/roverBody' has no database record. Creating.
[EXC 13:01:58.261] NullReferenceException: Object reference not set to an instance of an object
	AutoRove.autoRoveConfig.get_gravityScaleFactor ()
	AutoRove.AutoRoveModule..ctor ()
	UnityEngine.Object:Instantiate(Object, Vector3, Quaternion)
	:MoveNext()
	UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
	:MoveNext()
	UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
	:MoveNext()

Sorry for my bad english

Regards Luca

 

I messed up the loading time of the config file, which wasn't always an issue? Added some null checks to the config loader, seems the exception is gone.

Could you confirm: AutoRove 1.0.3_rc1.zip ?

Link to comment
Share on other sites

Sorry if i make trouble, now the exceptions are gone and in 1 save the mod work fine, now i have problems with my other save where i have 2 manned rover and over kerbin it work but my mun rover don't want start and i think is a conflict with lifesupport but i want make some more test first.

Regards Luca

Edit

Probably i have find the culprit, roverbody need to be the root part otherwise the mod don't work

Edited by Badsector
More test
Link to comment
Share on other sites

On 1/6/2016 at 0:28 PM, The Yellow Dart said:

This sounds great! This might be a dumb quetions but how would one get the coordinates of a location in game? I know it tells you a landed craft's coordinates, but if it is a contract target, is there a way to get those coordinates?

 

Since I haven't seen it suggested yet: One good way of getting coordinates is to use MechJeb's landing guidance "Select Target On Map" option. This allows you to mouse over the planet surface in map view, and shows coordinates, elevation, and biome of the location in question. Just copy the coordinates and enter them as a destination. Should be a pretty good way to find exact coordinates for smaller biomes like the Midland/Highland Craters on the Mun.

Edited by Hotaru
Link to comment
Share on other sites

17 hours ago, Badsector said:

Sorry if i make trouble, now the exceptions are gone and in 1 save the mod work fine, now i have problems with my other save where i have 2 manned rover and over kerbin it work but my mun rover don't want start and i think is a conflict with lifesupport but i want make some more test first.

Regards Luca

Edit

Probably i have find the culprit, roverbody need to be the root part otherwise the mod don't work

I like bug reports a lot! You were right, ProtoPartSnapshots contains only the root part, changed it to translate the ProtoVessel to a ConfigNode then query and manipulate that and override the old ProtoVessel when finished.

next try: AutoRove 1.0.3_rc2.zip

8 hours ago, blu3wolf said:

Except not really? Its on KerbalStuff, so its literally a single checkbox for the author to check, to have it added to CKAN.

I checked that box but I guess I have to upload a netcan-file by hand. I'm looking in to this.

Link to comment
Share on other sites

If its not done it automatically after checking the box, that is unusual. If you have a more complex install process than 'copy this GameData folder into your Gamedata folder', then I believe you do need to create a netkan file.

I think I am going to need this mod :/ yet another thing to fit into limited memory :P

Link to comment
Share on other sites

1 hour ago, Wotano said:

I like bug reports a lot! You were right, ProtoPartSnapshots contains only the root part, changed it to translate the ProtoVessel to a ConfigNode then query and manipulate that and override the old ProtoVessel when finished.

next try: AutoRove 1.0.3_rc2.zip

The problem seems fixed :), no exceptions and all rovers are moving fast like ferrari, finally i can reduce space program cost with some useful rovers

Thanks again for this great mod

Regards Luca

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...