はじめに
この記事は次のスマートファニチャープラットフォーム「カチャカ」APIマニュアルの「ROS2」を自分のPCで実行した過程を記事にしたものです。最後のおまけに、ROS2でお馴染みのteleop_twist_keyboardでカチヤカを遠隔操作してみました。
環 境
- ノートPC:Ubuntu22.04.4
- カチャカ:バージョン 2.5.7
- 注:当初、Windows11 HomeのWSL2上のUbuntu22.04で動かそうと試みたが動かなかったので、ネイティブUbuntu22.04で試したら動いた。なんでだろう?
ROS2 Humbleのインストール
- 次の記事を参考にROS2 Humbleをインストールする。
Dockerのインストール
- 次の記事を参考に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個表示された。
- 別の端末を開き、次のコマンドを実行するとtopic一覧が表示される。
- 目的地一覧を取得する例
- 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}}'
- ROSでは/cmd_velトピックをパブリッシュすればロボットが動いてくれる。カチャカの/cmd_velトピック名は /kachaka/manual_control/cmd_velなので次のコマンドで、並進速度0.1[m/s]の速度司令を1秒毎に10回パブリッシュする。私の環境では約1m前進した。
- キーボード(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%)
- ROSではお馴染みのteleop_twist_keyboardでカチャカを動かしてみましょう。カチャカの/cmd_velトピック名は /kachaka/manual_control/cmd_velなので次のコマンドのようにremapする必要がある。
下はキーボードでカチャカを動かした動画です。
終わり
コメント