【Autoware.ai】Autoware.ai配置和demo运行教程

这篇具有很好参考价值的文章主要介绍了【Autoware.ai】Autoware.ai配置和demo运行教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Autoware.ai配置和demo运行教程

之前看了一些关于Autoware的内容,由于工作的需要,暂时不能切换到Autoware.Auto的新版本,依然在用Autoware.ai的旧版本。Autoware.ai是基于ROS1的,目前官方已经于2022年底停止维护。Autoware.Auto是基于ROS2的,依然在不断更新中。新来的小伙伴建议用Autoware.Auto。

这个系列的文章计划把自己在学习和运用的过程中遇到的一些问题和方法做一个记录。

配置

环境

首先你需要一台ubuntu的电脑,官方说需要18.04LTS,但是我在20.04LTS和22.04LTS上都运行过,目前都还是可以的,也可能是因为我一直用docker。
Autoware提供两种配置方式,一种是source build,一种是docker build。
理论上说,需要nvidia支持,之前在有nvidia支持的电脑上也运行起来了,但是后面在没有nvidia的机器上也可以运行起来,不过有些功能会受限。

需要说明的是,Autoware建议CUDA支持,如果没有CUDA支持,受限的功能在这里有列出:
https://autowarefoundation.github.io/autoware-documentation/main/how-to-guides/running-autoware-without-cuda/

Docker Build

首先,你需要按照Docker官方的教程,安装docker
https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/docker-installation

不想看的话直接看这里

Old Docker Cleanup

$ sudo apt-get remove docker docker-engine docker.io

Docker CE Installation
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88

pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb)
sub 4096R/F273FCD8 2017-02-22
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo docker run hello-world

然后根据autoware的官方的教程链接,配置:
https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/Generic-x86-Docker
不想看的话还是看这里

$ git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
$ cd docker/generic
$ ./run.sh

在执行./run.sh时,通常会要求root权限,如果不想每次运行docker都要用root权限,可以用下面的方法配置:
https://docs.docker.com/engine/install/linux-postinstall/
依然是不想仔细看的话,直接看这里

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker
$ docker run hello-world
Run autoware docker without nvidia-driver

由于我的新电脑没有nvidia的graphic cards,只有Intel的,所以在运行run.sh的时候,可以把文件里的CUDA选项改为off

Docker运行后不想每次都被自动删除

run.sh 的脚本,默认是会在每次运行结束,退出docker container之后,自动kill掉之前用过的docker container的,这样是为了不占据太多存储,因为每次运行run.sh,都会创建一个新的docker container,但是我们常常会在docker container中做一些设置,配置等等。要想不被删除,可以在run.sh文件中,翻到最后面,找到docker run -it后面的一个,--rm,这个是每次exit后删除的意思。

Source Build

我没有试过source build,贴一个官方的链接,有需要的同学可以自行实践
https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/Source-Build?version_id=a33764ab4b6e7a1798c9f79465c74d565e92904b

官方Demo运行

ROSBAG Demo

之前搜了一些教程,发现那些数据包都不能下载,还是官方教程靠谱。链接如下
https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/ROSBAG-Demo
不想看的直接看这里

下载数据
$ wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz
$ wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz
# or
$ wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.bag2.tar.gz
在docker中运行
$ cd ~
$ mkdir .autoware
$ cd .autoware
$ cp ~/shared_dir/sample_moriyama_* .
$ tar zxfv sample_moriyama_150324.tar.gz
$ tar zxfv sample_moriyama_data.tar.gz
Run Autoware
$ cd /home/autoware/Autoware
$ source install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch

按照教程里导入文件,运行即可

在runtime_manager的Simulation Tab页,导入.autoware/sample_moriyama_150324.bag
点击Play按钮,然后点Pause

注意这里一定要先点一下Play!然后再进行后面的操作,不要等全部设置完才回来点。这样会导致timestamp的错误,使得demo无法正常运行。这部分在后面的Error解决中有详细的描述。

在runtime_manager的Quick Start Tab页,导入/Autoware/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo目录下的对应配置文件
继续播放,打开rviz,可以看到内容

附一个官方的视频详细教程
https://www.youtube.com/watch?v=OWwtr_71cqI&ab_channel=TIERIV

------------分割线
很神奇的一点就是,按照官方的这个教程,我运行起来都有问题,不显示points map之类的,或者其他问题。不管是有nvidia支持的机器还是没有的机器,试过都不行。然后重新找了这个教程,操作就成功了,而且不可以加载quick start页的那些文件,否则好像是会有冲突。
https://www.cxyzjd.com/article/weixin_42441790/113784687
------------分割线2
然后发现上面这个教程其实也很潦草,解决后面出现的error的时候,在万能的github上找到了一个更详细有解释的版本。
https://github.com/autowarefoundation/autoware_ai/issues/884
并将具体的操作方法贴在这里:

This is the corret sequence to run ndt_matching.
https://www.youtube.com/watch?v=5bj7gkFlul0

  1. Go to Simulation tab and select a rosbag which includes /points_raw and /nmea_sentence(or /gnss_pose).
  2. Click “Play” and click “Pause” to set rosparam “use_sim_time” true.
  3. Go to Setup tab, select Localizer (Velodyne or Hokuyo 3D URG), input parameters related to relative position between the vehicle and localizer, push “TF” and push “Vehicle Model” (if you leave the space blank, the default model will be loaded.).
  4. Go to Map tab and load pointcloud map and publish TF between /world and /map. (Refer to https://www.youtube.com/watch?v=EJa4P…)
  5. Go to Sensing tab and run voxel_grid_filter to downsample scan data.
  6. Go to Computing tab and run nmea2tfpose to convert /nmea_sentence into /gnss_pose.
  7. Run ndt_mathcing, click “app” and choose GNSS as initial position.
  8. Go to Simulation tab and click “Pause” to replay rosbag.

一些Error的解决

运行起来后,出现几个问题

  1. Vehicle Model 报错,错误内容
    No transform from [base_link] to [world]

    检查一下当前tf的转换关系:
    rosrun tf view_frames
    输出frames.pdf文件
    查看该文件即可知道当前的所有tf转换关系,如果箭头从A指向B,表示A是B的parent。

    还有一个方法是在terminal中使用命令行:
    rosrun tf tf_echo [$FRAME1] [$FRAME2]

    其他的一些tf相关命令可以再这里找到:
    http://wiki.ros.org/tf/Debugging%20tools

    然后去搜索这个error,终于找到了一个靠谱的答案:
    https://github.com/autowarefoundation/autoware_ai/issues/884
    感谢某位小姐姐的帮助。
    错误的原因是:

    I think it is caused by simulation clock.
    If you use rosbag, pls play rosbag in order to enable simulation clock at first.

    因此跑rosbag的时候,要先运行一下,再做其他的配置。
    这个链接中还详细的描述了每个配置的步骤,和原因。
    另外还有一点就是一定要仔细!之前要求选ndt_matching,我选了ndt_mapping,太粗心了

  2. Points Raw报错,错误内容
    For frame [velodyne]: No transform to fixed frame [world]. TF error: [Lookup would require extrapolation into the past. Requested time 1427157892.272318976 but the earliest data is at time 1678869922.342216365, when looking up transform from frame [velodyne] to frame [world]]
    勾选Computing页的nmea2tfposendt_mapping后解决

  3. 运行Simulation,车没有如期望的那样跑起来
    Solution: 解决了问题1以后,这个问题也迎刃而解啦!

下一篇预告:
Runtime_Manager的使用,调试
astar模块分析
open_planner模块分析文章来源地址https://www.toymoban.com/news/detail-636017.html

到了这里,关于【Autoware.ai】Autoware.ai配置和demo运行教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列

    文章版权所有,未经授权请勿转载或使用   相关标准全文下载,关注本公众号回复“210901”即可  2021年4月30日, SAE发布了第四版J3016《驾驶自动化分级》 ,这是即2014年1月16日、2016年9月30日、2018年6月15日之后,J3016的又一次迭代更新。 2021年7月, ISO发布了ISO 22737《预定路线

    2024年02月06日
    浏览(54)
  • 如何配置 Docker 容器在系统启动时自动运行

    在使用 Docker 部署应用程序时,您可能希望配置容器在系统启动时自动启动。这可以通过 Systemd 在 Linux 系统上实现。本文将以一个示例命令和服务(以 pandora 为例)为基础,向您展示如何配置 Docker 容器的自动启动。 以下是详细步骤: 在终端中执行以下命令,创建一个新的

    2024年02月12日
    浏览(38)
  • AI教程之 Stable Diffusion在自己电脑上运行稳定的AI自动艺术创作

    最近,初创公司 StabilityAI宣布发布Stable Diffusion,这是一款功能强大的 AI 图像生成器,现在可以在标准显卡上运行。 注意:您不需要任何编程经验就可以学习,这一切都已详细说明。 在执行以下步骤之前,请确保您具备在本地硬件中运行 AI 模型的所有要求。 具有至少 4GB V

    2024年02月09日
    浏览(49)
  • Carla自动驾驶仿真一:快速安装与运行Carla

    网上有不少的Windows版本的Carla的安装教程,这里简单记录下自己安装过程 1、官方推荐 硬件 型号 处理器 英特尔 i7 第 9 代 - 第 11 代 / 英特尔 i9 第 9 代 - 第 11 代 / AMD 锐龙 7 / AMD 锐龙 9 显卡 英伟达 RTX 2070 / 英伟达 RTX 2080 / 英伟达 RTX 3070, 英伟达 RTX 3080 1、内存:+16 GB RAM memo

    2024年02月17日
    浏览(52)
  • AI自动驾驶

    自动驾驶技术是近年来备受关注的热门话题。它代表了人工智能和机器学习在汽车行业的重要应用。本文将详细介绍自动驾驶的原理、分类、挑战和前景,以及与之相关的关键技术和安全问题。 自动驾驶的原理是通过车载传感器、计算机视觉和深度学习等技术,使汽车能够感

    2024年02月13日
    浏览(73)
  • AI实战,用Python玩个自动驾驶!

    gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为简便。 安装gym: 安装自动驾驶模块,这里使用 Edouard Leurent 发布在 github 上的包 highway-env: 其中包含6个场景: 高速公路——“highway-v0” 汇入——“merge-v0” 环岛——“roundabout-v0” 泊车——

    2024年02月04日
    浏览(41)
  • 【AI赋能】人工智能在自动驾驶时代的应用

    引言 人工智能引领现代,智能AI赋能未来。 它在当今社会和科技领域中具有重要性。 本文将着重探讨人工智能对自动驾驶技术的深度赋能和应用场景等。 有时我们乘坐网约车的时候,能打到无人驾驶汽车,全程均为AI语音播报: 自动驾驶是指通过使用 各种传感器 、 计算机

    2024年02月17日
    浏览(67)
  • AI大模型应用入门实战与进阶:22. AI大模型的实战项目:自动驾驶

    自动驾驶技术是人工智能领域的一个重要分支,它涉及到计算机视觉、机器学习、深度学习、路径规划、控制理论等多个领域的知识和技术。自动驾驶的目标是让汽车在人类的指导下或者无人指导下自主地完成驾驶任务,从而提高交通安全和效率。 自动驾驶技术的发展历程可

    2024年02月19日
    浏览(44)
  • AI在日常生活中的应用:从语音助手到自动驾驶

    🎉欢迎来到AIGC人工智能专栏~探索AI在日常生活中的应用 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:AIGC人工智能 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 欢迎来到我的博客!今天

    2024年02月11日
    浏览(34)
  • 【Python | 人工智能】一文讲清AI赋能自动驾驶的底层原理

    引言 人工智能引领现代,智能AI赋能未来。 它在当今社会和科技领域中具有重要性。 本文将着重探讨人工智能对自动驾驶技术的深度赋能和应用场景等。 有时我们乘坐网约车的时候,能打到无人驾驶汽车,全程均为AI语音播报: 自动驾驶是指通过使用 各种传感器 、 计算机

    2024年02月04日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包