※2023.05.02更新
-
git clone
する際にブランチ名を指定するようにした
はじめに
事の発端はちょうど1年前,ROS/ROS2 Advent Calendar 2020 3日目のMeRT(ルット)さんの記事だった.
どうせならROS2でやってみようと思い,UserLand上のUbuntu 18.04にROS2 Dashingをインストールしたところrqt_graphとrqt_plotは動いたので,micro-ROSのデモに絡めてみた.この段階ではrqt系は動いたものの,OpenGLがサポートされていないためrvizやgazeboは動かなかった.
それから程なくしてROS2 DashingがEOLとなり筆者のメイン環境もROS2 Foxyへ移行を済ませた頃,Android端末上でROS2 Foxyを動かせないものかと考えるようになった.そのためにはUserLand上のUbuntuが20.04である必要があったが,UserLand上にインストールできるUbuntuは18.04のままという状態が続いた.
そんな中で出会った新たな選択肢がTermuxであった.
記事概要
Android端末上にROS環境(ROS2 Foxy および ROS Noetic)をインストールしてRvizの動作確認をするまでの手順を説明する.
手順
ベースとなるUbuntuをインストールするためにmodded-ubuntuを利用している.これをフォークしてROS2 Foxy および ROS Noeticをインストールするために改変したものをgithubに用意したのでそれを補足しながら説明する.
事前準備
- Android 7.0以上
- WiFi環境
- キーボード
- マウスもあればなお良い
- USB接続を推奨(Bluetoothでも動くと思われるが筆者は確認していない)
Android端末へのUbuntu 20.04 GUI環境のインストール
Termuxのインストール
F-DroidからTermux
のAPKをダウンロードしてインストールする.F-Droidそのものをインストールするのではないことに注意.
Termux内にUbuntu 20.04をインストール
ここでキーボードとマウスを接続する.Termuxアプリを起動するとCUI環境に入るので,以下のコマンドを順に入力する.
$ pkg update -y && pkg upgrade -y # デバイス内の写真,メディア,ファイルへのアクセスを許可しますかと聞かれたら許可しないでOK.`sources.listや`motd`を`package maintainer's version`に置き換えるか聞かれたら`y`と入力する.
$ pkg install git wget -y
$ git clone -b foxy-and-noetic https://github.com/maehara-keisuke/modded-ubuntu.git
$ cd modded-ubuntu
$ bash setup.sh
※Termuxのリポジトリに障害がある場合など,pkg update -y
に失敗することがある.その場合はtermux-change-repo
コマンドを試すと良い.操作手順はこちら.
スクリプトが終了したらexit
で抜けて,Termuxアプリを再起動する.
Ubuntuのセットアップ
Termuxアプリを再起動したら,以下のコマンドを順に入力する.
$ ubuntu # Termux内のUbuntu環境にrootでログインする.
$ bash user.sh # 途中,ユーザー名とパスワードの設定を求められる.
スクリプトが終了したらexit
で抜けて,Termuxアプリを再起動する.
GUI環境のセットアップ
Termuxアプリを再起動したら,以下のコマンドを順に入力する.
$ ubuntu # Termux内のUbuntu環境に設定したユーザー名でログインする.以降,このユーザー名でログインすることになる.
$ bash gui.sh # GUI環境をセットアップする.途中,キーボードの設定やタイムゾーンの設定を求められる.
途中,VNCクライアントから接続する際に入力するパスワードの設定を求められる.
※ "Would you like to enter a view-only password (y/n)?"と聞かれたらy
を入力して,view-only password
を設定するのを忘れないこと.設定を忘れたりパスワードを変えたいという際は,スクリプトが終了した後で以下のコマンドを入力して再設定を行うこと.
$ vncpasswd
VNCクライアントのインストール
本稿ではVNCクライアントとしてVNC Viewerを使用する.
VNC Viewerインストール後の設定
接続の作成
Address : localhost:1
Name : 任意
画質設定
Picture quality : High
※接続が突然切れるようなことがあれば,Medium
に変更すると改善する場合がある.
Xの起動
Termux内のUbuntu環境にログインした状態で,以下のコマンドを入力してVNCサーバーを立ち上げる.
$ vncstart
VNCクライアントを起動する."Unencrypted connection"という注意書きが出たらOK
をクリックしておく.
VNC Viewerのメニューがピン止めされている場合は,ピンのアイコンをクリックして解除すると画面を広く使えて便利である.
VNC Viewerのメニューがピン止めされている状態
ピン止めを解除した状態
Xの終了
VNC ViewerのメニューからXアイコンをクリックしてdisconnectする.
Termux内のターミナルで以下のコマンドを順に入力する.
$ vncstop
$ exit # Termux上のubuntuからログアウト.
$ exit # Termuxを終了.
ROS2 Foxyのセットアップ
Termux内のUbuntu環境にログインした状態で以下のコマンドを入力する.後述するROS Noeticとの共存も可能である.
$ bash ros2-foxy.sh
rviz2による動作確認
Xを起動してVNC ViewerのGUI上でターミナルを立ち上げ,以下のコマンドを入力する.
$ source /opt/ros/foxy/setup.bash
$ rviz2
ROS Noeticのセットアップ
Termux内のUbuntu環境にログインした状態で以下のコマンドを入力する.前述したROS2 Foxyとの共存も可能である.
$ bash ros-noetic.sh
rvizによる動作確認
Xを起動してVNC ViewerのGUI上でターミナルを立ち上げ,以下のコマンドを入力する.
$ source /opt/ros/noetic/setup.bash
$ roscore
もう一つのターミナルを開き,以下のコマンドを入力する.
$ source /opt/ros/noetic/setup.bash
$ rviz