JetBot ROS AI Kit 教程七、机器人里程计校准
来自Waveshare Wiki
JetBot ROS AI Kit 初级教程目录
- JetBot ROS AI Kit 教程一、组装教程
- JetBot ROS AI Kit 教程二、安装Jetson nano 镜像
- JetBot ROS AI Kit 教程三、安装Ubuntu虚拟机 镜像
- JetBot ROS AI Kit 教程四、配置多机通讯
- JetBot ROS AI Kit 教程五、机器人移动控制
- JetBot ROS AI Kit 教程六、使用ROS图形工具查看节点话题
- JetBot ROS AI Kit 教程七、机器人里程计校准
- JetBot ROS AI Kit 教程八、启动摄像头节点
- JetBot ROS AI Kit 教程九、启动激光雷达节点
- JetBot ROS AI Kit 主页
前言
- 机器人可以输出里程计信息,判断机器人行走的路程有多远,以及机器人转动了多少角度。但是程序默认输出的里程计和实际信息有可能会有误差,我们可以通过调节参数校准里程计信息,得到更高精度。
- 初次使用精度要求不高可以跳过此步骤,不校准也影响不大,可以正常实现后面功能。
步骤1、线速度校准
- 线性校准启动程序默认已经启动机器人底盘节点,请先关闭前面启动的机器人底盘节点,保持“机器人主节点”运行即可,否则运行命令后提示出错。
- 在jetson nano 中重新打开一个终端,运行如下命令,启动线速度校准程序
roslaunch jetbot_pro calibrate_linear.launch
- 开启后不要关闭,否则在虚拟机命令框中看不到校准选项
- 在虚拟机端运行如下命令,启动动态参数调节图形界面 ,若上述线速度校准程序正常运行,则可以看到 calibrate_linear 选项
rosrun rqt_reconfigure rqt_reconfigure
- 其中:
- test_distance 为测试距离,默认为1m.
- speed 为机器人线速度
- tolerance 为到达目标的误差。误差太小,会在目标位置抖动,反之,到达目标点的误差就很大
- odom_linear_scale_correction 为里程计缩放比例,最后修正的值即为线速度校准参数。
- start_test 开始机器人校准
- 将机器人放在地上,并标记机器人位置,勾选start_test,机器人开始运动,等待机器人停止后,测量机器人运动距离。记录运动距离除以目标距离的比值,将odom_linear_scale_correction乘以这个比作为新的参数。重复测试,直到实际运动距离为1m。
- 例如设置运动1m,实际运行1.2m,则比值为1.2,odom_linear_scale_correction更新为1x1.2即1.2再次启动测试,若效果满意则线性校准参数为1.2,若实际运动为1.1m,则odom_linear_scale_correction更新为1.2*1.1即1.32。如此反复直到效果满意。
- 在jetson nano中输入以下命令,打开catkin_ws/src/jetbot_pro/launch/jetbot.launch文件,将linear_correction的值修改为刚才校准得到odom_linear_scale_correction校准参数。再次启动校准程序即可实际行走1m距离。
sudo nano ~/catkin_ws/src/jetbot_pro/launch/jetbot.launch #修改校准参数
步骤2、角速度校准
- 请先关闭前面线性校准程序,保持“机器人主节点”运行即可,否则运行命令会提示出错。
- 在jetson nano 中输入以下命令,启动角速度校准程序
roslaunch jetbot_pro calibrate_angular.launch
- 虚拟机端运行如下命令,启动动态参数调节图形界面 rosrun rqt_reconfigure rqt_reconfigure
rosrun rqt_reconfigure rqt_reconfigure
- 其中:
- test_angle为测试距离,默认为360度,即一圈.
- speed 为机器人线速度
- tolerance 为到达目标的误差。误差太小,会在目标位置抖动,反之,到达目标点的误差就很大
- odom_linear_scale_correction 为里程计缩放比例,最后修正的值即为线速度校准参数
- start_test 开始机器人校准
- 将机器人放在地上,并标记机器人位置,勾选start_test,机器人开始运动,等待机器人停止后,根据机器人转动角度 修改odom_angular_scale_correction的值,重复测试直到效果满意。
- 可以将手机打开指南针软件,将手机放大小车上,这样可以准确测得小车实际转动角度【注意防止雷达转动干扰】
- 在jetson nano中输入以下命令,打开catkin_ws/src/jetbot_pro/launch/jetbot.launch文件,文件保存校准参数。将angular_correction的值修改为刚才校准得到odom_angular_scale_correction校准参数
sudo nano catkin_ws/src/jetbot_pro/launch/jetbot.launch #修改角速度校准参数