02---控制移动底座4

对你的机器人进行测量校准

在这一部分当中,需要有实际的机器人,如果没有可以略过此节,如果有一台原版的TurtleBot(用iRobot create作为底座),那么确保使用自动校准过程为你的机器人设置角速度修正系数。还可以用这一部分内容的第一步去设置线速度修正系数。需要注意的是,无论在什么情况下,都需要用不同的校准参数去适应不同类型的地面。

在执行校准程序时,确保在命令行里调用了Orocos kinematics包:

sudo apt-get install ros-indigo-orocos-kdl ros-indigo-python-orocos-kdl

rbx1_nav包有两个校准脚本:calibrate_linear.py和calibrate_angular.py.

第一个脚本通过监视话题/odom,让机器人向前移动1m,然后测量得到的距离在目标地点的1cm时让它停下。你可以通过编辑脚本或者用rqt_reconfigure 来调整目标距离和移动速度。

第二脚本也是通过监视/odom话题,让机器人旋转360度。下面部分内容将介绍如何根据运行结果来调整PID参数。

1、线速度校准

在地上放一条至少1m长的卷尺,让卷尺的一端对其机器人某个显著的标志。旋转机器人使它面向的方向与卷尺平行。

接着,用适合当前环境的启动文件启动机器人的基控制器。对于使用iRobot Create的TurtleBot来说,需要使用ssh命令连接机器人上的计算机并运行:

roslaunch rbx1_bringup turtlebot_minimal_create.launch

接着,运行线速度校准节点:

rosrun rbx1_nav calibrate_linear.py

最后,运行rqt_reconfigure:

rosrun rqt_reconfigure rqt_reconfigure

在rqt_reconfigure窗口中选择calibrate_linear节点(如果在列表上没有这个节点,点击GUI界面右上角的蓝色刷新键)。点击在start_test旁边的勾选框来开始测试(如果机器人没有开始运动,取消选择并重新勾选)。这时你的机器人应该会向前移动大概1m,要得到修正系数,执行以下几步:

1)用卷尺测量并记录下机器人的实际移动距离;

2)用实际移动距离除以目标距离,并记录下这个比值;

3)回到rqt_reconfigure的GUI界面,用参数odom_linear_scale_correction乘以上一步得到的比值所得的乘积更新这个参数

4)把机器人放回卷尺的起始端,在rqt_rconfigure窗口中勾选start_test选框,重复测试。

5)不断重复测试,直到你得到满意的结果。在1m中精确到1cm就是足够好的结果了。

当你得到最终的修正系数后,你需要用恰当的启动文件把它应用到你的机器人的基控制器中。对于TurtleBot,你需要添加以下内容到你的turtlebot.launch文件中:

<param name="turtlebot_node/odom_linear_scale_correction" value="X"/>


其中X表示你的修正系数。

如果你的机器人使用ArbotiX作为基控制器,编辑你的YAML配置文件,用参数ticks_meter除以修正系数来更新ticks_meter这个参数。

在最后的检查中,执行机器人应该使用了新的修正系数的启动文件,然后在参数odom_linear_correction设为1.0的情况下,执行calibrate_linear.py脚本。再来测试是否能够走到1m的距离。

2、角速度校准

如果你使用的是基于iRobot Create的TurtleBot,不要使用以下的方法,请使用TurtleBot的自动校准过程。

在地面上放置一个标志物对齐机器人正面的中点。让机器人旋转360度,然后看看它与标志物的距离。

用合适的启动文件启动你的机器人基控制器。对于一个原装的TurtleBot(使用iRobot Create底座)。使用ssh命令连接机器人的计算机,并执行以下命令:

roslaunch rbx1_bringup turtlebot_minimal_create.launch

接着,运行角速度校准节点:

rosrun rbx1_nav calibrate_angular.py

最后,运行rqt_reconfigure:

rosrun rqt_reconfigure rqt_reconfigure

在rqt_reconfigure窗口中选择calibrate_angular节点(如果在列表上没有这个节点,点击GUI界面右上角的蓝色刷新键)。点 击在start_test旁边的勾选框来开始测试(如果机器人没有开始运动,取消选择并重新勾选)。这时你的机器人应该旋转约360度,不需要担心机器人旋转超过或者不够一圈,因为会接着进行调整的,执行以下几步来获得校正系数:

1)如果实际旋转不足360度,目测机器人旋转的角度,并以这个结果来填写rqt_reconfigure窗口中的odom_angular_scale_correction的值。如果机器人看起来旋转了一圈的85%,就输入0.85,如果机器人旋转了一圈又5%,就输入1.05。

2)让机器人正面中点对齐标志物,并点击rqt_reconfigure窗口中的start_test选框来重复测试。

3)重复上述步骤知道得到满意的结果。

能否得到最终的校正系数取决于你的基控制器的PID参数是否准确。对于一个使用ArbotiX基控制器的机器人,需要编辑YAML配置文件,用参数base_width除以你的校正系数来更新参数base_width。

测试的最后,用更新了校正系数的启动文件启动你的机器人。

5、发送Twist消息给真是的机器人

发送方式跟仿真器里面的方式是一样的。

 

转载于:https://www.cnblogs.com/gary-guo/p/6640408.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值