Skip to content

GUIを用いない操作

shiigi edited this page Nov 30, 2021 · 6 revisions

目次


複数台PCでのROS通信

複数台PCでROS通信をする場合、roscoreが起動しているPCのIPアドレス(ROS_MASTER_URI)と 自身のPCのIPアドレス(ROS_IP)の設定が必要になります。 設定方法としてはいくつかありますが、下記では、roscoreが起動しているPCをロボットPC(IP:192.168.0.50)とし、 roscoreが起動していないPCを遠隔操作用PC(IP:192.168.0.200)としたうえで、2パターンの設定方法例を記載します。

  • 環境変数を直接入力する
  1. ロボットPCでROS_IPを設定する : $ export ROS_IP=192.168.0.50
  2. ロボットPCでroscoreを起動する : $ roscore
  3. 遠隔操作用PCでROS_IPを設定する : $ export ROS_IP=192.168.0.200
  4. 遠隔操作用PCでROS_MASTER_URIを設定する : $ export ROS_MASTER_URI=http://192.168.0.50:11311
  1. ロボットPCでROS_IPを設定する : $ rossetip 192.168.0.50
  2. ロボットPCでroscoreを起動する : $ roscore
  3. 遠隔操作用PCでROS_IPを設定する : $ rossetip 192.168.0.200
  4. 遠隔操作用PCでROS_MASTER_URIを設定する : $ rossetmaster 192.168.0.50

操作手順では、後者を用いた設定について記載します。

また、SEED-Moverにはディスプレイが接続されていないため、SSH接続する必要があります。
SSH接続をするとターミナル毎に上記設定をする必要があり、かつターミナルを落とすとプログラムも停止するため、仮想ターミナルを用いると便利です。操作手順では仮想ターミナルとしてbyobuを用いた起動手順について記載します。

操作手順

ロボットPCのIPアドレスをIP:192.168.0.50、遠隔操作用PCのIPアドレスをIP:192.168.0.200と仮定して説明します。

コントローラの起動

  1. 遠隔操作用PCにて新規ターミナルを開き(Ctrl + Alt + t)、ロボットPCに対してSSH接続する

    ロボットPCの出荷時ユーザー名とパスワードはともにseedです。 本ターミナルを以降ではロボットターミナルと呼びます。

  2. ロボットターミナル上でROS_IPを設定し、byobuを開く

    $ rossetip 192.168.0.50
    $ byobu
    
  3. ロボットターミナルのbyobu上で下記コマンドを実行する

    $ roslaunch task_programmer robot_bringup.launch
    
  4. 新規ターミナルを開き(Ctrl + Alt + t)、下記コマンドを実行してRvizを開く

    $ rossetip 182.168.0.200
    $ rossetmaster 182.168.0.50
    $ roslaunch task_programmer view.launch
    

    このときロボットモデルは表示されませんが、地図の作成と保存もしくはwaypointの作成と確認をすることで表示されます。

地図の作成と保存

  1. ロボットターミナルのbyobu上でF2を押し(byobu内で新規ターミナルを開き)、下記コマンドを実行する

    $ roslaunch task_programmer make_map.launch
    
  2. ゲームパッドを用いてSEED-Moverを操作し、地図が完成するまで走り回る
    ゲームパッドでの移動はこちらを参照してください。

  3. ロボットターミナルのbyobu上で新規ターミナルを開き(F2)、下記コマンドを実行して地図を保存する

    $ roslaunch task_programmer map_saver.launch
    

    この時、地図は/task_programmer/config/mapsディレクトリに保存されます。

  4. 全てのプログラムを終了(Ctrl + c)する
    byobu内の別ターミナルに移動する場合はF3F4を押してください。

waypointの作成と確認

  1. コントローラの起動を実行する

  2. ロボットターミナルのbyobu上で新規ターミナルを開き(F2)、下記コマンドを実行する

    $ roslaunch task_programmer static_map.launch
    
  3. Rviz画面にて、初期位置合わせをする
    RViz上の“2D Pose Estimate”を選択し、画面上をクリック&ドラッグ&ドロップして現在位置を設定します。
    この時、保存した地図とLiDARの点がおおよそ重なるまで繰り返してください。

  4. ゲームパッドを用いてwaypointを登録する
    ゲームパッドでの登録方法はこちらを参照してください。

  5. ロボットターミナルのbyobu上で新規ターミナルを開き(F2)、下記コマンドでポイント0へ移動する事を確認する

    $ rosrun task_programmer go.py 0
    

    0はポイント番号です。その他のポイントへ移動したい場合は、対応する数字を入力してください。

シナリオの実行

  1. waypointの作成と確認を行った状態で、プログラムを終了していないものとする

  2. 下記コマンドを実行する

    $ rosrun task_programmer start.py
    

    この時、/config/scenario.yamlが読み込まれます。他のYAMLを読み込みたい場合は、引数に加えてください。
    たとえば/config/test.yamlを実行したい場合は下記のようになります。

    $ rosrun task_programmer start.py test.yaml
    
  3. 必要に応じてシナリオを作成/変更/保存する
    シナリオの作成方法は仕様API一覧を参照してください。

実機を使わずにRvizで動作確認をする

実機環境が無くてもRVizのみで動作確認可能です。
PC1台だけでRvizを用いて動作確認する方法を下記に示します。

  1. 地図ファイル(画像と設定データ)を用意し、/config/masに保存する
    任意のmap.pgmmap.yamlを作成してください。
    地図ファイルに関してはROS Wikiなどを参照してください。
  2. 下記コマンドを実行して、コントローラの起動、Rvizの起動を行う
    $ roslaunch task_programmer simulation.launch
    $ roslaunch task_programmer view.launch
    
  3. 下記コマンドを入力してシナリオを実行する
    $ rosrun task_programmer start.py
    
    別シナリオの実行はシナリオの実行を参考にしてください。
Clone this wiki locally