「Arduino」タグアーカイブ

SHISEIGYO-1 Walker 参 を実現させたい俺2 ー倒立実現ー

前回はシリアルサーボLX-244を用いて片足動作を確認しました。

SHISEIGYO-1 Walker 参 を実現させたい俺1 ーサーボ味見ー

 

精度も良くSHISEIGYO-1 Walker の実現に使えそうと判断しましたので、ここでは更に検証を進めます。

 

 

両足構成

シリアルサーボLX-244を追加購入し、片足4つずつ計8個のサーボを用いて両足動作を確認しました。

前回同様に専用のコントローラを介してArduino UNOで制御しています。

力強く非常にスムーズでいい動きです。

 

リアクションホイールも搭載してみました。
こちらはESP32で直接 シリアルサーボLX-244を制御しています。

サーボのトルクも十分で全く問題ないようです。

 

リアクションホイールによる倒立

足先をかまぼこ状にして、倒立動作を確認します。

 

倒立動作を確認しました。しかし若干安定度に欠けます。

 

フライホイールを2枚から3枚に増やしてみました。

 

重心前後運動

倒立の安定度確認や足の構成の調整チェックを重心の前後移動動作で実施しました。
もろもろ調整しつつ動作確認。

 

足の形状や取り付け位置を調整して安定して重心移動ができるようになりました。

 

おわりに

無事にリアクションホイールによる倒立で重心移動まで確認できました。
シリアルサーボLX-244の動作精度には全く問題がないと現状では考えております。

ここからは歩行に向けて検証進めたいと思います。

SHISEIGYO-1 Walker 参 を実現させたい俺1 ーサーボ味見ー

これまで2機種のリアクションホイールによってバランスする2足歩行ロボットを製作してきました。

初代のSHISEIGYO-1 Walker は歩行には成功しましたが使用したシリアルサーボ(KRS3301)のトルクが十分でなく、重心が低くゆっくりとした動作となりました。

 

二代目のSHISEIGYO-1 Walker 弐 は高トルクのPWMサーボ (RDS3218) を採用し素早い動作が可能となりましたが、サーボの動作角度の精度が低く足を交差させる歩行は断念しました。

 

いつかは高トルクで高精度のサーボモータを入手し完全版のSHISEIGYO-1 Walker 参 を実現したいと考えておりました。

近藤科学のシリアルサーボではKRS2572が高トルクであり、恐らく精度も高いと思われます。

但し、非常に高額です。。。

 

SHISEIGYO-1 Walker 参 の実現はしばらく難しいと考えておりました。
しかし先日 高トルクで低額のシリアルサーボを見つけましたので、ここではそのサーボの精度を検証してみましたので報告いたします。

 

 

シリアルサーボ LX-224

以下のシリアルサーボ LX-244を購入しました。トルクも十分で価格もPWMサーボと変わらないです。

サイズはPWMサーボ RDS3218 と同じです。

 

専用のコントローラも購入しました。

 

動作はコントローラと専用ソフトを使用して割と簡単にできました。サーボIDを割り当てたり、動作のシーケンスも組むことができました。

 

精度比較

LX-244の動作精度を PWMサーボ RDS3218 と比較してみました。

シリアルサーボ LX-244のほうは明らかに制動がかかっており精度もバッチリのようです。
上の実験ではLX-244の動作速度を最速で実施しているので若干オーバーシュート気味です。これは動作速度の調整で改善できそうです。

動作精度もさることながら各種パラメータを取得できることもシリアルサーボの魅力ですね。

 

片足構築

LX-244を3個使用して足を構築しました。
制御は専用コントローラにArduino UNOから信号を送って実施しました。

マイコンからの制御は以下を参考にしました。


HiwonderのシリアルサーボをM5StickCで動かす - スイッチサイエンス マガジン

 

屈伸動作

力強く割と滑らかな動作が実現されました。

 

コレはSHISEIGYO-1 Walker 参 の実現も夢ではないかもしれません。
引き続き検証進めます。

Arduino MKR WiFi 1010 ベランダ太陽光発電 温湿度センシング検討

2021/9/22からベランダに設置している、太陽光発電 気象観測システムが止まることなく無事に北海道の厳しい冬を越すことができたことを前回報告させていただきました。

RaspberryPi サーバ & WordPress ブログ を XSERVER に サーバ移転

 

長い冬が終わり気温が上がってきまして、ずーっと保留にしてきた比較的気温が高い時に発生する温度と湿度の値の跳ね上がり現象が現れ始めました。

 

腰を据えてこの問題と向き合いましたので報告いたします。

 

 

温湿度センサ交換

これまで温湿度センサはDHT11からDHT22にかえて運用してきましたが、いずれも値の跳ね上がり現象が発生しています。

Arduino MKR WiFi 1010 をソーラで楽しむ 3 -温湿度センサ変更-

新温湿度センサ SHT31 

凝りもせず再び温湿度センサを変えてみました。

https://github.com/adafruit/Adafruit_SHT31

 

 

しかし、結果は変わらず日中に値が上昇する結果となりました。。。

ということは日中お弁当箱の中は確実にこの温度になっているということです。

 

お弁当箱 加工

お弁当箱を百葉箱のように通気性がよく直接日光が当たらないように工夫しました。
側面に穴を複数開けて、フタにプラ板で天井を設けました。

あっさり解決しました。。w

屋根が効いたようです。早く気づけよという話ですね。。。

温湿度センサのDHT11とDH22  疑ってごめんなさい 😥 

 

引き続き運用続けます。

SHISEIGYO-1 Walker 弐 を実現させたい俺2 ー歩行検討ー

前回は高トルク中華サーボで足を構築して、リアクションホイールでバランスをとるロボット(2号機)を検討しました。

SHISEIGYO-1 Walkerを実現させたい俺2 ー歩行検討1ー

 

サーボの大きさや動作角度の精度を鑑みて以下のようなガニ股型のロボットにいたしました。

 

ここでは歩行を検討いたしました。

 

 

歩行検討

重心を片足に載せて、他方の足を上げて進行方向に出し重心をシフトして他方の足を戻すを繰り返します。

歩幅は1cmと大きくないですが
流石 20kg・cmと高トルクのサーボなので、かなり高速の重心移動が実現できました。

 

足底をかまぼこ状にしてリアクションホイールでバランスをとっているので、床が傾いても足が滑らなければ平気でバランスして歩行します。

 

