跳转到内容

Chassis::ControllerMaster API

文档稀疏
符号
82
已记录
38
修订版本
0.1.0+825f1408280d

44 / 82 个公开 API 符号没有说明。

命名空间

2

1

chassis::controller::Master

下位机主控模式。 速度模式下的参考保持 位姿模式下的 S 曲线规划 基于定位反馈的误差闭环 这个控制器自己负责: 位姿目标 3 种:绝对目标、相对自身目标、相对指定基准点目标 速度目标 4 种:输入坐标系(世界 / 车身) × 保持不变的参考系(世界 / 车身) 公开接口里有 7 种常用目标设置组合: 适合“上层给目标,底盘自己走过去”的使用方式。

Controller/Master/Master.hpp:36

结构体

4

函数

30

chassis::controller::Master::Master

                    chassis::controller::Master::Master (motion::IChassisMotion &motion, loc::IChassisLoc &loc, const Config &cfg)
                  

构造时立即建立三个轴各自的 PD 与 S 曲线对象。

Controller/Master/Master.hpp:110

chassis::controller::Master::TrajectoryLimit::operator*

                    TrajectoryLimit chassis::controller::Master::TrajectoryLimit::operator* (const float ratio) const
                  

上游未提供说明。

Controller/Master/Master.hpp:47

chassis::controller::Master::TrajectoryLimit::operator/

                    TrajectoryLimit chassis::controller::Master::TrajectoryLimit::operator/ (const float factor) const
                  

上游未提供说明。

Controller/Master/Master.hpp:51

chassis::controller::Master::apply_position_velocity

                    void chassis::controller::Master::apply_position_velocity ()
                  

上游未提供说明。

Controller/Master/Master.hpp:620

chassis::controller::Master::errorUpdate

                    void chassis::controller::Master::errorUpdate ()
                  

更新底盘轨迹 PD 控制器 推荐 200 ~ 500Hz

Controller/Master/Master.hpp:506

chassis::controller::Master::isTrajectoryFinished

                    bool chassis::controller::Master::isTrajectoryFinished () const
                  

上游未提供说明。

Controller/Master/Master.hpp:345

chassis::controller::Master::isTrajectoryTrackingWithinThreshold

                    bool chassis::controller::Master::isTrajectoryTrackingWithinThreshold () const
                  

当前位姿是否跟随在曲线当前目标的阈值范围内。

Controller/Master/Master.hpp:353

chassis::controller::Master::lastSCurveFailure

                    const SCurveFailureRecord & chassis::controller::Master::lastSCurveFailure () const
                  

上游未提供说明。

Controller/Master/Master.hpp:372

chassis::controller::Master::nearestEquivalentYaw

                    static float chassis::controller::Master::nearestEquivalentYaw (const float reference_yaw, const float target_yaw)
                  

上游未提供说明。

Controller/Master/Master.hpp:586

chassis::controller::Master::profileUpdate

                    void chassis::controller::Master::profileUpdate (const float dt)
                  

更新底盘轨迹规划曲线 CtrlMode::Posture dt 更新间隔 推荐 100Hz 仅在下有效

Controller/Master/Master.hpp:479

chassis::controller::Master::setTargetPostureInBody

                    bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target)
                  

上游未提供说明。

Controller/Master/Master.hpp:289

chassis::controller::Master::setTargetPostureInBody

                    bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target, const TrajectoryLimit &limit)
                  

上游未提供说明。

Controller/Master/Master.hpp:297

chassis::controller::Master::setTargetPostureInBody

                    bool chassis::controller::Master::setTargetPostureInBody (const Posture &relative_target, const TrajectoryLinkMode link_mode)
                  

上游未提供说明。

Controller/Master/Master.hpp:293

chassis::controller::Master::setTargetPostureInBody

                    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:276

chassis::controller::Master::setTargetPostureInWorld

                    bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target)
                  

上游未提供说明。

