# [KSP 1.3.1] Bon Voyage 0.13.2.1 - Make your wheels rolling! 2017-10-15

## Recommended Posts

1 minute ago, Loren Pechtel said:

Yeah, it's the A* algorithm, AFIAK the second fastest solution (faster is to do a simultaneous A* from both ends and stop when they meet--2 * (n/2)^2 vs n^2).  What I was questioning is the distance calculations, I don't see that they are needed while running A*.  Since I see nothing that weights tiles a simple count of the tiles crossed should be enough.

It's used to weight if tile neighbour gets you closer to target or further away from it.

##### Share on other sites
2 minutes ago, RealGecko said:

It's used to weight if tile neighbour gets you closer to target or further away from it.

But you're searching in all directions anyway, why is that needed?  The only case I can see where it would be useful is if you pruned paths that deviated too far away from the desired course and I don't see anything like that in the pathfinding.

##### Share on other sites
9 minutes ago, Loren Pechtel said:

But you're searching in all directions anyway, why is that needed?  The only case I can see where it would be useful is if you pruned paths that deviated too far away from the desired course and I don't see anything like that in the pathfinding.

Yep, it searches in all directions, cause for PC it's not obvious which direction is right.

##### Share on other sites
43 minutes ago, RealGecko said:

Yep, it searches in all directions, cause for PC it's not obvious which direction is right.

So why do you need a more accurate distance than simply the tile count?

##### Share on other sites
12 minutes ago, Loren Pechtel said:

So why do you need a more accurate distance than simply the tile count?

Try to implement it and see what happens.

##### Share on other sites

Very relevant to the performance:  http://codereview.stackexchange.com/a/152758/7290

##### Share on other sites

My moon buggy reached its destination, I switched to it.  It was night so I'm not sure where I was, all I know is that tumbled down a slope.

While it checks the big picture for accessibility there's no local check upon arrival.  Please look at the local slope and offset to the closest location that is reasonably flat.

##### Share on other sites
9 hours ago, Loren Pechtel said:

My moon buggy reached its destination, I switched to it.  It was night so I'm not sure where I was, all I know is that tumbled down a slope.

While it checks the big picture for accessibility there's no local check upon arrival.  Please look at the local slope and offset to the closest location that is reasonably flat.

There's no way in KSP API to check slope at given coordinates, only the height above sea level.

##### Share on other sites
25 minutes ago, RealGecko said:

There's no way in KSP API to check slope at given coordinates, only the height above sea level.

But you can calculate it.  Check 5 meters in each direction from the target point and compute slopes from that.  I've never seen anything in KSP that could pass that test and yet be dangerous.

Also, minor bug:  You check if the rover can produce enough power, not if it produces enough power.  I was worried about the terrain and decided to drive my rover on a safe path down a steep hill (a biome I needed to visit) rather than risk the autopilot crashing it--and it wouldn't budge.  Oops--solar panels not deployed.  The autopilot didn't care.

##### Share on other sites
5 minutes ago, Loren Pechtel said:

But you can calculate it.  Check 5 meters in each direction from the target point and compute slopes from that.  I've never seen anything in KSP that could pass that test and yet be dangerous.

Also, minor bug:  You check if the rover can produce enough power, not if it produces enough power.  I was worried about the terrain and decided to drive my rover on a safe path down a steep hill (a biome I needed to visit) rather than risk the autopilot crashing it--and it wouldn't budge.  Oops--solar panels not deployed.  The autopilot didn't care.

Ok, looks like a solution, I think that can be done. The scenario will be like this: if point is dangerous, message will appear and no pathbuilding will be done.

Hmmmm, looks like i do not check for panels being deployed, I certainly check for broken ones though. Definitely an issue

Can you create a new issue in BonVoyage repo, so I do not forget to fix that?

##### Share on other sites
17 minutes ago, RealGecko said:

Ok, looks like a solution, I think that can be done. The scenario will be like this: if point is dangerous, message will appear and no pathbuilding will be done.

Hmmmm, looks like i do not check for panels being deployed, I certainly check for broken ones though. Definitely an issue