SHISEIGYO-1 Walker

1軸のリアクションホイールでバランスとりつつ 2足歩行するロボットは今回で2台目の製作となります。

 

1号機はシリアルサーボ KRS3301を使用しました。 トルクが足りず( 6.0kg・cm)、ゆっくりとした歩行しかできませんでした。

 

今回 高トルクのサーボの使用で速い重心移動が確認できましたので、次回は高トルクでかつ精度の高いサーボを使用して高速での足を交互に進める歩行を目指したいです。

KRS-2572あたりが最適でしょうか。価格も高いので少しづつ集めて製作進めたいと思います。


KRS-2572R2HV ICS - 近藤科学

 

おわりに

ここでは高トルクPWMサーボでのSHISEIGYO-1 Walker 2号機の歩行を検討しました。

課題は残りましたが、それは希望とも言え リアクションホイールによるバランス機構を用いてスムーズに2足歩行するロボットの実現確度はかなり自身の中で向上しました。目を閉じればもう姿が見えているほどです。

ただ理想と考えるサーボを導入するには資金が必要となりそうなのでコツコツ貯めていきたいと思います(過剰な労働は絶対にしたくないので)。

 

余談ですが。今回 SHISEIGYO-1 Walker 弐 をTwitterにアップしたところ、以下のようであると感想をいただきました。

  • チャップリン
  • どじょうすくい
  • タイムボカンエンディングテーマで出てくるマージョ一味

ガニ股がレトロな印象を与えているのでしょうね 😆 

そういえば平成以降ガニ股はとんと見なくなった気がいたします。
現在ガニ股は競合がいない状況ですので何かチャンスがあるかもしれません。

SHISEIGYO-1 Walker 弐 を実現させたい俺1 ーキックオフー

以前に姿勢制御リアクションホイールに足をつけて2足歩行ロボットを製作しました。

シリアルサーボで足踏み -シリアルサーボと距離を詰めたい俺4-

 

1号機のSHISEIGYO-1 Walkerはシリアルサーボ KRS3301を使用しておりました。

ゆっくりではありますが、リアクションホイールによる自律的重心移動動作を実現し2足歩行を実現できました。
但し、サーボのトルクが6.0kg・cm程度と低くホイールを重くできないなどの制約もありました。

ここでは足に使用するサーボモータをかえて2号機 (SHISEIGYO-1 Walker 弐) の製作を実施します。

 

 

サーボモータ入手

AliExpressで高トルクのサーボを購入いたしました。

 

アルミフレームもついて連結しやすく、簡単に足的なモノを構成できました。

ちなみに上の動画で使用してるコントローラは以下。
50HzのDuty 5~10%のPWM信号を出力します。

 

 

合計8個のサーボで両足を構成して、ESP32の評価ボードとモータドライバ PCA9685で動かしてみました。

 

 

屈伸動作は逆運動学で足高さを指定して動かしています。

SHISEIGYO-1 Walkerを実現させたい俺2 ー歩行検討1ー

 

SHISEIGYO-1 Walker 弐 製作

ESP32の評価ボードとモータドライバ PCA9685にIMUセンサMPU6050を加えて、更にブラシレスモータを制御します。

 

組立てました。
1号機のSHISEIGYO-1 Walkerより大きくなりました。
足は同様にかまぼこ状です。

 

倒立も実現できましたが、高さがあるためか少しフラフラしています。

ホイールは市販のアルミホイールを2枚重ねにしておもさが約125gありますが、サーボが強力なので全く問題ありません。
3枚重ねにして更に重くして試してみましたが、モータが熱くなって苦しそうなので2枚にしました。

調整

倒立がフラフラなので、極力ホイール高さを低くしてみました。
足の付け根を上げて、モータ固定位置を下げました。

 

だいぶ安定してきました。

 

BLEでESP32に信号をおくって手動で前後動作させました。

若干不安定で怖いです。。

再調整

色々足の構成を変えて、高さを低くして安定性の向上など目指しましたがあまりうまくいきませんでした。

 

足の高さを変えると足を交差させて足底を一直線にする際に他方の足に干渉してしまうなどの問題がありました。

またこのサーボの場合 角度指定の際にばらつきがあり(正方向と逆方向時に静止位置が異なったりする)、複雑な動作は難しいかなという結論に至りました。

 

方針変更

今回のサーボは高トルクですがサイズが大きく角度の精度も低いので、1号機のように足を交差させての歩行は難しいと判断しました。
以下のような構成にして歩行を目指すことにしました。

足をロールさせるサーボを減らして、足1本あたり3個のサーボ
合計6のサーボを使用して足を構成しています。

 

前後動作も比較的安定しているので、歩行動作にも可能性ありです。

 

ちなみに足底はかまぼこ状なのでホイール回転なしでは自立しません。

 

 

おわりに

ここでは高トルクの中華サーボでのリアクションホイール2足歩行ロボットの製作を開始しました。

製作の過程でサーボの特性を理解しつつ調整を重ねだいぶ方針が固まってきました。

次回は歩行を目指したいと思います。

それではまた。

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象システム 無事越冬

2021/9/22からベランダに設置している、太陽光発電 気象システムが止まることなく無事に越冬できました。

Arduino MKR WiFi 1010 をソーラで楽しむ 1 -ベランダ気象データ測定-

 

 

 

気象システム

システムのおさらいです。
Arduino MKR WiFi 1010 に温湿度センサと気圧センサを接続し、LiPoバッテリを8Wソーラパネルで充電しながら運用しています。
10分おきに起床してLiPoバッテリ電圧とソーラ発電電圧と気象データ(温度、湿度、気圧)をUDP送信してスリープします。

 

  • Arduino MKR WiFi 1010

     
  • 温湿度センサー DHT22

     
  • 大気圧センサーモジュール BMP280

     
  • LiPoバッテリ 1200mAh

     
  • 8Wソーラパネル (6V用)

パワーマネージメント

Arduino MKR WiFi 1010には入力定格22VのパワーマネージメントIC BQ24195Lが搭載されており、コントローラ用のロジック電源生成とLiPoバッテリの充電動作を実施しています。

高い入力電圧耐圧のBQ24195Lのおかげで開放電圧10.8Vの8W出力のパネルソーラパネルを直接Vinに接続することができ、LiPoバッテリを充電しながらの長期運用が実現できました。