Controller/Master/Master.hpp:253

chassis::controller::Master::setTargetPostureInWorld

                    bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target, const TrajectoryLimit &limit)
                  

上游未提供说明。

Controller/Master/Master.hpp:261

chassis::controller::Master::setTargetPostureInWorld

                    bool chassis::controller::Master::setTargetPostureInWorld (const Posture &absolute_target, const TrajectoryLinkMode link_mode)
                  

上游未提供说明。

Controller/Master/Master.hpp:257

chassis::controller::Master::setTargetPostureInWorld

                    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:135

chassis::controller::Master::setTargetPostureRelativeTo

                    bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target)
                  

上游未提供说明。

Controller/Master/Master.hpp:320

chassis::controller::Master::setTargetPostureRelativeTo

                    bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target, const TrajectoryLimit &limit)
                  

上游未提供说明。

Controller/Master/Master.hpp:335

chassis::controller::Master::setTargetPostureRelativeTo

                    bool chassis::controller::Master::setTargetPostureRelativeTo (const Posture &base_in_world, const Posture &relative_target, const TrajectoryLinkMode link_mode)
                  

上游未提供说明。

Controller/Master/Master.hpp:328

chassis::controller::Master::setTargetPostureRelativeTo

                    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:302

chassis::controller::Master::setVelocityInBody

                    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:431

chassis::controller::Master::setVelocityInWorld

                    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:397

chassis::controller::Master::update_velocity_control

                    void chassis::controller::Master::update_velocity_control ()
                  

上游未提供说明。

Controller/Master/Master.hpp:595

chassis::controller::Master::waitTrajectoryFinish

                    void chassis::controller::Master::waitTrajectoryFinish () const
                  

阻塞等待当前位姿轨迹执行完成。常用于流程式脚本控制。

Controller/Master/Master.hpp:378

枚举

2

chassis::controller::Master::CtrlMode

上游未提供说明。

Posture
先规划位姿曲线,再跟踪曲线
Stopped
锁定当前位姿
Velocity
直接按速度参考控制
Controller/Master/Master.hpp:83

chassis::controller::Master::TrajectoryLinkMode

设置位置目标时曲线的衔接方式

CurrentState
上游未提供说明。
PreviousCurve
上游未提供说明。
Controller/Master/Master.hpp:93

类型定义

2

chassis::controller::Master::AxisLimit

                    using chassis::controller::Master::AxisLimit = velocity_profile::SCurveProfile::Config
                  

上游未提供说明。

Controller/Master/Master.hpp:39

chassis::controller::Master::SCurveFailureInfo

                    using chassis::controller::Master::SCurveFailureInfo = velocity_profile::SCurveProfile::FailureInfo
                  

上游未提供说明。

Controller/Master/Master.hpp:40

变量

40

chassis::controller::Master::Config::auto_nearest_yaw_target

                    bool chassis::controller::Master::Config::auto_nearest_yaw_target
                  

设置位姿目标时,是否把目标 yaw 转换为相对本次规划起点最近的等效连续角。

Controller/Master/Master.hpp:80

chassis::controller::Master::Config::limit

                    TrajectoryLimit chassis::controller::Master::Config::limit
                  

上游未提供说明。

Controller/Master/Master.hpp:75

chassis::controller::Master::Config::posture_error_pd_cfg

                    struct chassis::controller::Master::Config::@146330310246155105117345016374005016375017360335 chassis::controller::Master::Config::posture_error_pd_cfg
                  

上游未提供说明。

Controller/Master/Master.hpp:73

chassis::controller::Master::Config::tracking_threshold

                    TrajectoryTrackingThreshold chassis::controller::Master::Config::tracking_threshold
                  

上游未提供说明。

Controller/Master/Master.hpp:77

chassis::controller::Master::SCurveFailureRecord::axis

                    std::array<SCurveFailureInfo, 3> chassis::controller::Master::SCurveFailureRecord::axis
                  

