カチャカでロボカップ7:カチャカをROS2で動かそう♪

はじめに

この記事は次のスマートファニチャープラットフォーム「カチャカ」APIマニュアルの「ROS2」を自分のPCで実行した過程を記事にしたものです。最後のおまけに、ROS2でお馴染みのteleop_twist_keyboardでカチヤカを遠隔操作してみました。

環 境

  • ノートPC:Ubuntu22.04.4
  • カチャカ:バージョン 2.5.7
  • 注:当初、Windows11 HomeのWSL2上のUbuntu22.04で動かそうと試みたが動かなかったので、ネイティブUbuntu22.04で試したら動いた。なんでだろう?

ROS2 Humbleのインストール

Dockerのインストール

サンプルコードのダウンロード

  • 次のコマンドでカチャカサンプルコードをダウンロードする。
    • cd ~
    • git clone https://github.com/pf-robotics/kachaka-api.git

kachaka_interfaces, kachaka_descriptionのビルド

  • 次のコマンドでビルドする。
    • mkdir -p ~/ros2_ws/src
    • cd ~/ros2_ws/src
    • ln -s ~/kachaka-api/ros2/kachaka_interfaces/ kachaka_interfaces
    • ln -s ~/kachaka-api/ros2/kachaka_description/ kachaka_description
    • cd ~/ros2_ws
    • colcon build

動作確認

  • ros2_bridgeの起動
    • 端末を開き、次のコマンドを実行する。
      • cd ~/kachaka-api/tools/ros2_bridge
      • ./start_bridge.sh <カチャカのIPアドレス>
    • 初回実行時にDockerイメージがダウンロードされるので少し時間がかかる。
  • ros2コマンドによる動作確認
    • 別の端末を開き、次のコマンドを実行するとtopic一覧が表示される。
      • cd ~/ros2_ws
      • source install/setup.bash
      • ros2 topic list
    • 僕の環境では下図のようにトピックが25個表示された。

  • 目的地一覧を取得する例
cd ~/ros2_ws
source install/setup.bash
ros2 topic echo /kachaka/layout/locations/list
  • rviz2による可視化
cd ~/ros2_ws
source install/setup.bash
cd src/kachaka_description/config
rviz2 -d kachaka.rviz
  • ros2 pubコマンドでカチャカを動かす
    • ROSでは/cmd_velトピックをパブリッシュすればロボットが動いてくれる。カチャカの/cmd_velトピック名は /kachaka/manual_control/cmd_velなので次のコマンドで、並進速度0.1[m/s]の速度司令を1秒毎に10回パブリッシュする。私の環境では約1m前進した。
      • ros2 topic pub /kachaka/manual_control/cmd_vel --rate 1 --times 10  geometry_msgs/msg/Twist '{linear: {x: 0.1}, angular: {z: 0.0}}'
  • キーボード(teleop_twist_keyboard)で動かす
    • ROSではお馴染みのteleop_twist_keyboardでカチャカを動かしてみましょう。カチャカの/cmd_velトピック名は /kachaka/manual_control/cmd_velなので次のコマンドのようにremapする必要がある。
      • ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/kachaka/manual_control/cmd_vel
    • 実行すると下図のようになる。以下のキー操作でロボットを動かすことができる。なお、マウスのカーソルがこの2番目に開いた端末上にないとロボットは動かないので注意。
      • i: 前進、u:左前進、o:右前進
      • j: 左回転、k:停止、 l:右回転
      • m:左後進、,:後進、 .:右後進
      • スペース:停止
      • w/x:並進速度増速/減速(10%)
      • e/c:角速度増速/減速(10%)

下はキーボードでカチャカを動かした動画です。

終わり

コメント

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