但しArduino MKR WiFi 1010のオフィシャルVin最大定格は6Vです。
実施の際は自己責任で宜しくお願い致します。

参考

 

無事に越冬

本システムをベランダに置いて2021/9/22から運用し、
2022/3/17まで止まることなく動き続けています(176日連続動作)。
引き続き運用していく予定です。

気温

気圧

湿度

LiPoバッテリ電圧

ソーラパネル電圧

 

データをブラウザでみえる化

お母ちゃんに気象システムからのデータをブラウザから見れるようにしてもらいました。

RaspberryPi サーバ & WordPress ブログ を XSERVER に サーバ移転

これで端末からいつでも気象情報をチェックできます。

 

氷点下時のバッテリ電圧

気温が-8℃以下になるとバッテリ電圧の低下がみられました。

気温

LiPoバッテリ電圧

 

ソーラパネルからの電圧は普段通り供給されているので、低温によるバッテリ電圧の低下といえます。

ソーラパネル電圧

 

バッテリ電圧低下時でも3.8V以上を保持しており、システム動作に異常はありませんでした。
気温が-10℃以下になると危なかったかもしれませんが、今冬は無事に超えることができました。

 

トンガ火山噴火 衝撃波

2022/1/15のトンガ火山噴火の衝撃波による気圧変化を本システムでも観測しました。

 

 

逆方向と2周目の3回のピークを観測しました。
これには非常に驚きました。

 

 

温湿度センサ

観測当初から見られた温湿度センサの値の跳ね上がり現象がここ最近再びみられるようになりました。

 

同様に湿度にもピークが出るので温湿度センサDHT22の何かに起因しているものと考えています。

 

こちらはセンサ交換も視野に入れつつ、原因検証すすめます。

 

おわりに

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象システムの長期運用状況について報告いたしました。

すでに冬を超えて半年近く動作しています。
特殊機材の追加なしにマイコンとソーラとバッテリとセンサのみで実施できる非常に経済的なシステムであるといえます。

今後は温湿度センサのピーク値の原因解明と現行では10分おきのデータ取得周期を消費電力と相談しながら縮めていこうと考えております。

球体POVつくってみた -球体POV製作への道 その10-

先日、スリップリングを用いて姿勢制御モジュールとPOVの融合による新たな表現を検証いたしました。

姿勢制御装置とバーサライタの融合 ーリアクションホイールへの道50ー

 

ここでは姿勢制御POVの機構をそのまま流用して、長年の夢であった球体POVを作ってみました。
およそ6年かかった”球体POV製作への道”ついに完結です!

LEDテープ比較 Neopixel vs Dotstar -球体POV製作への道 その7-

 

 

筐体製作

6年前とは異なり、現在の私には良いブラシレスモータと素晴らしい3Dプリンタがございます。

直径10cmのリングを3Dプリントし、

 

SPI LEDテープ (41セル) をリングに貼り付けて、姿勢制御POVのホイールの代わりに固定しました。

 

簡単に球体POVが完成してしまいました。テクノロジーの進歩を感じずにはいられません。

構成

 

球体POV動作確認

まずはリングのみを載せて回転させてみました。
3Dプリントしたリング自体は軽いので問題なく高速回転できています。

 

リングの片側にLED (21セル) を付けて動作確認
ブラシレスモータのエンコーダ出力 (1周 100パルス) でLEDの色を変えて表示を確認しました。

問題なく1周100分割でRGBY 4色で点灯できました。

 

リングのもう一方に20セルのLEDを貼り付けます。他方のLEDの間にセルが配置されるように貼り付けました。

合計で41セルのLEDとなりましたが無事に1周100分割でRGBY 4色で点灯できました。
回転速度は約1400rpmです。24V ブラシレスモータはさすがに速いです。

 

LEDセルを増やしたことで表示密度も向上いたしました。

 

全白で表示させてLEDの位置による光の違いの有無の確認を実施しました。

LEDの場所 極に近いほど経路長が短くなるので 明るさに違いが出るかと思いましたが、 それほど差はありませんでした。
正面から見ると発光方向が傾くのでいい感じに 均等になっているのかもしれません。

表示画の経路長輝度補正の必要はいらないと判断しました。

 

動作

アスペクト比 2:1の地球の絵を表示してみました。
 Equirectangular-projection.jpg 

画像を100×47の画像に縮小し、各ピクセルの色を検出しLED用のファイルに変換し表示させました。

LEDセルは41ですがリング下部の接続部にはLEDがないので縦47ピクセルとしました。

それほど画素数は多くないですが、なかなかきれいに表示されました!

 

おわりに

ここでは前回に製作した姿勢制御POVを流用して、長年の夢であった球体POVを製作しました。

約6年前に球体POV製作への道を立ち上げて頓挫しておりましたが
この間に3Dプリンタを入手しハンディーバーサライタや姿勢制御モジュールを製作し、
技能の向上と良い部品とのめぐりあわせがあり この度容易に完成させることができました。

いろんな絵を表示させてみたいのですが なかなか球体を展開した画像を用意するのは難しいものですね。
画像生成方法も検討しないといけません。

 

追記

2022/3/13 絵の表示について

球体POVを製作されている やまたい@ものつくり さんから
球体中央は画像修正しなくてもいい感じに絵が表示できるというアドバイスをいただきました。

 

試しにうまい棒のアイツで試してみました。
以下のように真ん中に顔を配置してアスペクト比2:1の画像にして表示してみました。

 

なかなかいい感じ♪

 

小学館のアイツも同様に表示

 

本当に極端な加工なしでも絵だしできますね。
色々表示させて楽しみたいと思います。

姿勢制御装置とバーサライタの融合2 ーリアクションホイールへの道51ー

前回は 1軸 姿勢制御モジュール SHISEIGYO-1のホイールにLEDをつけてバーサライタ動作させてみました。

姿勢制御装置とバーサライタの融合 ーリアクションホイールへの道50ー

 

姿勢制御モジュールのホイールはバランス状況によって正転・逆転及び回転スピードが変わるので、安定した画の表示は出来ませんでした。

 

 

スリップリング

前回はホイールにLEDと制御用のマイコン(Adafruit Trinket M0)と回転検出用フォトリフレクタを載せてワイヤレスチャージモジュールで無線電源給電しました。

