1.工作空间
工作空间(workspace)直观的形容就是一个仓库,里面装载着ROS的各种项目工程,便于系统组织管理调用。
- src/: 源代码包
- build/: 编译生成的中间文件
- devel/: 开发过程中生成的目标文件(包括头文件,动态链接库,静态链接库,可执行文件等)、环境变量
- install/: 最终编译生成的可执行文件,分享、发布给客户使用
其中install空间不是必须的
2.创建工作空间
mkdir -p ~/my_ws/src
cd ~/my_ws/src
catkin_init_workspace
运行完成后在src文件夹下生成CMakeLists.txt
3.功能包
功能包(package)是放置ROS源码的最小单元
CMakeLists.txt 原本是Cmake编译系统的规则文件,而Catkin编译系统基本沿用了CMake的编译风格,只是针对ROS工程添加了一些宏定义。这个文件规定了这个package要依赖哪些package,要编译生成哪些目标,如何编译等等流程。
pacakge.xml 包含了package的名称、版本号、内容描述、维护人员、软件许可、编译构建工具、编译依赖、运行依赖等信息。
4.创建功能包
cd ~/my_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp
功能包里面要用到哪些库,就要添加相应依赖,依赖std_msgs(ROS定义的标准信息结构)、roscpp(编写C++程序)、rospy(编写python程序)
5.编译工作空间
cd ~/my_ws
catkin_make
编译完成后生成build和devel文件夹
要产生install文件夹使用以下命令
catkin_make install
6.设置环境变量
source devel/setup.bash
只有设置环境变量后系统才能找到工作空间,并且找到工作空间里对应的功能包。
可以通过 echo "source ~/my_ws/devel/setup.bash" >> ~/.bashrc
命令追加到 ~/.bashrc 文件中,这样每次打开终端,系统就会刷新工作空间环境。
7.检查环境变量
echo $ROS_PACKAGE_PATH
参考:
- 古月居ROS入门21讲
- 中国大学MOOC—《机器人操作系统入门》课程讲义