Simulate an IMU/lidar/camera assembly in Gazebo, set trajectory control for the assembly to undergo six degrees of freedom motion, and simulate point cloud distortion based on the motion. (1) Import the lidar, camera, and IMU components from Gazebo.
Note: Rewrite the IMU component in the third step; Gazebo's IMU output does not change with the set trajectory.
Note: Gazebo's lidar does not have distortion, so distortion needs to be added manually.
(2) Set the extrinsics between the three components and assemble them into one entity.
(3) Set the motion trajectory, control the components' motion, and simulate IMU output and lidar distortion based on the trajectory.
For (1) and (2), build using URDF files; for (3), implement in C++ and compile into a ROS executable.
simu3.mp4
a simulated pointcloud distortion