[ros-users] costmap_2d elevation questions

Eitan Marder-Eppstein eitan at willowgarage.com
Tue Sep 21 18:59:25 UTC 2010


Jack,

On Mon, Sep 20, 2010 at 7:45 PM, Jack O'Quin <jack.oquin at gmail.com> wrote:

> It may seem nonsensical to ask about the "height" of a 2D costmap, but
> I am confused by what we saw today and could use some help making
> sense of it and deciding what to do.
>
> As mentioned in an earlier message, I am experimenting with
> costmap_2d_node to see if our autonomous vehicle can use it for sensor
> fusion. It seems to work OK in stage simulation. We are running ROS
> C-turtle on Ubuntu Karmic and Lucid.
>
> Today, we experimented with it on the actual car feeding it an
> obstacle point cloud from our Velodyne 3D LIDAR. I can view the
> PointCloud in rviz and it looks reasonable. But, when I view the
> obstacle GridCells, none appear. However, rviz can display the unknown
> GridCells (which is all of them). Strangely, they appear a couple of
> hundred meters below the car and the obstacles. This offset looks
> close to the actual elevation of our test area (209 meters above sea
> level), so I am guessing the map may think it's at elevation z=0.
>

This seems like a reasonable assumption. The navigation stack just publishes
those markers in the global_frame of the costmap and let's rviz display them
wherever, so this implies that, perhaps, your map frame is not correct in Z.
Have you tried using rviz to look at tf itself? You should see the map and
odometric frames where you expect them.


>
> Our GPS odometry source publishes the actual elevation for the
> nav_msgs/Odometry message and /odom->/vehicle transform. There is
> (currently) a static identity transform from /map to /odom (0,0,0
> translation and 0,0,0,1 rotation quaternion). So, I expected the map
> to appear at the same elevation as the vehicle and the odometry. I
> can't be certain whether this is purely an rviz display issue or
> inherent to the costmap, but I suspect the latter, because it would
> explain why no obstacles appear in the map, they are all way above the
> /costmap/max_obstacle_height parameter setting (2.7m). I did try
> adding 209 to the max and min obstacle heights to see if that would
> make a difference, and it did not.
>

Looking at the frames should help here I'd think. Adding 209 to the max and
min obstacle heights might not be enough if you're using the voxel grid
underlying model for the costmap. I'd also expect you to have to set the
origin_z parameter on the voxel grid:
http://www.ros.org/wiki/costmap_2d#Map_type_parameters. The correct way to
solve this, however, is probably to make sure that the global_frame of the
costmap exists at the correct height to begin with.


>
> Another possible explanation is that the velodyne points are published
> as "/velodyne/obstacles". I can't tell whether costmap_2d allows a
> <sensor_name> containing slash or not. Is it legal to set the
> /costmap/observation_sources parameter to "velodyne/obstacles" and
> then define parameters with names like
> "/costmap/velodyne/obstacles/sensor_frame"?


> Any ideas what is going on and suggestions for what to do about it?
>

As I mentioned in my response to your previous e-mail, I think this could
work, but I'd suggest removing the slash from the sensor_name and instead
setting the topic parameter to "/velodyne/obstacles." Actually, come to
think of it. If you have the leading "/"... I'm not sure things would work
as the sensor might look for its parameters in the /velodyne/obstacles
namespace instead of the /costmap/velodyne/obstacles namespace. Using a
sensor name without a "/" to be safe seems like a good idea.

Hope this helps,

Eitan

--
>  joq
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100921/bd5d29c0/attachment-0003.html>


More information about the ros-users mailing list