Jetson Xavier: Turtlebot2をROS Melodicで動かす

Jetson XavierでTurtlebot2を動かそうと思ったところ、Xavierに対応しているOSはUbuntu18.04、ROSはMelodic。製造元のYujin RoboticsはMelodicに対応しているパッケージを出していない。いろいろ調べたところ、Melodic用にTurtlebot2の関連パッケージのインストール方法を次の参考サイトで公開している方がいたので、それに従ってインストールしたらTurtlebot2が動くようになった。以下はその作業メモ。ROSのMelodicはインストール済みが前提。

作業手順

  • 作業スペースの作成(なければ)
    $ source /opt/ros/melodic/setup.bash
    $ mkdir -p ~/catkin_ws/src
    $ cd ~/catkin_ws/src
    $ catkin_init_workspace
  •  Turtlebot2関連パッケージのインストール
    • $ cd  ~/catkin_ws
    • $ curl -sLf https://raw.githubusercontent.com/gaunthan/Turtlebot2-On-Melodic/master/install_basic.sh
    • 上のコマンドで~/catkin_ws/srcにkobuki_msgやturtlebotのディレクトリが作られない場合は、以下のコマンドを実行する。
      • $ cd src
      • $ git clone https://github.com/turtlebot/turtlebot.git
      • $ git clone https://github.com/turtlebot/turtlebot_msgs.git
      • $ git clone https://github.com/turtlebot/turtlebot_apps.git
      • $ git clone https://github.com/turtlebot/turtlebot_simulator
      • $ git clone https://github.com/yujinrobot/kobuki_msgs.git
      • $ git clone https://github.com/yujinrobot/kobuki.git
      • $ mv kobuki/kobuki_description  ./
      • $ mv kobuki/kobuki_node  ./
      • $ mv kobuki/kobuki_keyop  ./
      • $ mv kobuki/kobuki_safety_controller ./
      • $ kobuki/kobuki_bumper2pc ./
      • $ rm -rf kobuki
      • $ git clone https://github.com/yujinrobot/yujin_ocs.git
      • $ mv yujin_ocs/yocs_cmd_vel_mux yujin_ocs/yocs_controllers .
      • $ rm -rf yujin_ocs
      • $ sudo apt-get install ros-melodic-kobuki-* -y
      • $ sudo apt-get install ros-melodic-ecl-streams -y
      • $ cd ~/catkin_ws
    • 次のコマンドでビルドする。
      • $ catkin_make
  • ジョイステックのパッケージjoyをインストール
    • sudo apt install ros-melodic-joy
  • SONY DualShock4 (DS4)コントローラの設定
    • 以下のサイトを参照
    • ds4drvドライバのインストール。ds4drvはLinuxのSONY DualShock 4 用ドライバ。
      • sudo pip install ds4drv
    • DS4とXavierのペアリング
      • 次のサイトを参考にしました。
      •  ds4drvの起動
        • $ sudo ds4drv
        • 以下のように表示される。
          [info][controller 1] Created devices /dev/input/js0 (joystick) /dev/input/event8 (evdev)
          [info][bluetooth] Scanning for devices
      • ペアリング
        • SHAREボタンとDSボタンを同時に5秒程度長押しする。LEDが白く点滅したらボタンから手を話す。
        • LEDが青くなりds4drvを起動した端末で以下のように表示されたら成功。
          [info][bluetooth] Found device
          [info][controller 1] Connected to Bluetooth Controller
          [info][bluetooth] Scanning for devices
          [info][controller 1] Battery: Fully charged
    • PS4コントローラのROSパッケージps4_rosの導入
      • サイト
        • https://github.com/solbach/ps4-ros
      •  インストール
        • cd ~/catkin_ws/src
        • git clone https://github.com/solbach/ps4-ros.git
      • launchファイルの変更
        • ~/catkin_ws/src/ps4-ros/launch/ps4.launchの下から3行目を以下のように変更する。Turtlebot2が動くようにTopic名を変更する。
           <param name="pub_topic" value="/cmd_vel_mux/input/teleop"/

