Tutorials

Filesystem tools(文件系统工具)
Example:

$ rospack find roscpp

would return:

YOUR_INSTALL_PATH/share/roscpp
roscd  #切换目录,只能切换到那些路径已经包含在ROS_PACKAGE_PATH环境变量中的软件包
rosls  #直接按软件包的名称而不是绝对路径执行ls命令

建立ROS程序包

Creating a catkin Package

#You should have created this in the Creating a Workspace Tutorial
$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
# This is an example, do not try to run this
# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

Building the packages in the catkin workspace:

$ cd ~/catkin_ws
$ catkin_make
$ . ~/catkin_ws/devel/setup.bash   #.可以替换为source命令

roscore is the first thing you should run when using ROS.

Open up a new terminal, useing rosnode (显示当前运行的ROS节点信息)
rosnode list 指令列出活跃的节点

$ rosnode info /rosout    #rosnode info 命令返回的是关于一个特定节点的信息
$ rosrun [package_name] [node_name]   #rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)
$ rosrun turtlesim turtlesim_node __name:=my_turtle  #use a Remapping Argument to change the node's name

ROS Topics

turtlesim_node节点和turtle_teleop_key节点之间是通过一个ROS话题来互相通信的(使用方向键控制turtle运动)。turtle_teleop_key在一个话题上发布按键输入消息,而turtlesim则订阅该话题以接收该消息。

$ rosrun rqt_graph rqt_graph   #使用rqt_graph来显示当前运行的节点和话题。
$ rostopic echo [topic] #rostopic echo /turtle1/cmd_vel    显示在某个话题上发布的数据
$ rostopic list -v    #会显示出有关所发布和订阅的话题及其类型的详细信息
$ rostopic type [topic] #查看发布的消息的类型
#Try: rostopic type /turtle1/cmd_vel  You should get:geometry_msgs/Twist
$ rosmsg show geometry_msgs/Twist    #rosmsg命令来查看消息的详细情况

rostopic continued

$ rostopic pub [topic] [msg_type] [args]  #rostopic pub可以把数据发布到当前某个正在广播的话题上
$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

ROS Services and Parameters

Services allow nodes to send a request and receive a response

$ rosservice list           #shows us that the turtlesim node provides nine services
$ rosservice type [service]    #$ rosservice type /clear
$ rosservice type /spawn | rossrv show   #看服务的详细参数
$ rosservice call /spawn 2 2 0.2 ""       #调用/spawn服务(写好参数)```bash
## Using rosparam```bash
$ rosparam list   #看到某个节点在参数服务器上有几个参数
rosparam set [param_name]     #$ rosparam set /background_r 150    $ rosservice call /clear(调用服务后参数生效)
rosparam get [param_name]     #$ rosparam get /background_g       ($ rosparam get / 看到全部参数的值)
rosparam dump [file_name] [namespace]   #$ rosparam dump params.yaml(将所有的参数写入params.yaml文件)
rosparam load [file_name] [namespace]     #$ rosparam load params.yaml    (将yaml文件重载入空间)

录制与回放数据

打开一个新终端并执行:

mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a     #只有消息已经发布了才可以被录制   rostopic list -v

在运行rosbag record命令的窗口中按Ctrl-C退出该命令。

检查并回放bag文件

rosbag info <your bagfile>    #该命令可以检查看bag文件中的内容而无需回放出来

TF

rosrun rqt_tf_tree rqt_tf_tree     #a runtime tool for visualizing the tree of frames

talker.cpp

listener.cpp

## 更改CMakeLists.txt与package.xml
## 服务和请求

