六脚ロボ(Hexapod)を作成しました。
特徴
マイコン : Raspberry Pi Pico W (Arduino)
サーボ : 型番DS3218の中華サーボ 3×6=18個
IMUセンサー : MPU6050
自作のモーション作成ソフト
- サーボを26個までコントロールできます
- 無線(WiFi UDP)でPCからモーション作成・コントロールできます
- ジョイスティック対応
- モーションを連続再生する簡易プログラム機能
- Pythonで作成
動画
【六脚ロボの紹介(YouTube)】
組み立て~自作のモーション作成ソフトで動く様子
【PyBulletを使用した物理シミュレーション(YouTube)】
逆運動学(IK: Inverse Kinematics)で解析的に(sin,cos等を駆使して)計算して歩く様子
【Genesisの強化学習で動かした(YouTube)】
強化学習で自動的に歩く動作を獲得し、実機に反映(Sim2Real)した様子
URDFファイル
URDFファイルはGenesisやPyBulletで読み込むことができます。
▼からこの六脚ロボのURDFファイル(とxacroファイル)をダウンロードできます。
URDFファイル
URDFファイルを変更する場合はhexapod.xacroを変更するとやりやすいです。(1本の脚のみ定義してありマクロで6本に増やしています)
ROS2がインストールされている環境で、以下のコマンドでURDFファイルに変換できます。
xacro hexapod.xacro > hexapod.urdf
URDFファイルの確認は▼のサイトで確認ができます。
http://www.mymodelrobot.appspot.com/5629499534213120
URDFの中身を左上のテキストボックスに貼り付けて、「Load robot URDF」ボタンをクリックします。右側のバーで関節を動かすことができます。
参考
✅サーボの制御は↓をベースにしています。
Raspberry Pi Pico+Arduinoでサーボをたくさん動かしたい
✅Bluetooth(シリアル)通信は↓のやり方を使用しています。
Raspberry Pi Pico W でPCとBluetooth(シリアル)接続する
✅IMU(MPU6050)の制御については↓を参照ください。
コップの水がこぼれない台 MPU6050 + Raspberry Pi Pico(Arduino)
✅サーボ(DS3218)はいろいろなタイプがあるようですが、シャフトが両側から出ていてブラケット付きのものを使用しました。また、180°回転のタイプと270°回転のタイプがあるようです。270°の方を使用しました。Amazonでは↓で購入できます。
DS3218 20KG デュアル シャフト