chassis::controller::Master
下位机主控模式。 速度模式下的参考保持 位姿模式下的 S 曲线规划 基于定位反馈的误差闭环 这个控制器自己负责: 位姿目标 3 种:绝对目标、相对自身目标、相对指定基准点目标 速度目标 4 种:输入坐标系(世界 / 车身) × 保持不变的参考系(世界 / 车身) 公开接口里有 7 种常用目标设置组合: 适合“上层给目标,底盘自己走过去”的使用方式。
继承关系
- 基类
IChassisController公开
构造与析构
1Master
chassis::controller::Master::Master (motion::IChassisMotion &motion, loc::IChassisLoc &loc, const Config &cfg)
构造时立即建立三个轴各自的 PD 与 S 曲线对象。
Controller/Master/Master.hpp:110成员函数
27apply_position_velocity
void chassis::controller::Master::apply_position_velocity ()
上游未提供说明。
Controller/Master/Master.hpp:620controlMode
CtrlMode chassis::controller::Master::controlMode () const
上游未提供说明。
Controller/Master/Master.hpp:370controllerUpdate
void chassis::controller::Master::controllerUpdate ()
上游未提供说明。
Controller/Master/Master.hpp:521errorUpdate
void chassis::controller::Master::errorUpdate ()
更新底盘轨迹 PD 控制器 推荐 200 ~ 500Hz
Controller/Master/Master.hpp:506hold
void chassis::controller::Master::hold ()
设置底盘速度为 0
Controller/Master/Master.hpp:470isTrajectoryFinished
bool chassis::controller::Master::isTrajectoryFinished () const
上游未提供说明。
Controller/Master/Master.hpp:345isTrajectoryTrackingWithinThreshold
bool chassis::controller::Master::isTrajectoryTrackingWithinThreshold () const
当前位姿是否跟随在曲线当前目标的阈值范围内。
Controller/Master/Master.hpp:353lastSCurveFailure
const SCurveFailureRecord & chassis::controller::Master::lastSCurveFailure () const
上游未提供说明。
Controller/Master/Master.hpp:372nearestEquivalentYaw
static float chassis::controller::Master::nearestEquivalentYaw (const float reference_yaw, const float target_yaw)
上游未提供说明。
Controller/Master/Master.hpp:586profileUpdate
void chassis::controller::Master::profileUpdate (const float dt)
更新底盘轨迹规划曲线 CtrlMode::Posture dt 更新间隔 推荐 100Hz 仅在下有效
Controller/Master/Master.hpp:479setTargetPostureInBody
bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target)
上游未提供说明。
Controller/Master/Master.hpp:289setTargetPostureInBody
bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target, const TrajectoryLimit &limit)
上游未提供说明。
Controller/Master/Master.hpp:297setTargetPostureInBody
bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target, const TrajectoryLinkMode link_mode)
上游未提供说明。
Controller/Master/Master.hpp:293setTargetPostureInBody
bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target, const TrajectoryLinkMode link_mode, const TrajectoryLimit &limit)
以“当前车体位姿”为基准,设置相对目标位姿。 适合简单动作命令,例如“向前一段距离”或“相对当前朝向转一个角度”。 relative_target 相对目标值 link_mode 曲线衔接模式,如果上一控制状态不为 Posture,则该项不生效 limit 执行过程限制 是否规划成功
Controller/Master/Master.hpp:276setTargetPostureInWorld
bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target)
上游未提供说明。
Controller/Master/Master.hpp:253setTargetPostureInWorld
bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target, const TrajectoryLimit &limit)
上游未提供说明。
Controller/Master/Master.hpp:261setTargetPostureInWorld
bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target, const TrajectoryLinkMode link_mode)
上游未提供说明。
Controller/Master/Master.hpp:257setTargetPostureInWorld
bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target, const TrajectoryLinkMode link_mode, const TrajectoryLimit &limit)
在世界坐标系中设置绝对目标位姿。 这是最直接的“去某个绝对点”接口,适合地图中已经有明确目标位姿的场景。 absolute_target 绝对目标值 link_mode 曲线衔接模式,如果上一控制状态不为 Posture,则该项不生效 limit 执行过程限制 是否规划成功
Controller/Master/Master.hpp:135setTargetPostureRelativeTo
bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target)
上游未提供说明。
Controller/Master/Master.hpp:320setTargetPostureRelativeTo
bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target, const TrajectoryLimit &limit)
上游未提供说明。
Controller/Master/Master.hpp:335setTargetPostureRelativeTo
bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target, const TrajectoryLinkMode link_mode)
上游未提供说明。
Controller/Master/Master.hpp:328setTargetPostureRelativeTo
bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target, const TrajectoryLinkMode link_mode, const TrajectoryLimit &limit)
上游未提供说明。
Controller/Master/Master.hpp:302setVelocityInBody
void chassis::controller::Master::setVelocityInBody (const Velocity &body_velocity, const bool target_in_world)
设置车体坐标系速度参考。 这个接口只回答“输入速度是按车体系表达的”。 至于后续控制中究竟保持车体系速度不变,还是先把当前车体系速度锁存成世界系速度, 则由 target_in_world 决定。 body_velocity 目标车体系速度 target_in_world true 表示先换算并保存对应的世界系速度,之后按“世界系速度保持不变” 的方式运行;平移和旋转并存时通常表现为边平移边自旋 false 表示保持普通车体系速度控制;此时常见表现是圆弧轨迹
Controller/Master/Master.hpp:431setVelocityInWorld
void chassis::controller::Master::setVelocityInWorld (const Velocity &world_velocity, const bool target_in_world)
设置世界坐标系速度参考。 这个接口只回答“输入速度是按世界系表达的”。 至于后续控制中究竟保持世界系速度不变,还是只在设置时换算一次后改成车体系保持, 则由 target_in_world 决定。 world_velocity 目标世界系速度 target_in_world true 表示后续控制周期中都保持“世界系速度不变”,并在每次执行时 重新换算到车体系;平移和旋转并存时通常表现为边平移边自旋 false 表示只在设置时做一次换算,后续按车体系速度保持; 此时常见表现是圆弧轨迹
Controller/Master/Master.hpp:397stop
void chassis::controller::Master::stop () override
上游未提供说明。
Controller/Master/Master.hpp:452update_velocity_control
void chassis::controller::Master::update_velocity_control ()
上游未提供说明。
Controller/Master/Master.hpp:595waitTrajectoryFinish
void chassis::controller::Master::waitTrajectoryFinish () const
阻塞等待当前位姿轨迹执行完成。常用于流程式脚本控制。
Controller/Master/Master.hpp:378成员变量
24auto_nearest_yaw_target_
bool chassis::controller::Master::auto_nearest_yaw_target_
设置目标时是否自动选择最近等效 yaw
Controller/Master/Master.hpp:551ctrl_mode_
CtrlMode chassis::controller::Master::ctrl_mode_
当前控制模式
Controller/Master/Master.hpp:545curve
struct chassis::controller::Master::@201074265143032133110351044343116277020342077055::@241245110204221321046071256103251373131227143220 chassis::controller::Master::curve
上游未提供说明。
Controller/Master/Master.hpp:579defaultTrajectoryLinkMode
auto chassis::controller::Master::defaultTrajectoryLinkMode
上游未提供说明。
Controller/Master/Master.hpp:107in_body
Velocity chassis::controller::Master::in_body
车体坐标系下速度
Controller/Master/Master.hpp:559in_world
Velocity chassis::controller::Master::in_world
世界坐标系下速度
Controller/Master/Master.hpp:558last_scurve_failure_
SCurveFailureRecord chassis::controller::Master::last_scurve_failure_
上游未提供说明。
Controller/Master/Master.hpp:553limit_
TrajectoryLimit chassis::controller::Master::limit_
默认轨迹约束
Controller/Master/Master.hpp:547lock_
osMutexId_t chassis::controller::Master::lock_
保护配置切换和目标写入过程
Controller/Master/Master.hpp:543now
float chassis::controller::Master::now
当前执行时间
Controller/Master/Master.hpp:564p_ref_curr_
Posture chassis::controller::Master::p_ref_curr_
当前时刻的位姿参考点
Controller/Master/Master.hpp:581pd
struct chassis::controller::Master::@201074265143032133110351044343116277020342077055::@152236330005037333157210023264123242351362255041 chassis::controller::Master::pd
上游未提供说明。
Controller/Master/Master.hpp:572posture_trajectory_
struct chassis::controller::Master::@201074265143032133110351044343116277020342077055 chassis::controller::Master::posture_trajectory_
上游未提供说明。
Controller/Master/Master.hpp:583target_in_world
volatile bool chassis::controller::Master::target_in_world
速度是否相对于世界坐标系不变
Controller/Master/Master.hpp:557total_time
float chassis::controller::Master::total_time
总执行时间
Controller/Master/Master.hpp:565tracking_threshold_
TrajectoryTrackingThreshold chassis::controller::Master::tracking_threshold_
轨迹跟踪 / 完成判定阈值
Controller/Master/Master.hpp:549v_ref_curr_
Velocity chassis::controller::Master::v_ref_curr_
当前时刻的前馈速度参考
Controller/Master/Master.hpp:582velocity_ref_
struct chassis::controller::Master::@362176332242246365222360222042360023062060302104 chassis::controller::Master::velocity_ref_
上游未提供说明。
Controller/Master/Master.hpp:560vx
PD chassis::controller::Master::vx
x 速度 PD 控制器
Controller/Master/Master.hpp:569vy
PD chassis::controller::Master::vy
y 速度 PD 控制器
Controller/Master/Master.hpp:570wz
PD chassis::controller::Master::wz
角速度 PD 控制器
Controller/Master/Master.hpp:571x
velocity_profile::SCurveProfile chassis::controller::Master::x
上游未提供说明。
Controller/Master/Master.hpp:576y
velocity_profile::SCurveProfile chassis::controller::Master::y
上游未提供说明。
Controller/Master/Master.hpp:577yaw
velocity_profile::SCurveProfile chassis::controller::Master::yaw
上游未提供说明。
Controller/Master/Master.hpp:578嵌套类型
8AxisLimit
using chassis::controller::Master::AxisLimit = velocity_profile::SCurveProfile::Config
上游未提供说明。
Controller/Master/Master.hpp:39控制器配置:误差 PD 参数 + 轨迹曲线限制 + 完成判定阈值。
Controller/Master/Master.hpp:66CtrlMode
上游未提供说明。
Posture- 先规划位姿曲线,再跟踪曲线
Stopped- 锁定当前位姿
Velocity- 直接按速度参考控制
SCurveFailureInfo
using chassis::controller::Master::SCurveFailureInfo = velocity_profile::SCurveProfile::FailureInfo
上游未提供说明。
Controller/Master/Master.hpp:40上游未提供说明。
Controller/Master/Master.hpp:99三个自由度各自的运动学约束。
Controller/Master/Master.hpp:43TrajectoryLinkMode
设置位置目标时曲线的衔接方式
CurrentState- 上游未提供说明。
PreviousCurve- 上游未提供说明。
位姿轨迹跟踪 / 完成判定阈值。
Controller/Master/Master.hpp:58