Read OctoMap file with Robotics System Toolbox

9 次查看(过去 30 天)
Hello,
I am trying to read OctoMap files like the ones that can be found here: OctoMap datasets
I have the Robotics System Toolbox which comes with the OccupancyMap3D class, but the documentation only shows how to read an OctoMap ROS message. In general, it seems that everything related to occupancy maps is restricted to be used with ROS. Alternatively, I could create a ROS message and fill the data field with the content of the file, however I lack understanding of the OctoMap file format (resolution, additional rgb data, octree).
Does anybody know how to import an OctoMap from file into Matlab?
Thank you in advance

采纳的回答

Sebastian Castro
Sebastian Castro 2018-8-17
编辑:Sebastian Castro 2018-9-11
I don't think there's a direct way to read unless you parse the file yourself. As you said, you can either create your own file reader in MATLAB...
... or you can use the octomap_server package to publish a ROS message directly from the file, assuming it's a .bt file, and then subscribe to it from MATLAB.
rosrun octomap_server filename.bt
If it's a one-time thing, I'd recommend saving the OccupancyMap3D object as a .mat file in MATLAB so you can easily reload it later. Else, if the map is dynamically changing, you may as well use ROS pub-sub.
- Sebastian
  7 个评论
changcheng qiu
changcheng qiu 2018-9-12
Thanks for your help.When I type mapMsg = receive(mapSub), matlab will get into the loop and there will be no result for a long time.The error is as follows
changcheng qiu
changcheng qiu 2018-9-29
I think I may know the reason of it.I was wrong at the beginning. The topic did not post a message when I rosrun octomap_server filename.what do you think about it?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Specialized Messages 的更多信息

产品


版本

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by