エラー処理

  • 私の環境ではcatkin_makeをしたところエラーが出たらの一つずつ解決した。
  • opencv関係のエラーが出たのでopencvをインストール。方法は以下のJetsonHacksの記事に従った。
  • cv_bridgeがないと怒られる。Could not find the required component ‘cv_bridge’
    • sudo apt install ros-melodic-cv*
  • iamge_geometryがないと怒られる。Could not find the required component ‘image_geometry
    • sudo apt instal’l ros-melodic-image-geometry
  • depth_image_procがないと怒られる。Could not find the required component ‘depth_image_proc’
    • Could not find the required component ‘depth_image_proc’

起動

  • source ~/catkin_ws/devel/setup.bash
  • roslaunch turtlebot_bringup minimal.launch

キーボードによる遠隔操作

  • source ~/catkin_ws/devel/setup.bash
  • roslaunch turtlebot_teleop  keyboard_teleop.launch
  • 以下のキーボード操作によりTurtlebot2を操作する。詳細は端末にキー操作の説明が表示されるのでそれを参照。
    • i: 前進
    • u: 左前方向へ進む
    • j: 左回転
    • o: 右前方向へ進む
    • l: 右回転
    • m: 左後方向へ進む
    • ,: 後進
    • .  右後方向へ進む
    • k: 停止

DS4による遠隔操作

  • DS4とXavierのペアリングをする。操作方法はすでに説明済。
  • $ roslaunch ps4_ros ps4.launch
    • コントローラと接続したときにキャリブレーションが必要。L2とR2を同時に押すと以下のように表示される。Release L2 and R2と表示されたら指を話すとキャリブレーションが終了し、利用可能となる。

[ WARN] [1562730896.630287264]: Press L2 and R2 to calibrate: 0%
[ WARN] [1562730896.731446432]: Press L2 and R2 to calibrate: 5%
[ WARN] [1562730896.832234176]: Press L2 and R2 to calibrate: 10%
[ WARN] [1562730896.933098464]: Press L2 and R2 to calibrate: 15%
[ WARN] [1562730897.034052928]: Press L2 and R2 to calibrate: 20%
[ WARN] [1562730897.135351008]: Press L2 and R2 to calibrate: 25%
[ WARN] [1562730897.236488864]: Press L2 and R2 to calibrate: 30%
[ WARN] [1562730897.337511264]: Press L2 and R2 to calibrate: 35%
[ WARN] [1562730897.438300640]: Press L2 and R2 to calibrate: 40%
[ WARN] [1562730897.539139328]: Press L2 and R2 to calibrate: 45%
[ WARN] [1562730897.640097056]: Press L2 and R2 to calibrate: 50%
[ WARN] [1562730897.741000544]: Press L2 and R2 to calibrate: 55%
[ WARN] [1562730897.842041696]: Press L2 and R2 to calibrate: 60%
[ WARN] [1562730897.943081120]: Press L2 and R2 to calibrate: 65%
[ WARN] [1562730898.044020896]: Press L2 and R2 to calibrate: 70%
[ WARN] [1562730898.144871008]: Press L2 and R2 to calibrate: 75%
[ WARN] [1562730898.245700928]: Press L2 and R2 to calibrate: 80%
[ WARN] [1562730898.346876544]: Press L2 and R2 to calibrate: 85%
[ WARN] [1562730898.447959104]: Press L2 and R2 to calibrate: 90%
[ WARN] [1562730898.548941536]: Press L2 and R2 to calibrate: 95%
[ WARN] [1562730898.649878528]: Press L2 and R2 to calibrate: 100%
[ WARN] [1562730898.750981568]: Release L2 and R2
[ INFO] [1562730900.952626016]: Calibrated – Ready to use
以上

 

 

コメント

タイトルとURLをコピーしました