how to go about this engineering problem (using navigation stack)?

asked 2014-08-21 11:54:24 -0500

Garrick gravatar image

Hi all.

Any help with this would be greatly appreciated.

Basically I'm tasked with making a base go to GPS waypoints whilst avoiding "barrel" obstacles and "white lines" (painted on the ground).

The base has a long range sick lms laser scanner and a video camera for detecting the white lines. Ultimately the camera will output either a point cloud or laser scanner to indicate the white lines.

In the mean time i'm using as smaller hokuyo laser scanner (positioned at a lower level than the sick) to mimic what the video camera will eventually do (i.e. the hokuyo can detect things that aren't high enough for the sick to detect).

I plan to localize with the sick lms using the barrels that will be scattered around the course. So I run the navigation stack in the map_sick frame of reference (this is outputted by gmapping). I use this for the global and local costmaps (even though usually odom is used for local).

I've set static map to false and the thing runs -- avoiding obstacles that the hokuyo detects and the sick -- and i'm pretty sure neither of them are clearing each other.

This was pointed out to me by paulbovbel who explained they run in seperate "layers". This is all good but there is an additional functionality required whereby the robot needs to save the white lines it detects, so when it goes through the course again, it already has quite an amount of white lines and can plan its global path better.

I understand the navigation stack has a static layer and this can be seeded/initialized (usually from map server?). So by setting static map to false, is the navigation stack creating its own static map from the laser sources? If so, are there two static maps -- one for the hokuyo and one for the sick? Or is this not part of the navigation stack functionality.

If this is not the case, I could maybe set use static map to true and I think i read this can subscribe to the topic gmapping puts out and uses that to create the static map (I think I read the static map keeps updating as gmapping does).

Then maybe the way to save and use the "white lines" is to create another static map layer (if you can) and make my own node that creates a map of the detected lines in the frame of reference of the sick gmapping.

But then maybe the Nav stack does this anyway -- it seems like it's subscribing to the hokuyo/video camera topic and creating a map in the sick gmapping frame.

Additionally, I really only need "static" layers (no one is going to walk in front of the base) so can I disable the obstacle layers for each scanner?

Also, do I really even need the local costmap then too? I'm not sure of its purpose (and why it's usually set to ... (more)

edit retag flag offensive close merge delete