Files
yiliao2026/竞赛方案_第21届智能汽车竞赛地瓜机器人赛项.md
Orange 261f533e1e Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.

On branch master
Your branch is ahead of 'origin/master' by 31 commits.
  (use "git push" to publish your local commits)

Changes to be committed:
	new file:   .gitignore
	new file:   .vscode/c_cpp_properties.json
	new file:   .vscode/launch.json
	new file:   .vscode/settings.json
	new file:   CLAUDE.md
	new file:   README.md
	new file:   bashes/README.md
	new file:   bashes/radar-driver-switch.sh
	new file:   bashes/radar-driver-switch.sh.bak
	new file:   dependencies/dependencies.txt
	new file:   src/LSLIDAR_X_ROS2-20240228/src/README.md
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/CMakeLists.txt
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/include/lslidar_driver/input.h
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/include/lslidar_driver/lsiosr.h
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/include/lslidar_driver/lslidar_driver.h
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lslidar_double_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsm10_net_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsm10_uart_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsm10p_net_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsm10p_uart_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsn10_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsn10_net_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsn10p_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/lsn10p_net_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/launch/viewer_scan_launch.py
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/package.xml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_net_ros2/lsm10_net.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_net_ros2/lsm10p_net.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_net_ros2/lsn10_net.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_net_ros2/lsn10p_net.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_uart_ros2/lsm10.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_uart_ros2/lsm10_p.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_uart_ros2/lsn10.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/params/lidar_uart_ros2/lsn10p.yaml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/rviz/lslidar.rviz
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/src/input.cc
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/src/lsiosr.cpp
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/src/lslidar_driver.cc
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/src/lslidar_driver.cc.bak
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_driver/src/lslidar_driver_node.cc
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/CMakeLists.txt
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/msg/LslidarDifop.msg
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/msg/LslidarPacket.msg
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/msg/LslidarPoint.msg
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/msg/LslidarScan.msg
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/msg/LslidarSweep.msg
	new file:   src/LSLIDAR_X_ROS2-20240228/src/lslidar_msgs/package.xml
	new file:   src/LSLIDAR_X_ROS2-20240228/src/version.txt
	new file:   src/LSLIDAR_X_ROS2-20240228/src/wheeltec_udev.sh
	new file:   "src/LSLIDAR_X_ROS2-20240228/src/\351\225\255\347\245\236Lsx\351\233\267\350\276\276\346\227\213\350\275\254\350\247\222\345\272\246.png"
	new file:   src/LSLIDAR_X_ROS2-20240228/wheeltec_lidar.launch.py
	new file:   "src/LSLIDAR_X_ROS2-20240228/wheeltec_lidar.launch.py\344\273\205\345\234\250WHEELTEC\351\225\234\345\203\217\344\270\255\344\275\277\347\224\250"
	new file:   src/cyy_navigation2/CMakeLists.txt
	new file:   src/cyy_navigation2/bt/follow_point.xml
	new file:   src/cyy_navigation2/bt/nav_to_pose_with_consistent_replanning_and_if_path_becomes_invalid.xml
	new file:   src/cyy_navigation2/bt/navigate_through_poses_w_replanning_and_recovery.xml
	new file:   src/cyy_navigation2/bt/navigate_to_pose_w_replanning_and_recovery.xml
	new file:   src/cyy_navigation2/bt/navigate_to_pose_w_replanning_goal_patience_and_recovery.xml
	new file:   src/cyy_navigation2/bt/navigate_w_recovery_and_replanning_only_if_path_becomes_invalid.xml
	new file:   src/cyy_navigation2/bt/navigate_w_replanning_distance.xml
	new file:   src/cyy_navigation2/bt/navigate_w_replanning_only_if_goal_is_updated.xml
	new file:   src/cyy_navigation2/bt/navigate_w_replanning_only_if_path_becomes_invalid.xml
	new file:   src/cyy_navigation2/bt/navigate_w_replanning_speed.xml
	new file:   src/cyy_navigation2/bt/navigate_w_replanning_time.xml
	new file:   src/cyy_navigation2/bt/odometry_calibration.xml
	new file:   src/cyy_navigation2/config/nav2_params.yaml
	new file:   src/cyy_navigation2/launch/car_bringup.launch.py
	new file:   src/cyy_navigation2/launch/cyy_nav.launch.py
	new file:   src/cyy_navigation2/launch/cyy_nav_box.launch.py
	new file:   src/cyy_navigation2/maps/cyy_map.data
	new file:   src/cyy_navigation2/maps/cyy_map.pgm
	new file:   src/cyy_navigation2/maps/cyy_map.yaml
	new file:   src/cyy_navigation2/maps/cyy_map1.pgm
	new file:   src/cyy_navigation2/maps/cyy_map1.yaml
	new file:   src/cyy_navigation2/package.xml
	new file:   src/cyy_navigation2/param/nav2_params.yaml
	new file:   src/cyy_navigation2/param/slam_toolbox_localization.yaml
	new file:   src/cyy_slamtoolbox/CMakeLists.txt
	new file:   src/cyy_slamtoolbox/config/angular_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/box_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/footprint_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/intensity_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/laser_filter_config.yaml
	new file:   src/cyy_slamtoolbox/config/mapper_params_lifelong.yaml
	new file:   src/cyy_slamtoolbox/config/mapper_params_localization.yaml
	new file:   src/cyy_slamtoolbox/config/mapper_params_offline.yaml
	new file:   src/cyy_slamtoolbox/config/mapper_params_online_async.yaml
	new file:   src/cyy_slamtoolbox/config/mapper_params_online_sync.yaml
	new file:   src/cyy_slamtoolbox/config/mask_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/median_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/median_spatial_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/multiple_filters_example.yaml
	new file:   src/cyy_slamtoolbox/config/pass_through_example.yaml
	new file:   src/cyy_slamtoolbox/config/polygon_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/range_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/scan_blob_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/sector_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/shadow_filter_example.yaml
	new file:   src/cyy_slamtoolbox/config/slam_toolbox_default.rviz
	new file:   src/cyy_slamtoolbox/config/speckle_filter_example.yaml
	new file:   src/cyy_slamtoolbox/launch/cyy_slam_toolbox_launch.launch.py
	new file:   src/cyy_slamtoolbox/launch/cyy_slam_toolbox_location.launch.py
	new file:   src/cyy_slamtoolbox/launch/filter.launch.py
	new file:   src/cyy_slamtoolbox/package.xml
	new file:   src/gc_navigation2_real/CMakeLists.txt
	new file:   src/gc_navigation2_real/behavior_tree/nav_to_pose_ackermann.xml
	new file:   src/gc_navigation2_real/config/slam_toolbox_async_real.yaml
	new file:   src/gc_navigation2_real/config/slam_toolbox_localization_real.yaml
	new file:   src/gc_navigation2_real/launch/real_bringup.launch.py
	new file:   src/gc_navigation2_real/launch/real_nav2_slam.launch.py
	new file:   src/gc_navigation2_real/launch/real_nav2_slam_online.launch.py
	new file:   src/gc_navigation2_real/launch/real_slam_mapping.launch.py
	new file:   src/gc_navigation2_real/maps/Readme.txt
	new file:   src/gc_navigation2_real/package.xml
	new file:   src/gc_navigation2_real/params/gc_navigation_slam_real.yaml
	new file:   src/gc_navigation2_slamtoolbox/CMakeLists.txt
	new file:   src/gc_navigation2_slamtoolbox/config/mapper_params_lifelong.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/mapper_params_localization.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/mapper_params_offline.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/mapper_params_online_multi_async.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/mapper_params_online_sync.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/nav_to_pose_ackermann.xml
	new file:   src/gc_navigation2_slamtoolbox/config/slam_toolbox_async.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/slam_toolbox_localization.yaml
	new file:   src/gc_navigation2_slamtoolbox/config/slam_toolbox_mapping.yaml
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav2_with_amcl.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav2_with_slam.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav2_with_slam_online.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav2_with_slam_online_real.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav_slamtoolbox_lifelong.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav_slamtoolbox_location.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_nav_slamtoolbox_on_async.launch.py
	new file:   src/gc_navigation2_slamtoolbox/launch/gc_slam_mapping.launch.py
	new file:   src/gc_navigation2_slamtoolbox/maps/my_map.data
	new file:   src/gc_navigation2_slamtoolbox/maps/my_map.pgm
	new file:   src/gc_navigation2_slamtoolbox/maps/my_map.posegraph
	new file:   src/gc_navigation2_slamtoolbox/maps/my_map.yaml
	new file:   src/gc_navigation2_slamtoolbox/maps/zhihui.data
	new file:   src/gc_navigation2_slamtoolbox/maps/zhihui.pgm
	new file:   src/gc_navigation2_slamtoolbox/maps/zhihui.posegraph
	new file:   src/gc_navigation2_slamtoolbox/maps/zhihui.yaml
	new file:   src/gc_navigation2_slamtoolbox/package.xml
	new file:   src/gc_navigation2_slamtoolbox/params/gc_navigation_amcl.yaml
	new file:   src/gc_navigation2_slamtoolbox/params/gc_navigation_slam.yaml
	new file:   src/gc_navigation2_slamtoolbox/params/gc_navigation_slam.yaml.bak
	new file:   src/gc_navigation2_slamtoolbox/world/zhihui/model.config
	new file:   src/gc_navigation2_slamtoolbox/world/zhihui/model.sdf
	new file:   src/gc_navigation_fish/CMakeLists.txt
	new file:   src/gc_navigation_fish/launch/gc_navigation.launch.py
	new file:   src/gc_navigation_fish/maps/test_map.pgm
	new file:   src/gc_navigation_fish/maps/test_map.yaml
	new file:   src/gc_navigation_fish/package.xml
	new file:   src/gc_navigation_fish/param/gc_navigation.yaml
	new file:   src/gc_navigation_fish/param/navigation_test.yaml
	new file:   src/gc_slam_toolbox_fish/CMakeLists.txt
	new file:   src/gc_slam_toolbox_fish/config/gc_2d.lua
	new file:   src/gc_slam_toolbox_fish/launch/catograph.launch.py
	new file:   src/gc_slam_toolbox_fish/package.xml
	new file:   src/ground_slam/.gitignore
	new file:   src/ground_slam/CMakeLists.txt
	new file:   src/ground_slam/LICENSE.md
	new file:   src/ground_slam/README.md
	new file:   src/ground_slam/cmake/FindEigen3.cmake
	new file:   src/ground_slam/cmake/FindFFTW3.cmake
	new file:   src/ground_slam/configs/config_HD.yaml
	new file:   src/ground_slam/configs/config_geekplus.yaml
	new file:   src/ground_slam/configs/config_ntu.yaml
	new file:   src/ground_slam/figures/data_association.jpg
	new file:   src/ground_slam/figures/features_small.jpg
	new file:   src/ground_slam/figures/fig1.jpg
	new file:   src/ground_slam/figures/loop_error.jpg
	new file:   src/ground_slam/figures/loop_trajectory.jpg
	new file:   src/ground_slam/figures/pipeline.png
	new file:   src/ground_slam/figures/rmse_curve.jpg
	new file:   src/ground_slam/figures/sample_images.jpg
	new file:   src/ground_slam/figures/trajectory.jpg
	new file:   src/ground_slam/figures/video.png
	new file:   src/ground_slam/include/camera.h
	new file:   src/ground_slam/include/circ_shift.h
	new file:   src/ground_slam/include/correlation_flow.h
	new file:   src/ground_slam/include/dataset.h
	new file:   src/ground_slam/include/edge.h
	new file:   src/ground_slam/include/frame.h
	new file:   src/ground_slam/include/loop_closure.h
	new file:   src/ground_slam/include/map.h
	new file:   src/ground_slam/include/map_builder.h
	new file:   src/ground_slam/include/map_stitcher.h
	new file:   src/ground_slam/include/optimization_2d/angle_local_parameterization.h
	new file:   src/ground_slam/include/optimization_2d/normalize_angle.h
	new file:   src/ground_slam/include/optimization_2d/pose_graph_2d.h
	new file:   src/ground_slam/include/optimization_2d/pose_graph_2d_error_term.h
	new file:   src/ground_slam/include/optimization_2d/types.h
	new file:   src/ground_slam/include/read_configs.h
	new file:   src/ground_slam/include/thread_publisher.h
	new file:   src/ground_slam/include/timer.h
	new file:   src/ground_slam/include/utils.h
	new file:   src/ground_slam/include/visualization.h
	new file:   src/ground_slam/main.cpp
	new file:   src/ground_slam/package.xml
	new file:   src/ground_slam/src/camera.cc
	new file:   src/ground_slam/src/correlation_flow.cc
	new file:   src/ground_slam/src/dataset.cc
	new file:   src/ground_slam/src/edge.cc
	new file:   src/ground_slam/src/frame.cc
	new file:   src/ground_slam/src/loop_closure.cc
	new file:   src/ground_slam/src/map.cc
	new file:   src/ground_slam/src/map_builder.cc
	new file:   src/ground_slam/src/map_stitcher.cc
	new file:   src/ground_slam/src/optimization_2d/pose_graph_2d.cc
	new file:   src/ground_slam/src/thread_publisher.cc
	new file:   src/ground_slam/src/timer.cc
	new file:   src/ground_slam/src/utils.cc
	new file:   src/ground_slam/src/visualization.cc
	new file:   src/ground_slam/supplementary/GroundSLAM_Supplement_Materia.pdf
	new file:   src/origincar_base/CMakeLists.txt
	new file:   src/origincar_base/config/ekf.yaml
	new file:   src/origincar_base/config/imu.yaml
	new file:   src/origincar_base/include/origincar_base/Quaternion_Solution.h
	new file:   src/origincar_base/include/origincar_base/origincar_base.h
	new file:   src/origincar_base/launch/__pycache__/testtwo.launch.cpython-38.pyc
	new file:   src/origincar_base/launch/base_serial.launch.py
	new file:   src/origincar_base/launch/ekf.launch.py
	new file:   src/origincar_base/launch/origincar_bringup.launch.py
	new file:   src/origincar_base/launch/robot_mode_description.launch.py
	new file:   src/origincar_base/msg/Position.msg
	new file:   src/origincar_base/package.xml
	new file:   src/origincar_base/scripts/__pycache__/cmd_vel_to_ackermann_drive.cpython-310.pyc
	new file:   src/origincar_base/scripts/cmd_vel_to_ackermann_drive.py
	new file:   src/origincar_base/src/Quaternion_Solution.cpp
	new file:   src/origincar_base/src/origincar_base.cpp
	new file:   src/origincar_base/src/origincar_base.cpp.bak
	new file:   src/origincar_description/CMakeLists.txt
	new file:   src/origincar_description/CMakeLists.txt.save
	new file:   src/origincar_description/config/joint_names_origincar_description.yaml
	new file:   src/origincar_description/config/joint_names_origincar_description.yaml:Zone.Identifier
	new file:   "src/origincar_description/config/joint_names_origincar_description.yaml\357\200\272Zone.Identifier"
	new file:   src/origincar_description/launch/display.launch
	new file:   src/origincar_description/launch/display.launch.py
	new file:   src/origincar_description/launch/gazebo.launch
	new file:   src/origincar_description/launch/gazebo.launch.py
	new file:   src/origincar_description/meshes/base_link.STL
	new file:   src/origincar_description/meshes/base_link.STL:Zone.Identifier
	new file:   "src/origincar_description/meshes/base_link.STL\357\200\272Zone.Identifier"
	new file:   src/origincar_description/meshes/down_left_Link.STL
	new file:   src/origincar_description/meshes/down_left_Link.STL:Zone.Identifier
	new file:   "src/origincar_description/meshes/down_left_Link.STL\357\200\272Zone.Identifier"
	new file:   src/origincar_description/meshes/down_right_Link.STL
	new file:   src/origincar_description/meshes/down_right_Link.STL:Zone.Identifier
	new file:   "src/origincar_description/meshes/down_right_Link.STL\357\200\272Zone.Identifier"
	new file:   src/origincar_description/meshes/up_left_Link.STL
	new file:   src/origincar_description/meshes/up_left_Link.STL:Zone.Identifier
	new file:   "src/origincar_description/meshes/up_left_Link.STL\357\200\272Zone.Identifier"
	new file:   src/origincar_description/meshes/up_right_Link.STL
	new file:   src/origincar_description/meshes/up_right_Link.STL:Zone.Identifier
	new file:   "src/origincar_description/meshes/up_right_Link.STL\357\200\272Zone.Identifier"
	new file:   src/origincar_description/package.xml
	new file:   src/origincar_description/rviz/README
	new file:   src/origincar_description/rviz/display.rviz
	new file:   src/origincar_description/urdf/origincar.urdf
	new file:   src/origincar_description/urdf/origincar.xacro
	new file:   src/origincar_description/world/fishbot.world
	new file:   src/origincar_description/world/gc_world.world
	new file:   src/origincar_description/world/test.world
	new file:   src/origincar_description/world/zhihui.world
	new file:   src/origincar_msg/CMakeLists.txt
	new file:   src/origincar_msg/msg/Data.msg
	new file:   src/origincar_msg/msg/Sign.msg
	new file:   src/origincar_msg/package.xml
	new file:   src/zbw_slamtoolbox/CMakeLists.txt
	new file:   src/zbw_slamtoolbox/config/mapper_params_online_async.yaml
	new file:   src/zbw_slamtoolbox/config/mapper_params_online_sync copy.yaml
	new file:   src/zbw_slamtoolbox/config/navigation.yaml
	new file:   src/zbw_slamtoolbox/launch/navigation.launch.py
	new file:   src/zbw_slamtoolbox/launch/slamtoolbox.launch.py
	new file:   src/zbw_slamtoolbox/package.xml
	new file:   "\347\253\236\350\265\233\346\226\271\346\241\210_\347\254\25421\345\261\212\346\231\272\350\203\275\346\261\275\350\275\246\347\253\236\350\265\233\345\234\260\347\223\234\346\234\272\345\231\250\344\272\272\350\265\233\351\241\271.md"
	new file:   "\350\260\203\350\257\225\350\256\260\345\275\225.log"
