walking机器人入门教程-测试导航精度2
说明
- 介绍如何测试导航精度
- 测试平台:walking-Y2,采购地址
- 测试场地:室内10*10米
原理
- 1.先进行建图,然后在rviz上指定四个目标点,保存为航点作为参考坐标点
- 2.运行航点导航,小车会自动按航点导航的坐标点逐一达到,可以指定循环的次数,比如5-10次
- 3.每次运行到达航点都会比较实际的坐标点(base_link的XY坐标值)和参考坐标点之间的误差距离,并记录这个误差距离。
- 4.当按次数轮询所有航点后,回到原点,并打印精度图,给出平均误差和最大误差
- 为什么不使用odom,而使用base_link的XY值呢,因为这个值是以地图为参考的,设置的的坐标点也是基于地图的坐标点。
- 但是odom的值基于小车本身的里程换算的,是会变化,并不稳定的。但是base_link相对地图的,所以这个作为参考更准确。
步骤
- 1.建图
- 先复位小车里程,按下应急开关,并旋转提起。小车默认是从0点开始
- 启动底盘
cd ~/scripts
./bringup_robot.sh
- 启动建图
cd ~/scripts
./slam_toolbox.sh
- 通过指定目标点进行导航,完成建图。
- 效果图
- 加载walkingNavigation的panel用于保存航点数据,并增加walkingGoalTool用于选择航点
- 利用walkingGoalTool工具,设置四个航点,效果图
- 保存航点到指定的文件: ~/aiwalking_ws/src/walking_calib/param/navigation_accuracy.json
- 精度测试脚本将使用这个航点作为测试参考坐标点
- 文件内容如下:
{
"pose": [
{
"id": "0",
"orient_w": 0.6461482393257767,
"orient_x": 0,
"orient_y": 0,
"orient_z": 0.7632119317831705,
"pos_x": 2.707103729248047,
"pos_y": 2.6281673908233643
},
{
"id": "1",
"orient_w": 0.9998013461102113,
"orient_x": 0,
"orient_y": 0,
"orient_z": -0.019931590910144098,
"pos_x": 6.156832695007324,
"pos_y": 3.111417293548584
},
{
"id": "2",
"orient_w": 0.7967842930297865,
"orient_x": 0,
"orient_y": 0,
"orient_z": -0.6042638416958468,
"pos_x": 7.342978477478027,
"pos_y": 1.191035509109497
},
{
"id": "3",
"orient_w": 0.1494494478852863,
"orient_x": 0,
"orient_y": 0,
"orient_z": -0.9887693677126042,
"pos_x": 3.5911450386047363,
"pos_y": 0.2568289041519165
}
]
}
- 2.导航
cd ~/scripts/
./nav_acc.sh 2
- 设置循环两次
- 3.输出精度图
- 当导航结束,自动输出精度图
- 效果图
- 如图所示,平均误差0.21,最大误差:0.23
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号