ORIGINAL / 原创仓库
wurenji
We are 昌平队的飞控服务、图像发布、RTSP 解码与视觉穿环实验。
本页记录本轮维护的改动和验证结果。完整差异与实时合并状态请查看 Pull Request ↗。
准备环境
- Linux + ROS 1/catkin + C++14 + OpenCV;厂商 SDK 和 .so 必须匹配目标 CPU。
- source /opt/ros/melodic/setup.bash
- 将检出作为 catkin_ws/src,执行 catkin_make;包依赖需先满足,完整构建未验证。
使用入口
- 离线独立 Python 3 环境:python -m pip install numpy opencv-python-headless
- python -m unittest discover -s tests -v
- 部署脚本顺序:startpsdk.sh、startroscore.sh、startuavservice.sh、startimage.sh、pass_ring.sh。运行前检查脚本机器路径;最后一步会真实起飞。
目录结构与职责
- raspicam_node/: ttauav_node 消息/服务、通信与视觉
- raspicam_node/src/cv/: 圆环图像算法
- raspicam_node/src/test_scripts/pass_ring.py: 飞行状态机
- image_pub/: 图像发布及厂商 RTSP 库
- Decodertest/: 独立解码器示例
- tests/: 不连接 ROS 的离线视觉测试
本次整理
- 背景按连通域 label 0 排除,并保留原包围盒面积稳定排序,避免改变 circles[0] 的目标选择。
- 修正歧义匹配时删除错误双向边及边表遍历中修改问题。
- 穿环脚本相对源码路径导入;demo2 空函数改为显式 NotImplementedError,修复语法但保留未完成状态。
- 根 CMake 从失效 Windows 绝对路径链接改为真正的 Git 普通文件(100644)catkin_workspace 入口;移除空 dynamic_reconfigure 调用及不存在 include 导出。
- 纠正 README 中不存在的脚本名,补充实际结构/依赖/运行风险;移除已提交 pyc,增加缓存忽略和 .editorconfig。
检查结果
| 检查项 | 状态 | 证据 / 范围 |
|---|---|---|
| Offline image regression | passed | Python 3 + NumPy + OpenCV 5.0.0:4/4 测试通过(全前景、空图、多个匹配候选、多目标完整 detect 顺序)。多目标回归确认 circles[0] 仍为 [100,570,450],另一目标为 [140,130,160]。 |
| Python AST | passed | 11 个 .py 文件语法解析通过;未执行 ROS 导入。 |
| Shell syntax | passed | Git Bash bash -n 分别检查 5 个根目录 .sh 均通过,未执行脚本。 |
| Package XML | passed | 2 个 package.xml 解析通过。 |
| ROS/hardware integration | not_run | 无 Linux ROS/catkin、目标 CPU 厂商库或飞行硬件环境。 |
| Git file mode | passed | git ls-files -s CMakeLists.txt:100644,确认不是符号链接120000。 |
已知限制与后续工作
- 未执行任何飞行服务;视觉单元测试不能证明控制稳定性或硬件安全。
- 旧脚本仍含部署机器路径与 Python 2 风格 shebang,需要按目标 ROS/Python 环境配置。
- demo2.py 为未完成示例;整套 catkin 编译、消息生成、ABI、RTSP 和整机行为待验证。
- 保留上游 LICENSE,厂商二进制授权需分别确认。
- 用户已明确同意暂缓完整 ROS/飞行硬件验证;本轮仅修复已确认的文件类型和目标排序问题,未执行飞行服务。