1 Star 2 Fork 0

TJU-RM-CV / energy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

能量机关

入门

python main.py
  • 如果报错说少什么库,再一个一个去用 pipconda 安装
  • 成功运行后,在显示的图片上按 q 结束程序,按其他键则下一帧

算法基本流程

  1. 图片预处理
  2. 找到符中心 center
  3. 识别待击打扇叶 target
  4. 子弹在空中时,由于重力和扇叶旋转,进行补偿,调整击打点
  5. 使用PID算法输出控制机器人的位姿调整角度

PS

  • 其中 识别待击打扇叶 较难理解,要运行着代码,看着 imshow 的图像来理解代码(先看懂 cv2.findContours,在 rune/rune.py 中有该函数的说明)
  • 算法详细步骤在注释里

重要文件说明

.
├── assets
│   ├── params.json              # 能量机关参数
│   └── rune.avi
├── main.py                      # 程序入口
└── rune                         # 能量机关相关实现
    ├── center.py                    # 1. 负责找到符中心 center
    ├── target.py                    # 2. 负责找到要击打的扇叶 target、能量机关旋转补偿、负责重力补偿
    ├── hiter.py                     # 3. PID计算位姿
    └── rune.py                      # 能量机关主类, 调用上面几个类

调试注意点

assets/params.json 中的 debug 参数作用,以调试 find_target 来说明:

  • 大部分 log 和 imshow,只有满足条件时才会执行,见 rune/utils.py 中的 DEBUG 字典
  1. 查看 rune/utils.py 中的 DEBUG 字典,发现 find_target 对应的 int 为3
  2. 为了调试 find_target,将 assets/params.jsondebug 参数设置为3
  3. 再运行 main.pyfind_target 过程中,会执行更详细的 log 以及 imshow

后期调试的时候,可以这样:

  • main.py 中的 cv2.waitKey(0) 改为 cv2.waitKey(1)
  • 如果最终没有找到 target,给个 cv2.waitKey(0) 停下来看看

空文件

简介

基础小能量机关python算法 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/tju-rm-cv/energy.git
git@gitee.com:tju-rm-cv/energy.git
tju-rm-cv
energy
energy
master

搜索帮助