技术方向 | 开源部分 | 开源技术点 | 编写负责人 |
---|---|---|---|
算法方案 | 工程自动兑矿与自动取矿 | 自动兑矿与自动取矿的技术通路 | 余承寰、曾熙朗 |
- 本次开源作品自动兑换与自动取矿工程,出自华南理工大学华南虎战队工程视觉余承寰和工程电控曾熙朗。作品仅用于技术交流,未经作者允许,不得作任何商业用途。
- 本作品的声明以及其修改权、保护作品完整权及最终解释权均归华南理工大学华南虎战队所有。
23赛季工程兑换难度增大,在经过分区赛的尝试和国赛的规则改动后,所有的队伍都可以兑换最高等级的矿石。在此情景下,充分缩短兑换时间是提高赛场队伍作战能力的重要战略。缩短兑换时间的方法目前有2种,一种是使用自定义控制器由操作手手动兑换,另一种方案是通过视觉对兑换站的灯条进行识别从而驱动机械臂自动兑换。自动取矿同理。采用第二种方案的原因是,自定义控制器的表现始终取决于操作手的赛场表现,有较大的不确定性,而视觉自动兑换仅取决于硬件的稳定性和算法的稳定性,在保证稳定性的情况下,可以充分保证赛场的表现,并减轻操作手的赛场负担。
- 运用6D-of位姿估计网络进行金矿石姿态解算
- 运用传统视觉opencv进行兑换槽四角点识别、滤波,基于solve_pnp解算位姿,再进行双目相机置信度计算、筛选
- 通过串口接收电控数据,自动开启不同的视觉功能,并将功能标志位+解算数据(四元数+位移)经串口发送到主控单片机。
- 接收视觉传来的姿态数据和空间位置数据
- 将以上数据转换为机械臂的目标位点并计算中间点和终点,中间点为机械臂前往终点的辅助点,终点为兑换站前表面向外移动一个矿石的距离(20cm,可自定义距离)
- 提供根据视觉姿态数据得出的机械臂3维运动向量数据
- 逆运动学解算及其有效性检测(机械臂机械限位)(配套华南虎23赛季国赛工程的机械臂结构)
- keras神经网络架构
- openvino神经网络加速推理架构
- opencv-4.7
- ros-noetic
- RTOS,或其他可以执行循环的环境即可。
- C库 math.h
ArmMotionPlan_array
与StationLinearPath
为电控代码,用子模块链接。
Linemod-Real
与Linemod-Render
为视觉部分代码,视觉部分详细细节可以参考PDF RM2023-华南理工大学-华南虎-工程视觉开源.pdf
对于自动兑矿和自动取矿,实际操作中仅需分为2个步骤来考虑:
- 确定目标位置(视觉)
- 到达目标位置,然后返回初始位置(电控)
对于第一个步骤,我们通过小三轴前端的模组相机拍摄一张RGB图像,送入Efficientpose神经网络进行位姿估计,对于兑换槽是车身两侧的两个工业相机通过opencv进行光斑筛除、排序、识别、pnp解算。将两者解算信息统一为xyz三轴坐标加四元数的方式,将位姿数据和标志位发送到电控方面。采取四元数的原因是四元数本身发送数据量少,并且相对欧拉角而言有一系列优秀的数学性质。
对于第二个步骤,在接收到视觉传来的位姿数据后,先转换为对逆解算较友好的齐次变换矩阵,推出机械臂逆解,最后采用几何方法规划出机械臂末端前往目标点(兑换站前表面或矿石表面)的路径,并将轨迹数据交由执行代码执行。对于这样的轨迹执行,我们开发出了可以快速传入轨迹数据后自动执行轨迹的执行器算法。
总而言之,在实践中,我们确定这样的自动化方法是有效的,且对开发效率有较大的提高。
对于子模块的具体使用和源码请参考子模块的readme和仓库中的pdf文档等。
- 解决矿石识别算法的部署问题
- 提高自动兑换矿石的成功率
- 改善路径规划方法