2024.9.25
不要憎恨你的敌人,那会影响你的判断力。
创建工作空间
本文使用的是VMware虚拟机Ubuntu系统,涉及shell命令或txt文档内容
创建目录(文件夹)
mkdir -p ~/catkin_ws/src
#mkdir 创建目录
#-p 连续创建
变更工作目录
cd ~/catkin_ws/src
#cd 改变当前工作目录的命令
初始化文件夹(会在src文件中创建了一个 CMakeLists.txt 的文件)
catkin_init_workspace
编译工作空间(编译完成后catkin_ws中会创建目录build和devel)
catkin_make
设置环境变量
source devel/setup.bash
让上面的配置在当前的终端生效:
source ~/.bashrc
或者在home目录使用ctrl+h显示隐藏文件,使用gedit打开.bashrc,在末尾写入
source ~/catkin_ws/devel/setup.bash
如果想要查看环境变量:
echo $ROS_PACKAGE_PATH
终端会输出:
/home/zhangjiacheng/catkin_ws/src : /opt/ros/kinetic/share 第一个是我们刚才创建的catkin_ws的,第二个是ros系统的。
创建功能包
使用cd命令进入命令目录src中创建功能包
cd ~/catkin_ws/src
给功能包命名、设置依赖
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
编译功能包、设置环境变量
cd ~/catkin_ws
#cd .. 返回上次的目录
catkin_make
#编译
source ~/catkin_ws/devel/setup.bash #配置功能包环境变量(可能可以跳过?)
创建发布者talker和订阅者listener
在~/catkin_ws/src/learning_communication/src目录下创建程序(右键创建文件或使用touch命令)
编译功能包
使用gedit打开~/catkin_ws/src/learning_communication/CMakeLists.txt
如图
插入代码
add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker ${PROJECT_NAME}_generate_messages_cpp)
add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener ${PROJECT_NAME}_generate_messages_cpp)
编译命令
catkin_make
运行
启动roscore
roscore
启动发布者Publisher
rosrun learning_communication talker
启动订阅者Subscriber
rosrun learning_communicate listener
成果
END