Ubuntu 18.04下autoware 1.12 安装日志
安装Autoware 1.12
Autoware官网信息
官网给出了Ubuntu版本对应支持Autoware的版本号,其中有交叉的是支持的版本:
autoware的安装分为两种,一种是有CUDA依赖的GPU驱动的,另外一种不依赖CUDA,我的Autoware是不依赖CUDA的。同时Ubuntu 18.04下编译CUDA需要Eigen支持,所以需要再下载Eigen。如果是Ubuntu18.04需要安装CUDA 10.0和Eigen 3.7,具体可以参考这位博主的文章ubuntu18 安装autoware1.12.0。
下载相关依赖项
输入以下命令:
$ sudo apt-get update
$ sudo apt-get install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin gksu
$ sudo apt-get install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
$ pip3 install -U setuptools
新建文件夹下载autoware 1.12
新建一个文件夹,并从gitlab上下载所需文件到autoware.ai中:
$ mkdir -p autoware.ai/src
$ cd autoware.ai
$ wget -O autoware.ai.repos "https://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.12.0/autoware.ai.repos?inline=false"
$ vcs import src < autoware.ai.repos
$ rosdep update
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
编译autoware 1.12
该命令在后面会多次用到:
$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
添加到环境并试运行
将setup.bash加入到环境中:
$ cd autoware.ai
$ source install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch
启动以后可以看到autoware的runtime manager的界面:
如果测试没问题,能运行,就可以把环境添加到/.bashrc中,每次开机配置的时候就能直接将autoware的setup.bash加入到环境,如下所示:
$ gedit ~/.bashrc
//将source ~/autoware.ai/install/setup.bash添加到文件的末尾
下载demo并解压
下载一个已生成的数据,用于测试autoware:
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz
进行解压:
$ mkdir .autoware
$ cd .autoware
$ cp ~/Downloads/sample_moriyama_* .//这一步需要自己修改一下地址
$ tar zxfv sample_moriyama_150324.tar.gz
$ tar zxfv sample_moriyama_data.tar.gz
demo使用方法请参照文章Autoware 的安装与官方Demo的运行。
花屏解决办法与遇到的问题
根据参考文章问题:Ubuntu18.04 Autoware1.12.0中运行Runtime Manager出现花屏重叠现象。
文中的解决办法为:
- 安装以下内容:
pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk2/ubuntu-18.04 wxPython
sudo apt install libsdl1.2-dev
但是这样安装得到的版本是wxpython 4.1.1并不是4.0.7版本,因此可以查询自己的版本,重新在官网上下载对应版本的wxpython包:
python -c "import wx;print wx.__version__" //查看版本号
pip uninstall wxPython//卸载当前版本
然后上官网:wxpython下载地址,找到对应版本号,我的python2是2.7版本,所以我就下载wxPython-4.0.7-cp27-cp27mu-linux_x86_64.whl,然后在下载目录下打开终端(该文件无需解压),输入命令:
sudo pip install wxPython-4.0.7-cp27-cp27mu-linux_x86_64.whl
但是我出现了这样的情况:
这里说我的python版本不对应,后来我又试了4.0.3版本和cp36的一系列版本,结果都出现这样的error,后来看到了这位博主的文章:Ubuntu18.04 Autoware1.12.0(包括docker安装和源码安装)中运行Runtime Manager出现花屏重叠现象。
文中用的命令是:
python2.7 -m pip install wxPython-4.0.7-cp27-cp27mu-linux_x86_64.whl
给定了安装的python版本号,避免了错误识别python版本。然后成功安装。
- 之后修改runtime_manager_dialog.py :
找到 autoware.ai/src/autoware/utilities/runtime_manager/scripts 中的 runtime_manager_dialog.py 文件
在文件中添加import wx.adv
把文件中所有的wx.HyperlinkCtrl
替换成wx.adv.HyperlinkCtrl
把文件中所有的wx.EVT_HYPERLINK
替换成wx.adv.EVT_HYPERLINK
更改了wxpython的版本,也更改了其中的参数,import了wx.adv,但是之后打开runtime_manager.launch都会出现闪退现象,原因是runtime_manager_dialog.py出错了:
$rosrun runtime_manager runtime_manager_dialog.py
运行上述命令后遇到问题如下:
tinner@tinner-v:~$ rosrun runtime_manager runtime_manager_dialog.py
16:33:26: Debug: Adding duplicate image handler for 'PNG file'
16:33:26: Debug: Adding duplicate image handler for 'JPEG file'
16:33:26: Debug: Adding duplicate image handler for 'TIFF file'
16:33:26: Debug: Adding duplicate image handler for 'GIF file'
16:33:26: Debug: Adding duplicate image handler for 'PNM file'
16:33:26: Debug: Adding duplicate image handler for 'PCX file'
16:33:26: Debug: Adding duplicate image handler for 'IFF file'
16:33:26: Debug: Adding duplicate image handler for 'Windows icon file'
16:33:26: Debug: Adding duplicate image handler for 'Windows cursor file'
16:33:26: Debug: Adding duplicate image handler for 'Windows animated cursor file'
16:33:26: Debug: Adding duplicate image handler for 'TGA file'
16:33:26: Debug: Adding duplicate image handler for 'XPM file'
Unable to register with master node [http://localhost:11311]: master may not be running yet. Will keep trying.
//此处ctrl+c取消了
^CTraceback (most recent call last):
File "/home/tinner/autoware.ai/install/runtime_manager/lib/runtime_manager/runtime_manager_dialog.py", line 2866, in OnInit
frame_1 = MyFrame(None, wx.ID_ANY, "")
File "/home/tinner/autoware.ai/install/runtime_manager/lib/runtime_manager/runtime_manager_dialog.py", line 116, in __init__
rospy.init_node('runime_manager', anonymous=True)
File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/client.py", line 336, in init_node
raise rospy.exceptions.ROSInitException("Failed to initialize time. Please check logs for additional details")
rospy.exceptions.ROSInitException: Failed to initialize time. Please check logs for additional details
OnInit returned false, exiting...
然后试过很多方法,类似卸载wxpython重装,重装autoware之类的都不行,直到看到了以下博主的文章:Ubuntu18.04 Autoware1.12.0(包括docker安装和源码安装)中运行Runtime Manager出现花屏重叠现象。
文中的解决办法为:对以下两个文件都进行runtime_manager_dialog.py的修改操作:
autoware.ai/src/autoware/utilities/runtime_manager/scripts/runtime_manager_dialog.py
autoware.ai/install/runtime_manager/lib/runtime_manager/runtime_manager_dialog.py
如果只对第一个文件进行操作会出现闪退,之后再重新进行编译和运行:
$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
$ roslaunch runtime_manager runtime_manager.launch
就能成功打开Autoware 1.12且没有花屏。
待解决的新问题
在运行autoware的时候出现以下错误,这是一个无法转换为二进制的问题:
File "/home/tinner/.local/lib/python2.7/site-packages/wx/core.py", line 3285, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 932-933: invalid continuation byte