|
GKD.RoboCtrl
RoboMaster Linux 电控:异步 IO、设备驱动与机器人控制
|
One physical IMU gimbal; registry owns independent primary/secondary/yaw stages.
在文件 gkd_sentry_gimbal.hpp 第 16 行定义.
#include <gkd_sentry_gimbal.hpp>


Public 类型 | |
| using | info_type = gimbal_base::info_type |
Public 成员函数 | |
| bool | init (const info_type &) |
| bool | init (const info_type &, imu_base &, motor_base &, motor_base *pitch) |
| awaitable< void > | update (fp32 dt) |
| void | start () override |
| std::string | desc () const |
| awaitable< void > | task () |
| fp32 | yaw () const override |
| 获取当前 yaw 姿态,单位 rad。 | |
| fp32 | pitch () const override |
| 获取当前 pitch 姿态,单位 rad。 | |
| fp32 | yaw_rate () const override |
| fp32 | target_yaw () const override |
| fp32 | target_pitch () const override |
| fp32 | relative_yaw () const override |
| bool | relative_yaw_valid () const override |
| bool | online () const override |
| bool | initialized () const override |
| void | set_target_yaw (fp32 v) override |
| 设置 yaw 绝对目标,单位 rad。 | |
| void | add_yaw (fp32 v) override |
| 增加 yaw 目标量,单位 rad。 | |
| void | set_target_pitch (fp32 v) override |
| 设置 pitch 绝对目标,单位 rad。 | |
| void | add_pitch (fp32 v) override |
| 增加 pitch 目标量,单位 rad。 | |
| void | set_enabled (bool v) override |
| 启用或禁用云台输出。 | |
| void | set_recentering (bool v) override |
| void | hold () override |
额外继承的成员函数 | |
Protected 成员函数 继承自 roboctrl::log::logable< gkd_sentry_gimbal > | |
| void | log (log_level level, std::format_string< Args... > fmt, Args &&...args) const |
| 输出日志 | |
| void | log_debug (std::format_string< Args... > fmt, Args &&...args) const |
| 输出debug日志 | |
| void | log_info (std::format_string< Args... > fmt, Args &&...args) const |
| 输出info日志 | |
| void | log_warn (std::format_string< Args... > fmt, Args &&...args) const |
| 输出warn日志 | |
| void | log_error (std::format_string< Args... > fmt, Args &&...args) const |
| 输出error日志 | |
在文件 gkd_sentry_gimbal.hpp 第 19 行定义.
|
inlineoverridevirtual |
增加 pitch 目标量,单位 rad。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 42 行定义.
引用了 set_target_pitch().
|
inlineoverridevirtual |
增加 yaw 目标量,单位 rad。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 38 行定义.
引用了 set_target_yaw().
|
inline |
在文件 gkd_sentry_gimbal.hpp 第 26 行定义.
|
overridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.cpp 第 18 行定义.
| bool gkd_sentry_gimbal::init | ( | const info_type & | info | ) |
在文件 gkd_sentry_gimbal.cpp 第 147 行定义.
| bool gkd_sentry_gimbal::init | ( | const info_type & | info, |
| imu_base & | imu, | ||
| motor_base & | yaw, | ||
| motor_base * | pitch | ||
| ) |
Bind physical or simulated devices without opening IO.
在文件 gkd_sentry_gimbal.cpp 第 154 行定义.
引用了 roboctrl::log::logable< gkd_sentry_gimbal >::log_error(), pitch() , 以及 yaw().
|
inlineoverridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 36 行定义.
|
inlineoverridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 35 行定义.
|
inlineoverridevirtual |
获取当前 pitch 姿态,单位 rad。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 29 行定义.
被这些函数引用 init().
|
inlineoverridevirtual |
Measured mechanical yaw relative to the configured chassis-facing zero.
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 33 行定义.
|
inlineoverridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 34 行定义.
|
overridevirtual |
启用或禁用云台输出。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.cpp 第 23 行定义.
引用了 roboctrl::device::motor_base::set_enabled() , 以及 roboctrl::async::shutdown_requested().
|
overridevirtual |
Explicit enabled initialization state; may produce output only while enabled.
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.cpp 第 39 行定义.
|
inlineoverridevirtual |
设置 pitch 绝对目标,单位 rad。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 39 行定义.
被这些函数引用 add_pitch().
|
inlineoverridevirtual |
设置 yaw 绝对目标,单位 rad。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 37 行定义.
引用了 roboctrl::utils::rad_format().
被这些函数引用 add_yaw().
|
overridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.cpp 第 173 行定义.
|
inlineoverridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 32 行定义.
|
inlineoverridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 31 行定义.
| roboctrl::awaitable< void > gkd_sentry_gimbal::task | ( | ) |
在文件 gkd_sentry_gimbal.cpp 第 136 行定义.
| roboctrl::awaitable< void > gkd_sentry_gimbal::update | ( | fp32 | dt | ) |
One control tick, also usable by deterministic software simulation.
在文件 gkd_sentry_gimbal.cpp 第 49 行定义.
引用了 roboctrl::device::imu_base::angle(), roboctrl::device::motor_base::angle(), roboctrl::device::compensated_yaw_rate(), roboctrl::device::motor_base::faulted(), roboctrl::device::imu_base::gyro(), roboctrl::device::device_base::offline(), roboctrl::utils::rad_format(), roboctrl::device::motor_base::set_angle_speed(), roboctrl::device::motor_base::set_current(), roboctrl::device::motor_base::set_enabled(), roboctrl::utils::pid_base< T, error_measurer >::state() , 以及 roboctrl::utils::pid_base< T, error_measurer >::update().
|
inlineoverridevirtual |
获取当前 yaw 姿态,单位 rad。
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 28 行定义.
被这些函数引用 init().
|
inlineoverridevirtual |
实现了 roboctrl::device::gimbal_base.
在文件 gkd_sentry_gimbal.hpp 第 30 行定义.