ROS进阶学习手记 10 - 搭建自己的TurtleBot(3)- Velocity Calibration

ROS进阶学习手记 10 - 搭建自己的TurtleBot(3)- Velocity Calibration

ROS进阶学习手记 10 - 搭建自己的TurtleBot(3)- Velocity Calibration

    上一篇我们分析了 rbx 书籍中,对于底板驱动相关的.launch文件,turtlebot_minimal_create.launch, 现在要实验一下相关的配置以后,速度值是否与设定值一致。

    要用到的.launch 文件: turtlebot_minimal_create_me.launch ; 使用 rostopic pub 命令发布驱动指令。

    运行命令行:

    先把rbx包source一下:

    $ cd ~/catkin_ws
    $ catkin_make
    $ source ~/catkin_ws/devel/setup.bash

    再在子机上(my_robot1)启动 底盘 驱动: (通过vi工具修改了子机上的tb_create_mobile_base.launch.xml文件)

  $ roslaunch rbx1_bringup turtlebot_minimal_create.launch

在校准之前,务必参考我博文:Using Create2(Roomba 620) as your turtlebot driving base.

校准线速度:

    通过母机发指令:

  $ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.1, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'

    按照rbx书上的说法:Linear velocities are specified in meters per second and angular velocities are given in radians per second. (1 radian equals approximately 57

degrees.) 单位是 m/s 和 rad/s. (1 rad = 180/pi  degree)

    实测速度在 0.12 m/s 左右。实验距离:1米。耗时8.5s左右。

校准角速度:

    通过母机发指令:

  $ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.628}}'

    0.628 rad/s 是指令发送角速度,意味着转1圈 2*3.14 rad = 6.28 rad , 耗时应:10秒, 实测耗时:7.55s,

    so, 实际角速度 = 实际转动rad数/耗用时间 = 6.28/(7.55)s = 0.83 rad/s = 0.628* 1.32

    这里我准备做个表格,画画图,看看角速度校准应该怎么弄。(地面条件:磨石地板,粗糙度:0.3-0.5mm)

   

#转动圈数转动角度(rad)设置角速度rad/s理论耗用时间s实际耗用时间s实际角速度rad/s修正系数
116.280.10062.8015.140.414.148
216.280.20031.4015.030.422.089
316.280.30020.9315.050.421.391
416.280.35017.9410.180.621.763
516.280.40015.7010.100.621.554
616.280.50012.5610.200.621.231
716.280.62810.007.550.831.325
816.280.7508.376.131.021.366
916.281.0006.285.121.231.227
1016.281.4004.493.831.641.171
1116.281.6003.933.821.641.027
1216.281.8003.493.361.871.038
1316.282.0003.142.812.231.117

    

    参考线方程: y = x + 0.2

    **参考配置:**慢速档: 0.3-0.5; 线性档: 0.5 - 1.5 ; 高速档:2.0以上

如何根据线速度和角速度估计机器人的位置:

  

  

Published At
comments powered by Disqus