设为首页 加入收藏

TOP

ROS小乌龟turtlesim详解
2019-03-02 20:08:02 】 浏览:391
Tags:ROS 乌龟 turtlesim 详解

turtlesim 小乌龟模拟


小乌龟的启动


在安装完ROS之后,就可以启动小乌龟了,打开一个终端。
 1.  首先要打开ROS服务
        roscore
 2.  打开一个新终端,打开小乌龟
        rosrun turtlesim turtlesim_node
 3. 打开一个新终端,通过键盘控制小乌龟,这个终端窗口必须置顶才能键盘控制
        rosrun turtlesim turtle_teleop_key 
    会出现如下结果,此时就可以通过键盘的前后左右来控制小乌龟的平面运动了。
          Reading from keyboard
          —————————
          Use arrow keys to move the turtle.


给小乌龟的运动控制节点发布消息


首先通过ctrl+C 命令,关闭键盘控制终端的节点


输入话题列表查看指令
  rostopic list
 可以看到当前有如下5个节点,其中/turtle1/cmd_vel 是控制小乌龟运动的节点
  /rosout
  /rosout_agg
  /turtle1/cmd_vel
  /turtle1/color_sensor
  /turtle1/pose
通过rostopic pub命令,给指定的话题发布消息
 rostopic pub /turtle1/cmd_vel geometry_msgs/Twist  “linear:
  x: 0.0
  y: 0.0
  z: 0.0
 angular:
  x: 0.0
  y: 0.0
  z: 0.0” 
 /turtle1/cmd_vel为话题,geometry_msgs/Twist 为数据类型。linear为线速度,angular为角速度,单位是m/s 和 rad/s.
 线速度linear,x是前后,y是左右,z是上下。角速度angular,x是沿X轴逆时针转动,y是沿y轴逆时针转动,z是沿Z轴逆时针转动。
  例如:”linear: x: 1.0 y: 0.0 z: 0.0  angular: x: 0.0 y: 0.0 z: 0.0”  小乌龟沿X轴做直线运动。
  例如:”linear: x: 0.0 y: 0.0 z: 0.0  angular: x: 0.0 y: 0.0 z: 0.0”  小乌龟沿Z轴原地转动
  例如:”linear: x: 1.0 y: 0.0 z: 0.0  angular: x: 0.0 y: 0.0 z: 1.0”  小乌龟边向前,边自传,速度合成后,轨迹是一个圆。


通过rqt图形化工具给话题发布消息


打开rqt工具
    rqt
在窗口上面的工具栏选择 plugins>topics>Message Publisher
topic 选择/turtle1/cmd_vel  Type选择geometry_msgs/Twist  Freq 为消息发布频率 单位为HZ,
点击加号就可以给指定话题发布消息了,点击小三角就而已给速度和线速度赋值。勾选上面的方框就开始发布了。可以看到小乌龟运动起来了。



同时打开两个小乌龟


如何打开第二个乌龟呢?首先我们列出所有当前的ros service
    rosservice list


会出现以下内容
  /clear
  /kill
  /reset
  /rosout/get_loggers
  /rosout/set_logger_level
  /spawn
  /turtle1/set_pen
  /turtle1/teleport_absolute
  /turtle1/teleport_relative
  /turtlesim/get_loggers
  /turtlesim/set_logger_level
用到spawn命令再生一个小乌龟,当出现/spawn 后一直按tab键会补全,然后回车,会自动生成一个按数字顺序命名的小乌龟
  rosservice call /spawn “x: 0.0
    y: 0.0
    theta: 0.0
    name: ”” 
    name: “turtle2”(回车后自动生成的名字)


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python装饰器小案例分析 下一篇设计模式之装饰模式(结构型)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目