我想把下面这段代码中的IMU到Velodyne之间的变换关系写成一个固定的矩阵同时保证这段代码中的参数传递不会有影响具体该如何修改imu_stamped_tf_velo = tf_buffer_ptr-lookupTransformimu_link velo_link rosTime0 rosDuration30; tf2fromMsgimu_stamped_tf_velotransform
可以将IMU到Velodyne之间的变换关系写成一个固定的矩阵,如下:
Eigen::Matrix4f imu_T_velo; imu_T_velo << 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0;
然后在代码中使用这个矩阵代替从tf_buffer_ptr中查询得到的变换关系即可:
tf2::StampedEigen::Affine3d imu_stamped_tf_velo; imu_stamped_tf_velo.frame_id_ = "imu"; imu_stamped_tf_velo.child_frame_id_ = "velo"; imu_stamped_tf_velo.stamp_ = ros::Time::now(); tf2::fromMsg(tf2::toMsg(imu_T_velo), imu_stamped_tf_velo);
static_broadcaster.sendTransform(tf2::toMsg(imu_stamped_tf_velo))
原文地址: https://www.cveoy.top/t/topic/fdmm 著作权归作者所有。请勿转载和采集!