GKD.RoboCtrl
载入中...
搜索中...
未找到
serial_imu.cpp
1
#include "device/imu/serial_imu.hpp"
2
#include "
device/imu/base.hpp
"
3
#include "
io/serial.h
"
4
#include "
utils/utils.hpp
"
5
6
using namespace
roboctrl::device
;
7
8
struct
__serial_imu_pkg
9
{
10
float
yaw;
11
float
pitch;
12
float
roll;
13
float
yaw_v;
14
float
pitch_v;
15
float
roll_v;
16
} __attribute__((
packed
));
17
18
serial_imu::serial_imu(
const
info_type& info) :
imu_base
{100
ms
}, info_{info} {
19
auto
& serial =
roboctrl::get<io::serial>
(info.serial_name);
20
serial.on_data(1,[&](
const
__serial_imu_pkg
&
pkg
){
21
angle_ = {
22
utils::rad_format(
pkg
.roll * Pi_f / 180.f),
23
utils::rad_format(
pkg
.pitch * Pi_f / 180.f),
24
utils::rad_format(
pkg
.yaw * Pi_f / 180.f)
25
};
26
gyro_ = {
27
pkg
.roll_v * (
Pi_f
/ 180.f) / 1000.f,
28
pkg
.pitch_v * (Pi_f / 180.f) / 1000.f,
29
pkg
.yaw_v * (
Pi_f
/ 180.f) / 1000.f
30
};
31
32
tick();
33
});
34
}
base.hpp
IMU 抽象基类。
roboctrl::async::awaitable
asio::awaitable< T > awaitable
协程任务类型。
Definition
async.hpp:42
roboctrl::device
设备模块
Definition
base.hpp:25
serial.h
串口裸 IO 封装。
__serial_imu_pkg
Definition
serial_imu.cpp:9
roboctrl::device::imu_base
IMU 基类,封装常见数据通道。
Definition
base.hpp:30
utils.hpp
常用数值与字节工具集合。
roboctrl::Pi_f
constexpr auto Pi_f
单精度浮点类型的 Pi 常量。
Definition
utils.hpp:34
device
imu
serial_imu.cpp
制作者
1.9.8