Skip to Content
开发与上游

开发与上游

PlantUML:项目自有代码、第三方上游与验证边界

修改范围

参赛开发优先修改:

  • src/robotac_examples 中队伍自行新增的示例或算法;
  • 各项目自有包的配置;
  • docs 中与本队程序对应的运行说明;
  • 独立的新 ROS 包。

不建议直接修改第三方目录。确需修改时,应单独记录上游版本、修改原因和差异。

代码约定

  • 基线为 Python 3.8,不使用更新版本专有语法。
  • 教学脚本不超过 200 行,公共模块不超过 250 行。
  • 使用普通函数和小型类;状态变化使用明确常量和 if/elif
  • 不使用 dataclass、future annotations、异步框架、装饰器框架、海象运算符或模式匹配。
  • 项目自有注释、日志和文档使用正式中文。
  • ROS 接口、参数和程序标识符保持原文。

tools 目录

工具用途
install_ubuntu20.sh安装 Ubuntu 20.04 与 ROS Noetic 依赖
build.sh执行 catkin 增量构建
test_01_source.sh静态结构和文档检查
test_02_build.sh构建与包发现检查
test_03_unit.sh纯单元测试
test_04_simulation.sh简化假飞控 rostest
test_05_hardware_readonly.sh真实设备只读检查
sync_workspace.sh不删除远端文件的工作空间同步

工具之间不自动串联硬件或实飞步骤。

测试位置

测试内容
robotac_examples/test坐标、Tag 筛选、航点解析、假飞控与假 Tag
robotac_localization/test数值有限性和距离计算
robotac_servo/test控制帧、角度换算、脉宽和软件限位

新增飞行逻辑应先补纯函数测试,再补不连接硬件的 rostest。受控实飞结果单独记录,不能写入 自动测试结论。

上游版本

.reposversions.lock 记录固定来源与提交。主要第三方目录如下:

目录上游
src/mavrosMAVLink MAVROS
src/apriltagAprilRobotics apriltag
src/apriltag_rosAprilRobotics apriltag_ros
src/Livox-SDK2Livox SDK
src/livox_ros_driver2Livox ROS Driver 2
src/fast_lioFAST-LIO
src/web_camSunray 相机驱动来源

第三方目录中的 README、许可证和变更记录保持原文。项目根目录的 MIT License 不替代第三方 许可证。

提交前检查

# 检查源码、接口和文档链接。 ./tools/test_01_source.sh # 运行纯单元测试。 ./tools/test_03_unit.sh

在 Ubuntu 20.04 上继续执行构建和仿真。修改接口、坐标、启动前检查或实机参数后,应在 变更说明中写明已经完成哪些测试,还有哪些项目需要在实机上确认。