小乌龟节点启动

1. 启动小乌龟模拟器节点

rosrun turtlesim turtlesim_node

2. 启动小乌龟键盘输入节点

rosrun turtlesim turtle_teleop_key

启动完成后,可以通过键盘输入操控小乌龟移动。

小乌龟操控原理

1. 节点信息查看

小乌龟启动过程中,我们启动了两个可执行的程序:turtlesim_node和turtle_teleop_key 。可以通过命令查看当前的启动的节点:

rosnode list

可以查看到启动程序对应的节点/turtlesim和/teleop_turtle

通过命令可以查看/turtlesim节点的详情

rosnode info /turtlesim

命令运行后,可以看到以下结果:

Node [/turtlesim]

Publications:

* /rosout [rosgraph_msgs/Log]

* /turtle1/color_sensor [turtlesim/Color]

* /turtle1/pose [turtlesim/Pose]

Subscriptions:

* /turtle1/cmd_vel [geometry_msgs/Twist]

Services:

* /clear

* /kill

* /reset

* /spawn

* /turtle1/set_pen

* /turtle1/teleport_absolute

* /turtle1/teleport_relative

* /turtlesim/get_loggers

* /turtlesim/set_logger_level

contacting node http://ubuntu:42049/ ...

Pid: 20218

Connections:

* topic: /rosout

* to: /rosout

* direction: outbound

* transport: TCPROS

* topic: /turtle1/cmd_vel

