2024赛季ORIGIN遥控(DT7/自定义控制器)技术文档
V1.0 CREATED BY @aybGuhyb 2024/05/23
一、遥控器工作原理
一般的遥控器,将遥控器的摇杆、拨杆、拨轮操作传递给接收机,主控板读取接收机信号实现遥控功能
DT7遥控器(还有(N)DJ6等型号)及其配套的DR16接收机(2.4GHZ DBUS)是RM最常用的遥控设备(均已停产),其控制协议在常用的摇杆、拨杆、拨轮信息之后,附带了键鼠操作的信息,在连接裁判系统操作手程序后,可将操作手的键鼠操作同步发送给机器人。
遥控器初次使用、拆装维修后需使用RC SYSTEM ASSISTANT软件进行校准。
说明书及软件下载https://www-v1.dji.com/cn/dt7-dr16-rc-system/download.html
二、遥控器配对及连接方式
DR16与开发板C型连接方式
DR16右上角3PIN接口,与开发板C型DBUS接口按照对应线序连接即可。
DT7&DR16配对方式
配对前直至配对完成前,请确保所有其他遥控器关闭电源,以免遥控器串频,发生超控意外。
配对需使用取卡针(或其他尖头类似物)
1、正确连接DR16至开发板C型,给开发板C型正常供电,此时DR16右下角指示灯亮起。
2、打开需配对的DT7遥控器,DR16指示灯状态改变为绿灯闪烁,提示有可配对遥控器。
3、使用取卡针长按指示灯上方对频按钮,指示灯状态改变为红灯闪烁,提示进入对频模式,松开按钮。
4、等待2秒,若此时DR16指示灯状态为绿灯常亮,关闭该DT7后指示灯为红灯常亮,重新打开该DT7后又恢复为绿灯常亮,则说明配对完成且连接正常。
5、如状态不同,请重复2、3两步直至状态与第4步相同。
三、图传链路工作原理
图传链路由图传发送端VT02和图传接收端VT12(5GHZ)组成。图传发送端采集相机实时画面,并发送给接收端,显示在操作手程序的主画面。图传链路的遥控信息由自定义控制器数据和键鼠数据两部分组成。遥控信息由操作手程序采集,并由图传接收端发送回图传发送端,由图传发送端的串口输出至机器人。图传链路比DT7遥控器具有更优的稳定性。
四、图传连接方式
电源管理模块的mainctrl黑色航空插连接主控模块,另一个mainctrl航空插连接图传发送端。
图传接收端连接电脑(注意接收端网络适配器IP地址需调整为192.168.42.105),打开操作手程序,按P键,在面板左侧更改目标连接机器人ID,此时面板右下角图传信道改变为机器人对应信道,注意红方和蓝方部分机器人图传信道相同,调试时建议全队都选用同一颜色。(提示登陆失败是指服务器连接失败,和图传无关,只要右下角信道号发生变化就代表改选目标连接机器人操作成功)
图传接收端与操作手程序正常连接时,P键面板左下角图传串口指示灯为绿灯。如果左下角图传串口和连接状态同时为绿灯,面板右下角速率正常更新,表示发送端和接收端连接成功,等待几秒画面就会正常更新,此时操作手主画面左下角图传提示灯为绿色/黄色,说明图传工作正常。若等待一段时间后画面仍为灰色,请保持USB连接,重新插拔接收端电源即可恢复正常。
此处可能异常情况较多,若无法连接,请使用RMTOOL检查图传激活状态(新图传发送端接收端均需激活再使用),检查主控和图传固件版本是否最新,检查操作手程序是否最新,对照手册及说明书排除问题。
五、图传链路(遥控)连接方式
图传发送端与开发板C型连接
图传链路接收到的遥控信号由图传发送端侧面的3PIN串口输出至开发板C型的USART(3PIN/4PIN)串口,依照线序正确连接,TX接RX、RX接TX、GND对接、5V(若有)排除。
一般来说,开发板C型总有+2个空闲USART串口,常用其中一个连接电源管理模块3PIN串口读取裁判系统数据,另一个可用于图传链路等自定义功能的开发。
图传接收端与操作手程序连接
【RM2023-自定义控制器图传链路通信开源】上海大学-SRM战队
https://bbs.robomaster.com/forum.php?mod=viewthread&tid=22907&fromuid=87601
该开源文档为可行方案,可参照执行。需注意:
1、USB转232串口线需要为带芯片的线,而不是普通转接线(价格上有明显差别),带芯片的转接线与电脑正确连接后,操作手程序主画面左下角自定义控制器指示灯即为绿色。
2、可能版本有所更新,图传链路传递自定义控制器数据不需打开服务器,仅需确保图传和自定义控制器连接正确,数据收发正常,开发板C型即可正常读取数据。
六、图传链路实现
[RoboMaster 裁判系统串口协议附录 V1.6.2](https://terra-1-g.djicdn.com/b2a076471c6c4b72b574a977334d3e05/RM2024/RoboMaster 裁判系统串口协议附录 V1.6.2(20240426).pdf)
本赛季仅有2号工程使用图传链路传递自定义控制器数据进行操控,依照1.6.2裁判系统串口协议制作,使用ARDUINO UNO开发板实现。该文档内不会提供具体代码。
自定义控制器端发送数据
1、依照裁判系统串口协议,串口输出对应格式数据包。
2、注意裁判系统串口协议给出的发送频率限制。
3、CRC8算法为MAXIM,CRC16算法为TMS37157。
4、由于字节序问题,两字节内容(如命令码0x0302)实际串口输出为0203,可连接VOFA(或其他上位机软件),观察调试输出。
开发板C型接收数据
1、本赛季未对自定义控制器数据进行CRC校验,在未来赛季中可添加。
2、数据缓冲区长度应当大于等于一个完整的图传链路数据包长度。(看裁判系统串口协议,自己加总)
3、接收时存入数据的结构体以及数据类型应与发送时的一致。在DUBUG模式中确认接收到的数据是自己想要的,调试无误后再进行遥控操作,以免发生超控意外。
4、接收的结构体定义时需为"__packed",使其内存紧密排列,便于memcpy直接复制内存数据。
七、工程自定义控制器技术细节
硬件部分
24赛季工程自定义控制器使用3个电位器分别对应小臂的YAW、ROLL、PITCH三轴。接线使用焊锡管一分三(5V/GND),其他接线使用烙铁焊接,电位器两端为GND和5V,中间端子接模拟输入(ANALOG IN)口。焊接可靠性较高,仅在最后一场比赛中ROLL轴电位器焊接处断裂,现场及时补焊(PD充电宝+电烙铁),在3分钟准备时间完成维修。自定义控制器供电使用充电宝,需支持小电流模式(无小电流模式上电后一段时间会自动下电)。
软件部分
上电时:取初始若干次的读数值,取平均,作为默认OFFSET值(上电时校准)
定义数据结构体–>读入模拟口原始数据(0~1023)–>映射到360°(0~360)–>均值滤波–>转化为弧度制(0~3.14159)–>减去默认OFFSET值(这个校准什么时候减都行)–>拼合数据成整包,同时计算crc–>串口发布
八、文档/软件获取
在ROBOMASTER官网有所有裁判系统软件下载和硬件的说明书。(RM TOOL在软件产品-过往赛季中)https://www.robomaster.com/zh-CN/products/components/referee?djifrom=nav
在ROBOMASTER官网有所有官方手册及通信协议的下载。https://www.robomaster.com/zh-CN/resource/announcement/competition RoboMaster 2024机甲大师高校系列赛比赛规范文件
有问题优先看官方文档和手册,排除问题,语法问题多问LLM(