ROS学习笔记(四)理解ROS节点(Nodes)

正文
1.准备工作
学习之前需要安装一个简单的模拟器

sudo apt-get install ros-你的ROS版本号-ros-tutorials

2.一些基本概念

  • Nodes:一个可以与其他Nodes通过ROS通信的可执行代码
  • Messages:用来对着一个topic接收也叫订阅(subscribe)或者发布(publish)消息的数据结构
  • Topics:Nodes可以订阅(subscribe)一个Topic以接收数据,也可以对着一个Topic发布(publish)消息来发送数据
  • Master:Name service for ROS (i.e. helps nodes find each other)
  • rosout:ROS equivalent of stdout/stderr
  • roscore:Master + rosout + parameter server (parameter server will be introduced later)

3.节点

节点不过是ROS package里的一个可执行文件,ROS node 通过ROS client library 与其他节点通信。节点可订阅一个Topic或者向一个Topic发布消息,Node也可以提供或者使用service。

4.Client Libraries
编写节点程序用到的库

  • rospy = python
  • roscpp = c++ client library

5.roscore
在使用ROS前,第一件事就是运行roscore

roscore

6.使用rosnode
开一个新的terminal,运行rosnode list查看正在运行的节点。会发现只有rosout节点正在运行,这个节点是用来收集日志以及debug输出结果的,所以会一直运行。要查看某个节点的具体信息,比如这里想看下rosout的信息,运行rosnode info /rosout

7.使用rosrun
rosrun允许我们直接运行某个package里的node,这里我们运行一下package turtlesim里的turtlesim_node.

rosrun turtlesim turtlesim_node

会弹出一个小乌龟窗口
ROS学习笔记(四)理解ROS节点(Nodes)_第1张图片
这时候再打开一个新的terminal查看一下有哪些正在运行的节点rosnode list,会看到
在这里插入图片描述
可以看到果然多了一个运行的节点。

8.其他tips

  • 给节点改名
rosrun turtlesim turtlesim_node __name:=my_turtle
  • 查看节点ping值
rosnode ping my_turtle

总结:

  1. 跑ros之前要运行roscore
  2. 查看正在运行的节点rosnode list
  3. 运行package里的节点rosrun [package_name] [node_name]

你可能感兴趣的:(ROS)