GKD.RoboCtrl
载入中...
搜索中...
未找到
config.hero.hpp
1#pragma once
2
3#include <string>
4#include <vector>
5#include <initializer_list>
6
7#include "ctrl/robot.h"
8#include "device/controlpad.h"
9#include "device/imu/serial_imu.hpp"
10#include "device/motor/m9025.h"
11#include "io/can.h"
12#include "io/serial.h"
13#include "io/udp.h"
14#include "device/motor/dji.h"
15#include "utils/pid.h"
16
17namespace roboctrl::config{
18 constexpr std::initializer_list<io::can::info_type> cans = {
19 {"CAN_CHASSIS"},
20 {"CAN_GIMBAL"}
21 };
22
23 constexpr std::initializer_list<io::serial::info_type> serials= {
24 {"serial1","/dev/IMU_HERO",115200}
25 };
26
28 constexpr utils::linear_pid::params_type chassis_motor_pid = {
29 .kp = 15000.0f,
30 .ki = 10.0f,
31 .kd = 0.0f,
32 .max_out = 14000.0f,
33 .max_iout = 2000.0f
34 };
35
36 constexpr std::initializer_list<device::dji_motor::info_type> dji_motors = {
37 {device::dji_motor::M3508,3,"left_front_motor" ,"CAN_CHASSIS",0.075,chassis_motor_pid,2ms},
38 {device::dji_motor::M3508,4,"right_front_motor" ,"CAN_CHASSIS",0.075,chassis_motor_pid,2ms},
39 {device::dji_motor::M3508,1,"right_rear_motor" ,"CAN_CHASSIS",0.075,chassis_motor_pid,2ms},
40 {device::dji_motor::M3508,2,"left_rear_motor" ,"CAN_CHASSIS",0.075,chassis_motor_pid,2ms},
41 {device::dji_motor::M6020,1,"gimbal_yaw_motor" ,"can0" ,1},
42 {device::dji_motor::M6020,2,"gimbal_pitch_motor","can0" ,1},
43 {device::dji_motor::M3508,1,"left_friction" ,"can0" ,0.075},
44 {device::dji_motor::M3508,2,"right_friction" ,"can0" ,0.075},
45 {device::dji_motor::M2006,3,"trigger" ,"can0" ,0.075}
46 };
47
48 constexpr device::control_pad::info_type control_pad{
49 "serial1"
50 };
51
52 constexpr device::serial_imu::info_type imu{
53 "imu",
54 "serial1"
55 };
56
58 .gimbal_info{
59
60 },
61 .chassis_info{
62
63 },
64 .shoot_info{
65
66 }
67 };
68}
基于 Linux SocketCAN 的 CAN 总线封装。
DJI 电机及分组抽象。
通用 PID 控制器实现。
串口裸 IO 封装。
UDP 裸 IO 封装。