跳转到内容

Chassis::Steering4 API

文档稀疏
符号
80
已记录
53
类型
8
继承关系
1
源码分支
main

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

继承关系总览

继承图尚未加载。

全部继承关系

共 8 个类型

类型目录
类

chassis::motion::Steering4

查看源码

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

继承关系

基类
  • IChassisMotion公开

构造与析构

1

成员函数

9

enable

函数公开
        bool chassis::motion::Steering4::enable () override
      

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

Chassis/Steering4/Steering4.hpp:52

forwardGetVelocity

函数公开
        Velocity chassis::motion::Steering4::forwardGetVelocity () override
      

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

Chassis/Steering4/Steering4.hpp:91

getWheelPosition

函数私有const
        Steering4::WheelPosition chassis::motion::Steering4::getWheelPosition (WheelType wheel) const
      

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

Chassis/Steering4/Steering4.hpp:123

isReady

函数公开const
        bool chassis::motion::Steering4::isReady () const override
      

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

Chassis/Steering4/Steering4.hpp:94

startCalibration

函数公开
        void chassis::motion::Steering4::startCalibration ()
      

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

Chassis/Steering4/Steering4.hpp:84

成员变量

10

wheel_

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

上游未提供说明。

Chassis/Steering4/Steering4.hpp:115

嵌套类型

3

WheelType

枚举公开

上游未提供说明。

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

chassis::motion::Steering4::Config

查看源码

上游未提供类型说明。

成员变量

8

嵌套类型

1
结构体

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

查看源码

上游未提供类型说明。

成员变量

2
类

chassis::steering::SteeringWheel

查看源码

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

构造与析构

1

SteeringWheel

函数公开
        chassis::steering::SteeringWheel::SteeringWheel (const Config &cfg, bool enable_calib, const CalibrationConfig &)
      

上游未提供说明。

Chassis/Steering4/SteeringWheel.hpp:54

成员函数

14

PhotogateCallback

函数私有静态
        static void chassis::steering::SteeringWheel::PhotogateCallback (const GPIO_t *gpio, uint32_t counter, void *data)
      

上游未提供说明。

Chassis/Steering4/SteeringWheel.hpp:115

enable

函数公开const
        bool chassis::steering::SteeringWheel::enable () const
      

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

Chassis/Steering4/SteeringWheel.hpp:74

enabled

函数公开const
        bool chassis::steering::SteeringWheel::enabled () const
      

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

Chassis/Steering4/SteeringWheel.hpp:95

isCalibrated

函数公开const
        bool chassis::steering::SteeringWheel::isCalibrated () const
      

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

Chassis/Steering4/SteeringWheel.hpp:101

photogateTrigger

函数私有
        void chassis::steering::SteeringWheel::photogateTrigger ()
      

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

Chassis/Steering4/SteeringWheel.hpp:124

setTargetVelocity

函数公开
        void chassis::steering::SteeringWheel::setTargetVelocity (const Velocity &vel)
      

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

Chassis/Steering4/SteeringWheel.hpp:59

startCalibration

函数公开
        void chassis::steering::SteeringWheel::startCalibration ()
      

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

Chassis/Steering4/SteeringWheel.hpp:57

toBestVelocity

函数私有const
        SteeringWheel::Velocity chassis::steering::SteeringWheel::toBestVelocity (Velocity velocity) const
      

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

Chassis/Steering4/SteeringWheel.hpp:139

toMotorAngle

函数私有const
        float chassis::steering::SteeringWheel::toMotorAngle (const float steer_angle) const
      

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

Chassis/Steering4/SteeringWheel.hpp:127

toSteerAngle

函数私有const
        float chassis::steering::SteeringWheel::toSteerAngle (const float motor_angle) const
      

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

Chassis/Steering4/SteeringWheel.hpp:133

update

函数公开const
        void chassis::steering::SteeringWheel::update () const
      

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

Chassis/Steering4/SteeringWheel.hpp:104

成员变量

5

嵌套类型

4

CalibState

枚举公开

上游未提供说明。

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

chassis::steering::SteeringWheel::CalibrationConfig

查看源码

上游未提供类型说明。

成员变量

3

photogate

变量公开
        GPIO_t chassis::steering::SteeringWheel::CalibrationConfig::photogate
      

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

Chassis/Steering4/SteeringWheel.hpp:43

photogate_active_state

变量公开
        GPIO_PinState chassis::steering::SteeringWheel::CalibrationConfig::photogate_active_state
      

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

Chassis/Steering4/SteeringWheel.hpp:44

steer_motor

变量公开
        controllers::MotorVelController* chassis::steering::SteeringWheel::CalibrationConfig::steer_motor
      

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

Chassis/Steering4/SteeringWheel.hpp:42
结构体

chassis::steering::SteeringWheel::Config

查看源码

上游未提供类型说明。

成员变量

3

steer_offset

变量公开
        float chassis::steering::SteeringWheel::Config::steer_offset
      

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

Chassis/Steering4/SteeringWheel.hpp:51
结构体

chassis::steering::SteeringWheel::Velocity

查看源码

上游未提供类型说明。

成员变量

2

其他公开符号

变量

1

宏定义

2

文件

4