べれすく!

素人プログラマによるモノづくりやブログ生活を話すブログ

【スポンサーリンク】

【WindowsでROSを使おう!】WSLにROSをインストールする話

こんにちは!べれすくです。
 
前々回ではWSL(Windows Subsystem for Linux)のインストール方法を説明しました。
↓前々回

veresk.hatenablog.com

前回はVcXsrvを使って、WSLでGUIアプリケーションを起動するまでを説明しました。
↓前回

veresk.hatenablog.com

前回と前々回に引き続き、今回もWSLを扱っていきます。
今回はWSLにROSを導入しようという話です!
 

もくじ

OSのバージョンを確認しよう!

ROSはOSのバージョンによって扱うものがちがうので、まずはOSのバージョンを確認します。
以下のコマンドを実行してください。

cat /etc/os-release

f:id:Veresk:20200225150351p:plain
 
私のバージョンはUbuntu 18.04.4 LTSですね。
18.04だと、対応するROSはMelodicですね。
「バージョン名 ROS」と検索すると対応しているROSの入れ方が出てくると思います。
今回はROS Melodicをインストールしていきます。

ROSを導入しよう

ROSの導入方法は基本的に公式サイトを参考にしています。
英語が得意な方はそちらを見たほうがわかりやすいかもしれませんね。

wiki.ros.org

 

リポジトリを登録しよう

リポジトリを登録しましょう。
以下のコマンドを入力しましょう。(コピペでいいです。)

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

ついでにキーも登録します。

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

登録できたら一覧を取得します。

sudo apt update

 

ROSをインストールしよう

それではROSをインストールします!
いろいろ選んでインストールできるようですが、面倒なんで全部インストールしちゃいましょう!
全部入れてもそんなに容量とらないので安心です。

sudo apt install ros-melodic-desktop-full

f:id:Veresk:20200225175633p:plain  

rosdepをインストールしよう

rosdepを初期化してアップデートしましょう。

sudo rosdep init
rosdep update

 

環境変数を入力しよう

本当であれば、Linuxを起動するたびに”source /opt/ros/melodic/setup.bash”を実行しなければなりません。
しかし、面倒なので(こればかりですね笑)Linuxが起動した時に自動的に実行してもらいましょう。

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

これで毎回コマンドを入れなくて済みますね。  

rosinstallの設定をしよう

ROSのパッケージをインストールするためのパッケージをインストールしましょう。
以下のコマンドを実行します。

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

 

ワークスペースを設定しよう

これは公式サイトには載ってないのですが、ROSではワークスペースを手動で確保し指定します。よくある名前がcatkinなのでそれに合わせます。(なんでなのかは知らないんですけどね)

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

これでROSの導入は完了です。
ためしに起動してみましょう。

roscore

f:id:Veresk:20200225175949p:plain うまくいきました!
 

VcXsrv(X Server)を起動しよう

前回の記事で説明した、GUIソフトを起動するためにアプリケーションを起動します。設定ファイルを保存しているひとはその保存ファイルを開くだけで、起動します。
詳しくは前回の記事を見てくださいね。

veresk.hatenablog.com

Rvizを起動してみよう

それではROSでよく使うソフトの一つでもあるRvizを起動してみましょう。
まずはROSを起動します。

roscore

f:id:Veresk:20200225175949p:plain この画面になったら一度Ctrl+Zで戻ります。(WSLでターミナルを2つ起動する方法を誰か教えてください)

追記:Ctrlキーを押しながらコンソールを開けば、もう一つコンソールを開けるそうです!戻ってもいいですが、もう一つ開くほうがスムーズかと思います。
 

Rvizを起動しましょう。

rosrun rviz rviz

f:id:Veresk:20200225181513p:plain
起動しました!
やったぜ!

エラーが出るときは?

こんな感じのエラーが出たらVcXsrvの設定ミスですね。
前回の記事を参考にVcXsrvを設定しなおしてください。

veresk.hatenablog.com

特定のソフトだから出るエラーだとか、Nvidiaのグラボを積んでると出るとかいろいろ理由があるといわれています。少なくとも自分の環境ではグラフィックボードを積んでいなくても出たエラーなので、ROSを使う上では必須かと思われます。

[ INFO] [1582622312.248770200]: rviz version 1.13.7
[ INFO] [1582622312.249490100]: compiled against Qt version 5.9.5
[ INFO] [1582622312.249915900]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1582622312.265487500]: Forcing OpenGl version 0.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Segmentation fault (core dumped)

f:id:Veresk:20200225182103p:plain
 

まとめ

今回は3ページ構成でWindows10でROSを起動する方法を説明しました。
エミュレータを使ってROSを使っている人もいらっしゃいますが、WSLはWindows純正の機能なので安心感がありますね。
今のところ、この環境での問題は確認していませんが確認次第、報告と解決策を書きたいと思います。
 
今回はこのくらいで。それでは!