1. ROS 包/package
ros的包(package)指的是一个完整的程序功能模块,一个package可以运行在一个节点上。
ros使用catkin工具包来进行包的编译等,自己建立的所有的包都包含在catkin的工作空间src文件夹下
$ mkdir -p catkin_ws/src
$ tree catkin_ws
catkin_ws/
└── src
$ cd catkin_ws/src
$ catkin_create_pkg beginner_tutorials rospy roscpp std_msgs
$ tree
一个正常的ros 工作空间结构
workspace_folder/ -- WORKSPACE
src/ -- SOURCE SPACE
CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin
package_1/
CMakeLists.txt -- CMakeLists.txt file for package_1
package.xml -- Package manifest for package_1
...
package_n/
CMakeLists.txt -- CMakeLists.txt file for package_n
package.xml -- Package manifest for package_n
包的编译,和cmake类似
# In a catkin workspace
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
$ source devel/setup.bash # after make
2. ROS 节点/node
所谓的节点(node),可以是在同一台电脑上,也可以运行在不同的电脑上,不同节点之间通过tcp进行消息的传输,每个节点会运行一个功能包。ros最基本的节点是roscore,需要始终运行。
如下命令运行一个节点:
$ rosrun [package_name] [node_name]
$ rosnode list # to see all the nodes
$ rosnode info /nodename # to see info the a node
网友评论