古月居ROS入门21讲学习笔记(编程基础9-16课)(持续更新)

第九课 创建工作空间课功能包

工作空间

src:代码空间。xml文件
build:编译空间,基本不用关心
devel:开发空间,
install:安装空间

  1. 创建工作空间
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/src
    catkin_init_workspace

  2. 编译工作空间
    cd ~/catkin_ws/
    catkin_make (产生devel 和build文件夹)
    catkin_make install (产生install文件夹)

  3. 设置环境变量
    source devel/setup.bash

  4. 检查环境变量
    echo $ROS_PACKAGE_PATH

创建功能包

catkin_creat_pkg (功能包名) 【依赖1】【依赖2】【依赖3】

  1. 创建功能包
    cd ~/catkin_ws/src
    catkin_create_pkg test_pkg std_msgs rospy roscpp

  2. 编译功能包
    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

c++实现

1.编写程序

参考资料里的velocity_publisher.cpp文件。
在这里插入图片描述

2.在CMakelist.txt文件末尾加上

add_executable(velocity_publisher src/velocity_publisher.cpp)
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})

3.编译并运行

cd ~/catkin_ws
catkin_make
source devel/setup.bash
新开终端roscore
新开终端rosrun turtlesim turtlesim_node
新开终端rosrun learning_topic velocity_publisher

python实现

看课件代码

第十一课 订阅者Subscriber的编程实现

类似Publisher的过程

C++实现

1.编写程序

在这里插入图片描述
回调函数很重要,类似于中断,当有信息来了,先进入回调函数处理。所以回调函数处理数据要尽量简洁,否则后续数据进不来。

2.在CMakelist.txt文件中加上

add_executable(pose_subscriber src/pose_subscriber.cpp)
target_link_libraries(pose_subscriber ${catkin_LIBRARIES})

3.编译并运行

cd ~/catkin_ws
catkin_make
source devel/setup.bash
新开终端roscore
新开终端rosrun turtlesim turtlesim_node
新开终端rosrun learning_topic pose_subscriber
新开终端rosrun turtlesim turtle_teloop_key
就可以看到位置信息不断在变了

python实现

看课件代码

第十二课 话题消息的定义与使用

在这里插入图片描述

如何自定义话题消息

1. 定义msg文件

在工作空间的learning_topic功能包中创建msg文件夹,在其中创建person.msg文件。
在这里插入图片描述

2.在package.xml中添加功能包依赖

<build depend>message generation</build depend>
<exec_depend>message_runtime</exec_depend>

在这里插入图片描述

3.在CMakeLists.txt添加编译选项

有三个地方要变
message_generation
在这里插入图片描述
add_message_files(FILES Person.msg)
generate_messages(DEPENDENCIES std_msgs)
在这里插入图片描述
在这里插入图片描述

4.编译生成语言相关文件

回到工作空间目录下,catkin_make

5.创建发布者、订阅者

在learning_topic/src下创建发布者和订阅者,程序在例程里。

6.配置Cmakelist.txt文件

在这里插入图片描述

7.编译

回到工作空间目录下,catkin_make

8.实验

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章