Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5567737
  • 博文数量: 1310
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 15646
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1310)

文章存档

2020年(92)

2019年(193)

2018年(81)

2017年(80)

2016年(70)

2015年(52)

2014年(41)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2020-06-17 18:43:33

包目录下建立目录
mkdir  pkg/{msg,srv,action}
在对应目录下制定 .msg  .srv  .action文件的消息格式.

数据类型的定义参考
https://index.ros.org/doc/ros2/Concepts/About-ROS-Interfaces/#interfaceconcept

点击(此处)折叠或打开

  1. ## 修改 CMakeLists.txt

  2. find_package(rosidl_default_generators REQUIRED)

  3. rosidl_generate_interfaces(${PROJECT_NAME}
  4.   "msg/Num.msg"
  5.   "srv/AddThreeInts.srv"
  6.  )
  7. ament_export_dependencies(rosidl_default_runtime)

还有一种写法, 就是CMakefile设置变量
set(msg_files "msg/AddressBook.msg" )
rosidl_generate_interfaces(${PROJECT_NAME} ${msg_files} )

点击(此处)折叠或打开  package.xml

  1. <build_depend>rosidl_default_generators</build_depend>

  2. <exec_depend>rosidl_default_runtime</exec_depend>

  3. <member_of_group>rosidl_interface_packages</member_of_group>

点击(此处)折叠或打开

  1. 编译
  2. colcon build --packages-select tutorial_interfaces
  3. . install/setup.bash

  4. ros2 interface show tutorial_interfaces/msg/Num
  5. ros2 interface show tutorial_interfaces/srv/AddThreeInts

点击(此处)折叠或打开

  1. 被引用的方法
  2. 代码
  3. #include "tutorial_interfaces/msg/num.hpp" // CHANGE

  4. CMakeLists.txt:
  5. find_package(tutorial_interfaces REQUIRED) # CHANGE
  6. ament_target_dependencies(talker rclcpp tutorial_interfaces) # CHANGE
  7. ament_target_dependencies(listener rclcpp tutorial_interfaces) # CHANGE

  8. package.xml
  9. <depend>tutorial_interfaces</depend> --CPP
  10. <exec_depend>tutorial_interfaces</exec_depend> -- python

  11. ------------------------------------------------
  12. Srv文件加入
  13. 代码
  14. #include "tutorial_interfaces/srv/add_three_ints.hpp" // CHANGE
  15. from tutorial_interfaces.srv import AddThreeInts # CHANGE

  16. CMakeLists.txt修改
  17. find_package(tutorial_interfaces REQUIRED) # CHANGE
  18. ament_target_dependencies(server
  19.   rclcpp tutorial_interfaces) #CHANGE

  20. package.xml 修改
  21. <depend>tutorial_interfaces</depend> -- CPP
  22. <exec_depend>tutorial_interfaces</exec_depend> -- python
----------------------------------------------------------------------------------------------------------------------

点击(此处)折叠或打开

  1. .action 文件的编译

  2. 修改 CMakeLists.txt
  3. find_package(rosidl_default_generators REQUIRED)

  4. rosidl_generate_interfaces(${PROJECT_NAME}
  5.   "action/Fibonacci.action"
  6. )

  7. 修改 package.xml
  8. <buildtool_depend>rosidl_default_generators</buildtool_depend>

  9. <depend>action_msgs</depend>

  10. <member_of_group>rosidl_interface_packages</member_of_group>


  11. 编译后查询是否ok, 例如
  12. ros2 interface show action_tutorials/action/Fibonacci
使用 action 
https://index.ros.org/doc/ros2/Tutorials/Actions/Writing-an-Action-Server-Python/
https://index.ros.org/doc/ros2/Tutorials/Actions/Writing-an-Action-Client-Python/


阅读(4896) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~