ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How to generate thermal colored map

asked 2015-06-20 09:52:00 -0500

F4B1 gravatar image

Hello everybody,

I want to generate thermal colored 3D-maps with RTAB-Map.

At the moment, the matching between the thermal camera and the Asus Xtion Pro depth image is done in an own node which publishes the mapped image.

I modified the cloudFromDepthRGB-function in util3D.cpp to set the RGB on a fixed value and saw that I get a single colored cloud while everything else seems to be / is working. So, my idea is to replace the RGB information in cloudFromDepthRGB with the thermal one but what is the easiest way to get the thermal image to this position (synchronized)?

Am I right, that it would be the easiest to extend the SensorData and Signature with the thermal image and subscribe to it in the CoreWrapper.cpp and RGBDOdometryNode.cpp where SensorData and Signature get filled (as far as I understand) or could I do it on a more easier way?

Thanks for your help,


edit retag flag offensive close merge delete


Do you work on a open source software atm? Your code could be interesting, I wanted to have a thermal pointcloud as well. I created a node for the cheap Thermapp Android Thermal Camera ( ). Do you have a repo of what you are doing on github?

cyborg-x1 gravatar image cyborg-x1  ( 2015-06-23 07:25:22 -0500 )edit

Generally it's open source and I could post it on github but its under developement and everything else than cleaned up. I think I'm able to upload it in some weeks.

F4B1 gravatar image F4B1  ( 2015-06-23 09:27:46 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-06-22 19:58:47 -0500

matlabbe gravatar image


You could use the "userData" field (byte array) of SensorData to put the image. This way, it will be automatically saved in the database and transferred to GUI.

For ROS, you may need to add a new callback to synchronize the topic of your thermal image in CoreWrapper.cpp and add the thermal image to SensorData. You don't have to modify RGBDOdometryNode.cpp.


edit flag offensive delete link more


Hello and thank you for your answer,

yesterday I figuered out, that point_cloud_xyzrgb.cpp is processed when I start RTAB-map with RVIZ.

F4B1 gravatar image F4B1  ( 2015-06-23 02:56:47 -0500 )edit

I modified the callback in point_cloud_xyzrgb.cpp and transfered the thermal image instead of the rgb one to cloudFromDepthRGB and got the actual pointcloud as thermal colored one but the map was still rgb. Is your answer independent of starting rtabmap with RVIZ or rtabmapviz?

F4B1 gravatar image F4B1  ( 2015-06-23 02:57:08 -0500 )edit

I modified the CoreWrapper.cpp and put the thermal image in SensorData.userData as you told me but could you help me with telling me where I have to replace the RGB information so that the 3D map gets thermal colored too?

F4B1 gravatar image F4B1  ( 2015-06-23 10:02:51 -0500 )edit

For some reason, gmail marked the notification email as spam (just saw your comments). In ROS: see and use your image included in SensorData.userData with cloudFromDepthRGB

matlabbe gravatar image matlabbe  ( 2015-07-22 12:18:24 -0500 )edit

For the standalone (rtabmapviz), it is done here:

matlabbe gravatar image matlabbe  ( 2015-07-22 12:18:41 -0500 )edit

Question Tools



Asked: 2015-06-20 09:52:00 -0500

Seen: 351 times

Last updated: Jun 22 '15