ros2 自定义服务接口

1.新建一个功能包

首先需要创建工作空间和src文件夹

然后进入src 路径,创建一个单独的服务接口的功能包 ,在终端输入以下代码:

 ros2 pkg create --build-type ament_cmake map_srv_interfaces

2.创建自定义srv文件

在功能包内创建srv文件夹,并在其内创建自定义服务接口

将以下形式的内容写入.srv文件中, ---将reqeust和response隔开

string name
---
bool success

3.编辑CMakeLists.txt文件

将定义的接口转换为具体编程语言的代码(如C++和python),以便可以在这些语言中使用这些接口,需要在CMakeLists.txt文件中添加以下几行:

find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
"srv/CreateMap.srv"
"srv/MapSwitch.srv"
"srv/ModeSwitch.srv"
)

4.编辑package.xml文件

添加以下内容

<build_depend>rosidl_default_generators</build_depend>

<exec_depend>rosidl_default_runtime</exec_depend>

<member_of_group>rosidl_interface_packages</member_of_group>

5.编译

colcon build

source 一下,然后用ros2 interface list 查看自定义服务接口是否存在

6.在c_cpp_properties.json文件中 设置头文件包含路径

经过编译成功后,自定义服务接口的头文件会自动生成,路径如下:

 

在“includePath”字段中输入自定义接口的Include路径:

"/home/ros/Desktop/LAY/demo/ROS2_srv_ws/install/map_srv_interfaces/include/"

 设置完成后即可在cpp文件中识别对应服务接口的头文件

7. 使用接口程序的 CMakeList.txt文件设置:

在以下红线位置添加map_srv_interfaces的依赖

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS2 Controller 是 ROS 2 中的一个重要组件,用于控制机器人或其他物理实体的行为。它提供了一个可编程的框架,使开发人员能够设计、实现和部署各种控制算法。 ROS2 Controller 提供了一系列的控制器接口和功能,包括: 1. 控制器接口ROS2 Controller 定义了一组标准的控制器接口,包括位置控制器、速度控制器、力/扭矩控制器等。这些接口定义了控制器与硬件之间的通信规范,使得开发人员可以根据需求选择合适的控制方式。 2. 控制器管理:ROS2 Controller 提供了控制器的生命周期管理功能,包括加载、卸载、启动和停止控制器。开发人员可以通过 ROS2 控制器管理器(controller manager)来管理多个控制器的同时运行和切换。 3. 控制器调度:ROS2 Controller 提供了一个调度器(scheduler)来协调多个控制器的执行顺序和频率。调度器可以根据优先级、时间戳等条件来决定每个控制器的执行时机,从而实现更精确和协调的控制。 4. 控制器插件:ROS2 Controller 支持通过插件机制扩展控制器功能。开发人员可以编写自定义的控制器插件,以满足特定的控制需求。 总而言之,ROS2 Controller 提供了一个灵活且可扩展的框架,用于实现各种机器人和物理实体的控制算法。通过使用 ROS2 Controller,开发人员可以更加方便地设计和集成各种控制器,并实现复杂的控制任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值