ここでは画の表示にホイールを駆動するブラシレスモータのエンコーダ出力を使用したいと考えました。
エンコーダによる回転検出値でLEDの点灯パターンを制御すればホイールの正転・逆転及び回転スピードが変わっても表示する画に影響はありません。
しかし問題はどのようにエンコーダ出力値をLED制御に反映させるかです。

そこで遂にスリップリングに手を出してしまいました。

 

スリップリングは回転部に電源線や信号線を接続できるコネクタです。

 

ここでは4線のスリップリングを用いて回転部のSPI入力LEDと接続します。

 

SHISEIGYO-1 POV 構築

購入したスリップリングをSHISEIGYO-1のモータに通したかったのですが、シャフトが短く埋もれてしまいました。。

 

マウントハブと平行ピンでシャフトを延長してスリップリングとフライホイールを固定しました。

 

凄く仰々しくなってしまいました。。

完成

スリップリングの回転部用の配線に11セルのLEDを接続し、他方の配線をSHISEIGYO-1のコントローラであるATOM Matrixに接続します。

 

ATOM Matrix (デュアルコア) で姿勢制御しつつモータエンコーダ出力(1周100分解能)に基づいてSPI LEDを制御します。

 

動作

まずはホイール1周を4分割して4色で発光
エンコーダで回転位置を検出してホイール速度や正転・逆転に依存しない表示を確認。

倒立動作も問題なく出来ています。

 

アニメーション表示

LEDのセル数が少なく回転速度も一定ではなくそれほど早くないので、きれいな表示は出来ていませんがスリップリングの使用によってかつてない表現が実現できました。

 

おわりに

ここでは初めてのスリップリング体験を堪能し、姿勢制御モジュールとPOVの融合による新たな表現を検証いたしました。

今後はスリップリングを用いたガチPOVの製作も検討したいなと考えております。

それではまた。

デジタルおかもち2

前回はサーボモータを用いてデジタルおかもちを製作しました。

デジタルおかもち

前回において以下の課題や疑問が生じました

  • サーボの応答が遅いのか
  • 制御が遅いのか
  • そもそも制御の思想自体が誤っているのか
  • 手で持って移動させているのが悪いのか(実際サーボの移動に影響されてリンギングすることもあった)

 

 

ブラシレスモータを試してみた

試しに姿勢制御モジュールSHISEIGYO-1のブラシレスモータでデジタルおかもちを試してみました。

なんと!すごくいい感じに1軸デジタルおかもちが実現できました!!

おかもち台は3Dプリントして姿勢制御モジュールのホイールの代わりに取り付けました。

 

SHISEIGYO-1で使用しているブラシレスモータにはコントローラとエンコーダが内蔵されています。

モータの回転方向やブレーキはデジタル制御でき、回転スピードはPWM信号で制御します。
エンコーダは1周100パルス出力され、ここでは4逓倍して使用しました。

 

ATOM Matrixに内蔵のIMU(MPU6886)の加速度(acc)と角速度(gyro)のセンシング値を用いてカルマンフィルタを通して筐体の傾斜$θ$と角速度$ω$を計測します。

計測値とエンコーダによるモータの回転目標位置$θ_{GOAL}$を用いて
以下のようにモータ回転PWM信号$M$を生成し、PD制御しました。

$$M = {Kp}_X × (θ – θ_{GOAL}) + {Kd}_X × ω  $$

$$   但し、Kp, Kd:係数$$

 

ブラシレスモータによるデジタルおかもち動作は前回のサーボモータに比べ非常に応答性がよく驚きました。
ブラシレスモータでもこのように目標位置にパタッと止める制御ができちゃうんですね!

大変勉強になりました!

 

前述の課題や疑問はブラシレスモータ版のデジタルおかもち体験を経て以下のようにステータスが変化しました

  • サーボの応答が遅いのか
    →おそい!ブラシレスモータ最高!
  • 制御が遅いのか
  • そもそも制御の思想自体が誤っているのか
    →制御思想やセンサは悪くなさそう
  • 手で持って移動させているのが悪いのか
    →モータの応用早いと手の揺れも吸収してくれる

 

エンコーダ未使用版 検討

SHISEIGYO-1の機構を流用して1軸デジタルおかもちを楽しみましたが、筐体の姿勢を検出してモータを制御するためには、モータの回転量を検出するエンコーダが必須になってしまいます。

ここではエンコーダを使わない方法を検証します。

おかもち台にIMUを仕込んで、平行になるようにモータを回転させる機構にすればエンコーダは必要なくなるはずです。

早速試してみました。

問題なくモータのエンコーダを使用せずにおかもち動作を確認できました。

 

おかもち台にはIMUセンサMPU6050をつけて、コントローラにはATOM Liteを用いました。

 

MPU6050で測定した加速度からおかもち台の傾斜を計測し角速度と共にカルマンフィルタを通しておかもち台の角度$θ$と角速度$ω$を計測します。

以下のようにモータ回転PWM信号$M$を生成し、PD制御でおかもち台が常に水平($θ = 0$)になるようにします。

$$M = {Kp}_X × θ + {Kd}_X × ω  $$

$$   但し、Kp, Kd:係数$$

 

おわりに

ここではブラシレスモータによる1軸 デジタルおかもちを検証しました。
ブラシレスモータの回転エンコーダなしでもIMUセンサに基づくブラシレスモータ制御が実現できました。

ブラシレスモータでもサーボモータのように任意角度に回転移動制御できるようになり、その応答性の良さに大変驚きました。

 

2軸のデジタルおかもちもブラシレスモータで実施したいのですが、ここで使用したモータは重すぎるため以下の軽そうなブラシレスモータを購入してみました。

回転させるためのコントローラが必要そうですが届き次第 勉強したいと思います。
エンコーダなしでの制御が確認できていますので2軸のブラシレスモータ デジタルおかもちの実現障壁もそれほど高くないと思っています。

それではまた。

デジタルおかもち

凄い動画がTwitterにありました。

 

リンクの記事によるとマジックペンを載せたロボットアームの先の台を、移動時にうまいこと傾けて倒れたり滑り落ちないようにしているとのこと

この台の制御をリアルタイムに実施しているのか、アームの移動動作に基づいてあらかじめシーケンス組んでいるのかは不明ですがいずれにしても凄いですね。

なんか自分でも試してみたくなったので動く台(デジタルおかもち)を作ってみました。
ロボットアームなど持っていないので自分の手でもって実験します。

 

 

