跳转至

D. 教材代码资源

本附录是教材使用的代码资源索引。教材正文中的代码入口是主要使用位置;本页用于按用途集中查找同一批资源,不替代正文给出的文件范围、验收方法和安全边界。

所有源码链接固定到提交 62aacaed782091b06060ace276c64e9aaf84ae6b。同名目录或后续版本不能自动替代本页所列资源。

ROS 2 基础与启动

C++ 发布订阅示例

  • 代码目录:examples/ros2/pubsub/cpp
  • 正文入口:C++ 发布订阅示例
  • 关键文件:CMakeLists.txt、package.xml、src/publisher.cpp、src/subscriber.cpp
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:仅用于通信观察

Python 发布订阅示例

  • 代码目录:examples/ros2/pubsub/python
  • 正文入口:Python 发布订阅示例
  • 关键文件:package.xml、py_pubsub/publisher.py、py_pubsub/subscriber.py、setup.py
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:仅用于通信观察

追踪底盘启动链

  • 代码目录:ros2/robot/turn-on-wheeltec-robot
  • 正文入口:追踪底盘启动链
  • 关键文件:launch/base_serial.launch.py、launch/robot_mode_description.launch.py、launch/turn_on_wheeltec_robot.launch.py、src/wheeltec_robot.cpp
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:仅作静态源码追踪;robot_mode_description 仍依赖外部 wheeltec_robot_urdf、mini_mec 和 mini_diff URDF 资源,不能据此启动机器人

ROS 2 导航

多点导航示例

路径跟踪示例

视觉建图与导航功能包

  • 代码目录:ros2/navigation/vision-nav/wheeltec_vision_nav
  • 正文入口:视觉建图与导航功能包
  • 关键文件:config/ekf_visual.yaml、config/rtabmap_visual.yaml、launch/vision_mapping.launch.py、launch/vision_navigation.launch.py、package.xml、wheeltec_vision_nav/ekf_inputs_logic.py、wheeltec_vision_nav/emitter_pair_logic.py、wheeltec_vision_nav/launch_utils.py、wheeltec_vision_nav/vo_watchdog_logic.py
  • 核验状态:runtime_verified;使用方式:run。
  • 使用边界:需要本车 R680 底盘、D435C 相机与出厂 wheeltec 功能包;电机使能与急停由现场人员负责

ROS 1 维护

人体消息与跟随节点

  • 代码目录:ros1/maintenance/bodyreader
  • 正文入口:人体消息与跟随节点
  • 关键文件:launch/bodyfollow.launch、msg/body.msg、package.xml、src/bodydata_process.cpp、src/follower.cpp
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:依赖 Astra/OpenNI 运行时和相机,仅静态阅读

视觉与应用

KCF 跟踪示例

  • 代码目录:applications/kcf-tracker/wheeltec_robot_kcf_model
  • 正文入口:KCF 跟踪示例
  • 关键文件:launch/kcf_tracker.launch.py、package.xml、wheeltec_robot_kcf_model/kcf_tracker_node.py、wheeltec_robot_kcf_model/pid_controller.py
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:依赖相机和初始框条件

STM32 外设实验

编码器实验

  • 代码目录:stm32/labs/encoder/stm32f103-stdperiph
  • 正文入口:编码器实验
  • 关键文件:STM32F10x_FWLib/src/stm32f10x_usart.c、USER/Encoder.uvprojx、USER/main.c、USER/stm32f10x.h
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:仅静态核对

PWM 实验

  • 代码目录:stm32/labs/pwm/stm32f103-stdperiph
  • 正文入口:PWM 实验
  • 关键文件:STM32F10x_FWLib/src/stm32f10x_usart.c、USER/PWM.uvprojx、USER/main.c、USER/stm32f10x.h
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:仅静态核对

UART 实验

  • 代码目录:stm32/labs/uart/stm32f103-stdperiph
  • 正文入口:UART 实验
  • 关键文件:STM32F10x_FWLib/src/stm32f10x_usart.c、USER/UART1.uvprojx、USER/main.c、USER/stm32f10x.h
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:仅静态核对

STM32 控制

电机控制

PID 控制

  • 代码目录:stm32/control/pid/stm32f4-stdperiph
  • 正文入口:PID 控制
  • 关键文件:USER/WHEELTEC.uvprojx、USER/main.c
  • 核验状态:static_reviewed;使用方式:static_read。
  • 使用边界:无编译器与实机证据

R680 固件

静态诊断串口与 CAN 控制链