狠狠撸

狠狠撸Share a Scribd company logo
厂罢惭32贬745を四足歩行させる话
2023/1/28
新年LT会「私の愛するIoT 2023」兼 STM+mROS 2 作品発表会
いのうえ みのる
名前:井上 稔(Minoru INOUE)
出没先: いろんなコミュニティ
Facebook: minoru.inoue.90
Twitter : @henjin01_Fab
Bittleちゃんかわいい
1. 概要
STM32H745でbittleっぽいことをやってみたよ
?四足歩行で歩いたり、右左方向へ回ったりできるよ
?抽象的な命令に基づいて動くよ
2. bittleってなに?
https://www.petoi.com/pages/bittle-open-source-bionic-robot-dog
手のひらサイズの高機能四足歩行ロボット
9DOFセンサなども搭載していて
転んでも勝手に立ち上がる
単に歩くだけじゃなくて「おすわり」
などの他モーションもある
抽象的な命令を送って操作可能
(ex: walk, sit, trot)
首振りなども実装されててかわいい
諭吉3.5人分ぐらいで購入可能
3. STM32H745(NUCLEO-H745ZI-Q)について
https://www.st.com/en/evaluation-tools/nucleo-h745zi-q.html
Cortex-M4とCortex-M7の2つのコアが存在
機能が多い
今回はHALライブラリを使って
コードを実装しました。
mROS2ハンズオンで頂戴した高機能STM32マイコン
? 2つのコアはSRAMを介して通信可能
? UART(USART)が8つある
? PWMとか作れるTIMが18つある
? i2cが4つ、SPIが6つ、i2sが4つ…etc
4. コア間の通信について
MaJerleさんが作成された
stm32h7-dual-core-inter-cpu-async-communicationを利用
https://github.com/MaJerle/stm32h7-dual-core-inter-cpu-async-communication
M7 M4
SRAM4
M7→M4
リングバッファ
M4→M7
リングバッファ
リングバッファを介してコア間通信する
各CPU間で双方向通信が可能
? 各コアで共有しているSRAM4を使うらしい?
?方向別にリングバッファを作る
色々書いたけど、要はこのライブラリを
使えば簡単に通信できる。
MaJerleさんに感謝。
5. 構成
M7 M4
SRAM4
M7→M4
リングバッファ
M4→M7
リングバッファ
UART
PWM
PWM
PWM
PWM
NUCLEO-H745ZI-Q
WALK,STOP,
TURNR/L
抽象的な命令
M4に向けて
命令を
一個づつ送る
M4コアの
生存通知
サーボモータの
角度指定
抽象的な命令からサーボを操作する
6. メカの構成
基本的にはLEGOテクニックで組み上げた
マイコン土台
(3Dプリンタで作成)
サーボモーターは
Geekservo Gray
ProtoLotusを活用して
造形(PETG素材)
路面を掴むための足も
造形(FLEX素材)
マイコン土台
(3Dプリンタで作成)
7. M7コアの命令の拾い上げかた
WALK
TURN RIGHT
SLIDE RIGHT
命令配列(文字列配列)
M4に命令送る
&3秒スリープ
3秒間サーボ
歩行動作
0秒時点
例:
現状は文字列配列から命令を拾ってループさせているだけ
7. M7コアの命令の拾い上げかた
現状は文字列配列から命令を拾ってループさせているだけ
WALK
TURN RIGHT
SLIDE RIGHT
命令配列(文字列配列)
M4に命令送る
&3秒スリープ
3秒間サーボ
右曲がり動作
3秒時点
例:
7. M7コアの命令の拾い上げかた
WALK
TURN RIGHT
SLIDE RIGHT
命令配列(文字列配列)
M4に命令送る
&3秒スリープ
3秒間サーボ
右スライド
動作
6秒時点
一巡したら
WALKから再度ループ
例:
現状は文字列配列から命令を拾ってループさせているだけ
8. 動かしてみた(独立歩行時)
8. 動かしてみた(独立歩行時)
9. 結果とおもったこと
? 機能まだまだ余ってる。
? 加速度センサや距離センサなど、色々と詰めそう。
多少ギクシャクしたけども、歩いたよ?
? M7→M4に命令を送って動かせたよ。
? M7でCube.AIとかできたらいいなぁ。
? 動きと命令が疎結合だよ。
? 別コアゆえ、独立させて役割分担可能
? M7側がプログラマブルななにか、という役割できそう
? mROS 2まだ使っていないよ。
? walkなどの抽象的な命令をEthernetから受信してみてもいいかも。
おしまい

More Related Content

厂罢惭32贬745を四足歩行させる话