Can you create a new issue in BonVoyage repo, so I do not forget to fix that?

Instead if rejecting it look around for a safe spot.  If the initial spot proves too steep do an expanding search around it for flat enough spots.  Since the tile was originally considered passable I think they must exist.

Issue created on the panel deployment.

##### Share on other sites

Hi RealGecko

Its way better than the stock wheel module. I'd love to use your mod, but as of Unity5 the stock wheels have become even more useless imho.

Maybe you could have a look at it.

Best Regards

Haifi

##### Share on other sites
7 hours ago, Loren Pechtel said:

Instead if rejecting it look around for a safe spot.  If the initial spot proves too steep do an expanding search around it for flat enough spots.  Since the tile was originally considered passable I think they must exist.

Issue created on the panel deployment.

Actually there's no tiles, instead there a points on top of celestial surface, that are "marked" as reachable, All points are separated with 1000 meters distance, validation rules are:

1. Point underwater is impassable
2. Point where height difference between current and next one  is more than 500 meters is impassable

And here comes trouble:

As you can see in both cases point B is unreachable from point A and vice versa, but BV will think they are.

So better option will be to check previous route point, if destination point fails.

5 hours ago, Haifi said:

Maybe you could have a look at it.

I'll check that out.

Edited by RealGecko

##### Share on other sites
2 hours ago, RealGecko said:

Actually there's no tiles, instead there a points on top of celestial surface, that are "marked" as reachable, All points are separated with 1000 meters distance, validation rules are:

1. Point underwater is impassable
2. Point where height difference between current and next one  is more than 500 meters is impassable

And here comes trouble:

As you can see in both cases point B is unreachable from point A and vice versa, but BV will think they are.

So better option will be to check previous route point, if destination point fails.

I'll check that out.

I called them tiles because that's what the code called them.  I realize they're just an illusion as you can't run A* on the actual map in a sane period of time.

