えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

PS5なロボット!? DualSenseをROS2で使う

 最新のPlaystationコントローラのDualSense(PS5純正コントローラ)を購入しました。Ubuntuに接続できたので、メカナムロボットに使用してみました。

 この記事はJetson搭載メカナムロボットとりあえず動いた(Jetson TX2+ESP32+Realsense) - えいあーるれいの技術日記の続きです。この時点ではROS1実装ですが、この機会にROS2に実装しました。

f:id:Ray_ar:20210312230529p:plain
DualSenseでロボット制御

 システムは以下のような構成になっています。

  • DualSense(Dualshock4などでも可)

  • Jetson AGX Xavier

  • ESP32

  • メカナムホイールキット

 通信の流れは以下の通りになっています。

f:id:Ray_ar:20210312232356p:plain
ハードウェアブロック図

プログラムについて

 Joyスティックとの接続とJoy_nodeについては、Qiitaに方法をUPしています。(GitHubへの直接のリンクはこちら→https://github.com/Ar-Ray-code/ps_ros2_common

qiita.com

 上の記事(自分の記事)を参考にしてJoystickのメッセージをTwist型に変換します。GitHubのリンクを以下に示します。(GitHubでの実装はROS Dashing上で行っています。)

github.com

 そして、ESP32にjoy2twistから出力される`cmd_vel'トピックをESP32に送信して、それをもとにメカナムホイールを動かします。Arduinoプログラムを以下のGitHubのリンクを以下に示します。あらかじめMicro-XRCE-DDS-Agentが動くコンピュータを用意してください。

github.com

 回路については説明しません。

動作

 動作の様子です。最新型コントローラな操作感でロボット操作も快適になるかも!?

ROSについて

 ROSとはRobot Operating Systemの略称で、ロボット制御に必要なパッケージや環境が揃っているオープンソースプロジェクトです。企業での産業用ロボット開発から個人のホビーロボット開発まで多くの活用例があります。

 ROS関連の書籍も充実しているのでぜひチェックしてみてください。

(画像をクリックすると詳細ページに移動します)