跳转到内容

Chassis::Steering4 API

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

27 / 80 个公开 API 符号没有说明。

命名空间

3

2

chassis::motion::Steering4

四舵轮底盘。 enabled() isReady() 和普通全向轮不同,四舵轮在真正 ready 之前可能还要经历轮组校准阶段, 所以上层必须同时关注和。

Chassis/Steering4/Steering4.hpp:20

chassis::steering::SteeringWheel

单个舵轮。 一个驱动轮速度控制器 一个舵向位置控制器 每个轮组同时拥有: 如果启用校准,还会额外使用一个舵向速度控制器和光电门来建立零点。

Chassis/Steering4/SteeringWheel.hpp:24

结构体

6

函数

25

chassis::motion::Steering4::applyVelocity

                    void chassis::motion::Steering4::applyVelocity (const Velocity &velocity) override
                  

上游未提供说明。

Chassis/Steering4/Steering4.hpp:100

chassis::motion::Steering4::enable

                    bool chassis::motion::Steering4::enable () override
                  

依次使能四个轮组;任意一个失败都会整体回滚。

Chassis/Steering4/Steering4.hpp:52

chassis::motion::Steering4::forwardGetVelocity

                    Velocity chassis::motion::Steering4::forwardGetVelocity () override
                  

返回四舵轮根据当前轮速和舵向反解出的底盘反馈速度。

Chassis/Steering4/Steering4.hpp:91

chassis::motion::Steering4::getWheelPosition

                    Steering4::WheelPosition chassis::motion::Steering4::getWheelPosition (WheelType wheel) const
                  

根据轮序返回该轮相对于底盘中心的位置。

Chassis/Steering4/Steering4.hpp:123

chassis::motion::Steering4::isReady

                    bool chassis::motion::Steering4::isReady () const override
                  

启用校准时,ready 表示四个轮组都已经建立舵向零点。

Chassis/Steering4/Steering4.hpp:94

chassis::motion::Steering4::startCalibration

                    void chassis::motion::Steering4::startCalibration ()
                  

启动四个轮组的校准流程。 isReady() 仅在 enable 成功之后才有意义。启用校准时,只有全部轮组完成校准后才会变为 true,在此之前控制器下发的底盘速度会被忽略。

Chassis/Steering4/Steering4.hpp:84

chassis::motion::Steering4::update

                    void chassis::motion::Steering4::update ()
                  

周期刷新校准状态、轮组控制器以及反馈速度。

Chassis/Steering4/Steering4.hpp:97

chassis::steering::SteeringWheel::PhotogateCallback

                    static void chassis::steering::SteeringWheel::PhotogateCallback (const GPIO_t *gpio, uint32_t counter, void *data)
                  

上游未提供说明。

Chassis/Steering4/SteeringWheel.hpp:115

chassis::steering::SteeringWheel::SteeringWheel

                    chassis::steering::SteeringWheel::SteeringWheel (const Config &cfg, bool enable_calib, const CalibrationConfig &)
                  

上游未提供说明。

Chassis/Steering4/SteeringWheel.hpp:54

chassis::steering::SteeringWheel::enable

                    bool chassis::steering::SteeringWheel::enable () const
                  

同时使能舵向位置环和轮向速度环,任意一个失败都会回滚。

Chassis/Steering4/SteeringWheel.hpp:74

chassis::steering::SteeringWheel::enabled

                    bool chassis::steering::SteeringWheel::enabled () const
                  

仅表示正常运行的两个控制器已经使能,不代表校准已经完成。

Chassis/Steering4/SteeringWheel.hpp:95

chassis::steering::SteeringWheel::getSteerAngle

                    float chassis::steering::SteeringWheel::getSteerAngle () const
                  

读取去除零点偏置后的舵向角。

Chassis/Steering4/SteeringWheel.hpp:62

chassis::steering::SteeringWheel::isCalibrated

                    bool chassis::steering::SteeringWheel::isCalibrated () const
                  

只有校准状态机进入 Done,才认为该轮组已经建立零点。

Chassis/Steering4/SteeringWheel.hpp:101

chassis::steering::SteeringWheel::photogateTrigger

                    void chassis::steering::SteeringWheel::photogateTrigger ()
                  

处理光电门触发后的校准状态流转。 当前实现默认底层 EXTI 已配置为双边沿触发,这样挡光区的两个边缘都会回调进来。 当前逻辑故意使用两次触发:第一次说明进入了光电门区域,第二次才固定到某个边缘, 避免零点有时落在进入边缘、有时落在离开边缘。

Chassis/Steering4/SteeringWheel.hpp:124

chassis::steering::SteeringWheel::setTargetVelocity

                    void chassis::steering::SteeringWheel::setTargetVelocity (const Velocity &vel)
                  

设置该轮组的目标舵向角和轮向速度。

Chassis/Steering4/SteeringWheel.hpp:59

chassis::steering::SteeringWheel::startCalibration

                    void chassis::steering::SteeringWheel::startCalibration ()
                  

启动零点校准流程。只有在已使能且还未开始校准时才会生效。 舵轮校准,只允许被调用一次

Chassis/Steering4/SteeringWheel.hpp:57

chassis::steering::SteeringWheel::toBestVelocity

                    SteeringWheel::Velocity chassis::steering::SteeringWheel::toBestVelocity (Velocity velocity) const
                  

