ROS系统有很多开源的工具包,可以通过选择不同的工具包实现,建图,定位,规划等节点,从而实现整体的自动驾驶技术。在这个过程和自己组装一台电脑是一样的,选用不同的显示器,键盘,硬盘,显卡,主板等就可以组合出一台电脑。这个过程是自由但是难度也比较大,而且不成体系。有没有一台组装好的电脑,集成了上面所有的标准配置呢,答案是有的。
Autoware是一个开源协作项目,其最早是由名古屋大学研究小组在加藤伸平教授(Prof. Shinpei Kato)的领导下于2015年8月正式发布。2015年12月下旬,加藤伸平教授创立了Tier IV,以维护Autoware并将其应用于真正的自动驾驶汽车。随着时间的流逝,Autoware已成为公认的开源项目。目前,由Autoware Foundation启动、发展和资助。
== 目前该基金会运营三个项目:Autoware.AI、Autoware.Auto和Autoware.IO. ==
Autoware.Al旨在为学者、开发者和学生提供一个开源的自动驾驶研发平台,是由Tier IV和东京大学的Shinpei Kato在2015年创立的Autoware项目发展而来;Autoware.Auto用于可认证的自动驾驶软件堆栈;而Autoware.IO则专注于车辆控制接口以及连接外部软件和硬件工具。
Autoware.AI是世界上第一个用于自动驾驶技术的“All-in-One”开源软件。它ROS1操作系统,并在Apache2.0许可下使用。主要包含以下模块:
定位(Localization ):通过结合GNSS和IMU传感器的3D地图和3D地图、SLAM算法来实现定位。
检测(Detection ):通过传感器融合算法和深度神经网络使用摄像机和激光雷达完成检测。
预测和规划(Prediction and Planning ):基于概率机器人模型和基于规则的系统,部分还使用深度神经网络。
控制(Control):Autoware向车辆输出的是速度和角速度的扭曲量。尽管控制量的主要部分通常位于车辆的线控控制器中,但这些是Control的一部分。
Autoware.Auto是Autoware的彻底重写,基于ROS2,应用一流的软件工程实践,包括PR审阅,PR构建,全面的文档,100%代码覆盖率,编码样式指南以及定义的开发和发布过程,所有这些均由开源社区管理。
它具有两个不同:
a)为不同的模块(消息和API)定义了清晰的接口
b)为确定性而设计的体系结构,以便可以在实时和开发机器上重现行为。
Autoware.IO 是 Autoware的接口项目,将通过专有软件和第三方库以可靠的方式扩展Autoware。 例如包括用于传感器的设备驱动程序,用于车辆线控以及用于SoC板的硬件相关程序。提供了具有统一的界面设计和测试框架的异构硬件参考平台,支持将成员公司的解决方案集成到支持Autoware.Auto和Autoware.AI软件平台上。
参考:
https://blog.csdn.net/zhao5269/article/details/106827618
https://blog.csdn.net/weixin_42343975/article/details/124754154(此教程,安装engin的软链接处有错误)
https://blog.csdn.net/qq_34935373/article/details/120141905
github链接:
https://github.com/autowarefoundation/autoware
(1)https://blog.csdn.net/mao_hui_fei/article/details/117260278?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165907745316782391870420%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165907745316782391870420&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-117260278-null-null.142v35pc_search_v2&utm_term=ubuntu%E4%B8%8B%E7%BC%96%E8%AF%91autoware%E6%97%B6%EF%BC%8C%E6%98%BE%E7%A4%BAkitti_player.cpp%E6%8A%A5%E9%94%99&spm=1018.2226.3001.4187
(2)https://blog.csdn.net/weixin_43569276/article/details/113748675?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-113748675-blog-124754154.pc_relevant_multi_platform_featuressortv2dupreplace&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-113748675-blog-124754154.pc_relevant_multi_platform_featuressortv2dupreplace&utm_relevant_index=4
注:大部分报错与cuda、gcc、g++、cudnn等依赖的版本问题、链接问题有关。
参考:
(1)https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/ROSBAG-Demo
(2)https://blog.csdn.net/r1141207831/article/details/100666532
(3)https://blog.csdn.net/zhao5269/article/details/106864985
(4)autoware入门教程-目录
参考官网上的demo展示操作步骤,总是不成功,因此,找到了一个可行的操作:
wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
或者
wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz
wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz
或者
wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz
cd ~
mkdir .autoware
cd .autoware
cp ~/Downloads/sample_moriyama_* .
tar zxfv sample_moriyama_150324.tar.gz
tar zxfv sample_moriyama_data.tar.gz
cd ~/autoware.ai
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
运行起来之后,需要加载 demo 示例的 data,转到Simulation
选项卡,单击Ref
按钮找到如下图所示路径的 bag 包
,若是找不到文件夹,右击看一下Show Hidden Files(或者ctrl+h)有没有勾选上。加载完毕之后设置开始时间140
,点击play
,然后再点击Pause
暂停播放。
转到Autoware Runtime Manager(ARM)选项卡Map
,点击Point cloud
这一点行的Ref
,选择我们下载好的3D点云地图(点击ctrl+a全选)
再转到Simulation
选项卡,点击play
,然后再点击Pause
暂停播放。
在点击Quick Start
功能按钮,然后分别点击右侧Ref
按钮,分别加载下图中所示路径的对应文件,然后按需点击左侧相对应的启动按钮,点击完毕后会变颜色。(对应路径autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/
)
注意:由于版本原因,这里需要修改my_map.launch文件,把加载的地图部分注释掉,其他正常加载即可。
Map 地图:启动/结束文本框中的完整路径指定的启动脚本.launch文件。可以点击后面的Ref按钮从文件中选择脚本。
Sensing 传感器:启动/结束文本框中的完整路径指定的启动脚本.launch文件。可以点击后面的Ref按钮从文件中选择脚本。
Localization 定位:启动/结束文本框中的完整路径指定的启动脚本.launch文件。可以点击后面的Ref按钮从文件中选择脚本。
Detection 目标检测:启动/结束文本框中的完整路径指定的启动脚本.launch文件。可以点击后面的Ref按钮从文件中选择脚本。
Mission Planning 任务规划:启动/结束文本框中的完整路径指定的启动脚本.launch文件。可以点击后面的Ref按钮从文件中选择脚本。
Motion Planning 运动规划:启动/结束文本框中的完整路径指定的启动脚本.launch文件。可以点击后面的Ref按钮从文件中选择脚本。
Android Tablet 安卓平板电脑:启动/结束通信脚本runtime_manager/tablet_socket.launch完成与平板电脑的通信,基本用不上。
Oculus Rift 不懂什么作用。
Vehicle Gateway 车联网模块:启动/结束脚本runtime_manager/vehicle_socket.launch与ZMP(日本机器人、自动驾驶公司)Robocar(改装的基于Autoware的自动驾驶丰田车)通信,自己开发的话用不上。
Cloud Data 云数据:不懂什么作用,可能是可以与云端通信吧,直接使用云端的数据。
Auto Pilot 自动驾驶:根据按钮的状态发布mode_cmd主题。
ROSBAG:显示ROSBAG记录对话框的ROSBAG。
RViz:开始/结束RViz(ROS自带的一个图形化显示工具)。
RQT:开始/结束RQT(基于Qt的ROS GUI开发框架,以插件的形式实现各种GUI工具)。
然后再点击Rviz
按钮启动rviz插件,找到File -> Open Config
,然后按照下面的步骤顺序并加载 .rviz
文件。
autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo/default.rviz
回到simulation
,点击pause
按键开始播放,软件运行,如下图所示: