阅读量:2
本文将展示如何自定义控制插件,本文可作为编写控制器插件的参考
1 自定义控制插件概述
本文实现nav2_pure_pursuit_controller纯追踪控制器,nav2_pure_pursuit_controller::PurePursuitController
继承自基类nav2_core::Controller
需要实现以下函数:
虚函数 | 方法描述 |
---|---|
configure() | 当控制器服务器进入on_configure状态时调用该方法。理想情况下,该方法应执行ROS参数的声明和控制器成员变量的初始化。该方法接受4个输入参数:父节点的弱引用、控制器名称、tf缓冲区指针和costmap的共享指针 |
activate() | 当控制器服务器进入on_activate状态时调用该方法。理想情况下,该方法应实现在控制器进入活动状态之前必要的操作 |
deactivate() | 当控制器服务器进入on_deactivate状态时调用该方法。理想情况下,该方法应实现在控制器进入非活动状态之前必要的操作 |
cleanup() | 当控制器服务器进入on_cleanup状态时调用该方法。理想情况下,该方法应清理为控制器创建的资源 |
setPlan() | 当全局路径更新时调用该方法。理想情况下,该方法应执行转换全局路径和存储路径的操作 |
computeVelocityCommands() | 当控制器服务器要求提供新的速度命令,以便机器人按照全局路径行驶时,调用该方法。该方法返回一个geometry_msgs::msg::T |