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
8namespace roboctrl::ctrl{
9class chassis :public utils::singleton_base<chassis>, public logable<chassis> {
10public:
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);
28private:
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
37static_assert(utils::singleton<chassis>);
38}
异步任务上下文组件。
用于提供日志功能的辅助基类 通过CRTP模式实现,要求派生类实现desc()方法以提供描述信息,在继承时传入派生类自身类型作为模板参数。 继承这个类后,派生类可以方便地使用log_debug、log_i...
Definition logger.h:178
提供单例模式的单例基类
Definition singleton.hpp:19
用于日志输出的组件。
asio::awaitable< T > awaitable
协程任务类型。
Definition async.hpp:42
常用数值与字节工具集合。
float fp32
单精度浮点别名。
Definition utils.hpp:22