• 02---控制移动底座3


    1、/odom : (odometry : 里程计,就是车子方向盘下面的各种表)下面是它内部的参数:

    它包含了一个机器人当前运动状态的所有信息。

    其中 child_frame_id 就是机器人它自己的名字。

    2、编码器

    什么是编码器编码器的原理,如何使用,程序如何控制。这些问题如果你不懂,请看:电子模块 — 编码器 这一节的内容。

    1、ROS中Twist消息和轮子转动

    ROS使用Twist消息类型发布运动指令给基控制器。虽然话题可以随意命名,但一般我们会使用/cmd_vel作为话题名。基控制器节点订阅/cmd_vel话题,然后把Twist消息翻译转换成发动机信号,从而使轮子转动。

    运行如下命令可以查看Twist消息的组成:

    rosmsg show geometry_msgs/Twist

    执行后结果如下:

    geometry_msgs/Vector3 linear
      float64 x
      float64 y
      float64 z
    geometry_msgs/Vector3 angular
      float64 x
      float64 y
      float64 z
    一个Twist消息由两个类型为Vector3的子消息组成,其中一个子消息是用x,y,z来表示线速度;而另一个是用来表示角速度。对于在二维平面运动的差速驱动机器人,只需要用到线速度的x部分和角速度的z部分。因为它只能前进或者后退,或者绕z轴旋转。

    全方向移动的机器人就会用到线速度的y部分;而飞行机器人或者水下机器人就可能用到上述所有变量。

    1)Twist消息的例子

    假设想让机器人以0.1m/s的速度向前走,则在命令行表示这个Twist消息,它会是以下的形式:

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

    注意上面Twist消息格式中怎样用大括号区分一个子消息,并用冒号、逗号和空格(空格是必不可少的)来分开变量名和值。

    其实这种方式很少使用,我们实际可以用其他ROS节点把Twist消息传给机器人。

    2)用Rviz监视机器人运动

    在尝试不同的Twist命令和运动控制脚本的过程中,我们将使用RVIZ来把机器人的运动可视化。我们可以使用Odometry Display类型去跟踪机器人的方位(坐标和方向)。机器人的每一个方位状态是用一个箭头来表示的,这个箭头指向机器人在这个坐标时所面对的方向。注意这个状态反应的是机器人的测量数据。它与机器人在现实世界的状态是有差距的。

    接下来我们尝试试用ArbotiX模拟器去运行几个例子。首先用以下命令启动一个模拟的TurtleBot:

    roslaunch rbx1_bringup fake_turtlebot.launch
    在另一个终端,用设置好的Odometry Display配置文件启动RVIZ:

    rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
    最后,再启动一个终端窗口,发布以下Twist消息,使机器人顺时针转圈。

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

    我们可以通过设定参数-r,以10Hz的频率发布Twist消息。在运行ArbotiX模拟器的时候,这个参数并不是必须的,加上也没关系。

    需要注意的是,在Odometry Display配置中的keep参数设置为100,这说明我们想显示在最早的箭头消失前最新的100个箭头。而Position Tolerance(单位为m)和Angle Tolerance(单位为rad)两个参数可以让你控制多久显示一个新的箭头。

    点击Reset按钮,或者先取消选择Odometry Display旁边的选项框然后再选上,都可以在任意一点去掉已经显示的箭头。

    在刚才发布消息的同一个窗口下按下“Ctrl-C”,然后发布一条空的Twist消息,可以让机器人停止旋转:

     rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'
    在一个现实的机器人尝试Twist消息之前,需要花一点时间介绍校准问题。

  • 相关阅读:
    antd pro v5安装并运行完整demo的方法
    react项目运行在微信公众号
    nginx服务器上部署react项目
    毕业后,初入社会的困境和挣扎
    win10系统无法执行exe文件,解决方法
    前端学习11.14
    前端学习11.13
    Struts学习-Hibernate2
    Struts学习-Hibernate
    Struts2学习-自动
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6640028.html
Copyright © 2020-2023  润新知