1軸おかもち

サクッと1軸で動く台を作ってみました。
サーボモータRDS3115とATOM Matrixを使用しました。

 

ATOM Matrixは持ち手の下部につけて内蔵のIMUセンサ MPU6886のセンサ値を使用しました。
上の動画ではMPU6886の加速度から傾きを計算して、10回計測した値の平均を用いてサーボを動かしています。

1軸上での重力加速度の傾き分、サーボを動かしますのでゆっくり動かせば天板は常に平行になるように動きます。

素早く動かすと加速度がかかりますので、1軸上の加速度と重力加速度のベクトル和の方向と垂直になるように天板が傾きます。

 

2軸おかもち

サーボモータRDS3115を追加して2軸にしました。
1軸の時と直行する傾き検出を追加して2個目のサーボを制御します。

 

これで常に平行を保とうとする台が完成しましたので、さっそく物を載せてみました。

 

持ち手を傾けても天板は平行に保たれておりますが、加速移動時になんか挙動がおかしいです。

よくよく考えてみると持ち手を傾けた際に天板とセンサは違う方向を向いており、移動時の加速度がかかる方向が違いました。

センサの位置がまずいですね。

 

天板にセンサ移動

ATOM Matrixを持ち手の底面から天板に移動しました。

 

おかもちの座標は以下のとおり。

 

ATOM MatrixのIMUの加速度(acc)と角速度(gyro)のセンシング値を用いて
以下のようにX軸、Y軸のサーボの角度($θ$)を制御して天板水平方向の加速度がゼロになるように制御しています。

$$θ_X = θ_{X-1} + {Kp}_X × {acc_Y} + {Kd}_X × {gyro_X}  $$

$$θ_Y = θ_{Y-1} + {Kp}_Y × {acc_X}  – {Kd}_Y × {gyro_Y}  $$

$$   但し、θ_{X-1}, θ_{Y-1}:直前に算出した角度、 Kp, Kd:係数$$

これによって持ち手が傾いても天板は平行になるようにサーボが動き、移動時には加速度と重力加速度のベクトル和の方向に対して常に垂直になるように天板が傾くという魂胆です。

 

しかし、はやく移動させると積載物は落ちてしまいました。

 

サーボの応答が遅いのか
制御が遅いのか
そもそも制御の思想自体が誤っているのか
手で持って移動させているのが悪いのか(実際サーボの移動に影響されてリンギングすることもあった)
色々原因が考えられますが完ぺきなる おかもち は実現できませんでした。

 

おわりに

ロボットアームによるペンの移動に感化され、デジタルおかもちを製作してみました。

結果的には成功しませんでしたが、いつかロボットアームを手に入れたら先端に本機構のおかもちを取り付けて再検討実施したいです。

 

姿勢制御装置とバーサライタの融合 ーリアクションホイールへの道50ー

姿勢制御モジュールのホイールにLEDを付けてバーサライタにしてみてはどうだろう。

思いついてしまったので どうなるかは考えずに作り上げることだけを考えて手を動かした。
ちょうど祝日 天皇誕生日。俺なりの祝いの儀式だ。

 

 

とにかく作る

1軸 姿勢制御モジュール SHISEIGYO-1のホイールにLEDをつけてバーサライタ動作させます。

回転部への給電はハンディバーサライタ PovRanianの機構をそのまま利用してワイヤレスチャージモジュールを使用します。

 

ワイヤレスチャージモジュール送信側をSHISEIGYO-1の筐体に固定。
電源は5V DCDC出力に接続しました。

 

ホイールにLEDやワイヤレスチャージモジュールの受信部を固定する治具を3Dプリントいたしました。

マイコンはAdafruit Trinket M0 を使用しました。

 

SPI入力のLEDを11セル前面に固定。
更にホイールに固定後に回転を検出するフォトリフレクタセンサも固定します。

 

ホイールを固定して完成!

筐体に貼ったマスキングテープの白マーカをフォトリフレクタで検出します。

 

動作

 

プログラム的にはフォトリフレクタセンサで回転時間を検出して、1周の時間を4分割してLEDを赤、緑、青、黄で光らせます。

姿勢制御モジュールの場合は回転速度常時変化するのでマーカ1個で回転検出するPovRanian形式だときれいな絵を出すのが難しいです。

ブラシレスモータのエンコーダ出力を利用できれば回転速度や正転・逆転に関係なく絵が出せそうですが無線では厳しいと思います。

いつかスリップリングを使用した有線でのバーサライタ動作も試してみたいです。

ロボットハンドをつくってみた

たまに面白い製品がないかとAliExpressサーフィンをするのですが
非常に興味深いモノを見つけました。

 
サーボモータで駆動する小型のロボットハンドです。

 
機構自体は珍しくないと思うのですが筋に結束バンドを使っている点に
非常に感心いたしました。

 

結束バンドを使用したロボットアームを自分でも試してみたので報告いたします。

 

 

結束バンドで実験

手元にあった結束バンドで指が作れるのか試してみました。

ストロー

ストローに数か所切り込みを入れて、結束バンドをまつり縫いのように通して引っ張ってみました。

 
結構使えそうだな。

TPUフィラメント

柔らかい素材のTPUフィラメントで指を3Dプリントし、同様に結束バンドを通して引っ張ってみました。

 

なかなかいい動きなので指を増やしてみました。
手のひらはPLAフィラメントで出力し、指を差し込んでいます。

めちゃくちゃいい!まさに手だ!!
結束バンドで手軽に作れちゃいました。

 

ロボットハンド製作

いい感じに指ができたのでAliExpressの製品のように電動にしたくなっちゃいました。
同様に高トルクサーボで駆動では芸がないのでマイクロサーボ2個で若干自由度の高い指の動きを目指してみました。

構成

Arduino UNOを用いて可変抵抗で2つのサーボを制御して指を動かします。

 

部品

  • Arduino UNO

     
  • マイクロサーボモータ 2個

     
  • 可変抵抗
    “頻繁につまみを回すような用途には使用しないでください”と注意書きがあるが小さくてブレッドボードに最適なので使用しちゃった

     
  • 結束バンド
    ダイソーの10cmバンド

ロボットハンド

指はTPUフィラメントでフシのある筒状に3Dプリントし結束バンドを通した。
手のひらとサーボのアームと結束バンド固定具はPLAフィラメントで出力。

