重要提醒
该项目已停止更新,该仓库仅作为归档使用
当前BTP&DM的后续项目是Bubble,欢迎您访问我们的新项目。
Important Reminder
The project has been completely discontinued for maintenance and this repo is only for archiving.
Bubble is the successor of BTP&DM, and you are welcome to visit the new project.
Birdiebot目标感知与决策框架(Birdiebot Target perception And Decision Making Framework, BTP&DM)是一个针对RMUC/RMUL/RMUT开发的一款开源框架,你可以通过BTP&DM快速构建机器人。该项目受到上海工程技术大学上海市大学生创新创业基地木鸢机甲工作室的资助,参与该项目请联系[email protected]
BTP&DM包含了以下内容:
- 高度解耦的模块化设计能够通过在框架中添加不同层的方式实现新的任务
- 基于opencv的传统视觉目标特征检测,包含装甲板识别及能量机关识别
- BCP(Birdiebot Communication Protocol,birdiebot通讯协议)
- 使用深度学习完成目标识别与分类
- BCPViewer对使用BCP数据的实时UI显示
- 对于赛场环境的决策处理
为了帮助快速上手BTPDM,你可以参考下面的视频教程:
欢迎访问BTPDM的wiki页面,你可以在这里发现BTPDM的详细框架设计及功能模块说明
系统框架概述
环境配置和依赖工具
文件目录结构及文件用途说明
设计思想与设计模式
木鸢通讯协议概述
性能分析
功能模块:任务调度器
功能模块:装甲板识别及自瞄任务
功能模块:能量机关识别及击打任务
功能模块:木鸢通讯协议
功能模块:BCPloger及BCPViewer
算法分析:位姿解算
测试分析及效果展示
BTPDM优化方向和Roadmap
BTP&DM推荐使用PEP8编码规范编写的python代码,在开始修改BTP&DM前,请谨记:A Foolish Consistency is the Hobgoblin of Little Minds
在编辑和维护BTP&DM前,请保证代码可读性和规范,BTP&DM使用PEP-8编码风格
- 养成良好的命名规范,正确对变量名进行命名
- 正确的引入需要的packages
- 请确保所有模块、重要功能模块添加了注释,请使用 Strunk and White, The Elements of Style 中推荐的注释风格
- 对异常进行检查并抛出相应的异常信息,任何意外出现的异常都可能直接导致失去一局比赛
详细的编码风格请参阅PEP 8 -- Style Guide for Python Code
BTP&DM使用 Apache Licence 2.0许可证,鼓励在尊重木鸢机甲工作室及上海工程技术大学的著作权基础上的代码共享,欢迎各参赛队参与项目修改与维护,并作为开源或商业软件再次发布。
但注意
- 您需要在修改的代码中保留Apache Licence
- 如果你使用了修改了代码,需要在被修改的文件中说明。
- 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他BTP&DM、木鸢机甲工作室及上海工程技术大学所规定需要包含的说明。
- 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
木鸢机甲工作对其发行的或与合作伙伴共同开发的BTP&DM,受各国版权法及国际版权公约的保护。
对于上述版权内容,超越合理使用范畴、并未经木鸢机甲工作室书面许可的使用行为,木鸢机甲工作室均保留追究法律责任的权利。