ROSでクローラロボット開発プラットフォームを制御するRaspberryPiPicoのリファレンススケッチです。セットでROSパッケージのcugo_ros_controlと使用します。
ROS開発キットの方はこちらを参照してください。
cugo_ros_motorcontrollerでは、ROSパッケージの cugo_ros_controlから受信した目標回転数になるようにモータ制御し、実際の回転数を返信します。
また、付属のプロポ(MR-8)を用いて、RC操作と自律走行の切り替えを実施できます。左スティックを左に倒すことでラジコン操作を受け付けるRC-MODEに、右に倒すことでROSの速度ベクトル受け付けるROS-MODEに切り替えることができます。自律走行中に、誤った判断をし障害物に衝突しそうなシーンでは、コントローラよりRC-MODEに変更することでラジコン操作に即時に切り替え、ロボットを止めることができます。
RaspberryPiPicoに書き込みさえしてあれば、PCのROSパッケージcugo_ros_control側で通信を開始すると、自動的にROSと通信します。
CuboRex製品では、
- ROS開発キット CuGo V3
- クローラロボット開発プラットフォーム CuGo V4
- クローラロボット開発プラットフォーム CuGo V3i
でお使いいただけます。それぞれ使用するコードが異なることがありますので、下記表からご参照ください。
ここでは、“クローラロボット開発プラットフォーム CuGo V4”と“クローラロボット開発プラットフォーム CuGo V3i”は“クローラロボット開発プラットフォーム”と総称します。
製品名 | ROSパッケージ | マイコンスケッチ |
---|---|---|
ROS開発キット | cugo_ros_control | ArduinoUNO用 |
クローラロボット開発プラットフォーム | cugo_ros_control | このページ |
クローラロボット開発プラットフォームでは、以下の図のように、LinuxPCとの通信はUSBケーブルで行います。ROSを実行する上位のPCはご自身でご用意ください。
ハードウェア
- RaspberryPiPico
Arduino標準ライブラリ
- Servo.h
- PacketSerial.h
- RPi_Pico_TimerInterrupt.h
- hardware/watchdog.h
Arduino標準IDEでCuGo-ROS-PicoDriver.inoを開き、クローラロボット開発プラットフォームのRaspberryPiPicoに書き込んでください。
ArduinoIDEのインストール方法や書き込み方法などの基本的な操作方法はこちらの2.準備をご覧ください。
ArduinoIDEでRaspberryPiPicoにスケッチを書き込んでください。 スケッチが書き込み済みであれば、PC側ROSパッケージcugo_ros_control側で通信を開始すると、RaspberryPiPicoが自動的にROSと通信します。
ご不明点がございましたら、issuesにてお問い合わせください。回答いたします。
このプロジェクトはApache License 2.0のもと、公開されています。詳細はLICENSEをご覧ください。