Rawbots Club Forum

Rawbots General => General Discussion => Topic started by: tob.s on December 02, 2016, 08:30:26 am

Title: Progress on Navigation ?
Post by: tob.s on December 02, 2016, 08:30:26 am

as if been away for a while i wonder if anyone came up with a better way of navigating than turning when hitting a wall  ? i experimented alot but didnt came up with something working well enough, i still think that the uniform hexagon shape of the world is the key to a bot that doesnt go zick zack from wall to wall but can drive straight lines between obstacles and so cross the map much faster. I had some sucess with a hoverbot that had 6 hooks at angles matching the hexagons - whenever close to an wall it would align itself in the center of his hexagon, paralell to the walls and then continue in the direction that offers the highest distance, newer finished it though - heres a vid from back then - making the whole bot turn was the wrong idea though as its ruins the alignment

Also had the idea to monitor the traveled X/Y distances - wheel relevations combined with yaw or an oscillator based, ins like approach to count x and y speed ( whenever the oscilator switches to "1" the current speed gets added to the sum of the last speed measurements) but it didnt work well - had a bot that drove a square but it showed that there was quite some drifting happening, so its still a huge step to turn this into something usefull.

So im curious to hear from your experiments

Title: Re: Progress on Navigation ?
Post by: MarvinMan on December 02, 2016, 05:21:45 pm
A pair of hooks near the front of the bot pointing outwards is the standard solution used in the combat bots. That's usually pretty reliable and straightforward to set up, but does require some logic to avoid getting stuck in corners.

It's not ideal, but my ant bots lack hooks and navigate by detecting when they have stopped due to crashing then reverse and perform a random 90+ degree turn before continuing. Most of the time they just follow their target, which normally has a full navigation system.

Absolute positioning is tricky, the best I can think of would be to have the bot drop a pair of hooks when first turned on, then use trigonometry to work out where the bot is relative to that fixed reference.
Title: Re: Progress on Navigation ?
Post by: z26 on December 02, 2016, 06:09:38 pm
I've made this for absolute coordinates.  As long as the reference continuums are level and that were talking about a blueshift style map it works quite well.

Title: Re: Progress on Navigation ?
Post by: tob.s on December 02, 2016, 06:23:59 pm
though my old erazer Acl bot used such a relatively simple setup and layed down some nice high speed manouvers, it also could easily get trapped in an edge, oscilating left and right and also missed its target quite often ( it was meant to ram it with lasers )as target following and wall avoidiance fought each other. So thats what im trying to get away from, as u basicly just bump from wall to wall wich doesnt look very smart - perhaps i started at the wrong end and its better to make a bot that turns only by fixed angles as base for further ideas - it might simply things.

as for the coordinate system idea i can only thing of it helping to align your bot to stay paralell to walls, knowing the bots relative position though wouldnt help with pathfindings unless u had a map of the arena, but thats beyond the visual programming possibilities
Title: Re: Progress on Navigation ?
Post by: MarvinMan on December 02, 2016, 09:05:01 pm
Simply getting within a set distance of the target is the main objective for combat bot navigation systems now, so for most of the match the bots aren't simply bouncing off of walls.

Maintaining a small map of the local area around a bot probably isn't that unfeasible, just a big copy paste job. Deciding what to do with that information is likely to be the bigger challenge.
Title: Re: Progress on Navigation ?
Post by: tob.s on December 08, 2016, 02:01:30 pm
well im not speaking about actually hiting the walls, but about driving zig zags instead of a straigh line - my goal is to avoid any unecessary turning. Lets say in a straight corridor a bot is moving nearly but not exactly paralel to the wall on its right - most bots would simply turn a bit to the left when a certain distance to the wall is reached, then the will drive straight until the get close to the left wall and turn right and so on... so the easiest way to avoid this is to make the bot stay in the middle between those walls - this works well in a corridor, but leads to problems in a maze ( like driving into any obstacle thats exactly straight ahead and/or having trouble to turn away from the obstacle in such a situation - and its also likely to "irritate" the bot while its turning. So youll need workarounds for those situations but every workaround could again cause unwanted effects.

My goal would be to have a little situational awareness, so its not like "if obstacle -> turn" but more like "obstacle there, obstacle there,.. i wanna move this way and the closest i can get to this is this direction" 
Title: Re: Progress on Navigation ?
Post by: MarvinMan on December 08, 2016, 08:59:57 pm
My racing bots did that o some extent, but they do work on the assumption that there will be a reasonably obvious corner within the front 180deg of the bot. They work kinda ok in large ACL maps, but aren't really designed to deal with that sort of terrain.

As far as smarter navigation is concerned, the best I've come up with is to have a hook scan the distances at regular intervals around the bot to create a low-res radar image. The bot then either drives towards the furthest point in front of it, or the first valid path behind it if there is no route forwards.
Title: Re: Progress on Navigation ?
Post by: PressureLine on December 08, 2016, 10:58:56 pm
I did do a bit on this back in '14:

The bot is capable of navigating a fairly complex route through the maze, it just needs a little work (and a few more sensors) to be able to get up/down ramps.

owl also did some explorer bots (which also served as the basis for the owlbot ACL bot) with fairly sophisticated navigation systems:

It all depends on what the 'goals' for the movement are. For an ACL bot, my 'goals' for the nav system are simple: Never stop moving, don't get stuck, try not to hit walls, get up/down ramps, and usually 'follow the target, but don't get too close' (unless melee, in which case the bot wants to get as close as possible to be able to damage the target)

For me, part of it is that the system needs to be physically compact in terms of sensors (to be able to keep the hooks nicely tucked away inside the body armor), and that the logic needs to be fairly simple to avoid the bot locking up (to fufill the 'always moving' goal) since in arena combat, doing something is pretty much always preferable to doing nothing.
Title: Re: Progress on Navigation ?
Post by: MarvinMan on December 08, 2016, 11:41:16 pm
Simple is always good for combat bots, especially when it has a ranged weapon that doesn't require lining up a good ramming attempt.

I had another go at building a terrain scanning bot. It only has two simple rules to drive towards the furthest wall and away from the nearest, but it seems to work reasonably well.
Blueprint (https://www.dropbox.com/s/axtuvfb2i0g3i5d/bp_radar?dl=0)