1、工作空间创建
mkdir -p ~/catkin_ws/src #src不可更改,工作空间文件夹名可以修改,-p表示递归创建,可以创建多层文件夹,~表示根目录
cd ~/catkin_ws/src
catkin_init_workspace
当src文件夹中出现CMakeLists.txt文件时,表示工作空间已经创建成功了。
2、创建功能包
功能包是源码的最小单元,所有源码必须存放在功能包里面,不能直接存放在工作空间catkin_ws的src文件夹下。
cd ~/catkin_ws/src
catkin_create_pkg learning_topic
若需要添加相关依赖,则在功能包名字后面输入相关以来:
catkin_create_pkg learning_topic roscpp rospy turtlesim
3、在功能包的src文件夹下添加cpp代码
4、配置代码编译规则
注意,配置编译规则是在功能包下的CMakeLists.txt文件中配置,需要在build最后添加如下两句代码:
add_executable(velocity_publisher src/velocity_publisher.cpp) #将src下的cpp代码编译成可执行文件
target_link_libraries(velocity_publisher ${catkin_LIBRARIES}) #把可执行文件跟ros相关库做链接的
5、编译工作空间
cd ~/catkin_ws/ #要在工作空间目录下进行编译
catkin_make
catkin_make是catkin这个编译工具提供的指令,该指令可以编译src文件夹下的所有功能包的源码。该指令运行后会生成devel和build两个文件夹,但是没有install文件夹。使用如下指令代替catkin_make可以生成install文件夹,该文件夹下会存放编译生成的可执行文件。
catkin_make install
6、设置环境变量
source devel/setup.bash #工作空间的devel文件夹
只有设置了环境变量才能系统找到创建的工作空间。
7、检查环境变量
echo $ROS_PACKAGE_PATH
注:
当使用python代码时,不需要配置编译信息,不需要编译,创建功能包后,直接使用如下命令即可执行:
rosrun learning_topic velocity_publisher.py
也可以cd到python文件的当前目录,使用python命令运行:
python xxxxx.py