2025全国大学生智能车创意组陕西理工大学校级选拔赛

2025全国大学生智能车创意组陕西理工大学校级选拔赛


章节

  1. 赛项简介
  2. 参赛要求及赛程安排
  3. 比赛相关文件说明

注意事项:

未完成任务一任务二的同学请先按要求完成任务后再进行比赛
任务一链接:

1
https://blog.nonenpc.cn/2025/04/02/Ubuntu%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8EROS1%E5%AE%89%E8%A3%85/

任务二链接:

1
https://blog.nonenpc.cn/2025/09/11/2024%E5%85%A8%E5%9B%BD%E5%A4%A7%E5%AD%A6%E7%94%9F%E6%99%BA%E8%83%BD%E8%BD%A6%E5%88%9B%E6%84%8F%E7%BB%84%E9%99%95%E8%A5%BF%E7%90%86%E5%B7%A5%E5%A4%A7%E5%AD%A6%E6%A0%A1%E5%86%85%E9%80%89%E6%8B%94%E8%B5%9B/

1.赛项简介

1.1赛事背景

随着人工智能与机器人技术的快速发展,移动机器人在智能交通、智慧生活、工业生产等领域的应用日益广泛。为了进一步提升大学生在机器人操作、算法设计与系统集成方面的综合能力,特举办本次“全国大学生智能车创意组——陕西理工大学校内选拔赛”。

本赛项以“智慧生活”为主题,围绕自动驾驶与多传感器融合技术展开。选手需要利用人工智能算法与ROS机器人操作系统,实现从环境建图、路径规划到目标识别与任务执行的完整流程,让机器人具备“能看、能思考、能行动”的智能特征。

1.2赛事目的

通过本次比赛,旨在培养学生对ROS、SLAM、路径规划、机器视觉等核心技术的理解与应用能力,强化实践动手与团队协作精神。参赛过程中,选手将学习如何搭建仿真环境、完成多点导航与自动拍照任务,从而掌握移动机器人完整系统的设计与实现方法。

1.3赛事准备

参赛选手需在赛前熟悉以下内容:

1.操作系统基础:Linux 常用命令及环境配置;
2.ROS 工具链:工作空间创建、功能包编译、launch 文件与话题通信;
3.机器人基础理论:SLAM 建图、move_base 导航、局部与全局规划器;
4.Gazebo 仿真操作:环境加载、模型调试与传感器配置;
5.任务理解:了解比赛文件结构与计时脚本运行逻辑。

参赛队伍需在完成校内宣讲任务后,方可参与正式赛项。

2.参赛要求及赛程安排

2.1比赛规则

(1) 小车多点导航结束停车后不能出现震荡,如果发生震荡视为未完成比赛任务。

(2)禁止使用带有障碍物信息的地图进行导航。

(3)本赛项由参赛队伍,在规定时间内,使用统一提供的模型文件,完成挑战任务,并按指定格式提交作品。

(4)机器人控制方式:自动,即使用预先编写的程序控制机器人的移动不能人工操作机器人。

(5)限时五分钟内完成,没有到达终点的队伍不计入比赛排名。

(6)关于罚时:碰撞水果标牌罚时5秒/每次,碰撞场地边框罚时5秒/每次。接触或碰撞障碍物超过30秒视为任务失败。

(7)每队参赛人员1-2人,至多两人。

(8)关于禁止:
A、禁止使用手柄、键盘人为控制小车。
B、车辆模型的初始位置。


3.比赛相关文件说明

请使用以下链接下载赛事文件以及计时脚本

1
https://alist.nonenpc.cn/d/ROS2/task/gazebo_test_ws.zip?sign=3PSw9H-kdpFuyy26Zk4vVQpWTXmOY5QcAsy2JptMzts=:0

3.1 使用方法

完成宣讲任务的同学保存导航包“move_base”下的所有参数,并且删除文件夹“gazebo_test_ws”

下载并解压提供的赛事文件,并且复制到主目录下

使用自己备份的move_base替换赛事文件提供的参数文件

将global_costmap_params.yaml中的机器人基坐标系改为base_footprint

1
2
 robot_base_frame: dummy
修改为 robot_base_frame: base_footprint

将local_costmap_params.yaml中的机器人基坐标系改为base_footprint

1
2
 robot_base_frame: dummy
修改为 robot_base_frame: base_footprint

复制压缩包中的models文件夹,替换掉“.gazebo”中的models文件夹

打开终端

进入所给赛事文件工作空间
1
cd gazebo_test_ws
编译
1
catkin_make
设置环境变量
1
source devel/setup.bash
进入start_game文件夹
1
cd src/start_game
启动计时脚本
1
python main.py

当启动main.py并且开始导航的时候会自动开始计时并且发布导航目标点,当多点导航结束时会自动发布一次/wan话题并且计时结束
注:计时脚本会自动设置环境变量以及启动相关launch

3.2 SLAM建图

1
roslaunch gazebo_pkg race.launch
1
roslaunch gazebo_map demo_revo_lds.launch
1
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

手动建图完成后使用map_saver保存栅格地图以及配置文件

1
rosrun map_server map_saver --occ 70 --free 30 -f xf_fz 

建图效果不好的话可自行调整occ和free的值
将保存的地图文件(xf_fz.pgm xf_fz.yaml)手动移动至gazebo_nav功能包的map目录下

3.3多点导航航路点设置

target.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"goal_points": [
[4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], 第一个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第二个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第三个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第四个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第五个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第六个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第七个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第八个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 第九个点
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0] 第十个点
]
}

在target.json 一共包含了十个航路点,都为X Y Z qX qY qZ qW形式,其中第二个到第七个共六个航路点为执行拍照的航路点

航路点参数的解析
1
2
3
[X, Y, Z, qX, qY, qZ, qW]
前三个参数对应目标点在地图坐标系中的XYZ,后四个则为表示机器人在此点姿态的四元数
(具体什么是四元数请自行了解)

3.4拍照图片保存文件路径修改

ros_module.py片段
1
2
# 图片保存路径
self.image_save_root = "/home/zero/gazebo_test_ws/src/start_game/picttureall"

在ros_module.py中此段为拍照图片保存路径,请选手自行修改为自己的实际目录,拍照所保存的文件必须保存在/start_game/picttureall 下

3.5其它参数设置指南

选手需自行修改move_base下的参数使小车到达拍照点位时拥有正确的姿态
选手也可自行修改,使用其他局部路径规划算法以达到最佳的导航效果

3.6任务要求

修改十个航路点,使得小车正确抵达每个标牌前的停车区内并且进行拍照,任务结束后小车返回起点
1.导航要求
a.小车必须抵达水果立牌前的停车区内进行拍照,不得在每个房间外进行拍照
b.任务结束后小车必须返回起点
2.拍照要求
a.车载相机拍出的六张图片中必须出现三种不同类型的标牌
b.拍照距离不宜过近或过远

预祝各位选手在选拔赛中取得优异的成绩