引言:主体学习根据赵虚左老师教学视频《ROS理论与实践》
几种实现话题通讯的方法:
- 直接法:(古月居)不使用IDE编写
- 集成法:(奥特学院)使用VScode IDE编写
一、直接法
1.创建工作区
建立工作区文件夹demo01_ws,位于根目录下的test文件夹内,-p可创建多个文件夹:
mkdir -p ~/test/demo01_ws/catkin_ws/src
使用cd命令从根目录移动至工作空间内:
cd ./test/demo01_ws/catkin_ws/src/
对工作空间进行初始化:
catkin_init_workspace
工作空间初始化以后可以看见文件夹属性有变化生成对应文件
返回上一级:
cd ..
编译工作空间,生成build,install等文件夹:
catkin_make
配置环境变量:
source devel/setup.bash
可以通过输入:
echo $ROS_PACKAGE_PATH
检查配置环境变量是否成功
2.创建功能包
创建功能包:
cd ~/catkin_ws/src
catkin_create_pkg plumbing_pub_sub std_msgs rospy roscpp
返回上一级:
cd ..
编译工作空间,生成build,install等文件夹:
catkin_make
配置环境变量:
source devel/setup.bash
可以通过输入:
echo $ROS_PACKAGE_PATH
检查配置环境变量是否成功
3.创建发布者代码/订阅者代码
移动到功能包plumbing_pub_sub 中:
cd plumbing_pub_sub/
创建发布者/订阅者文件:
touch demo01_pub.cpp
touch demo02_sub.cpp
通过vim编写代码:
(1)发布者代码
(2)订阅者代码
4.配置发布者/订阅者编译规则
通过vim配置编译规则CMakeLists.txt:
add_executable(publisher src/demo01_pub.cpp)
add_executable(subscriber src/demo02_sub.cpp)
target_link_libraries(publisher ${catkin_LIBRARIES})
target_link_libraries(subscriber ${catkin_LIBRARIES})
5.编译并运行功能包
返回上一级:(到工作空间catkin_ws)
cd ..
编译工作空间,生成build,install等文件夹:
catkin_make
配置环境变量:
source devel/setup.bash
启动节点管理者:
roscore
另起一个窗口配置环境变量以及运行发布者功能包:
source devel/setup.bash
rosrun plumbing_pub_sub demo01_pub.cpp
再另起一个窗口配置环境变量以及运行订阅者功能包:
source devel/setup.bash
rosrun plumbing_pub_sub demo02_sub.cpp