【RM2021-指哪打哪激光测距云台开源】大连理工大学-凌BUG
大家好,我是大工划水电控千万,本贴是2021赛季大工英雄电控技术分享贴Part2。这个帖子将向你介绍我的一个小装置——激光测距云台——也叫指哪打哪的一些技术细节。本贴中我们放出了开源文档、代码以及装配体。 便于部署的激光测距云台可以直接测得精准距离,并通过弹道模型辅助瞄准,对于新队伍来说,在视觉方案成熟前是个不错的辅助瞄准装置。
请注意:
1.本开源仅限于RoboMaster各参赛队之间技术交流使用,不得用于任何商用行为。
2.大连理工大学凌BUG战队享有本开源的最终解释权。
3.本项目采用BSD开源协议,请自行遵守相关规范。
开源文档:
链接:https://pan.baidu.com/s/1d1B0ngkKYeiMYY05nGwiaA 提取码:RM21
部分代码:
链接:https://pan.baidu.com/s/13wNrCmi-ZZ7tvtL6bFKrYA 提取码:RM21
Inventor装配体
链接:https://pan.baidu.com/s/1zEC2plic8ittXQ2AcvLNQg 提取码:RM21
- "开源文档"包含一份PDF文档
- Code.zip"包含LaserL1.c、LaserL1.c、readme.md三个文件
- "激光云台装配体.zip"包含一个Inventor2022项目
以下将对结构进行简要介绍,最新最全内容请见开源文档,或在页面末尾查看PNG版文档。
这个结构存在的意义是什么:一言蔽之,自瞄的一部分替代方案,解决了英雄打固定靶的瞄准问题。
指哪打哪
从原理说起,我的期望是,在知道距离与弹速的前提下推算角度。弹丸飞行是有阻力的抛体运动,而阻力大小与速度有关系。由于射速不是太快,射程也不是太远,而且为了简化积分微分过程,选用f=-kv作为阻力公式。随后,由于-kv的线性属性,可以将阻力分解后作用于速度在x,y的分量上。x,y分量以时间作为沟通的桥梁,随后一顿积分微分猛如虎(略),就可以推导出一个超越方程,也就是说弹道当前情况下只有数值解,其原因是不知道地面的方程。
其上便是推导后的方程,除了θ全部已知,θ只有数值解,需要暴力解算。综合牛顿法、梯度下降法等方式,考虑到MCU算力和浮点计算占用资源,本人还是发现二分法好用,在优化端点后,7次计算即可达到1cm精度。
原理有了,我们再来聊聊结构实现。考虑精度和成本后,测距最好用激光传感器,角度可以读取陀螺仪或者换算。由于规则限制,可见激光一个枪管只能配一个(2号除外),因此这个激光传感器最好可以直接替代原红点。然后,我希望“指哪”的过程可以更加“独立”,而且实现一次瞄准后传感器仍然可以正对目标,因此我选择给激光传感器加个Pitch轴,这个轴不需要太大的扭矩但是需要精准控制,直接用三相电机体积过大,综合考虑后还是舵机好用(空程可以接受,响应速度快,角度可知,还便宜)。综上所述,我的“指哪打哪”机构成为了一个在红点位置上的激光测距挂仓。
上图为装配体渲染图,完整装配体已上传:[attach]30568[/attach]
结构也有了,现在我们该谈谈算法和操作逻辑了。其间涉及的内容主要是角度换算和暴力计算的算法实现,这一部分仁者见仁,代码整理了好了我再放出来。特别提醒大家弧度制和角度值的使用。
关于使用效果,反正这个机构也不复杂,大伙试试不就知道了吗#滑稽。咳咳,打蓝方确实挺好使的,详情可以看看全国交流中跟浙纺的第一次交流录像,抬手一枪就中。但是后续打红方就不太好使,主要是激光功率太低,人眼不知道“指哪”到底指到了哪,但是解决方案倒也不少,甚至UI就可以做到,这就要靠广大RMer的智慧了。
下面是开源文档:
请问这篇文章对你有用吗?
【RM2021-指哪打哪激光测距云台开源】大连理工大学-凌BUG