Ask Your Question
1

Transfer only a ROI of an OccupancyGrid

asked 2012-02-20 20:37:26 -0500

updated 2012-02-20 22:15:05 -0500

Hello,

I am using ROS on a remotly operated Ground Vehicule. This robot produce a SLAM Map nav_msg/OccupancyGrid. This map is displayed on a control station. Link between rob ot and control station could be for example WiFi. Maps could be quite big 4 kilometers squared with 0.1 meter of resolution. When the robot is building the map, I want this map to be shown in live on the control station. Of course, I can't transfer the full map every time my SLAM loop update the map. On a previous midleware I developped an object "OccupancyGrid" on wich I was able to define a Region Of Interest, and only a patch was transfered from the robot to the control station. Only the patch was refreshed on the control station and I was able to work with Big OccupancyGrid without saturate neither the control station processor, nor the Wireless link. I am looking for a tool in ROS wich allow to extract an ROI of an occupancy grid, and update an ROI of an occupancy grid. I tried to find in the 2000+ softwares wich already exists and I can't find it.

Does it exists some where ?

If that doesn't exist, I will do it my self because it's quite easy to develop. If you think other persons may be interested, I will publish it somewhere on the ROS website.

Cheers,

A.BARRAL Robopec

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
2

answered 2012-02-20 21:40:50 -0500

updated 2012-02-20 23:59:06 -0500

I'm pretty sure there isn't a map ROI package available yet. (See edit at end of this post)

I have a half-finished node that converts the map to an image and publishes it using image_transport. This has the advantage that one can use the compressed (jpg) or theora compression options which save huge amounts of bandwidth. Of course these compression schemes are lossy, but for visualization they're ok. For additional bandwidth saving, the node publishes a full and/or a tile based image, the latter showing only the victinty of the robot pose. This way, the map around the robot can be visualized using only a few kb/s of bandwidth. Another node running on the GUI side could reassemble the image to maps, so they can be visualized in rviz as usual. Haven't done this yet, but should only take time :) Let me know if you want to take a look at it (it's not in our public repo for a reason though :) ).

Of course, the "right way" would probably be to use RLE encoding for the transmission of occupancy maps, as they (at least at this time) only have the three discrete states "free","occupied" and "unknown", which makes it possible to get huge bandwidth saving using the lossless RLE compression scheme. We already use this to share maps between our humanoid robots in real time (video), but due to time constraints no one ported that to the ROS ecosystem yet.

/edit: @Lorenz mentioned in the comments below that a node for this task indeed already exists at http://rosjava.googlecode.com/ in the compressed_visualization_transport package.

edit flag offensive delete link more

Comments

Hello, I am very interested in you node (if the license allow to use it in commercial applications). If you accept to share it, I can develop the map assembler from images and I share this node with you, and with the community.

abarral ( 2012-02-20 21:55:46 -0500 )edit

You can find such a node in the android repository at rosjava.googlecode.com. The package is 'compressed_visualization_transport'. We don't use the image_transport though because maps have additional meta data such as origin and a resolution. Instead we use our own message.

Lorenz ( 2012-02-20 22:01:43 -0500 )edit

Very nice, that looks better than my image_transport approach, which admittedly is a bit hacky :) I'll upload my map_to_image node later, but I'd recommend to start from 'compressed_visualization_transport' as it actually supports advantageous encoding schemes.

Stefan Kohlbrecher ( 2012-02-20 23:51:12 -0500 )edit

I added some documentation here: http://www.ros.org/wiki/hector_compressed_map_transport

Stefan Kohlbrecher ( 2012-02-22 20:01:51 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

[hide preview]

Stats

Asked: 2012-02-20 20:37:26 -0500

Seen: 555 times

Last updated: Feb 20 '12