大学生智能汽车竞赛系列教程 第四章赛事模板程序



一、依赖


请按照先前教程完成首先确认ros安装,按照先前教程完成工作空间(gazebo_test_ws)创建,建图功能包(gazebo_map)、导航功能包(gazebo_nav)的搭建。

sudo apt-get install ros-melodic-cartographer*
sudo apt-get install ros-melodic-navigation
sudo apt install ros-melodic-teleop-twist-keyboard
sudo apt install ros-melodic-rqt-graph

1.1 准备工作

  • 把赛事模板程序文件夹解压缩到/home

  • 在/home 建立工作空间gazebo_test_ws,在目录下建立src,将gazebo_map,gazebo_nav,gazebo_pkg,start_game放在src目录下。若已完成之前教程,仅需把start_game移动至gazebo_test_ws/src

  • 在gazebo_test_ws目录下,catkin_make编译

cd ~/gazebo_test_ws
catkin_make
  • 在脚本目录下,首先执行命令:
    cd ~/gazebo_test_ws/src/start_game
    sudo chown YourAccountName *
    chmod u+x *.py
  • YourAccountName 替换成自己的用户名
  • 上面两条命令是为了防止文件权限没有在传输中丢失,添加执行权限,从而为后面的操作打下基础


1.2 在gazebo_test_ws/src下创建功能包gazebo_nav

  • 打开终端输入如下指令:
cd gazebo_test_ws/src

catkin_create_pkg gazebo_nav      //功能包创建完毕

cd ..

catkin_make                                      //编译功能包


二、文件结构

.
├── gazebo_map	# 建图部分
│   ├── cfg
│   └── launch
│   └── map
│   └── CMakeLists.txt
│   └── package.xml
├── gazebo_nav	# 导航部分
│   ├── map	# 导航所需地图
│   └── launch
│   │   ├── navi_demo.launch	# 导航所需地图位置在此处修改
│   │   └── config	# 参数配置文件
│   └── CMakeLists.txt
│   └── package.xml
├── start_game	# 脚本部分
│   ├── main.py	# 执行脚本
│   └── initialize.py	# 修改工作空间和urdf路径
│   └──  interactive.py
│   └── ros_module.py
│   └── pose.json	# 导航点
│   └── log.txt
│   └── vital_log.txt
│   └── resources	
│   │   ├── ucar_plane
└── gazebo_pkg

2.1 功能讲解

2.2.1 地图位置及命名
  • 导航所需地图在~/gazebo_test_ws/src/gazebo_nav/launch/navi_demo.launch,$(find gazebo_map)/map/game_map.yaml为地图所在位置
<node name="map_server" pkg="map_server" type="map_server" args="$(find gazebo_map)/map/game_map.yaml" output="screen">
   <param name="frame_id" value="map" />
  </node>
  • 若选手的地图在其他位置,将路径写入args后。其中,gazebo_map为功能包,map为功能包目录下文件夹,game_map为地图名称。
  • 若选手希望将地图名称及位置修改与上图一致,将地图.png及地图.yaml文件移至~/gazebo_test_ws/src/gazebo_map/map目录下,并修改.png及.yaml文件名称,注意修改.yaml文件第一行地图名称。


2.2.2 导航
  • 导航目标点在~/gazebo_test_ws/src/start_game/pose.json修改。其中,position下x,y,z为导航目标点位置信息,orientation下x,y,z,w为导航目标点姿态信息。
{
    "position": 
    {
        "x": -0.25,
        "y": -5.3,
        "z": 0.0
    },
    "orientation": 
    {
        "x": 0.0,
        "y": 0.0,
        "z": 1.0,
        "w": 0.0
    }
}
  • 选手可在~/gazebo_test_ws/src/start_game/main.py launch_pkg()中nav_cmd修改导航指令
    nav_cmd = [
        'roscore',
        'sleep 5; roslaunch gazebo_pkg race.launch', 
        'sleep 5; roslaunch gazebo_nav navi_demo.launch'	# 此处可以替换为选手的launch文件
    ]

其中,‘roslaunch gazebo_pkg race.launch’为打开仿真环境;'roslaunch gazebo_nav navi_demo.launch’为开启导航模块。

导航模块可以替换为选手自己的launch文件,但需要修改start_game/main.py launch_pkg()的内容。

例如

nav_cmd = [
    'roscore',
    'sleep 5; roslaunch gazebo_pkg race.launch',
    'sleep 5; roslaunch ucar_nav your_navigation.launch'              # 修改的地方为此处
]

