一、 启动
cxf@cxf:~/odom_ws$ source ./devel/setup.bash cxf@cxf:~/odom_ws$ roslaunch calib_odom odomCalib.launch
2、打开rviz
在 3 正常的情况下,运行 rviz,fix_frame 选择为 odom。在 Add 选项卡中增加三条 Path 消 息。一条订阅的 topic 为:odom_path_pub;一条订阅的 topic 为:scan_path_pub;最后一条为: calib_path_pub_。分别选择不同的颜色。
Step5: 进入到 odom_ws/bag 目录下,运行指令: rosbag play -–clock odom.bag。 Step6: 如果一切正常,则能看到 运行矫正程序的终端会打印数据,并且 rviz 中可以看到 两条路径。当打 印的数据到 达一个的数量之后,则可以开始矫正。 Step7: 矫正的命令为,在 calib_flag 的 topic 下发布一个数据:rostopic pub /calib_flag std_msgs/ Empty "{}" 。 Step8: 程序矫正完毕会输出对应的矫正矩阵,并且 会在 rviz 中显示出第三条路径,即 calib_path。可 以观察里程计路径 odom_path 和矫正路径 calib_path 的区别来判断此次矫正的效果。
// 读取激光雷达的匹配值
while (!fin_s.eof()) {
double s_t, s_x, s_y, s_th;
fin_s >> s_t >> s_x >> s_y >> s_th;
s_data.push_back(vector<double>({s_t, s_x, s_y, s_th}));
}
fin_s.close();
每行3个, 这样存放在一个容器中
作业2
2基于模型的方法