1. はじめに
LIMO を ROS で制御するために、AgileX 社は limo_ros パッケージを公開しています。ROS や limo_ros は、デフォルトで LIMO にインストールされています。
本稿では、リモートから limo_ros パッケージを実行する方法をご案内します。
limo_ros: https://github.com/agilexrobotics/limo_ros
LIMO のユーザーマニュアル(英語)はこちら。
2. 環境
以下の環境にて、この手順が有効であることを確認しています。
外部PC: Windows 10 (64bit)
LIMO:
内部コンピュータ – Jetson Nano
OS – Ubuntu 18.04
ROS – Melodic
3. リモートデスクトップのセットアップ
外部PCから無線接続している LIMO を GUI 上から操作したり RViz を表示したりするのに、リモートデスクトップツールの NoMachine を利用します。
(1) LIMO と外部PCを同じWi-Fi に接続
(2) リモートデスクトップツール NoMachine のダウンロード
対応する NoMachine を外部PCにダウンロードしてください。
(3) NoMachine を起動し、Add ボタンから LIMO を登録
「Name」には任意の名前を入れ、「Host」にはLIMOのIPアドレスを入力します。LIMO のIPアドレスは、LIMO側の NoMachine のアイコンから「show server status」をクリックすると確認できます。
(4) 登録したデバイスを選択し、LIMO のユーザー名(agilex)、パスワードを入力
4. ROSパッケージの実行
NoMachine のターミナルから、はじめにベースとなるノードを立ち上げます。
$ roslaunch limo_bringup limo_start.launch
コマンドから直接制御するには、別ターミナルでrostopic pub <トピック名> <トピック型> <値>
でトピックを配信します。たとえば、
$ rostopic pub /cmd_vel geometry_msgs/Twist "linear:
x: 0.2
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
を打つと、LIMO は前方へ少し進みます。
※ コマンド制御を可能にするために、コントローラーアプリ内のボタンでアプリからの制御をオフにしてください。
また、ノードを立ち上げてから、別ターミナルでパッケージに用意されているプログラムを実行することもできます。以下は、いくつかの例です。
- キーボードでの制御
$ roslaunch limo_bringup limo_teletop_keyboard.launch
- LiDARでスキャンしたデータをRVizで表示
$ roslaunch limo_bringup lidar_rviz.launch
※ アプリでLIMO を操作するには、コントローラーアプリ内のボタンでアプリからの制御をオンにします。
- マッピング(gmapping)
$ roslaunch limo_bringup limo_gmapping.launch
コントローラーアプリなどで LIMO を走行させて地図を作成します。
※ アプリでLIMO を操作するには、コントローラーアプリ内のボタンでアプリからの制御をオンにします。
適切なディレクトリに移り、作成した地図を保存します。
$ cd ~/agilex_ws/src/limo_ros/limo_bringup/maps/
$ rosrun map_server map_saver –f <地図名>
地図の名前は重複しないように設定してください。
その他にも、LIMO を利用してマッピングやナビゲーション、物体認識などを行うことができます。詳細はマニュアル(英語)をご参照ください。