• 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消息给真是的机器人

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

  • 相关阅读:
    数组循环三种方式
    PHP上传RAR压缩包并解压目录
    把session写到数据库中
    PHP错误处理方式
    PHP异常处理机制
    css文字的强制换行和超出宽度省略变成点儿
    Mybatis之@Provider的使用方式
    rsync+ssh 枯木
    RHEL6下squid代理之正向代理 枯木
    MySQL体系结构 枯木
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6640408.html
Copyright © 2020-2023  润新知