1. ROS 包/package
ros的包(package)指的是一個(gè)完整的程序功能模塊,一個(gè)package可以運(yùn)行在一個(gè)節(jié)點(diǎn)上氢惋。
ros使用catkin工具包來(lái)進(jìn)行包的編譯等,自己建立的所有的包都包含在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
一個(gè)正常的ros 工作空間結(jié)構(gòu)
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 節(jié)點(diǎn)/node
所謂的節(jié)點(diǎn)(node)蟀瞧,可以是在同一臺(tái)電腦上孤澎,也可以運(yùn)行在不同的電腦上届氢,不同節(jié)點(diǎn)之間通過(guò)tcp進(jìn)行消息的傳輸,每個(gè)節(jié)點(diǎn)會(huì)運(yùn)行一個(gè)功能包覆旭。ros最基本的節(jié)點(diǎn)是roscore退子,需要始終運(yùn)行。
如下命令運(yùn)行一個(gè)節(jié)點(diǎn):
$ rosrun [package_name] [node_name]
$ rosnode list # to see all the nodes
$ rosnode info /nodename # to see info the a node