指に通した結束バンドの端を固定治具に通してもう一つの結束バンドの固定部にはめて止めました。

3Dモデル

3Dプリント用モデルを以下でDLできるようにいたしました。
指(finger01.stl)はTPUなどの柔らかい素材でその他は固い素材(PLAなど)での出力を推奨します。
サーボアームはM2×6mmネジで固定しました。
Zipファイルがダウンロードされます。

 モデルリンク

Arduinoコード

 

動作

2つのサーボモータを使用することによって、一律で引っ張る機構よりも
複雑で生物的な動きが実現できました。

 

おわりに

ここでは結束バンドを用いたロボットハンドを作ってみました。

結束バンドは柔軟で丈夫で固定も容易なので非常に簡単にロボットハンドを作ることができました。

今回はお試しで作りましたが いつかヒューマノイドを製作する際には、手をこの機構を応用したいと思います。

姿勢制御モジュール 4重倒立挑戦3 ーリアクションホイールへの道49ー

久々に姿勢制御モジュールの4段倒立に挑戦しました。

DCモータで姿勢制御 SHISEIGYO-1 DC 爆誕  ーリアクションホイールへの道43ー

 

前回の倒立時間は31秒でした。今回はそれ以上を目指します。

 

 

前回の課題

前回の時点で3段倒立までは非常に安定しておりましたが、3段目に載せているSHISEGYO-1 Jr.のホイールのトルクが足りないかなと感じていました。

このトルク増加によって4段目のSHISEIGYO-1 DCの積載の影響が減り安定するのではと予想しました。

 

調整

前回の課題なども考慮しつつ諸々調整しました。

SHISEIGYO-1 DC 底面調整

SHISEIGYO-1 DCの底を滑りにくくするためにTPUフィラメント製にしました。
大変滑りにくくなりました。

SHISEIGYO-1 Jr.  ホイールトルク調整

前回からの課題であったSHISEGYO-1 Jr.のホイールのトルク不足を解消するために、ナットを増やしました。

この変更によってホイール質量は28g から 50g になりました。

安定性が増して3重で25分以上の倒立が実現できました。

SHISEIGYO-1 the END 重量調整

一番下の姿勢制御モジュール SHISEIGYO-1 the ENDの重量を増して安定化をはかりました。

1軸なので使用しないのですが、ホイールを2個追加でして増量しました。

 

記録会

上記調整を施して記録会実施しました。

47秒の4重倒立を達成しました!

 

再調整

記録会からまたまた気になる点が出てきたので再調整します。

記録会では倒立崩壊時に下から2番目のSHISEIGYO-1の制御が乱れた印象を受けました。
恐らくSHISEGYO-1 Jr.のトルク向上のためにホイール重量を増したことが影響したのだと思います。

SHISEIGYO-1 Jr.  ホイールトルク再調整

SHISEGYO-1 Jr.のホイール重量を増やし過ぎたため少し減らします。

3重だったナットを2重にしました。

この変更によってホイール質量は50g から 43g になりました。

SHISEIGYO-1 DC  ホイールトルク再調整

下から2番目のSHISEIGYO-1の負担をさらに減らすために1番上のSHISEIGYO-1 DCのホイールのネジを減らしました。

この変更によってホイール質量は22g から 15g になりました。

 

これでもSHISEIGYO-1 DC自身は問題なく倒立できることを確認しました。

 

再記録会

1分15秒の4重倒立を達成できました!!

バランスを持ち直す動作がかなりの頻度で出来ているので、もっと良い記録も目指せそうです。

置き方の鍛錬も進めたいと思います。

 

おわりに

今回の調整によって30秒以上の4重倒立は高い確率で実現できるようになりました。

置き方など研究して更なる高みを目指したいと思います!

SHISEIGYO-1 Walkerを実現させたい俺5 ー歩行検討3ー

前回はリアクションホイールを用いたオートバランスによる前進歩行を確認することができました。

シリアルサーボで足踏み -シリアルサーボと距離を詰めたい俺4-

その他モーションも作りましたので報告いたします。

 

 

後進

後ろ歩きもできるようになりました。

 

旋回

旋回動作も追加。
後ろ足を上げて歩行ラインから少し外しておろして戻すを繰り返してます。

 

おわりに

歩行モーションを追加し、これによってSHISEIGYO-1 Walkerは四方八方どこでも行けるようになりました!

電源コードが邪魔ですね。。
バッテリ搭載などすると今のサーボではトルクギリギリなので、
新たな部品が届き動作検証後にコードレス化も検討したいです。

SHISEIGYO-1 Walkerを実現させたい俺4 ー歩行検討2ー

前回は足の座標からバランスする姿勢角を算出しての制御を確認いたしました。

SHISEIGYO-1 Walkerを実現させたい俺3 ーバランス動作検討ー

ここでは歩行動作の最終調整を実施いたしました。

 

 

機体調整

これまでいじってきて改善点が見えてきましたのでもろもろ調整

ホイール変更

足をより曲げれるようにホイール径を小さくしました。
フレームを3Dプリントしてナットで重さを追加します。

アルミホイール(2枚重ね)  直径 120mm、重さ124g
から
直径 106mm、重さ91gのホイールになりました。

足の調整

ホイールの径と重さの減少によってトルクが落ちましたので
足をなるべく低くするべく、
足先ピッチのアームを26mmから20mmに変更しました。

動作

リアクションホイールの制御ゲインも調整し動作バッチリです。

 

歩行検討

前回検討した足座標からバランス姿勢角をオフセットさせる手法を歩行に応用しようと思いましたが、天板を下げる方向にはオフセットできるが上げる方向にはサーボトルク不足で出来ないため今回は見送りました。

重心移動は 倒立角動的再調整システム (IDRS)で踏ん張ってもらうことにします。

歩行シーケンス

以下のシーケンスを組んで歩行動作を実現しました。

  • 重心を前方に移動
  • 後ろ足を上げて前に移動
  • 後ろ足をさらに前に出して歩行ラインに接地、同時に前足を下げる
  • 重心を前に移動
  • 足を逆にして上記を繰り返す

IDRSによる自律的重心移動もうまくいっております。

 

おわりに

リアクションホイールを用いたオートバランスによる歩行を確認することができました。

しかし課題はまだ多く、早い歩行は難しい状況です。
課題は以下の通り

  • サーボのトルク不足

