src:代码空间。xml文件
build:编译空间,基本不用关心
devel:开发空间,
install:安装空间
创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
编译工作空间
cd ~/catkin_ws/
catkin_make (产生devel 和build文件夹)
catkin_make install (产生install文件夹)
设置环境变量
source devel/setup.bash
检查环境变量
echo $ROS_PACKAGE_PATH
catkin_creat_pkg (功能包名) 【依赖1】【依赖2】【依赖3】
创建功能包
cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp
编译功能包
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
同一个工作空间下,不允许有同名功能包,不同工作空间下可以有。
第十课 发布者Publisher的编程实现 创建功能包cd ~/catkin_ws/src
catkin_create_pkg learning_topic roscpp std_msgs geometry_msgs turtlesim
参考资料里的velocity_publisher.cpp文件。
add_executable(velocity_publisher src/velocity_publisher.cpp)
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})
cd ~/catkin_ws
catkin_make
source devel/setup.bash
新开终端roscore
新开终端rosrun turtlesim turtlesim_node
新开终端rosrun learning_topic velocity_publisher
看课件代码
第十一课 订阅者Subscriber的编程实现类似Publisher的过程
C++实现 1.编写程序
回调函数很重要,类似于中断,当有信息来了,先进入回调函数处理。所以回调函数处理数据要尽量简洁,否则后续数据进不来。
add_executable(pose_subscriber src/pose_subscriber.cpp)
target_link_libraries(pose_subscriber ${catkin_LIBRARIES})
cd ~/catkin_ws
catkin_make
source devel/setup.bash
新开终端roscore
新开终端rosrun turtlesim turtlesim_node
新开终端rosrun learning_topic pose_subscriber
新开终端rosrun turtlesim turtle_teloop_key
就可以看到位置信息不断在变了
看课件代码
第十二课 话题消息的定义与使用 如何自定义话题消息 1. 定义msg文件在工作空间的learning_topic功能包中创建msg文件夹,在其中创建person.msg文件。
message generation
message_runtime
3.在CMakeLists.txt添加编译选项
有三个地方要变
message_generation
add_message_files(FILES Person.msg)
generate_messages(DEPENDENCIES std_msgs)
回到工作空间目录下,catkin_make
5.创建发布者、订阅者在learning_topic/src下创建发布者和订阅者,程序在例程里。
6.配置Cmakelist.txt文件 7.编译回到工作空间目录下,catkin_make
8.实验