Gimbal standared controller of IRobot 2022 ECHG
注意更新本地工程之前备份参数文件,注意调整条件编译!!!
2022.4.19(重大bug修复)
1、修复了loop fifo的读取bug 2、加入了热量闭环的测试代码
2022.4.8 (工程结构重大更新、自瞄逻辑更新)
1、加入了键位配置文件,用于更方便地调整云台的控制键位,并将原本参数文件中的鼠标灵敏度和摇杆灵敏度参数放入到了键位配置文件中,注意修改各自的参数文件将这两组参数删除
2、加入了imu数据的循环缓冲队列,每轴队长为64,通过自瞄数据中返回的时间戳信息从队列中寻找相应时间的imu数据进行自瞄控制以消除自瞄处理过程中的延迟和通信延迟带来的影响
2022.3.26
1、加入了遥控器离线保护、视觉离线保护,离线监测的时间阈值放在了Setting.h的顶部。
2、为了方便调试,加入了视觉状态的LED显示,如果视觉没有离线则C板上亮起蓝灯,如果视觉识别到目标,则C板亮起红灯
3、改变了遥控器使能底盘的拨杆位,之前的方式为左拨杆打到中间使能底盘,否则底盘无力,为了防止视觉调试时误开底盘,现改为左拨杆到下方使能底盘,否则底盘无力
2022.3.20
1、加入了离线保护功能
2、加入了裁判系统信息的读取,之后会加入热量闭环和射速微调
3、加入了麦轮英雄配置
2022.3.19
1、修改了因CAN发送邮箱溢出导致的IMU数据包发送不完全的BUG,目前IMU数据包发送频率为严格500HZ,云台指令包发送频率为严格100Hz,电机控制指令发送频率在1000Hz左右
2、加入了通信离线检测,之后会做离线报警和保护
2022.3.4
Hello World
/application 后台程序和中断服务程序,其中Attitude为姿态解算线程,Calculate为云台控制线程,Debug为调试线程,Interrupt为中断服务
/algorithm 算法库
/bsp 板级外设支持包
/device 设备驱动(通信应用层接口)
/Config 工程配置与通信接口定义
其他均为CubeMX生成的代码结构,不建议更改,否则可能会造成CubeMX代码生成的不兼容
1、电机配置和接线
按照机器人制作规范完成云台全部电机的电源线连接,设置电机ID,建议(不强制)设置如下:
左摩擦轮0x201;右摩擦轮0x202,Yaw轴电机0x205;Pitch轴电机0x206;步兵哨兵拨盘0x203;英雄大拨盘0x207
以上配置可以满足通信总线的最高效率。连接CAN总线,这里要求除了YAW轴电机和英雄大拨盘其他的所有云台电机连接到同一条CAN总线上(CAN1、CAN2无所谓),上位机、YAW轴电机、英雄大拨盘、底盘、裁判系统通信板连到另一条CAN总线上(CAN1、CAN2无所谓)。
2、复制参数表
复制/Config/XXXParameter.h文件并重命名,比如7号哨兵可以命名为Sentry7Parameter.h,以下配置以一个哨兵云台为例。
3、编写设置文件
打开/Config/Setting.h,在文件开头添加一个自拟名称的宏定义作为条件编译的总条件,然后注释掉其他宏定义
编写详细的配置信息
其他都比较好理解,这里对 “IMU安装方向” 进行说明,该宏定义的含义是云台水平时陀螺仪坐标系xyz与云台姿态坐标系XYZ的对应关系,比如 “IMU_DIRECTION_rxryz_XYZ” 的含义是:云台的X轴的方向和imu水平放置时x轴的反方向相同(rx),云台Y轴方向和imu水平放置时y轴的反方向相同(ry),云台的Z轴的方向和imu水平放置时z轴的方向相同(z),即 “rxryz” 对应 “XYZ”。
一般这时就可以使用遥控器控制云台了
4、修改参数表的参数
精细调参,满足自瞄的控制和弹道要求。