上游未提供说明。

Controller/Master/Master.hpp:104

chassis::controller::Master::SCurveFailureRecord::axis_mask

                    uint8_t chassis::controller::Master::SCurveFailureRecord::axis_mask
                  

上游未提供说明。

Controller/Master/Master.hpp:102

chassis::controller::Master::SCurveFailureRecord::valid

                    bool chassis::controller::Master::SCurveFailureRecord::valid
                  

上游未提供说明。

Controller/Master/Master.hpp:101

chassis::controller::Master::TrajectoryLimit::x

                    AxisLimit chassis::controller::Master::TrajectoryLimit::x
                  

上游未提供说明。

Controller/Master/Master.hpp:45

chassis::controller::Master::TrajectoryLimit::y

                    AxisLimit chassis::controller::Master::TrajectoryLimit::y
                  

上游未提供说明。

Controller/Master/Master.hpp:45

chassis::controller::Master::TrajectoryLimit::yaw

                    AxisLimit chassis::controller::Master::TrajectoryLimit::yaw
                  

上游未提供说明。

Controller/Master/Master.hpp:45

chassis::controller::Master::TrajectoryTrackingThreshold::x

                    float chassis::controller::Master::TrajectoryTrackingThreshold::x
                  

x 方向允许误差 (unit: m)

Controller/Master/Master.hpp:60

chassis::controller::Master::TrajectoryTrackingThreshold::y

                    float chassis::controller::Master::TrajectoryTrackingThreshold::y
                  

y 方向允许误差 (unit: m)

Controller/Master/Master.hpp:61

chassis::controller::Master::TrajectoryTrackingThreshold::yaw

                    float chassis::controller::Master::TrajectoryTrackingThreshold::yaw
                  

yaw 方向允许误差 (unit: deg)

Controller/Master/Master.hpp:62

chassis::controller::Master::auto_nearest_yaw_target_

                    bool chassis::controller::Master::auto_nearest_yaw_target_
                  

设置目标时是否自动选择最近等效 yaw

Controller/Master/Master.hpp:551

chassis::controller::Master::curve

                    struct chassis::controller::Master::@201074265143032133110351044343116277020342077055::@241245110204221321046071256103251373131227143220 chassis::controller::Master::curve
                  

上游未提供说明。

Controller/Master/Master.hpp:579

chassis::controller::Master::defaultTrajectoryLinkMode

                    auto chassis::controller::Master::defaultTrajectoryLinkMode
                  

上游未提供说明。

Controller/Master/Master.hpp:107

chassis::controller::Master::last_scurve_failure_

                    SCurveFailureRecord chassis::controller::Master::last_scurve_failure_
                  

上游未提供说明。

Controller/Master/Master.hpp:553

chassis::controller::Master::pd

                    struct chassis::controller::Master::@201074265143032133110351044343116277020342077055::@152236330005037333157210023264123242351362255041 chassis::controller::Master::pd
                  

上游未提供说明。

Controller/Master/Master.hpp:572

chassis::controller::Master::posture_trajectory_

                    struct chassis::controller::Master::@201074265143032133110351044343116277020342077055 chassis::controller::Master::posture_trajectory_
                  

上游未提供说明。

Controller/Master/Master.hpp:583

chassis::controller::Master::target_in_world

                    volatile bool chassis::controller::Master::target_in_world
                  

速度是否相对于世界坐标系不变

Controller/Master/Master.hpp:557

chassis::controller::Master::tracking_threshold_

                    TrajectoryTrackingThreshold chassis::controller::Master::tracking_threshold_
                  

轨迹跟踪 / 完成判定阈值

Controller/Master/Master.hpp:549

chassis::controller::Master::velocity_ref_

                    struct chassis::controller::Master::@362176332242246365222360222042360023062060302104 chassis::controller::Master::velocity_ref_
                  

上游未提供说明。

Controller/Master/Master.hpp:560

文件

1