三、注意事项

3.1.1选手不应当使用root执行本脚本

  • 指令前不添加sudo

3.1.2 选手应当将python2默认编码修改为utf-8

修改方法见先前教程

3.1.3 若选手文件层级与教程不同,请选手完善自己urdf文件路径

  • 在home路径下 ctrl-F 搜索车模urdf文件夹路径
  • 将该文件夹位置,补全到 start_game/initialize.py 第十三行
#Description:
11  from interactive import show, get_bool_ans, get_str_ans, save
12
13  model_path = '~/gazebo_test_ws/src/gazebo_pkg/urdf'     #修改此处内容
14  workspace_path = 'source ~/gazebo_test_ws/devel/setup.bash'
15
16  def install_pkg(): 

3.1.4 若选手文件层级与教程不同,请选手完善自己的工作空间路径

  • 将工作空间路径,补全到 start_game/initialize.py 第十四行
11  from interactive import show, get_bool_ans, get_str_ans, save
12
13  model_path = '~/gazebo_test_ws/src/gazebo_pkg/urdf' 
14  workspace_path = 'source ~/gazebo_test_ws/devel/setup.bash'     #修改此处内容
15
16  def install_pkg(): 

3.2 运行模板程序

在gazebo_test_ws/src/start_game目录下,运行main.py

cd ~/gazebo_test_ws/src/start_game
python2 main.py

脚本运行后,会提醒选手是否开启录屏,若开启,可以回答“Y”并回车。

接着,脚本所在目录中gazebo_pkg 文件夹下的urdf进行 MD5 校验.

之后,本脚本将自动打开三个标签页,并执行如下命令

'roscore'
'sleep 5; roslaunch gazebo_pkg race.launch',
'sleep 5; roslaunch gazebo_nav navi_demo.launch'

具体执行哪些命令可以参照功能讲解修改,这里不再赘述。后两条命令中sleep 5的目的是保证其他程序在roscore启动完成后才被执行。

全部命令执行完成后,命令行提示“上述命令是否已全部在其他窗口正确执行? [Y/n]”,这里作出肯定回答

提示“是否开始比赛计时?(务必等待所有软件启动完成后开始!)”,这里继续作出肯定回答,仿真开始,按屏幕上指示进行即可,仿真期间每 30s 打印一次 Topic list。

3.3 收尾工作

3.3.1 记录运行时间

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 第17届全国大学生智能汽车竞赛是由中国高等教育学会主办的年度比赛。该比赛旨在提高大学生智能汽车技术的兴趣和研究能力,促进智能汽车技术在中国的发展。参赛队伍需要设计并建造一辆智能汽车,并在竞赛中展示其在赛道上的性能。竞赛分为赛前资格赛和决赛两个阶段,选手需要在竞赛中展示其在赛道上的性能。 ### 回答2: 第17届全国大学生智能汽车竞赛是全国高校学生之间的一项重要比赛活动。该竞赛旨在提升学生在智能汽车领域的科学技术创新能力,培养学生的动手实践与团队协作精神。 该比赛以团队为单位,参赛队伍由高校学生自愿组成。比赛主题包括智能驾驶、智能控制、智能感知和智能决策等方面。参赛队伍需要从设计到制作全程参与,包括车身结构设计、电路设计、编程等。比赛内容涵盖汽车自动驾驶、交通场景仿真、人工智能算法开发以及智能车辆的安全性能等多个方面。 比赛过程分为初赛、决赛和总决赛。初赛阶段是为了筛选优秀的参赛队伍,测试他们的车辆在不同场景下的自主行驶能力。决赛则是对初赛晋级队伍进行进一步的比拼,评估他们的技术水平和创新能力。总决赛阶段则是最高级别的比赛,对决出一等奖、二等奖等等各个奖项。 在比赛过程中,评委们以指导组织和执法者身份全程参与,通过录像、现场点评等形式给予队伍们专业的建议和评价,帮助他们提高技术水平和综合实力。 第17届全国大学生智能汽车竞赛为广大学生提供了一个展示自己才华和创新能力的舞台。通过参与该比赛,学生们可以学到更多专业知识,提高实践能力,培养团队协作精神,为汽车智能化技术的发展做出贡献。同时,该竞赛也为企业提供了一个寻找优秀人才的机会,为智能汽车领域的发展注入了新鲜血液。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值