GKD.RoboCtrl
载入中...
搜索中...
未找到
chassis.h
1
#pragma once
2
3
#include "
core/async.hpp
"
4
#include "
core/logger.h
"
5
#include "utils/singleton.hpp"
6
#include "
utils/utils.hpp
"
7
8
namespace
roboctrl::ctrl{
9
class
chassis
:
public
utils::singleton_base
<chassis>,
public
logable
<chassis> {
10
public
:
11
awaitable<void>
task();
12
std::string desc()
const
{
return
"chassis"
;}
13
14
inline
void
set_gimbal_yaw(
fp32
yaw){gimbal_yaw_ = yaw;}
15
inline
fp32
gimbal_yaw()
const
{
return
gimbal_yaw_;}
16
17
inline
void
set_velocity(
vectorf
velocity){velocity_ = velocity;}
18
inline
vectorf
velocity()
const
{
return
velocity_;}
19
20
inline
void
set_rotate_speed(
fp32
speed
){rotate_speed_ =
speed
;}
21
inline
fp32
rotate_speed()
const
{
return
rotate_speed_;}
22
23
struct
info_type
{
24
using
owner_type
=
chassis
;
25
};
26
27
bool
init(
const
info_type
& info);
28
private
:
29
awaitable<void>
speed_decomposition();
30
31
vectorf
velocity_;
32
fp32
gimbal_yaw_ {};
33
fp32
rotate_speed_ {};
34
fp32
max_wheel_speed_ {2.5f};
35
};
36
37
static_assert
(utils::singleton<chassis>);
38
}
async.hpp
异步任务上下文组件。
roboctrl::ctrl::chassis
Definition
chassis.h:9
roboctrl::log::logable
用于提供日志功能的辅助基类 通过CRTP模式实现,要求派生类实现desc()方法以提供描述信息,在继承时传入派生类自身类型作为模板参数。 继承这个类后,派生类可以方便地使用log_debug、log_i...
Definition
logger.h:178
roboctrl::utils::singleton_base
提供单例模式的单例基类
Definition
singleton.hpp:19
logger.h
用于日志输出的组件。
roboctrl::async::awaitable
asio::awaitable< T > awaitable
协程任务类型。
Definition
async.hpp:42
roboctrl::ctrl::chassis::info_type
Definition
chassis.h:23
roboctrl::vector< float >
utils.hpp
常用数值与字节工具集合。
roboctrl::fp32
float fp32
单精度浮点别名。
Definition
utils.hpp:22
include
ctrl
chassis.h
制作者
1.9.8