ROS学习(二)ROS入门简介

(在ubuntu下编辑可能效果不太好)

构建一个包必须包含两个文件:

   package.xml
   CMakeLists.txt

步骤:
cd ~/catkin_ws/src

使用catkin_create_pkg脚本来创建新的包(beginner_tutorials)

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

在工作空间build:
cd ~/catkin_ws
catkin_make

将工作空间添加到ROS环境中
. ~/catkin_ws/devel/setup.bash

安装示例包(后面的示例程序将会用到)

sudo apt-get install ros-indigo-ros-tutorials


正式运行示例之前必须了解ROS的术语

---------------------------------------------------------------------------------------------------------
Nodes: 使用ROS与其他节点进行通信
Messages:订阅和发布时的一种数据类型
Topics:节点可以发布消息到一个话题也可以订阅一个话题来接收消息
Master:ROS名称服务
rosout:ROS输出相当于stdout/stderr
roscore:ROS的服务集合(Master+rosout+parameter server):使用ROS必须先运行
----------------------------------------------------------------------------------------------------------

下面介绍示例程序运行:

首先在终端运行roscore,并可以通过rosnode list 来查看活跃的节点

接下来运行之前下载安装到系统中的例子:
在新的终端运行  

rosrun turtlesim turtlesim_node

此时屏幕出现一只小乌龟,再打开一个终端输入:

rosnode list

将会看到新增加一个/turtlesim节点

上述例子中,可以使用__name属性将节点重命名例如:
rosrun turtlesim turtlesim_node __name:my_turtle

此时使用rosnode list将看到重命名后的节点名称。


通过示例程序进一步了解ROS 话题(topic)的概念:

打开新的终端执行:

rosrun turtlesim turtle_teleop_key

此时通过键盘的方向键可以来驱动小乌龟的移动和方向。


整个过程本质来说如下:

两个节点通过ROS话题进行通信,turtle_teleop_key节点发布(Publish)一系列的方向键操作(Message)到一个话题(Topic)中

而对于turtlesim节点来说也刚好订阅(Subscribe)了相同的话题来接收上述操作

对于整个操作流程可以通过使用

sudo apt-get install ros-indigo-rqt
sudo apt-get install ros-indigo-rqt-common-plugins
rosrun rqt_gragh rqt_graph

来查看节点通过话题通信的交互图。

另外:rostopic 命令也可以获取话题的一些信息可以通过rostopic -h或者查阅官方wiki来获取更多操作。





你可能感兴趣的:(ROS)