烈火如歌-ROS入门使用相关推荐

  1. SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...

  2. ROS入门笔记(十三):分布式通信

    ROS入门笔记(十三):分布式通信 文章目录 01 如何实现分布式多机通信 1.1 设置IP地址,确保底层链路的连通 1.2 在从机端设置ROS_MASTER_URI,让从机找到ROS Master ...

  3. ROS入门笔记(十二):动作编程 (C++)

    ROS入门笔记(十二):动作编程 (C++) 文章目录 01 导读 02 功能包的创建 03 在功能包中创建action(动作) 3.1 自定义action 3.2 在package.xml中添加功能 ...

  4. ROS入门笔记(十一):编写与测试简单的Service和Client (Python)

    ROS入门笔记(十一):编写与测试简单的Service和Client (Python) 文章目录 01 导读 02 功能包的创建 03 在功能包中创建自定义服务类型 3.1 定义srv文件 3.2 在 ...

  5. ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)

    ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++) 文章目录 01 导读 02 功能包的创建 03 功能包的源代码编写 3.1 编写发布器节点(talker.cpp) 3.2 编写订阅 ...

  6. ROS入门笔记(九):编写ROS的第一个程序hello world(重点)

    ROS入门笔记(九):编写ROS的第一个程序hello world(重点) 文章目录 1 Catkin工作空间 1.1 创建catkin工作空间 1.2 编译工作空间 1.3 设置环境变量 1.4 检 ...

  7. ROS入门笔记(七):详解ROS文件系统

    ROS入门笔记(七):详解ROS文件系统 文章目录 01 Catkin编译系统 1.1 Catkin特点 1.2 Catkin工作原理 1.3 使用`catkin_make`进行编译 02 Catki ...

  8. ROS入门笔记(六): ROS系统架构

    ROS入门笔记(六): ROS系统架构 文章目录 1 ROS系统架构 1.1 文件系统(重点) 1.2 计算图 1.3 开源社区 1 ROS系统架构 1.1 文件系统(重点) 文件系统:主要指在硬盘里 ...

  9. ROS入门笔记(四):ROS实践(小海龟仿真)— ROS Topics

    ROS入门笔记(四):ROS实践(小海龟仿真)- ROS Topics 文章目录 1 基础知识 1.1 运行ROS Master所在主机的资源地址 1.2 ROS常用命令 1.2.1 查看所有以ros ...

最新文章

  1. 《机器学习》周志华-CH1 绪论
  2. Android微信智能心跳方案
  3. Matlab化简符号表达式
  4. Qt学习笔记之类继承关系图
  5. MVC根据CheckBox的Value值选中对应的复选框及获取选中的Value值
  6. Uploadify 配置错误信息提示
  7. 软件使用方法_视频录制软件进行电脑屏幕录像的使用方法
  8. 2013第43周三接口不变
  9. Maven仓库—Nexus环境搭建及使用
  10. html改变游戏速度变慢,游戏不顺畅,卡顿的显卡设置方法
  11. 三角形度数计算机公式,角度数换算公式(三角函数计算换算角度)
  12. 系统架构设计师-软件开发模型(螺旋模型)
  13. FTP升级cisco2811 IOS 实战
  14. IDEA社区版下载安装
  15. Netty系列三、Netty实战篇
  16. python中的Pickle文件和npy文件
  17. SDUT—Python程序设计实验四(字符串)
  18. 开源作者遭受小白的9种伤害
  19. ubuntu20.04 GPU基准测试
  20. 两个有序数组A、B,长度分别为m、n,找到两个数组的第k个值并返回

热门文章

  1. 出现小红书点赞多粉丝少的情况,原因在哪里
  2. 程序设计基本模式IPO
  3. sftp之概述、搭建、命令
  4. 计算机梦想未来,学史力行 梦想未来——计算机科学与技术学院开展2021届本科毕业生党员主题党日活动...
  5. 二手房买卖银行迟迟不放款,买房人构成违约吗?
  6. 第八届育才杯机器人比赛_疫情防控常态化,传统赛事新转型 “育才杯”第九届青岛国际象棋学校锦标赛(网络)顺利举办...
  7. 那些年,我们一起“讲”过的刀片-lihyf@DC
  8. Java架构师岗位的基本职责
  9. Gloomy对Windows内核的分析(内核反汇编技术)
  10. AMD在量子隐形传输方面取得突破; 量子隐形传态:从物理量子比特到逻辑编码空间 | 全球量子科技与工业快讯第三十五期