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

How do you integrate an IMU into a lidar?

asked 2021-03-08 20:10:09 -0500

hmrbcnt gravatar image

Hello! I've just finished the beginner tutorials for ROS and now have a basic understanding of topics, nodes, and the like. My current goal is to be able to integrate an IMU into my lidar. The IMU I have is the 9DoF Razor IMU, while the lidar I have is the VLP-16.

I have a foggy idea, where I have the IMU driver publish its data to a topic, and have one of the VLP driver's nodes subscribe to the said topic so it can include that data in its calculations. Is my way of thinking correct?

My problem right now is I'm not entirely sure if this will work, as the IMU driver was last updated around 2016 for kinetic, while I'm currently using melodic as my ROS version right now.

Do you guys have any documentation you could recommend so I can work on this problem? Thank you!

edit retag flag offensive close merge delete


Suggestion: first get a clear idea of what you actually want to do without involving anything from ROS.

"integrating an IMU into a lidar" if taken literally would mean: "how would I physically put the IMU device inside the lidar device", which, while possible, wouldn't really lead to anything useful I believe.

As you can see from @Akhil Kurup response, there are multiple ways in which your question, as it's currently phrased, can be interpreted.

Please help others help you by improving the description of what you're actually trying to do. Try to use terminology and refer to concepts from the domain. Are you trying to setup sensor fusion? If so: for what purpose? In what context? Etc.

gvdhoorn gravatar image gvdhoorn  ( 2021-03-09 02:43:09 -0500 )edit

Hello! Sorry about that, the general gist of what I want to do is I want to improve the quality of the information I get from my lidar by using the information I get from the IMU. I'm not sure if that makes sense, but in the future, I want to map larger areas with my lidar, and improve the accuracy of the information I get using both an IMU, and GPS with RTK. But right now, I just wanna try improving the accuracy of the lidar's output with an IMU.

hmrbcnt gravatar image hmrbcnt  ( 2021-03-09 02:58:58 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2021-03-08 22:33:16 -0500

There are two possible interpretations of your question: you are either trying to transform your lidar data into the IMU's frame of reference or get odometry from lidar data and fuse that with IMU's odometry.

For the first case, you'd want to take a look at the simple transform listener tutorial. You should look at the frame_id's in your msgs and populate those in the example above. You can then apply the transform (translation + rotation matrix) generated to the pointcloud and voila! This pcl tutorial shows you how to apply a matrix to a pointcloud.

If you trying to fuse odometry, you need to first perform slam with your pointcloud. There are several packages that can be used. One I have used in the past is rtabmap. But once you have odometry from the lidar, you can fuse it with the IMU odometry using the robot_localization package.

I understand that a lot of what I have answered here is intimidating. But you need to try a few things and see what works/what doesn't and ask specific questions.

edit flag offensive delete link more


Hello, thank you for that! I will be checking those tutorials shortly. But I think in this case, I want to try to fuse odometry. Hopefully, I'll be back soon with more specific questions. Thank you!

hmrbcnt gravatar image hmrbcnt  ( 2021-03-09 03:00:04 -0500 )edit

Question Tools

1 follower


Asked: 2021-03-08 20:10:09 -0500

Seen: 1,093 times

Last updated: Mar 08 '21