要求已经在系统中安装一个学习用的ros软件包例子:
sudo apt-get install ros-indigo-ros-tutorials
ROS图形概念概述
- nodes:节点,一个节点即为一个可执行文件,可以通过ROS和其他节点进行通信;
- messages:消息,当订阅或者发布一个topic时使用的数据类型;
- topics:话题,节点可以发布信息到topics或者从topics那里订阅信息;
- master:节点管理器,ROS的name service,提供服务,例如让不同的节点可以找到彼此;
- rosout:等价于ROS中的stdout/stderr;
- roscore:master+rosout+parameter service(参数服务器)。
ROS客户端库函数允许使用不同的编程语言进行编程通信:
- rospy:Python client library
- roscpp:C++ client library
[1]roscore 在运行所有ROS程序前首先要运行的命令
//打开一个新终端 roscore &
[2]rosnode 显示当前运行的ROS节点信息,其中rosnode list
命令列出了正在运行的节点名称。
//打开一个人新终端 $ rosnode list/rosout
系统中只有一个节点rosout在运行,它将一直运行并收集和记录节点的调试输出。
[3]rosnode info
返回一个特定节点的节点信息,事实上由它发布 /rosout_agg。
rosnode info /rosout
[4]rosrun命令允许你直接通过软件包名称运行软件包当中的节点(不需要知道软件包的所在路径,但必须是在ROS的搜索目录范围之内)。
使用方法:
rosrun [package_name] [node_name]
我们现在运行软件包turtlesim中的turtlesim_node节点:
rosrun turtlesim turtlesim_node
检验:在一个新窗口中:
$ rosnode list/rosout/turtlesim
[5]在命令行中重新分配名字
$ rosrun turtlesim turtlesim_node __name:=my_turtlesim$ rosnode list/my_turtlesim/rosout
[6]命令rosnode ping
:
$ rosnode ping /my_turtlesimrosnode: node is [/my_turtlesim]pinging /my_turtlesim with a timeout of 3.0sxmlrpc reply from http://ubuntu:33201/ time=0.409842msxmlrpc reply from http://ubuntu:33201/ time=1.335144msxmlrpc reply from http://ubuntu:33201/ time=1.242876msxmlrpc reply from http://ubuntu:33201/ time=1.311064msxmlrpc reply from http://ubuntu:33201/ time=1.254082ms
总结
- roscore=ros+core,master(为ROS提供名称服务)+rosout(stdout/stderr)+parameter server。所以在使用ROS的时候的第一件事就是运行roscore来启动这些服务;
- rosnode=ros+node,ROS tool to get information about a node;
- rosrun=ros+run,runs a node from a given package。