ros2_control中的controller manager 和 Nav2 中的 lifecycle_manager

这一节补一下前面填的坑,介绍一下ros2_control中的controller manager 和 Nav2 中的 lifecycle_manager

1.相似点

这两个manager的相似点可以用下面的状态机表示:
在这里插入图片描述

manager都有下面四个状态:

Unconfigured
Inactive
Active
Finalized

还有6个转换过程,它们是在从一个状态转换到另一个状态期间执行的任务:

on_configure
on_cleanup
on_activate
on_deactivate
on_shutdown
on_error

而转换过程只能有两个结果:SUCCESS" or "FAILURE

2. ros2_control中的 controller manager

controller manager的工作是管理控制器生命周期的所有相关方面,从加载到卸载控制器以及两者之间

使用 ros2 control list_controllers 可以查看环境中运行的controller

使用 ros2 control set_controller_state forward_position_controller start 可以开始forward_position_controller

使用 ros2 control load_controller forward_position_controller 可以加载forward_position_controller

使用 ros2 control set_controller_state forward_position_controller configure 可以配置forward_position_controller

当然,一般直接使用

ros2 run controller_manager spawner my_controller_name --controller-type forward_position_controller/JointStateBroadcaster

可以直接一步配置到位

配置好forward_position_controller,通过话题可以直接控制关节

ros2 topic pub /forward_position_controller/commands std_msgs/msg/Float64MultiArray "data:
- -0.79
- -0.79" -1

3. Nav2 中的 lifecycle_manager

Nav2中的几个节点(如map_server、amcl、planner_server和controller_server)等托管节点以未配置状态(Unconfigured)启动。要从未配置状态转换到活动状态,节点需要一个外部代理

Lifecycle nodes 将它们移动到 active 这个新状态, Nav2的 Lifecycle nodes更改托管节点的状态,以实现导航堆栈的受控启动、关闭、重置、暂停或恢复

通过 ros2 service type /lifecycle_manager_mapper/manage_nodes 查看节点的类型

使用命令行可以管理节点状态 ros2 service call /lifecycle_manager_mapper/manage_nodes nav2_msgs/srv/ManageLifecycleNodes command:\ 1\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mubibaiwhale

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值