[Autoware] 下载编译

总结自己和同事遇到的各种问题,mark之

  •  Release

autowarefoundation成立后,release 不在继续github上发布,而是和亲密伙伴ros走得更近,发布在discourse.ros.org,如

https://discourse.ros.org/t/autoware-1-12-released/9817

https://discourse.ros.org/t/autoware-ai-1-13-released/11785

下个版本1.14据悉仍然使用ros1,autoware 2.0也许会转到ros2

  • Source build

1. autoware国内秒下的mirror仓库,有更新会在15分钟内同步过来 :)

https://gitee.com/autowarefoundation/repo

2. auoware从1.12版本开始使用了vcs 进行代码管理,colcon进行代码编译

colcon 是ROS编译工具的新一代产品

http://colcon.readthedocs.io/en/latest/index.html

build目录是存储中间文件的位置。对于每个包,将创建一个子文件夹,例如调用CMake。

install目录是每个软件包的安装目录。默认情况下,每个包都将安装到单独的子目录中。

log目录包含有关每个colcon调用的各种日志记录信息。

和catkin比,devel目录已经被替换为install 目录

3. catkin colcon 黑名单编译差异举例:

catkin_make -DCATKIN_BLACKLIST_PACKAGES="qpoases_vendor;mpc_follower;autoreg_msgs;front_detect;model_helper""

colcon build --packages-ignore autoreg_msgs front_detect model_helper


colcon经常编译不报错,但是实际上出错的日志没打印,我们需要打开对应编译开关

colcon build --cmake-args  -DCMAKE_BUILD_TYPE=Release  -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON

 

4. 基本参照官方说明编译都不会有错,有错的话大多和版本安装的冲突有关,如需要cmake 版本>3.5.1

同事遇到pcl编译报错

[Autoware] 下载编译_第1张图片

 

step1,查看各种系统版本,pcl版本

step2, 查看build/*/link.txt,查看具体的so使用的链接位置对应版本号

定位出查找的版本太高,一些方法在更高版本不被支持

 

5. 同事colcon build 遇到的错误,比较有共性:

pkg_resources.DistributionNotFound: The 'catkin-pkg' distribution was not found and is required by the application.....

 原因是找不到安装的包,使用apt reinstall 也不行. 解决方法,使用pip3重新安装一下catkin-pkg.

sudo apt install python3-pip
sudo  pip3 install catkin-pkg

6.同事编译问题:

autoware 中机器学习相关的模块lidar_point_pillars,没有编译出对应的包,但是colcon编译也不报错.单编模块发现CUDNN, TensorRT没有安装,导致模块没有编译成功

这也是colcon一个诟病,提示错误信息很不明显甚至没有

7. 引申出 find_package 的流程解析

 

  • Docker

Autoware Docker目录给了docker file,具体仓库都存放在https://hub.docker.com/u/autoware

,可以根据需要下载,除了下载慢一些之外,还是很方便的,不需要为配置环境而烦神.

但是nvidia的docker需要注意,需要和本机匹配才能正常在docker中使用rviz rviz2等工具,如我的机器安装了nvidia的384,对应需要cuda的版本的docker:   autoware/autoware:latest-melodic-cuda,否则会提示

[ERROR] [1584671030.209413606]: Unable to create the rendering window after 100 tries.
[ INFO] [1584671030.209432039]: Stereo is NOT SUPPORTED
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Aborted (core dumped)

另外,16.04上要求cuda版本<10

  • RUN

总结一下经常出现的问题

1. 使用rosbag播放的时候:

rosparm set /use_sim_time true 这步在runtimemanager中被集成了,如果跳过runtimemanager,自己需要手动设置

rosbag play 参数需要 --clock

2.NDT定位的时候

只有定位才会pub /ndt_stat,显示exec time

多块设备之间需要同步时间,否则TF会有问题

3.引申出TF 解析

你可能感兴趣的:([Autoware] 下载编译)