GKD.RoboCtrl
载入中...
搜索中...
未找到
gimbal.h
浏览该文件的文档.
1
6
#pragma once
7
#include "
core/async.hpp
"
8
#include "
device/motor/base.hpp
"
9
#include "
device/motor/dji.h
"
10
#include "
utils/pid.h
"
11
#include "utils/singleton.hpp"
12
#include "
utils/utils.hpp
"
13
14
namespace
roboctrl::ctrl{
18
class
gimbal
:
public
utils::singleton_base
<gimbal>,
public
logable
<gimbal>{
19
public
:
20
inline
std::string desc()
const
{
return
"gimbal"
;}
21
inline
fp32
yaw()
const
{
return
yaw_;}
22
inline
void
set_yaw(
fp32
yaw){yaw_ = yaw;}
23
27
struct
info_type
{
28
using
owner_type
=
gimbal
;
29
30
utils::rad_pid_motor<device::dji_motor>::params_type
yaw_motor_params;
31
utils::rad_pid_motor<device::dji_motor>::params_type
init_yaw_motor_params;
32
utils::rad_pid_motor<device::dji_motor>::params_type
pitch_motor_params;
33
};
34
38
bool
init
(
const
info_type
& info);
39
43
awaitable<void>
task
();
44
45
private
:
46
fp32
yaw_ = 0;
47
48
utils::rad_pid_motor<device::dji_motor>
yaw_motor_;
49
utils::rad_pid_motor<device::dji_motor>
init_yaw_motor_;
// 用于开机把云台转到初始位置
50
utils::rad_pid_motor<device::dji_motor>
pitch_motor_;
51
};
52
53
static_assert
(
utils::singleton<gimbal>
);
54
}
async.hpp
异步任务上下文组件。
roboctrl::ctrl::gimbal
云台主控制器单例。
Definition
gimbal.h:18
roboctrl::ctrl::gimbal::init
bool init(const info_type &info)
初始化云台资源与控制器。
Definition
gimbal.cpp:15
roboctrl::ctrl::gimbal::task
awaitable< void > task()
主循环任务,负责刷新控制器。
Definition
gimbal.cpp:8
roboctrl::log::logable
用于提供日志功能的辅助基类 通过CRTP模式实现,要求派生类实现desc()方法以提供描述信息,在继承时传入派生类自身类型作为模板参数。 继承这个类后,派生类可以方便地使用log_debug、log_i...
Definition
logger.h:178
roboctrl::utils::singleton_base
提供单例模式的单例基类
Definition
singleton.hpp:19
roboctrl::utils::singleton
Definition
singleton.hpp:51
base.hpp
电机基础组件。
dji.h
DJI 电机及分组抽象。
roboctrl::async::awaitable
asio::awaitable< T > awaitable
协程任务类型。
Definition
async.hpp:42
pid.h
通用 PID 控制器实现。
roboctrl::ctrl::gimbal::info_type
初始化参数。
Definition
gimbal.h:27
roboctrl::device::controlled_motor::params_type
Definition
base.hpp:148
roboctrl::device::controlled_motor
被控制算法(例如PID)控制的电机
Definition
base.hpp:142
utils.hpp
常用数值与字节工具集合。
roboctrl::fp32
float fp32
单精度浮点别名。
Definition
utils.hpp:22
include
ctrl
gimbal.h
制作者
1.9.8