MOSAの夏①オペレーティングシステムの開発

MOSAの夏①オペレーティングシステムの開発

このプロジェクトでは、ラジコンのショベルにROS2というロボット用ミドルウェアを搭載し、ROS2で情報をやり取りする遠隔操作システムを構築しました。
ROS2によって、コントローラーでショベルカーを動かすことができます。
また、DCモータのみで構成された単純なロボットにROS2を導入することで、汎用性・拡張性がアップしています。


実機のハードウェア改造・ソフトウェアの組み込みまで一連のロボット関連技術に触れ、今までの知識・経験を整理することができました。

作成物

ROS2とは

ROSとは、Robot Operating Systemの略で、ロボットの開発を容易にするために開発されたオープンソースのソフトウェアプラットフォームです。センサー、モータ、カメラなど、ロボットを構成する様々な部品を連携させ、一つのシステムとして動作させるためのフレームワークを提供します。

ROS2ではROS1に新しい機能が追加され、より柔軟な開発が可能となり、多くのプラットフォームや言語に対応しています。

使用した技術

システム
  • Ubuntu
  • ROS2
  • mROS2
ハードウェア
  • 操作用PC
  • ESP32
  • DCモータ
  • Meta Quest 2

タスクの概要

ハードウェア

ROS化を行う前にロボットの動作確認や分解を実施し、ロボットの構造を理解しました。

ROS2システムに改造する際は、既存の基板とレシーバを取り除いています。
今回は基盤の代わりにESP32を使用しました。

ソフトウェア

ESP32内にNodeを作成し、ある角度まで来たら金属片に接触→接触でそれ以上は動かないようにショベルの角度制限を実装しました。

カメラ

カメラを設置するにあたり、土台が必要になったため3Dプリンタで土台を作成しました。

ショベルカーの座席に椅子に設置するように、ESP32CAMを3台同時に運用しています。
取得した画像はUnity上で表示されます。

Unity

Unity上で床を3つ設置し、実機にマウントしたESP32CAMの映像を取得できるようにしました。

AI

Yoloを使用して、物体認識の機能を追加しました。
少しカクつきがあり小さなものの検出は難しそうでしたが、人の検知は十分に行えていました。


建設ロボットの周辺に人がいるのは危険なので、人を検知したら自動停止するシステムに活用できそうです。

感想

今回初めて触れる技術も多く、まだ理解に自信がないところもあるが、今後経験値を増やして知識を鮮明にしたいと思った。完成できて楽しかった。

久しぶりに実機のハードウェア改造・ソフトウェアの組み込みまで行うことができた。
今までの知識・経験を復習することができて良かった。