2026-06-13 19:55:01 +08:00

223 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第21届全国大学生智能汽车竞赛 — 地瓜机器人赛项正式方案
> 来源:古月居公众号 | 发布时间2026年3月23日
---
## 一、核心要点
1. **延续性**沿用第19届、第20届的竞赛地图、竞赛车模等物料。
2. **允许改装**:基于 OriginCar 系列车模,参赛队可对传感器、运动控制板、车载机电模块等进行改装。
3. **改装限制**
- 车模底盘(车体结构、电机、转向舵机、车轮)**不可调整**
- 主控板**必须**使用地瓜机器人 RDK 系列开发板
4. **全自主运行**:不依赖路由器及网络,车模完全自主完成所有任务。
5. **多方案可选**:参赛队可采用不同自主设计方案(解决方案、软硬件等)完成任务。
---
## 二、赛事背景
在人工智能、智能机器人等前沿技术加速迭代的当下多技术融合创新已成为驱动社会生产力跃升与产业变革的核心引擎。大模型LLM/VLM的突破性发展彻底重构了人机交互范式让智能机器人具备解读人类模糊意图、灵活响应复杂指令的能力。
地瓜机器人起步于2015年诞生的地平线是业界领先的机器人软硬件通用底座提供商创新性地将基于大模型的"云-边-端"一体化机器人开发底座引入竞赛平台。
---
## 三、竞赛场地
### 3.1 地图布局
| 区域 | 颜色 | 尺寸 (m) | 说明 |
|:----:|:----:|:--------:|------|
| **A区** — 场景大厅 | 浅蓝色 | 5 × 2 | 左下角为固定发车点/停车点 **(P)**;右上角为任务发布点(二维码标记牌);区域内随机放置锥桶障碍物 |
| **B区** — 通道区 | 浅黄色 | 5 × 0.5 | 中间有 0.5m × 1m 的通道连接 A/B/C 三区 |
| **C区** — 诊疗区 | 浅绿色 | 5 × 2.5 | 中间黄色环形通道(宽 0.5m);放置图生文标记牌与障碍物 |
### 3.2 赛场环境
- 地图由 **25m² 结皮 PVC** 绘制而成
- **无磁场干扰**环境
- 可能存在表面不平整、边框裂缝、光照变化等因素,参赛队需考虑应对措施
### 3.3 障碍物
- 每场比赛在地图范围内设置 **≥5 个障碍物**
- 障碍物为锥桶(黑色三角形标记)
---
## 四、竞赛车模与硬件规范
### 4.1 车模
仅允许使用 **OriginCar 系列智能机器人套件**
| 特性 | OriginCar | OriginCar Pro |
|------|:---------:|:-------------:|
| 结构 | 四轮阿克曼 | 四轮阿克曼 |
| 算力 | RDK 系列 | RDK 系列 |
| 传感器 | 单目相机、深度相机等 | 同左 |
| 扩展 | 激光雷达、语音板、OLED 屏幕 | 同左 |
| 系统 | 三层板机械结构 | 同左 |
### 4.2 主控板
**必须使用 RDK 系列**(可任选其一,数量不限):
| 型号 | 算力 | 特点 |
|------|:---:|------|
| **RDK X3** | 5 TOPS | 兼容树莓派接口2.4G/5G WiFi支持 4K60 编解码 |
| **RDK X5** | 10 TOPS | 旭日5芯片千元内最佳大模型+视觉算法加持 |
| **RDK S100** | 80/120 TOPS | 异构设计,兼顾感知推理与实时运动控制 |
### 4.3 传感器限制
| 部件 | 限制要求 |
|------|----------|
| **IMU陀螺仪** | 仅板载或最小外围电路插件模块;❌ 禁用 USB 外接;❌ 禁用九轴以上芯片 |
| **里程计** | 仅用车载设备;❌ 禁用光流里程计 |
| **激光雷达** | 单线 TOF**VP100L** / **轮趣 N10** |
| **深度相机** | **光鉴 Aurora930** |
| **语音模块** | 不限(参考:亚博智能语音交互模块、双麦克风声音传感器等) |
| **显示模块** | 不限(建议 ≤7 寸) |
| **电池** | 建议 ≤3500mAh 安全电池 |
| **机电模块** | 不限,可自行设计加装,但必须为**车载模式** |
---
## 五、软件平台
### 5.1 NodeHub方案提交平台
- 统一竞赛方案提交平台
- 支持方案**分阶段提交**(赛前备案 + 赛后终版)
- 保留版本记录,支持公开/部分公开/仅赛事可见
### 5.2 RDK Studio开发工具
- 面向 RDK 平台的易用性开发工具
- 目标:**5分钟完成算法方案演示**
- 支持从演示方案平滑扩展为完整应用
- 下载地址https://developer.d-robotics.cc/rdkstudio
### 5.3 方案提交阶段
| 阶段 | 时间 | 性质 | 内容要求 |
|------|------|:--:|------|
| **初版方案(备案)** | 赛前 | 必需 | 队伍信息统一ID规范、RDK型号、技术路线概述**不作为评分依据** |
| **终版方案** | 赛后3个工作日内 | 推荐 | 规则适配调整、关键技术实现、工程经验总结、问题及解决思路 |
---
## 六、比赛任务
### 6.1 前置任务5分钟
赛前完成:竞赛方案、硬件搭建、控制程序、平台软件、通信测试等部署。
### 6.2 主任务流程
```mermaid
graph LR
P[发车点 P] -->|子任务1| QR[任务发布点<br/>扫描二维码]
QR -->|子任务2| B[通道区 B]
B --> C[诊疗区 C<br/>环形通道巡航]
C --> B2[通道区 B]
B2 -->|子任务3| P2[返回停车点 P]
```
#### 子任务1 — 任务获取
-**P 点**自主行驶至**任务发布点**
- 用相机扫描**二维码标记牌**获取任务信息
- 公布任务信息(三选一):
1. 语音文字播报 / 提示音播报
2. 车载屏幕显示
3. 语音播报 + 屏幕显示
#### 子任务2 — 通道巡航与图生文
- 沿黄色通道**顺时针或逆时针**行驶一周
- 观察到**人形立牌**时,通过大模型**图生文**反馈识别结果
- 大模型流程:`图像 → OriginCar(RDK) → 本地/云端大模型 → 文字显示/语音播报`
- 只能在黄色通道上行驶
#### 子任务3 — 返航停车
- 从通道返回 **P 点**(车模 ≥ 2/3 在蓝白区域内)
- 到达标准:车模 ≥ 1/2 在指定区域内停住
### 6.3 罚时规则
| 子任务 | 违规行为 | 罚时 |
|:------:|------|:----:|
| **子任务1** | 触碰障碍物 | +10s/次(上限 30s |
| | 未到达任务发布点 | +50s |
| | **子任务1 总罚时上限** | **50s记为 A1** |
| **子任务2** | 触碰障碍物 | +10s/次(上限 30s |
| | 未完成图生文 | +20s |
| | 驶出黄色通道≥1/2 在外) | +10s/次(上限视情况) |
| | **子任务2 总罚时** | **记为 B1** |
| **子任务3** | 触碰障碍物 | +10s/次(上限 30s |
| | 未回到 P 点 | +50s |
| | **子任务3 总罚时上限** | **50s记为 C1** |
| **通用** | 误发车第一次 | 警告(不计时) |
| | 误发车第二次 | **+20s记为 T1** |
| | 行为特别严重 | 警告或取消资格 |
### 6.4 计分公式
$$
\text{竞赛用时} = \text{实际计时} + A_1 + B_1 + C_1 + T_1
$$
**排名**:按竞赛用时最短为优胜。
---
## 七、竞赛规则
### 7.1 发车流程
1. 每场仅 **1 支队伍、1 台车模** 竞赛
2. 最多 **5 名队员** 上场,指定 1 人为发车员
3. 上场后有 **5 分钟** 准备时间
4. 裁判倒计时 "3、2、1发车" 后启动
5. 总限时 **180 秒**,超时即终止
### 7.2 重新启动
- 车模冲出场地或失控时可请求重启
- **次数不限**,但计时不停止
- 发车员将车模放回发车区重新启动
### 7.3 比赛结束条件
- 180 秒计时完毕
- 参赛队主动提出结束(经裁判确认)
- 裁判吹哨后,发车员立即停车,车模交回检录区
---
## 八、技术要点
| 技术领域 | 说明 |
|------|------|
| **ROS 2 通信** | 基于 ROS 2TROS.B/ROS 2实现 RDK ↔ STM32 通信,传感器采集与运动控制 |
| **视觉识别** | 二维码检测与解码、传统计算机视觉技术 |
| **目标检测** | YOLO 等算法RDK 可同时处理多目标检测与实时跟踪 |
| **SLAM** | 同时定位与建图Localization + Mapping路径规划 |
| **大模型应用** | 本地大模型部署或云端大模型对接,实现图生文功能 |
---
## 九、联系方式
| 渠道 | 信息 |
|------|------|
| 竞赛 QQ 群 | **851643123** |
| 竞赛飞书技术群 | 见原文附图 |
| 公众号 | 卓晴老师、地瓜机器人、古月居 |
---
> 📌 **与本地工作空间的关系**:本工作空间 (`test_ws`) 基于 ROS 2 Humble + OriginCar 描述包 + Nav2 + SLAM Toolbox正是该赛项的典型开发环境。可直接用于竞赛方案开发与验证。