Question about IMU / LiDAR extrinsic parameters and URDF frames
Hi, I have a question about how to correctly set up the extrinsic parameters and URDF frames between my IMU and LiDAR.
Frames
IMU frame
- +X: left
- +Y: backward
- +Z: up
LiDAR frame
- +X: forward
- +Y: left
- +Z: up
- LiDAR is pitched -9° (down)
Questions
- In this situation, how should I correctly set the extrinsic parameters between the IMU and LiDAR?
- Do I also need to modify the URDF joint
origin RPY values (e.g. for imu_link, hesai_lidar, etc.) to be consistent with the extrinsics?
Current extrinsic parameters
extrinsicTrans: [ -1.8, 0.0, -0.8 ] # in meters
# LiDAR pitched -9° (down), IMU yawed +90° (looks left). Rotation is LiDAR -> IMU.
extrinsicRot: [ 0.0, 1.0, 0.0,
-0.987688, 0.0, -0.156434,
-0.156434, 0.0, 0.987688 ]
extrinsicRPY: [ 0.0, 1.0, 0.0,
-0.987688, 0.0, -0.156434,
-0.156434, 0.0, 0.987688 ]
Current robot.urdf
<?xml version="1.0"?>
<robot name="lio" xmlns:xacro="http://tixiaoshan.github.io/">
<xacro:property name="PI" value="3.1415926535897931" />
<link name="chassis_link"></link>
<link name="base_link"></link>
<joint name="base_link_joint" type="fixed">
<parent link="base_link"/>
<child link="chassis_link" />
<origin xyz="0 0 0" rpy="0 0 0" />
</joint>
<link name="hesai_lidar"> </link>
<joint name="lidar_joint" type="fixed">
<parent link="base_link" />
<child link="hesai_lidar" />
<!-- LiDAR pitched -9 degrees downward relative to base_link -->
<origin xyz="0 0 0" rpy="0 -0.1571 0" />
</joint>
<link name="imu_link"> </link>
<joint name="imu_joint" type="fixed">
<parent link="chassis_link" />
<child link="imu_link" />
<!-- +90 degrees yaw -->
<origin xyz="0 0 0" rpy="0 0 1.5708" />
<!-- <origin xyz="0 0 0" rpy="0 0 0" /> -->
</joint>
<link name="laser_sensor_frame"> </link>
<joint name="laser_joint" type="fixed">
<parent link="imu_link" />
<child link="laser_sensor_frame" />
<origin xyz="0 0 0" rpy="0 0 0" />
</joint>
<link name="gps"> </link>
<joint name="navsat_joint" type="fixed">
<parent link="chassis_link" />
<child link="gps" />
<origin xyz="0 0 0" rpy="0 0 0" />
</joint>
</robot>
Question about IMU / LiDAR extrinsic parameters and URDF frames
Hi, I have a question about how to correctly set up the extrinsic parameters and URDF frames between my IMU and LiDAR.
Frames
IMU frame
LiDAR frame
Questions
originRPY values (e.g. forimu_link,hesai_lidar, etc.) to be consistent with the extrinsics?Current extrinsic parameters
Current robot.urdf