ROS放弃指南8:Autoware.auto的安装和使用

Autoware.auto的安装和使用

  • 前言
  • 源码安装
    • ros2的相关安装和问题解决
      • 报错 xxx:Cannot locate rosdep definition for [xxx]
    • 安装编译 autoware.auto
    • 如果重新编编译
  • docker 安装
    • 示例
    • 使用报错解决
      • Failed to load entry point 'process': No module named 'pandas'
    • 运行示例 第二步报错 No meshes found in file
    • expected [string] got [not set]

参考链接:
https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/
https://www.autoware.auto/
https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/installation-ade.html
https://ade-cli.readthedocs.io/en/latest/install.html

捡贝壳的小朋友:Autoware.Auto
Kin__Zhang:【Autoware Lec1】 Autoware ROS2版本学习
零点壹客:AutoWare.auto 与ROS2 亲测安装成功

前言

Autoware有两个版本,ai和auto。ai是基于ROS1的,auto是基于ROS2的,希望小伙伴们下载的时候,根据自己的系统版本和ROS版本来选择,个人感觉,auto版本的功能更强大,更适合商业化。ai版本可能更适合普通人学习。

源码安装

环境:ubuntu18.04+ROS2 dashing

ros2的相关安装和问题解决

// ros2需要完成的工作
sudo apt install -y git cmake python3-pip
pip3 install -U colcon-common-extensions vcstool
source /opt/ros/$ROS_DISTRO/setup.bash
sudo apt update
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update

sudo apt purge -y ros-foxy-autoware-auto-msgs   // dashing 未出现
//与acado包的错误   dashing未出现
sudo apt purge -y ros-foxy-acado-vendor
sudo apt install -y ros-foxy-acado-vendor
rosdep install --from-paths src --ignore-src  -rosdistro=dashing -y // 然后根据提示安装缺少的库

报错 xxx:Cannot locate rosdep definition for [xxx]

解决办法 可以直接安装缺少的库

sudo apt-get install ros-dashing-xxx; 

但是有几个库,在我安装完之后,还是会提示这个错误。就只能采用第二种方法了。
https://github.com/ros/rosdistro
从这个网站上可以找到ros各个版本的distribution.yaml文件。然后下载下来,直接搜索你缺少的库,然后去相应的路径下载下来。再放进AutowareAuto/src路径下就行
ROS放弃指南8:Autoware.auto的安装和使用_第1张图片
在这里插入图片描述

安装编译 autoware.auto

重点:最新版本的autoware.auto是只支持ROS2的foxy版本的,所以在git之后,一定要记得切换版本。
还有就是一定要执行
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
避免因为自己ROS库的原因导致编译失败。

git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
cd AutowareAuto
git checkout tags/1.0.0 -b release-1.0.0
vcs import < autoware.auto.$ROS_DISTRO.repos
export ROS_VERSION=2
rosdep install -y -i --from-paths src
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
export COLCON_DEFAULTS_FILE=/home/xs-csy/AutowareAuto/tools/ade_image/colcon-defaults.yaml
or
echo "export COLCON_DEFAULTS_FILE=/home/xs-csy/AutowareAuto/tools/ade_image/colcon-defaults.yaml" >> .bashrc
// 编译
colcon build
colcon test
colcon test-result --verbose

如果重新编编译

rm -rf build/ install/ log/ src/external/
git pull
source /opt/ros/$ROS_DISTRO/setup.bash
vcs import < autoware.auto.$ROS_DISTRO.repos

docker 安装

//  ade start [OPTIONS] [ADDARGS]...    启动一个容器
//  ade stop [OPTIONS] [ADDARGS]...    停止一个容器
//  ade enter [OPTIONS] [ADDARGS]...    进入正在运行的容器
sudo mkdir /usr/local/bin
cd /usr/local/bin/
// 下载 ade
sudo wget https://gitlab.com/ApexAI/ade-cli/-/jobs/1341322851/artifacts/raw/dist/ade+x86_64
sudo mv ade+x86_64 ade
sudo chmod +x ade

cd ~/adehome
// 下载AutuWare.auto
git clone https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git
 git clone --recurse-submodules https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git  //这个是官网的下载地址,是错的
