最新のPlaystationコントローラのDualSense(PS5純正コントローラ)を購入しました。Ubuntuに接続できたので、メカナムロボットに使用してみました。
この記事はJetson搭載メカナムロボットとりあえず動いた(Jetson TX2+ESP32+Realsense) - えいあーるれいの技術日記の続きです。この時点ではROS1実装ですが、この機会にROS2に実装しました。
システムは以下のような構成になっています。
- DualSense(Dualshock4などでも可)
- Jetson AGX Xavier
- ESP32
- メカナムホイールキット
通信の流れは以下の通りになっています。
プログラムについて
Joyスティックとの接続とJoy_nodeについては、Qiitaに方法をUPしています。(GitHubへの直接のリンクはこちら→https://github.com/Ar-Ray-code/ps_ros2_common)
上の記事(自分の記事)を参考にしてJoystickのメッセージをTwist型に変換します。GitHubのリンクを以下に示します。(GitHubでの実装はROS Dashing上で行っています。)
そして、ESP32にjoy2twistから出力される`cmd_vel'トピックをESP32に送信して、それをもとにメカナムホイールを動かします。Arduinoプログラムを以下のGitHubのリンクを以下に示します。あらかじめMicro-XRCE-DDS-Agentが動くコンピュータを用意してください。
回路については説明しません。
動作
動作の様子です。最新型コントローラな操作感でロボット操作も快適になるかも!?
動いた動いた❗ pic.twitter.com/Fbjg2mNVJ1
— Ar-Ray (@Ray255Ar) 2021年3月12日
ROSについて
ROSとはRobot Operating Systemの略称で、ロボット制御に必要なパッケージや環境が揃っているオープンソースプロジェクトです。企業での産業用ロボット開発から個人のホビーロボット開発まで多くの活用例があります。
ROS関連の書籍も充実しているのでぜひチェックしてみてください。
(画像をクリックすると詳細ページに移動します)