ROS2 动作通信——自定义动作接口(C++)

实验目的:

         自定义动作接口,要求动作客户端发送一个整型数据给服务端,动作服务端进行累加求和,在累加过程中连续反馈进度,最后反馈结果给客户端。

1、创建工作空间和自定义接口功能包

        请参考:ROS2 话题通信——自定义消息类型(C++)-优快云博客 

2、自定义动作接口

        在interface_pkg功能包中新建action文件夹,用于存放动作接口文件,在action目录中创建Progress.action文件 

mkdir -p ./text_w/src/interface_pkg/action
touch ./text_w/src/interface_pkg/action/Progress.action

       在Progress.action文件定义以下数据格式 

int32 num
---
int32 sum
---
float64 progress

        修改interface_pkg中的CMakeLists.txt文件

        修改interface_pkg中的package.xml文件 

  <!--action构建工具依赖-->
  <buildtool_depend>rosidl_default_generators</buildtool_depend>
  <depend>action_msgs</depend>

         保存然后编译

cd text_w/
colcon build --packages-select interface_pkg 

        在install目录下面生成了我们所需要的文件,即编译成功 

        创建动作功能包action_pkg,新建动作服务端和动作客户端节点

cd ./text_w/src/
ros2 pkg create action_pkg --build-type ament_cmake --dependencies rclcpp rclcpp_action interface_pkg --node-name action_server
touch ./action_pkg/src/action_client.cpp

        编写动作服务端节点

//1.包含头文件;
#include "rclcpp/rclcpp.hpp"
#include "rclcpp_action/rclcpp_action.hpp"
#include "interface_pkg/action/progress.hpp"


using namespace std::placeholders;
using interface_pkg::action::Progress;
using GoalHandleProgress = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值