ROS 编写消息发布器(publisher)和订阅器(subscriber)-精简

本文详细介绍了如何使用catkin工具集在ROS环境中创建、编译并运行基本程序包,包括建立工作空间、构建、源环境、创建程序包、编译程序包以及编写发布器和订阅器的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建catkin工作空间---------------------------------------------------------------------------

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src

tips:mkdir -p 指令可以一次建立多个目录

2.build 这个工作空间------------------------------------------------------------------------------

$ cd ~/catkin_ws/
$ catkin_make


3.source空间下的devel文件夹下.bash文件,将当前工作空间设置在ROS工作环境的最顶层。

source devel/setup.bash
为了避免每次重复source这个文件,可以把这句话添加到bashrc中,这样每次开始一个新的terminal的时候都会重新调用这句话,如果不进行source这个操作的话,后期我们运行rosrun beginner_tutorials talker 的时候,会找不到这个package.

4.创建catkin程序包-----------------------------------------------------------------------------------------

$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

  • my_package/
      CMakeLists.txt
      package.xml


程序包为beginner_tutorials ,程序依赖项为:std_msgs  rospy  roscpp 

这是程序包大概的样子 值得注意的是此处也有CMakelist.txt 文件,注意我们后面对每个package操作的时候是类似于beginner_tutorial 下面的CMakelist.txt 文件

关于CMakelist.txt

关于package.xml   ----->  http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage

5.编译程序包--------------------------------------------------------------------------------------------------------------------------

$ cd ~/catkin_ws/

$ catkin_make


tips:以后建立多个package,但是却只想对几个进行编译的时候,可以考虑采用 catkin_make --pkg命令

6.编写发布器和订阅器----------------------------------------------------------------------------------------------------------------

cd ~/catkin_ws/src/beginner_tutorials


mkdir -p ~/catkin_ws/src/beginner_tutorials/src

    6.1 发布器(Publisher):

         在beginner_tutorials package里创建src/talker.cpp文件,然后写入代码,具体代码参见:

         http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29

     6.2 订阅器(Subscriber)

         同理在src里创建listener.cpp,代码参见:

          http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29

7.修改beginner_tutorial 下的CMakeList.txt 文件和package.xml文件--------------------------------------------------

修改CMakelist.txt文件

add_executable(talker src/talker.cpp)

21target_link_libraries(talker ${catkin_LIBRARIES})

  22 add_dependencies(talker beginner_tutorials_generate_messages_cpp)
  24 add_executable(listener src/listener.cpp)
  25 target_link_libraries(listener ${catkin_LIBRARIES})
  26 add_dependencies(listener beginner_tutorials_generate_messages_cpp)

(此处我暂时不确定是不是要用到之前的tutorial里面修改的关于msg和srv 的文件,待更新)

更新: msg文件是可以通过自己定义的发布的消息的格式,例如std_msg,里面都有固定格式,发布这种该消息的时候要按照他的格式来往里面填数(2015/05/20)。

CMakeLists.txt文件末尾加入几条语句:


8.编译文件--------------------------------------------------------------------------------------------------------------------------------

    catkin_make  

这会生成两个可执行文件, talker 和 listener, 默认存储到devel space目录,具体是在~/catkin_ws/devel/lib/share/<package name>中.

9测试文件--------------------------------------------------------------------------------------------------------------------------------

   

$ roscore

# In your catkin workspace
$ cd ~/catkin_ws
$ source ./devel/setup.bash
$ rosrun beginner_tutorials talker      (C++)
$ rosrun beginner_tutorials listener     (C++)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值