前言:turtlesim是ros自带的一个功能包,应该是用于基础教学的功能包,帮助新手入门的一个实例,包括:节点,主题,服务以及参数的应用。通过学习使用turtlesim功能包可以了解ros的一些基础命令与通信架构。

1.启动ROS Master

roscore  

2.启动小海龟仿真器节点

 rosrun turtlesim turtlesim_node  

3.启动小海龟键盘控制节点

 rosrun turtlesim turtle_teleop_key

说明:
turtlesim     - 功能包名称

turtlesim_node    - 节点的名称,是在功能包turtlesim 下面

4.启动计算图节点

rqt_graph

5.查看当前系统启动的所有节点

rosnode list

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

显示如下:
/rosout
/rqt_gui_py_node_7316
/teleop_turtle
/turtlesim

6.查看具体节点的信息

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://cdq1:33854/ ...
Pid: 21222    节点的ID号
Connections:    
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS  通信协议
 * topic: /turtle1/cmd_vel
    * to: /teleop_turtle (http://vm:43869/)
    * direction: inbound

* transport: TCPROS

7.查看系统中发布和订阅的话题

rostopic list

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

显示如下:

/rosout
/rosout_agg
/statistics
/turtle1/cmd_vel
/turtle1/color_sensor

/turtle1/pose

8.查看话题的信息

rostopic info /turtle1/cmd_vel 

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

显示如下:

Type: geometry_msgs/Twist      消息类型

Publishers:     发布者是 /teleop_turtle
 * /teleop_turtle (http://cdq1:408083/)

Subscribers:  订阅者是  /turtlesim 节点

* /turtlesim (http://cdq1:33853/)

9.监听话题信息

rostopic echo /turtle1/cmd_vel ;

在rosrun turtlesim turtle_teleop_key终端下控制方向键

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

显示如下:

linear:     线速度的单位是 m/s
  x: 2.0
  y: 0.0
  z: 0.0
angular:  角速度的单位是 rad/s
  x: 0.0
  y: 0.0
  z: 0.0

10.发布话题

rostopic pub - /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'        //画弧

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r  -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'     // 画圈

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

其中,

-1 这个参数的意思是只发布一个命令,然后退出;

/turtle1/cmd_vel    要发布消息的话题;

geometry_msgs/Twist     要发布的消息类型名称;

--     (双破折号)这会告诉命令选项解析器接下来的参数部分都不是命令选项。这在参数里面包含有破折号-(比如负号)时是必须要添加的;

‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’       在x轴坐标上以每秒2.0 m的速度移动,以z轴为中心,每秒旋转1.8rad;2.0是linear的值,1.8是angular的值;

rostopic pub用法:rostopic pub [topic] [msg_type] [args];

-r 1  -r发布一个稳定的命令流,1,频率为1HZ。

11.查看系统中的服务

rosservice list

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

显示如下:

/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/rostopic_7788_1524147136200/get_loggers
/rostopic_7788_1524147136200/set_logger_level
/rqt_gui_py_node_6138/get_loggers
/rqt_gui_py_node_6138/set_logger_level
/spawn
/teleop_turtle/get_loggers
/teleop_turtle/set_logger_level
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers

/turtlesim/set_logger_level

12.查看服务的信息

rosservice info /spawn 

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

显示如下:

Node: /turtlesim
URI: rosrpc://vm:42961
Type: turtlesim/Spawn

Args: x y theta name

13.新增一只海龟

rosservice call spawn 2 2 0 “turtle2”

在(2,2)坐标点,0度方向,新生一只名字为turtle2的乌龟。

14.查看修改参数

查询运行中的参数:

rosparam list

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

显示如下:

/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_cdq1__38893
/rosversion
/run_id

获取background_b背景参数 :

rosparam get background_b 

修改background_b背景参数 :

rosparam 

此时背景颜色并没有改变,需要刷新一下:

rosservice call clear

-END-

ROS-turtlesim的更多相关文章

  1. Making my own Autonomous Robot in ROS / Gazebo, Day 2: Enable the robot

    Day 2: Enable the robot Git Setting git checkout master git branch day2_enable_robot git push --set- ...

  2. ROS学习笔记(七)——节点

    NEW 1 #打开新的终端,以后不再注释$ sudo apt-get install ros-<distro>-ros-tutorials #下载一个教学用的仿真器$ roscore #运 ...

  3. ROS 新手教程 命令汇总

    ## 工作环境搭建 查看环境变量的配置: wangsan@wangsan-Y50:~$ export | grep ROS declare -x ROSLISP_PACKAGE_DIRECTORIES ...

  4. ros下多机器人系统(1)

    multi-robot system 经过两个多月的ros学习,对ros的认识有了比较深入的了解,本篇博客主要记录在ros下开发多机器人系统以及对ros更深入的开发.本篇博客是假定读者已经学习完了全部 ...

  5. ROS 多台电脑间进行通信

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5773822.html 在我看来,ROS最牛逼的地方就是它的通信机制了,不仅仅是进程间 ...

  6. ubuntu下ROS安装时sudo rosdep init和rosdep update的解决方法

    问题: 在ubuntu上多次安装matlab选择合适的版本来调用摄像头,终于把系统搞坏了,重装系统后,ROS无法安装,每次安装到sudo rosdep init和rosdep update报错的问题, ...

  7. [ROS]1 小乌龟

    对于一个新新新手,Linux,ROS都要学习.安装ROS真的很讨厌了,于是采用易科机器人实验室的ubuntu12.04-amd64-ros-exbot-h2-140520版本. 测试一下小乌龟节点.主 ...

  8. ROS主题发布订阅控制真实的机器人下位机

    先模拟控制小乌龟 新建cmd_node.ccpp文件: #include"ros/ros.h" #include"geometry_msgs/Twist.h" ...

  9. ROS TF——learning tf

    在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换. 相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf 一.tf简介 ...

  10. 理解ROS rqt_console和 roslaunch

    1.使用rqt_console和roslaunch 这篇教程将介绍使用rqt_console和rqt_logger_level来调试以及使用roslaunch一次启动许多nodes.如果你使用ROS  ...

随机推荐

  1. [hihocoder][Offer收割]编程练习赛45

    互补二元组 Xi + Xj = Yi + Yj等价于Xi - Yi + Xj - Yj = 0 ,对每个二元组计算其x与y的差,每次加上其相反数的个数. #pragma comment(linker, ...

  2. 【转载】程序猿转型AI必须知道的几件事!

    历史上AI火过两次,但是最终都已销声匿迹作为结束.这次AI大火的原因:AlphaGo 4比1战胜李世石,相对于一些外行人的恐慌和恐惧,其实很多业内人员在这场世纪之战结束后,都为人类点上了一个大大的赞. ...

  3. 搭建eclipse的安卓开发环境(eclipse+jdk+adt+sdk)

    学校暑期大作业让用安卓写一个app,有两种方案(android stduio+sdk和eclipse+jdk+adt+sdk)折腾了几天发现还是后者好用,但是安装环境和下载真的是去了半条命,(不过由于 ...

  4. RabbitMQ学习之Flow Control

    当RabbitMQ发布消息速度快于消费速度或者系统资源不足时,RabbitMQ将降低或阻断发布消息速度,以免服务器资源饱满而宕机,可以通过rabbitmqctl和web管理页面查看连接的状态为flow ...

  5. 团体程序设计天梯赛-练习集-L1-029. 是不是太胖了

    L1-029. 是不是太胖了 据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.已知市斤是公斤的两倍.现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自 ...

  6. NOIP 膜你题 DAY2

    NOIp膜你题   Day2 duliu 出题人:ZAY     题解 这就是一道组合数问题鸭!!!  可是泥为什么没有推出式子!! 首先我们知道的是 m 盆花都要摆上,然后他们的顺序不定(主人公忘记 ...

  7. 如何添加删除子网卡eth0:1(linux案例)

    这种方法实现了单网卡多IP,我的系统是centos7的,如何添加删除子网卡IP详细请看下面操作例子 添加子网卡IP:ifconfig  ens3:1  192.168.0.100/24        ...

  8. ubuntu16.04下安装配置nodejs及npm

    官网下载ubuntu对应的二进制文件(Linux Binaries (x64)这一行) https://nodejs.org/en/download/ 解压并安装 ``` $tar zxvf node ...

  9. Webpack 学习记录之概念

    1 什么是webpack webpack是一个模块打包器,可以递归的构建一个依赖关系图,其中包含每个程序需要的每个模块,然后将所有模块打包成一个或多个bundle.他和其他的工具最大的不同在于他支持c ...

  10. [USACO08NOV]奶牛混合起来Mixed Up Cows(状态压缩DP)

    题目描述 Each of Farmer John's N (4 <= N <= 16) cows has a unique serial number S_i (1 <= S_i & ...