在保持等效运动的前提下,选择舵向变化更小的目标解。

Chassis/Steering4/SteeringWheel.hpp:139

chassis::steering::SteeringWheel::toMotorAngle

                    float chassis::steering::SteeringWheel::toMotorAngle (const float steer_angle) const
                  

把对外可理解的舵向角转换成底层电机角度。

Chassis/Steering4/SteeringWheel.hpp:127

chassis::steering::SteeringWheel::toSteerAngle

                    float chassis::steering::SteeringWheel::toSteerAngle (const float motor_angle) const
                  

把底层电机角度转换成去偏置后的舵向角。

Chassis/Steering4/SteeringWheel.hpp:133

chassis::steering::SteeringWheel::update

                    void chassis::steering::SteeringWheel::update () const
                  

周期更新舵向位置环、轮向速度环,以及校准阶段用到的速度环。

Chassis/Steering4/SteeringWheel.hpp:104

枚举

2

chassis::motion::Steering4::WheelType

上游未提供说明。

FrontLeft = 1U
左前轮
FrontRight = 0U
右前轮
Max
上游未提供说明。
RearLeft = 2U
左后轮
RearRight = 3U
右后轮
Chassis/Steering4/Steering4.hpp:23

chassis::steering::SteeringWheel::CalibState

上游未提供说明。

Done
校准完成
FineCapture
低速精确捕获零点,固定使用某一个边缘作为零点参考
Idle
尚未开始校准
SeekGate
高速寻找光电门,先确认已经找到光电门区域
Chassis/Steering4/SteeringWheel.hpp:32

变量

36

chassis::motion::Steering4::Config::Wheel::calib_cfg

                    steering::SteeringWheel::CalibrationConfig chassis::motion::Steering4::Config::Wheel::calib_cfg
                  

校准配置

Chassis/Steering4/Steering4.hpp:42

chassis::motion::Steering4::Config::Wheel::cfg

                    steering::SteeringWheel::Config chassis::motion::Steering4::Config::Wheel::cfg
                  

正常运行配置

Chassis/Steering4/Steering4.hpp:41

chassis::motion::Steering4::Config::distance_x

                    float chassis::motion::Steering4::Config::distance_x
                  

前后轮距 (unit: mm), x 轴指向车体前方

Chassis/Steering4/Steering4.hpp:36

chassis::motion::Steering4::Config::distance_y

                    float chassis::motion::Steering4::Config::distance_y
                  

左右轮距 (unit: mm), y 轴指向车体左侧

Chassis/Steering4/Steering4.hpp:37

chassis::motion::Steering4::Config::enable_calibration

                    bool chassis::motion::Steering4::Config::enable_calibration
                  

是否启用启动校准流程

Chassis/Steering4/Steering4.hpp:33

chassis::motion::Steering4::wheel_

                    steering::SteeringWheel chassis::motion::Steering4::wheel_[static_cast< size_t >(WheelType::Max)] [static_cast< size_t >(WheelType::Max)]
                  

上游未提供说明。

Chassis/Steering4/Steering4.hpp:115

chassis::steering::SteeringWheel::CalibrationConfig::photogate

                    GPIO_t chassis::steering::SteeringWheel::CalibrationConfig::photogate
                  

光电门 GPIO;若依赖 EXTI 回调,需在 CubeMX 中配置为双边沿触发

Chassis/Steering4/SteeringWheel.hpp:43

chassis::steering::SteeringWheel::CalibrationConfig::photogate_active_state

                    GPIO_PinState chassis::steering::SteeringWheel::CalibrationConfig::photogate_active_state
                  

光电门有效电平,用于判断当前是否处于挡光区域

Chassis/Steering4/SteeringWheel.hpp:44

chassis::steering::SteeringWheel::CalibrationConfig::steer_motor

                    controllers::MotorVelController* chassis::steering::SteeringWheel::CalibrationConfig::steer_motor
                  

校准阶段使用的舵向速度环

Chassis/Steering4/SteeringWheel.hpp:42

chassis::steering::SteeringWheel::Config::drive_motor

                    controllers::MotorVelController* chassis::steering::SteeringWheel::Config::drive_motor
                  

轮向电机速度环控制器

Chassis/Steering4/SteeringWheel.hpp:49

chassis::steering::SteeringWheel::Config::steer_motor

                    controllers::MotorPosController* chassis::steering::SteeringWheel::Config::steer_motor
                  

舵向电机位置环控制器

Chassis/Steering4/SteeringWheel.hpp:50

chassis::steering::SteeringWheel::Config::steer_offset

                    float chassis::steering::SteeringWheel::Config::steer_offset
                  

舵向偏置;如果有光电门,则表示光电门所在角度;如果用的云台电机,则是云台电机零点位置

Chassis/Steering4/SteeringWheel.hpp:51

chassis::steering::SteeringWheel::Velocity::angle

                    float chassis::steering::SteeringWheel::Velocity::angle
                  

舵向角度,行进正前方为零点,逆时针为正 (unit: deg)

Chassis/Steering4/SteeringWheel.hpp:29

chassis::steering::SteeringWheel::Velocity::speed

                    float chassis::steering::SteeringWheel::Velocity::speed
                  

轮向速度,angle = 0 时向前运动的方向为正 (unit: rpm)

Chassis/Steering4/SteeringWheel.hpp:30

宏定义

2

文件

4