シリアルサーボでトルクの大きいものを購入となるとかなりの出費です。。
安価なPWMサーボでいつか検証しようと思います。

足のサーボのトルク不足が解消されれば、リアクションホイールのトルクも大きくでき、バランス安定度や重心移動精度が増し高速歩行も可能であると考えております。

よいサーボモータを入手次第また報告いたします。
またお会いいたしましょう!

SHISEIGYO-1 Walkerを実現させたい俺3 ーバランス動作検討ー

前回はSHISEIGYO-1 Walkerの足構造と逆運動学を再検討し、ヨチヨチではありますが歩行動作を確認いたしました。

SHISEIGYO-1 Walkerを実現させたい俺2 ー歩行検討1ー

ここではバランス動作について検討します。

 

 

バランス動作検討

使用している姿勢制御装置にはホイール回転数から動的に目標姿勢角を調整するIDRS機能がついており、床の傾きやゆるやかな外乱に耐性を持たせております。

 

倒立角動的再調整システム Inverted angle Dynamic Readjustment System (IDRS)については以下の通りです。

 

前回検討したように天板を水平に保ってIDRS機能のみでの制御では、足をホイール回転軸の極力直下に配置するように移動させる花魁道中のような歩行になります。

この手法を最適化してスムーズな歩行を目指してもいいのですが、せっかくなので足の配置の自由度を高める検証をしてみました。

足座標からバランス姿勢角導出

IDRSに加えて接地する足の座標からバランスする角度を算出して制御目標角としてみます。
具体的には接地する足先の座標とホイール回転軸が地面に対して垂直になるように制御します。

SHISEIGYO-1 Walkerは足の位置を 股関節のロール角$θ_0$と足の前後(X軸)位置と上下(Z軸)位置で指定します。

バランスオフセット角$θ_{offset}$は以下の図より

   $\tan θ_{offset}= \frac{z \tan{θ_0}+29}{34.6+28+z}$ から

$$θ_{offset} = \tan^{-1} \left(\frac{z \tan{θ_0}+29}{34.6+28+z}\right) で導出されます。$$

このオフセット角$θ_{offset}$を制御目標角に付与して制御します。

動作

片足バランス後に 股関節のロール角を変えてみました。

目標姿勢角も変更されいい感じにバランス追従できました。

 

おわりに

ここでは足の座標からバランスする姿勢角を算出してオフセットとして付与しリアクションホイールを制御いたしました。

これにより足の接地位置の自由度は増しました。
しかし この機構をどのように歩行に利用するかはよく検討しないといけません。

なんだか発散しそうになってるけど、ここからがエンジニアリングの醍醐味でありましょうから楽しんでやっていきたいです。

SHISEIGYO-1 Walkerを実現させたい俺2 ー歩行検討1ー

前回はシリアルサーボ (KRS3301) による足とリアクションホイールによるオートバランスシステムで
二足歩行ロボットSHISEIGYO-1 Walker を製作し、片足立ちを実現いたしました。

SHISEIGYO-1 Walkerを実現させたい俺1 ーキックオフー

ここでは遂に歩行に向けて検討を開始します。

 

 

足動作検討

足の動作を検討します。
前回に引き続きホイールのバランス制御を調整し、片足立ち時の他方の足の動作を確認しました。

 

両足を1直線上に配置して前後動作を確認しました。

 

サーボ配置検討

片足立ちと前後の重心移動が確認できました。

歩行時には足を交差させて移動させる必要があり、現状では膝が90°以上曲げられず動作に制限が生じるので
膝のサーボの配置を変更しました。

これで膝がかなり曲げられるようになり、自由度が増しました。

 

逆運動学

足の移動に正確な座標指定が必要と考え、逆運動学の再考を実施しました。

股関節に直交軸フレーム を使用したため$L_1$は0です。

 

ここでは股関節のロール角$θ_0$は直接指定することにしました。

 
足を上げて(Z軸)、前後(X軸)するためのサーボ角度は以下で導出されます。

サーボの角度$θ_1$は余弦定理を用いて導出します。

${L_3}^2 = {L_2}^2 + {l_d}^2 – 2{L_2}{l_d}\cos{θ_1}’  $

${θ_1}’ = \cos^{-1} \left(\frac{{L_2}^2+{l_d}^2 – {L_3}^2}{2{L_2}{l_d}} \right) $

$$θ_1 = φ + {θ_1}’  = φ +\cos^{-1} \left(\frac{{L_2}^2+{l_d}^2 – {L_3}^2}{2{L_2}{l_d}} \right) $$

$$      但し、φ = \tan^{-1} \left(\frac{x}{z’ – L_1 – L_4} \right)$$

$$          l_d = \sqrt{x^2 + \left(z’ – L_1 – L_4\right)^2}$$

$$  高さを股関節のロール角で補正 z’ = \frac{z}{\cos{θ_0}}$$

 

膝のサーボの角度$θ_2$も余弦定理を用いて導出します。

${l_d}^2 = {L_2}^2 + {L_3}^2 – 2{L_2}{L_3}\cos{θ_2}’ = {L_2}^2 + {L_3}^2 – 2{L_2}{L_3}\cos\left({\pi-θ_2}\right) = {L_2}^2 + {L_3}^2 – 2{L_2}{L_3}\cos{θ_2}$

$$θ_2 = \cos^{-1} \left(\frac{{l_d}^2-{L_2}^2 – {L_3}^2}{2{L_2}{L_3}} \right)$$

 

足首のサーボの角度$θ_3$は足を平行にするために

$$θ_3 =θ_2-θ_1$$

 

以上で 股関節のロール角$θ_0$と足の前後(X軸)位置と上下(Z軸)位置の指定で足のサーボを制御できるようになりました。

 

手動による歩行動作確認

スマホアプリBlynkでBLEを介してSHISEIGYO-1 WalkerのコントローラESP32に左右の足の座標を送って
手動で歩行動作の確認を実施しました。

まだヨチヨチですが、なんとか歩けましたww

 

使用したBlynkアプリの画面

 

おわりに

ここではSHISEIGYO-1 Walkerの足構造と逆運動学を再検討し、ヨチヨチではありますが歩行動作を確認することができました。

よりスムーズでスタイリッシュな歩行を目指しておりますので、引き続き検討実施いたします!

SHISEIGYO-1 Walkerを実現させたい俺1 ーキックオフー

