![]() |
RMVL
2.5.0-dev
Robotic Manipulation and Vision Library
|
【控制律组件】控制律基类,供 RobotController 组合调用 更多...
#include <rmvl/lpss/ctl/base.hpp>
Public 类型 | |
| using | ptr = std::unique_ptr<ControlLawBase> |
Public 成员函数 | |
| virtual void | reset () noexcept=0 |
| 重置内部状态 | |
| ControlStatus | compute (const msg::JointState &desired, const msg::JointState &fb, int32_t period, msg::JointState &command) noexcept |
| 执行一次控制计算 | |
Protected 成员函数 | |
| virtual ControlStatus | do_compute (const std::vector< double > &desired, const std::vector< double > &fb, int32_t period, std::vector< double > &command) noexcept=0 |
| 纯虚的向量计算接口,由具体的控制律实现 | |
【控制律组件】控制律基类,供 RobotController 组合调用
控制律组件主要描述了如下图所示的控制计算逻辑

其中 \(X_{\mathrm{ref}}\) 和 \(X_{\mathrm{fb}}\) 分别是从输入采样映射函数提取的期望状态 desired 和反馈状态向量 fb, \(G_c(s)\) 是控制律组件实际实现的传递函数, \(X_{\mathrm{out}}\) 是控制律计算得到的控制命令向量,输出采样映射函数将其写回 command 的对应字段。用户可以通过组合不同的输入/输出映射函数和控制律组件实现来构建适合自己系统的控制方案。
| using rm::lpss::ctl::ControlLawBase::ptr = std::unique_ptr<ControlLawBase> |
|
noexcept |
执行一次控制计算
desired 和 fb 中提取向量对command 的对应字段| [in] | desired | 当前时刻期望状态 |
| [in] | fb | 当前反馈状态 |
| [in] | period | 控制周期(毫秒) |
| [out] | command | 控制命令输出 |
|
protectedpure virtualnoexcept |
纯虚的向量计算接口,由具体的控制律实现
派生类需要实现此函数来执行实际的向量级脉冲传递函数计算
| [in] | desired | 期望状态向量 |
| [in] | fb | 反馈状态向量 |
| [in] | period | 控制周期(毫秒) |
| [out] | command | 控制命令输出向量 |
在 rm::lpss::ctl::FeedForward, rm::lpss::ctl::PID , 以及 rm::lpss::ctl::UnitTF 内被实现.
|
pure virtualnoexcept |