// data
mkdir -p :~/adehome/data
git clone https://gitlab.com/ApexAI/autowareclass2020.git ~/autowareclass2020
cd AutowareAuto
git checkout tags/1.0.0 -b release-1.0.0  
ade --rc .aderc-amd64-dashing start --update --enter
vcs import < autoware.auto.$ROS_DISTRO.repos
colcon build
colcon test
colcon test-result
cuda编译
AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
直接编译
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

在docker上使用rviz报错

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-csy'
1621414481.507871 [0]      rviz2: using network interface enp2s0 (udp/172.16.0.82) selected arbitrarily from: enp2s0, docker0
dbus[3608]: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted (core dumped)

解决方法

export DBUS_FATAL_WARNINGS=0
或者 make TILES=1 SOUND=1 RELEASE=1 LUA=1 USE_HOME_DIR=1

Error - “Unable to create the rendering window after 100 tries” when launching GUI application
解决办法

// 先停止ade
ade$ exit
//删除.ade里面的    export ADE_DISABLE_NVIDIA_DOCKER=true    这一段话
//然后重新启动ade
$ ade stop
$ ade start --update --enter

示例

非ade环境下,源码编译的程序,按照官方的 lesson1 会有很多报错,所以我该了一些参数的设置

// 第1步
 udpreplay ~/data/route_small_loop_rw-127.0.0.1.pcap -r -1

// 第2步 按照官方的执行会报错
rviz2 -d /home/xs-csy/autowareclass2020/code/src/01_DevelopmentEnvironment/aw_class2020.rviz

// 第3步 按照官方的执行会报错
ros2 run velodyne_nodes velodyne_cloud_node_exe --model vlp16  __ns: = /lidar_front __params:=/home/xs-csy/AutowareAuto/src/drivers/velodyne_nodes/param/vlp16_test.param.yaml 

// 第4步
 ros2 run robot_state_publisher robot_state_publisher install/lexus_rx_450h_description/share/lexus_rx_450h_description/urdf/lexus_rx_450h.urdf 

// 第5步 
ros2 run point_cloud_filter_transform_nodes  point_cloud_filter_transform_node_exe --ros-args --remap __ns:=/lidar_front __params:=install/point_cloud_filter_transform_nodes/share/point_cloud_filter_transform_nodes/param/vlp16_sim_lexus_filter_transform.param.yaml __node:=filter_transform_vlp16_front points_filtered:=/perception/points_in


// 第6步
ros2 run ray_ground_classifier_nodes ray_ground_classifier_cloud_node_exe --ros-args --remap __ns:=/perception __params:=install/autoware_auto_avp_demo/share/autoware_auto_avp_demo/param/ray_ground_classifier.param.yaml 

// 第7步
ros2 run euclidean_cluster_nodes  euclidean_cluster_node_exe __ns:=perception __params:=install/autoware_auto_avp_demo/share/autoware_auto_avp_demo/param/euclidean_cluster.param.yaml

使用报错解决

Failed to load entry point ‘process’: No module named ‘pandas’

pip3 install pandas

运行示例 第二步报错 No meshes found in file

[ERROR] [rviz2]: No meshes found in file [package://lexus_rx_450h_description/meshes/lexusrx.obj]

olcon build --packages --select lexus_rx_450h_description source  // 单独编译lexus包

// 如果能打开,应该是不会出现错误的。我的就是不能打开,所以才出现错误
meshlab  /home/{youname}/AutowareAuto/install/lexus_rx_450h_description/share/lexus_rx_450h_description/meshes/ LexusRX.obj

 // 如果打不开 obj文件,就去重新下载obj文件。我下载的obj文件大小大概10M。
 // 可以去下面这个链接,下载这个obj文件,也让我血赚5积分
https://download.csdn.net/download/qq_45113070/84581152?spm=1003.2166.3001.6637.1

expected [string] got [not set]

出现这个错误,肯定是你按照官方的步骤走的,要改成下面的才可以。

ros2 run velodyne_nodes velodyne_cloud_node_exe --model vlp16  __ns: = /lidar_front __params:=/home/xs-csy/AutowareAuto/src/drivers/velodyne_nodes/param/vlp16_test.param.yaml 

你可能感兴趣的:(ROS放弃指南,slam,自动驾驶,ros,autoware.auto)