(在ubuntu下编辑可能效果不太好)
构建一个包必须包含两个文件:
package.xmlcd ~/catkin_ws/src
使用catkin_create_pkg脚本来创建新的包(beginner_tutorials)
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp在工作空间build:
cd ~/catkin_ws catkin_make
. ~/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
rosrun turtlesim turtlesim_node __name:my_turtle
通过示例程序进一步了解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来获取更多操作。