先日 2軸の姿勢制御モジュール SHISEIGYO-2を用いて二足歩行ロボット(SHISEIGYO-2 Walker)を製作いたしました。

SHISEIGYO-2 Walker の歩行を再検討3

ここでは新たな2足歩行ロボットの実現を目指して検討を進めます。

 

 

SHISEIGYO-1 Walker

SHISEIGYO-2 Walkerでは足の高さが4cm程度まででの倒立保持がやっとでした。
これ以上の足の高さにするにはホイールのトルクを大きくする必要がありそうですが
2つの大きなホイールとモータ重量を支える長い足の実現は難しそうです。

 

そこで1軸のリアクションホイールを用いて足の長い二足歩行ロボットを目指すことにしました。

足には以前検討したシリアルサーボ(KRS3301)による機構を応用したいと思います。

歩行検討2 -シリアルサーボと距離を詰めたい俺7-

 

1軸リアクションホイールを用いた2足歩行ロボット SHISEIGYO-1 Walkerのイメージは以下のような感じ


↑コラ―ジュですw

 

1軸 姿勢制御モジュールの検討

1軸 姿勢制御モジュール SHISEIGYO-1 を応用して、長い足を支えるための検討を実施します。

ブラシレスモータとコントロール基板の箱をつくって、三角形の足を両面テープで貼り付けて倒立高さの実験を行いました。

コントローラ基板はSHISEIGYO-2 Walkerのモノを1軸用に改修しました。
12cm径のフライホイールを使用しました。

 

間に木の棒を挿入して高さを上げて実験。

15cm以上の高さでも倒立を確認することができました。
このくらいであればシリアルサーボによる足も導入できそうです。

 

足の検討

以前製作したシリアルサーボによる足にリアクションホイール部を載せて歩かせてみました。

問題なく歩けました。大きなトルク不足はないようで安心しました。

 
軸の自由度を変えずに足高さを低くするために直交軸フレームの導入を検討しました。

 

直行軸フレームを足の付け根に導入しました。
歩行も問題なく、高さは20mmほど低くできました。

 

参考

 

倒立検討

リアクションホイール部を載せての歩行が確認できましたので、ホイールによるバランス倒立動作の確認を実施します。

足先は以下のようにかまぼこ型にして、足首ロール用のサーボモータは除去しました。片足が5軸から4軸となります。

 

片足立ちの姿勢でサーボを固定して倒立動作を確認しました。

無事に倒立できました。
サーボ軸が若干きしむので少しふらつきますが踏ん張ってくれています。

 
より安定性を高めるためにフライホイールを2枚重ねにしました。

 

他方の足をゆっくり動かしてみました。

足を急に動かすと、バランスを崩すので現状で歩行はまだ難しく調整が必要です。

 

おわりに

ここでは1軸 姿勢制御モジュールを用いた2足歩行ロボット SHISEIGYO-1 Walker の検討を行いました。

とりあえず片足倒立は実現できましたので歩行に向けて検討を進めたいと思います。

SHISEIGYO-2 Walker の歩行を再検討3

前回はSHISEIGYO-2 Walkerで逆運動学による歩行を確認しました。

33日後に2足歩行ロボットを完成させたい俺

上下前後を正弦波形で回転するように移動させる歩行から、もう少し人間らしい歩行を目指してみました。

 

 

足の前後

まずは片足で足をどれほど前後できるのか確認してみました。

足の高さ30mmで ゆっくりとですが前後 10mm ~ -10mm 移動できました。

支点動かして機体傾けるこの動作は面白いですね。
今後なにかに応用できそう。

 

歩行検討

片足を上げて前方に下げると同時に他方を後ろに下げて前進する人間っぽい歩行を目指します。

足の座標は以下のように動かしてみます。

動作

片足接地時にも足を後方に下げているので常に前進しており、割と自然な歩行になったのではないでしょうか?
足の高さ30mmで前後 5mm ~ -5mm 移動で歩行できました。

リアクションホイールの制御ゲインや回転検出ロータリエンコーダの4逓倍化などでオートバランスの精度向上を図りましたが前後移動は ±5~6mmが限界でした。
これ以上大股で歩くには足高さを低くしたりフライホイールのトルクを上げるしかなさそうです。

 

おわりに

ここではSHISEIGYO-2 Walkerの方向の再検討を実施いたしました。

安定性や歩幅の向上が実現され大変喜んでいます。

 
でも以前のほうがロボットらしくていいかなとも思わなくもない(;^ω^)

SHISEIGYO-2 Walker の歩行を再検討2

前回は2足歩行ロボット SHISEIGYO-2 Walker の足を逆運動学で位置指定して動かせるようにしました。

SHISEIGYO-2 Walker の歩行を再検討1

ここでは逆運動学での歩行について検証しました。

 

 

歩行検証

逆運動学による足先座標の指定動作を両足に展開して歩行動作を確認します。

足踏み

まずは両足の高さのみを正弦波形で変化させて足踏み動作の確認をしました。
他方を逆相で動かせば足踏みとなります。

リニアにサーボ角度を変えていた時よりも柔らかな動作になりました。
逐次足の高さを指定できるようなったことによる恩恵ですね。

歩行

足踏みが確認できましたので、いよいよ歩行に挑戦します。

座標は以下のように前後方向をX軸、上下方向をY軸としました。

以下のようにX軸、Y軸を正弦波形で変化させて足の座標を指定して動かします。
他方の足はこれと逆相で動かします。

 

動作

使用したミニサーボ FT1117Mではトルクが足りないようで異音がでて、良い感じの歩行になりませんでした。。

足をこまかに前後することでサーボ単体にかかる負荷が増したためと考えられます。

 

サーボ交換

トルク向上のためサーボを以下に変更します(ちょっとオーバースペックでサイズがでかいのが難点ですが。。)。

足踏み

ミニサーボと同様に正弦波で足踏み動作確認。

大変力強くいい感じ!

歩行

ミニサーボと同様に正弦波で歩行動作確認。

こちらは問題なく元気に歩行できました。

以前のように線形的にサーボの角度を直接動かしていたより、柔らかく生物的になった気がします。

 

おわりに

ここではSHISEIGYO-2 Walkerで逆運動学による歩行を確認しました。

次は前後方向のバランス耐性をリアクションホイールの調整含めて確認してみたいと思います。

それではまた