What I'm saying is when you reach the destination you build a new set of much smaller tiles (I'm thinking 5m) and look for a set of 7 that are sufficiently flat that the rover won't be in danger.  If the initial point fails you draw another ring of tiles looking for a flat spot, expand until you find one or it's just taking too long.  (I don't think the latter will happen as features like your first map don't occur at a small scale anywhere I've looked.)

##### Share on other sites
14 minutes ago, Loren Pechtel said:

I called them tiles because that's what the code called them.  I realize they're just an illusion as you can't run A* on the actual map in a sane period of time.

What I'm saying is when you reach the destination you build a new set of much smaller tiles (I'm thinking 5m) and look for a set of 7 that are sufficiently flat that the rover won't be in danger.  If the initial point fails you draw another ring of tiles looking for a flat spot, expand until you find one or it's just taking too long.  (I don't think the latter will happen as features like your first map don't occur at a small scale anywhere I've looked.)

Stepping one kilometer back is easier IMO, then overloading mod with complex logic

##### Share on other sites
1 hour ago, RealGecko said:

Stepping one kilometer back is easier IMO, then overloading mod with complex logic

You still need the slope-checking logic either way.

##### Share on other sites
10 hours ago, Loren Pechtel said:

You still need the slope-checking logic either way.

Yep, but checking 5 meter radius is much faster than going in spiral while trying to find stable ground in destination point.

##### Share on other sites
11 hours ago, RealGecko said:

Yep, but checking 5 meter radius is much faster than going in spiral while trying to find stable ground in destination point.

Faster but I doubt it is a drop in the bucket compared to the main search.

##### Share on other sites

Hey, @RealGecko , I wanted to ask, if my rover uses fuel cell as a power source, or a hydrogen/oxygen power cell from SETI mod, will Bon Voyage work and burn these resources for electricity?

##### Share on other sites

Hi everybody,

I ran into some trouble using Bon Voyage. I can select a target, calculate a path but when I click 'Poehali' and the big red message pops up and tells me that the autopilot is active. Unfortunately my rover is on strike and does - nothing. I tried with sever test rovers on Kerbin an the mun - kerbaled an unkerbaled, but nothing ever happens. In any case I could move the rover manually via WASD.

The only movement that happens is the rover rolling down a slope but nothing more. There seems to be no motor oder steering activity.

Has anyone else experienced that kind of issue? Maybe it's just me beeing dumb and just got it terribly wrong ... just tell me. :-)

For the record: KSP Version is 1.2.2, Bon Voyage Version is 0.11.1 and in the link below you can find my KSP.log with various tries and a screenshot.

Any advice, hint or support is greatly appreciated.

SchrottBot

##### Share on other sites
34 minutes ago, SchrottBot said:

Hi everybody,

I ran into some trouble using Bon Voyage. I can select a target, calculate a path but when I click 'Poehali' and the big red message pops up and tells me that the autopilot is active. Unfortunately my rover is on strike and does - nothing. I tried with sever test rovers on Kerbin an the mun - kerbaled an unkerbaled, but nothing ever happens. In any case I could move the rover manually via WASD.

The only movement that happens is the rover rolling down a slope but nothing more. There seems to be no motor oder steering activity.

Has anyone else experienced that kind of issue? Maybe it's just me beeing dumb and just got it terribly wrong ... just tell me. :-)

For the record: KSP Version is 1.2.2, Bon Voyage Version is 0.11.1 and in the link below you can find my KSP.log with various tries and a screenshot.

Any advice, hint or support is greatly appreciated.

SchrottBot

Have you switched to another vessel or Tracking Station after enabling BV? It only works when the vessel is inactive.

##### Share on other sites
1 hour ago, SchrottBot said:

Hi everybody,

I ran into some trouble using Bon Voyage. I can select a target, calculate a path but when I click 'Poehali' and the big red message pops up and tells me that the autopilot is active. Unfortunately my rover is on strike and does - nothing. I tried with sever test rovers on Kerbin an the mun - kerbaled an unkerbaled, but nothing ever happens. In any case I could move the rover manually via WASD.

The only movement that happens is the rover rolling down a slope but nothing more. There seems to be no motor oder steering activity.

Has anyone else experienced that kind of issue? Maybe it's just me beeing dumb and just got it terribly wrong ... just tell me. :-)

For the record: KSP Version is 1.2.2, Bon Voyage Version is 0.11.1 and in the link below you can find my KSP.log with various tries and a screenshot.

Any advice, hint or support is greatly appreciated.

SchrottBot

Bon Voyage only simulates rover movement, it doesn't actually drive it.  Your rover only moves when it's not active.

##### Share on other sites

Okeee ... so it was just me being on the wrong horse. Thanks for your help. I'm going back into the corner and feel ashamed.

##### Share on other sites

Really weird one that I can't see how it could have been caused by Bon Voyage but since I found it on a switch to rover I'll ask about it here:

My rover has been on Minmus for some months now.  It has no rockets.  I switched to the rover and found it tumbling in space ~50km above Minmus but heading for the surface--but not simply falling.  I didn't analyze the details of where it was going beyond the negative Pe, I just quickly moved it to safety with HyperEdit.  The science instruments onboard spammed the Alt-F12 log, I can't find a disk-based log anymore.

In case it is of any relevance I was switching from my rover on the Mun.  I haven't looked at the numbers but what I did see feels sane for having come from applying the coordinates of the Mun rover to the Minmus rover.

Update:  I went back to the rover in daylight--oops, most of it's solar panels were gone and it was unable to do it's mission anymore.  I'm used to the rover being in the wrong orientation when I shift to it, it normally corrects itself without a problem but maybe this time there was a problem.

Edited by Loren Pechtel

##### Share on other sites

Is this known to work with Near Future Electrical RTGs? I noted that in the changelog that compatibility was added for NFE and USI reactors so just wondering if they are supported and if I have an issue on my end, or if the RTGs are not yet supported. Figured it may be prudent to ask before I start toying around with my directory to root out any conflicts. I'm using the decaying RTGs add-on from that pack so that may be affecting it if it's otherwise known to work.

## 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.