捡贝壳的小朋友: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需要完成的工作
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 // 然后根据提示安装缺少的库
解决办法 可以直接安装缺少的库
sudo apt-get install ros-dashing-xxx;
但是有几个库,在我安装完之后,还是会提示这个错误。就只能采用第二种方法了。
https://github.com/ros/rosdistro
从这个网站上可以找到ros各个版本的distribution.yaml文件。然后下载下来,直接搜索你缺少的库,然后去相应的路径下载下来。再放进AutowareAuto/src路径下就行
重点:最新版本的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
// 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
pip3 install pandas
[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
出现这个错误,肯定是你按照官方的步骤走的,要改成下面的才可以。
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