Autoware.universe 高效学习第二章 -- 在 ubuntu22.04 + ros2 humble 安装 autoware.universe
界首大学 2024-08-24 12:07:02 阅读 85
在 ubuntu22.04 + ros2 humble 安装 autoware.universe
1 前言和资料2 正文2.1 基础环境和安装方式选择2.2 autoware 源码安装2.3 运行样例,测试安装是否成功
总结
1 前言和资料
上一篇博客 Autoware.universe 高效学习第一章 – 鸟瞰 autoware,我们对 autoware 进行了系统梳理,了解了 autoware 的昨天今天和明天。本文我们将安装 autoware.universe ,并实际运行下 autoware.universe 的样例,为后面的深入学习准备开发环境。
本文参考资料如下:
(1)autoware source install
(2)autoware planning simulation
(3)Autoware.universe部署01:Ubuntu20.04安装Autoware.universe并与Awsim联调
本系列博客汇总:Autoware.universe 高效学习系列。
2 正文
2.1 基础环境和安装方式选择
(1)本人的基础环境:
硬件:本文选择一台 Thinkpad T14 i7 + Nvidia MX450。
操作系统:物理机安装 ubuntu22.04 ,不搞虚拟机,不搞双系统,运行效率最高。
ros2 版本:ros2 humble 。
英伟达显卡驱动版本:535.183.01 。
英伟达 cuda 编译器 nvcc 版本:V12.3.107
补充1:推荐读者使用 fishros 的脚本在 ubuntu22.04 一键安装 ros2 humble:
<code>wget http://fishros.com/install -O fishros && . fishros
# 测试安装结果
printenv |grep ros
补充2:查看显卡驱动版本:
nvidia-smi
补充3:编译 autoware.universe 时,需要 nvcc 编译器,安装命令:
<code>sudo apt install nvidia-cuda-toolkit
echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
# 检查版本
nvcc -V
(2)安装方式选择:autoware 官方安装文档 给出了两种安装方式,一是 docker 安装,二是源码安装。通常来说采用 docker 安装最省劲,但是 docker 安装无法直接利用本人笔记本已经配置成熟的开发环境,对我而言上手成本比较高,因此选择了源码安装。而源码安装本质就是 ros2 开发那一套,即创造工作空间,拉取代码,编译运行,非常适合个人研究。
2.2 autoware 源码安装
(1)配置 ssh key 到 github,否则无法拉取和提交代码:请参考 Github配置ssh key的步骤(大白话+包含原理解释),这里不再赘述。
(2)Fork 一份 autoware 的入口仓库:访问 autoware,点击右上角 Fork 按钮,fork 一份 autoware 到自己的空间,方便修改和保存自己的代码。本人 fork 的仓库路径为:jieshoudaxue,autoware。
补充:autoware 项目本身有很多个子仓库,见 autoware.repos,最典型的就是 autoware.core ,autoware.universe。这些仓库必须一块编译,系统才能运行,因此 autoware 提供了一个入口仓库,称之为 Meta-repository ,统一管理这些资源。
(3)使用 ssh 的方式,拉取自己空间内的 autoware 仓库:
<code>cd ~
git clone git@github.com:Jieshoudaxue/autoware.git
cd autoware
(4)安装依赖:autoware 仓库内提供了一个脚本 setup-dev-env.sh,用来统一安装各种依赖,但实测发现,基本不可能成功!因此,请参考 autoware source install 中的提示,逐个安装依赖:
补充1:由于本人的环境已经安装了 ros2 humble 和 cuda,因此这两项的安装我就可以省略了。
补充2:由于本人预装的 cuda 版本为12.2,不同于原来仓库配置的 12.3 ,因此安装其他依赖前,我进行了版本调整:modify cuda version
(5)利用 autoware 作为工作空间,在其内部创建 src 目录,并拉取各个仓库源代码,为编译做准备:
mkdir src
vcs import src < autoware.repos
踩坑1:autoware.repos 中,最大的就是 autoware.universe 仓库,里面有大文件,我使用 https 方式拉取总是失败,改为 ssh 方式后拉取成功:up autoware.universe link。拉取失败错误信息如下:
=== src/universe/autoware.universe (git) ===
Could not clone repository 'https://github.com/autowarefoundation/autoware.universe.git': Cloning into '.'...
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)
error: 4519 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
(6)编译整个 autoware :如果一切顺利的话,最后将在 autoware 内生成 build,install,log 三个目录,可执行程序就在 install 目录内
cd ~/autoware
colcon build
# 如果更改了某个 package ,如 tensorrt_yolox,可以使用如下命令单独编译
colcon build --packages-select tensorrt_yolox
2.3 运行样例,测试安装是否成功
(1)下载高精地图到 ~/autoware_map
<code>gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip
(2)启动 autoware
cd ~/autoware
source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
几种常用操作:
第一,按住鼠标左键并移动,可以旋转地图;
第二,按住 shift 键 + 鼠标左键并移动,可以拖动地图;
第三,滚动鼠标滚轮可以放大和缩小地图;
(3)行车样例
第一,按一下 P 键,然后鼠标在任一车道中间找一个点作为起点,点击左键并按住不放,移动鼠标,将箭头(车头)与车道平行,并确保方向符合车道要求,此时会出现一个小车。
第二,按一下 G 键,然后鼠标在车辆行进前方的车道中间找一个点作为终点,点击左键并按住不放,移动鼠标,将箭头(车头)与车道平行,并确保方向符合车道要求。此时,autoware 就会出规划线。
第三,点击 AutowareStatePanel 中的 Auto 按钮,车辆就会动起来,从起点运动到终点。
(4)泊车样例:操作方式基本同行车样例,区别在于需要把终点定位在停车位上
总结
很多人的学习都是被安装环境劝退的,但是没有太好的办法,只能广搜资料,持续试错,逐步积累经验。当该踩的坑踩完以后,基本就能成功了。
上一篇: 【JavaEE精炼宝库】网络原理基础——TCP协议详解(看这一篇就够了)
下一篇: Linux之进程间通信(管道)
本文标签
Autoware.universe 高效学习第二章 -- 在 ubuntu22.04 + ros2 humble 安装 autoware.universe
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。