* to: /teleop_turtle (http://ubuntu:44433/)

* direction: inbound

* transport: TCPROS

rosnode info命令可以查看当前节点的一些信息:

Publications:此节点上定义的发布者

Subscriptions:此节点上定义的订阅者

Services:此节点上定义的服务

进程id,占用的网络端口

Connections: 此节点和其他节点间的连接信息

同理,我们也可以通过rosnode info查询/teleop_turtle节点的信息,结果如下:

--------------------------------------------------------------------------------

Node [/teleop_turtle]

Publications:

* /rosout [rosgraph_msgs/Log]

* /turtle1/cmd_vel [geometry_msgs/Twist]

Subscriptions: None

Services:

* /teleop_turtle/get_loggers

* /teleop_turtle/set_logger_level

contacting node http://ubuntu:44433/ ...

Pid: 20443

Connections:

* topic: /rosout

* to: /rosout

* direction: outbound

* transport: TCPROS

* topic: /turtle1/cmd_vel

* to: /turtlesim

* direction: outbound

* transport: TCPROS

现在我们大致可以搞清楚一些通讯的关系:

/teleop_turtle节点存在一个发布者,往/turtle1/cmd_vel主题中发布数据。

/turtlesim节点存在一个订阅者,去/turtle1/cmd_vel主题中获取数据。

2. 可视化工具查询节点关系

rqt_graph工具提供了可视化的工具方便我们查看这种节点间的关系:

rosrun rqt_graph rqt_graph

1

图片.png

图像显示,/teleop_turtle通过主题/turtle1/cmd_vel给/turtlesim进行数据传递

调试工具操控小乌龟

1. rqt_publisher模拟数据发送

启动rqt_publisher工具

rosrun rqt_publisher rqt_publisher

通过图形化配置参数:

图片.png

2. 通过命令行模拟数据发送

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:

x: 1.0

y: 0.0

z: 0.0

angular:

x: 0.0

y: 0.0

z: 3.0"

小乌龟坐标系相关

面板

面板的坐标原点在左下脚,即左下角为(0,0)

面板的X轴是自左向右,数值是0开始正向增长

面板的Y轴是自下向上,数值是0开始正向增长

面板的宽度和高度相同,值为11.088899

小乌龟

小乌龟的坐标原点为小乌龟的中心点。

小乌龟移动指令参数

我们通过rostopic命令可以获得小乌龟的移动数据类型为geometry_msgs/Twist

rostopic type /turtle1/cmd_vel

通过rosmsg命令可以查看数据的详细格式:

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

geometry_msgs/Vector3 linear指的是线速度,小乌龟只用到了float64 x,代表着乌龟向前进的线速度

geometry_msgs/Vector3 angular指的是角速度,小乌龟只用到了float64 z,代表着乌龟旋转的角速度

ros多个小乌龟_Ros 小乌龟节点启动相关推荐

  1. ros多个小乌龟_ROS小乌龟turtlesim详解

    turtlesim 小乌龟模拟 小乌龟的启动 在安装完ROS之后,就可以启动小乌龟了,打开一个终端. 1. 首先要打开ROS服务 roscore 2. 打开一个新终端,打开小乌龟 rosrun tur ...

  2. 树莓派 ROS 学习(二)小乌龟 turtlesim

    目录 创建catkin工作空间 小乌龟turtlesim节点 启动节点 turtlesim节点 turtlesim 话题与消息 查看话题的消息类型 查看消息类型的具体内容 查看话题的值 改变背景颜色 ...

  3. ROS机器人程序设计(原书第2版)3.1.2 ROS节点启动时调用gdb调试器

    3.1.2 ROS节点启动时调用gdb调试器 我们需要一个启动文件(launch)去启动节点,如下: 想要在节点启动时调用gdb调试器,需要添加launch-prefix="xterm -e ...

  4. ros launch文件编写和节点启动顺序控制

    ROS可以通过launch文件进行节点的管理.初始参数的设置,但是launch文件不能指定节点的启动顺序,因此本文简单介绍下通过launch进行节点启动管理,通过shell来控制节点启动顺序. 1,我 ...

  5. ROS笔记(40) 通讯节点

    ROS笔记(40) 通讯节点 1. 节点分析 1.1. 建立仿真 1.2. 仿真分析 2. 建立节点(C++) 2.1. 节点配置 2.1.1 hhbot_bsp_serial_conf 2.1.2 ...

  6. ros 发布信息频率_ROS入门笔记二基础

    1.创建工作空间 1.什么是工作空间 工作空间(workspace)是一个存放工作开发相关文件的文件夹 src:代码空间(Source Space) build:编译空间(Build Space) d ...

  7. 【ros/ros2】LCN及ros2节点的LCN改写

    文章目录 序言 1. ros2两种节点类型 2. LCN是什么 3. LCN状态转换 4. LCN状态转换要做的事 5. LCN节点功能划分 6. ros2节点的LCN改写 6.1 CMakeList ...

  8. 比特币SPV节点启动流程图

    2019独角兽企业重金招聘Python工程师标准>>> 比特币SPV节点启动流程图 图小点击右键在新窗口打开 转载于:https://my.oschina.net/penghaozh ...

  9. ROS基础四之roscpp/rospy节点编写

    roscpp/rospy节点编写 subscriber/advertiser编写 roscpp实例 rospy实例 server/client编写 roscpp实例 rospy实例 actionlib ...

最新文章

  1. 第一个java程序释义_Java 学习之路(1)第一个Java程序
  2. ajax bootstrap 进度条,Bootstrap进度条与AJAX后端数据传递结合使用实例详解
  3. 5G万物智联下互联网通信技术升级之路
  4. Spring REST:异常处理卷。 2
  5. LeetCode刷题(35)--Permutation Sequence
  6. 记录一次laravel5.5的安装
  7. Akka向设备组添加Actor注册《thirteen》译
  8. 大华存储服务器系统,大华重磅推出64盘位网络视频存储服务器
  9. 传感器实验——蜂鸣器
  10. js读写json文件
  11. 【电脑运用及修理】6套台式组装机电脑配置清单大全(2022年618)
  12. 热敏打印机的工作原理
  13. citrix vdi 服务器性能要求,如何评估VDI存储要求
  14. 聆听结合AI技术的Steam教育课程
  15. deepin 20 推荐邮件客户端 Bluemail 邮箱
  16. React + Springboot + Quartz,从0实现Excel报表自动化
  17. webpack安装、配置
  18. 数据中心蓄冷系统选择-孙长青
  19. Android WiFi 权限、广播、连接、踩坑相关记录
  20. Android —MVP架构—登录页面示例

热门文章

  1. k8s之HPA(Pod水平自动伸缩)
  2. java list 包含_如何判断ListStringlist中是否包含某个字符串
  3. Debian手动安装LNMPA环境及相关配置
  4. 浅谈XSS跨站脚本攻击
  5. 语音怎么在线转文字,语音转文字的小技巧
  6. 抓包工具--Fiddler
  7. 人脸检测or五官检测
  8. 透明网关与透明防火墙
  9. 区块链技术的未来前景与发展趋势
  10. 在有无缓冲层镊酸锏(LaNiO3,LNO)的 Pt/Ti/SiO-/Si(111)基片上沉积了单层BFO多晶薄膜