1. Catkin 工作空间
Catkin 是 ROS 目前使用的编译系统,一般会包括四个目录空间: src, build, devel, install
创建工作空间:
$ mkdir -p catkin_ws/src
$ cd catkin_ws/src/
$ catkin_init_workspace
编译工作空间:
$ cd ../
$ catkin_make
发现 catkin_make 找到的默认 python 版本是2.7,但是现在 python3 使用的比较多,而且 python3 不兼容 python2,所以这个问题先留着之后看看需不需要解决
catkin_make 的输出信息如下:
-- Using CMAKE_PREFIX_PATH: /home/vito/tutorial_ws/devel;/opt/ros/kinetic
-- This workspace overlays: /home/vito/tutorial_ws/devel;/opt/ros/kinetic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.12", minimum required is "2")
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/vito/Documents/catkin_ws/build/test_results
-- Found gmock sources under '/usr/src/gmock': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.12")
-- Looking for pthread.h
-- Looking for pthread.h - found
设置环境变量
$ source devel/setup.bash
$ echo $ROS_PACKAGE_PATH
/home/vito/Documents/catkin_ws/src:/home/vito/tutorial_ws/src:/opt/ros/kinetic/share
查看环境变量,可以发现,ROS 功能包路径包含了现在添加的以及之前添加的,只对当前终端有效,要想每次打开终端有效,需要将路径添加进 .bashrc
创建功能包
catkin_ws/src$ catkin_create_pkg learning_communication std_msgs rospy roscpp
同一路径下只能有唯一的工作空间名称,但是不同的工作空间却可以有相同的功能包,ROS找功能包时,PATH中位于前面的工作空间先被查找
2. roslaunch 和 rosrun
roslaunch 能同时运行一个包里的多个程序, rosrun 只能运行包里的一个程序