【激光SLAM, ROS】激光畸变的校正

frame.getRotation()或getOrigin() --> tf::Quaternion或者tf::Vector3 --> 进一步经tf::getYaw获得弧度

对上述位姿插值获得每个激光对应的mid_pose和mid_angle,其中lerp对位置,slerp对四元数角度

将极坐标激光点云依次转换到雷达坐标系,里程计坐标系(世界坐标),再由base和里程计(世界)的关系,转换到base坐标系,最后转换成极坐标

即将该直线段内采集到的所有激光点校正作为是在base点采集到的

 

这一课看了三天

1、理论上,插值的背后是多次坐标变换

2、no such launch file多半是没source对,特别注意source拼写,错了也不会报

3、catkin_make, source一般在ws下进行,roslaunch一般格式roslaunch (src下的文件夹名称) xxx.launch

4、编程变量写错,找了一天的bug

①把beam_step错写成了beam_number

②把angle[startIndex+i]错写成range[startIndex+i]。导致形成螺旋线,噩梦啊啊啊啊啊,搞了一下午加一晚上

 

写代码要认真!!!

你可能感兴趣的:(ROS,SLAM,激光SLAM)