2016/08/31

[作業記録]Ubuntu on Windows で Autoware を動かしたかった

前回の投稿から引き続き、 Autoware を動かすのに挑戦する。
2016/9/1 追記 : Quick Start の途中でエラーになる。詳細は末尾に追加

環境構築

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key
sudo apt-key add ./ros.key
sudo apt update
sudo apt install ros-indigo-desktop-full ros-indigo-nmea-msgs ros-indigo-nmea-navsat-driver ros-indigo-sound-play ros-indigo-jsk-visualization libnlopt-dev freeglut3-dev qtbase5-dev libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu

ビルド

# 本来は .bashrc とかに追加する
source /opt/ros/indigo/setup.bash

mkdir -p ~/project
cd ~/project
git clone https://github.com/CPFL/Autoware.git
cd Autoware/ros/src
catkin_init_workspace
cd ..
./catkin_make_release

実行(失敗)

# 必要に応じて。
# 本来は .bashrc とかに追加する
source /opt/ros/indigo/setup.bash

cd ~/project/Autoware/ros

Process Manager

(gksudo:9442): Gtk-WARNING **: cannot open display:
./run: 行 41: --geometry=50x10+0+0: コマンドが見つかりません
./run: 行 44: --geometry=50x10+500+0: コマンドが見つかりません
./run
ディスプレイとターミナルがないのでエラー。 方針としては下記。
  1. lxterminal をインストールする
  2. Windows に xserver 立てる

必要な環境を追加

lxterminal

sudo apt install lxterminal

xserver

Xming をインストールする。
インストールするファイルは下記。
  • Xming-6-9-0-31-setup.exe

実行リベンジ

export DISPLAY=localhost:0.0
./run
だめだった...。



文字化けについては、 export LC_ALL=C で回避。
.Xauthority は touch で作ってしまう。 

実行リベンジ

export LC_ALL=C
touch ~/.Xauthority
./run
が、ダメ。



cap_last_cap が権限関係の何からしいので、とりあえずコメントアウトしてみる。
※これで大丈夫な根拠ない。だれかよい方法おしえて...。

実行リベンジ3

# drop_capabilities() をコメントアウトする。
vim ~/project/Autoware/ros/src/util/packages/runtime_manager/scripts/proc_manager.py

こうなった。


内部で roscore が動いているみたいなので実行してみる。

実験

$ roscore
... logging to /home/mikoto/.ros/log/5330c532-6f82-11e6-a03c-74d02b272f3b/roslaunch-MNHOMEWIN-3539.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://MNHOMEWIN:53403/
ros_comm version 1.11.20


SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.20

NODES

Traceback (most recent call last):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 307, in main
    p.start()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 279, in start
    self.runner.launch()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 654, in launch
    self._setup()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 630, in _setup
    self._launch_master()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 394, in _launch_master
    validate_master_launch(m, self.is_core, self.is_rostest)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 83, in validate_master_launch
    if not rosgraph.network.is_local_address(m.get_host()):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosgraph/network.py", line 176, in is_local_address
    local_addresses = ['localhost'] + get_local_addresses()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosgraph/network.py", line 219, in get_local_addresses
    for iface in netifaces.interfaces():
OSError: [Errno 22] Invalid argument
調べてみると、https://github.com/gavanderhoorn/getifaddrs_preload を導入するとうまくいくらしい。

実行リベンジ4

cd ~/project
git clone https://github.com/gavanderhoorn/getifaddrs_preload
cd getifaddrs_preload
make
export LD_PRELOAD=~/project/getifaddrs_preload/_getifaddrs.so
cd ~/project/Autoware/ros/
./run
動いた。Quick Start を試すのはまた今度。


2016/9/1 追記
Quick Start してみたらうまく動かなかった...。悲しい。

参考資料

0 件のコメント: