「サーボモータ」タグアーカイブ

SHISEIGYO-1 Walker Jr. 差動駆動型リンク機構で歩行

すき 0
0

前回はSHISEIGYO-1 Walker Jr. の足に平行リンク機構を採用し、ヒザのある歩行を実現いたしました。

SHISEIGYO-1 Walker Jr. ヒザ爆誕

ここでは差動駆動型リンク機構を試しましたので報告いたします。

 

差動駆動型リンク機構

差動駆動型リンク機構を用いれば、モータを上部に2個配置するのみでヒザ上げや足の前後移動が可能になります。

 

早速 Fusin360上でSHISEIGYO-1 Walker Jr. の足に差動駆動型リンク機構を取り入れてみました。

非常にいい感じです。

足製作

CAD設計した足を3Dプリントして組み立てます。

 

片足完成。うまくいった。

 

もう片方も完成。遂に憧れの屈伸運動ができるようになりました。

参考

  • ROBO-ONEにチャレンジ! 二足歩行ロボット自作ガイド

 

足動作検証

差動駆動型リンク機構の足が完成しましたので、歩行に向けて足踏み動作を確認しました。

 

機構の関節の締め付けが甘く足踏みのたびに回転してしまいましたが、調整で改善しました。

足踏み動作も実現されましたので いよいよ歩行に挑戦です。

 

逆運動学

差動駆動型リンク機構によって足先の上下、前後移動が可能になりました。
これまではサーボモータの角度を直接指定して動作させてきましたが、ここからは足先の座標を指定して逆運動学でサーボ角度を算出して制御します。

座標は以下のように定義しました。

 

逆運動学 算出

前方サーボの角度$θ_1$は余弦定理を用いて導出します。ちなみに$L$は大腿、下腿の長さ(36mm)。

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

${θ_1}’ = \cos^{-1} \left(\frac{l_d}{2{L}} \right)$

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

$$      但し、φ = \tan^{-1} \left(\frac{x}{y} \right)$$

$$       l_d = \sqrt{x^2 + y^2}$$

 

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

${l_d}^2 = L^2 + L^2 – 2{L}{L}\cos{θ_2}’ = 2L^2 – 2L^2\cos{θ_2}’$

${θ_2}’ = \cos^{-1} \left(\frac{2L^2-{l_d}^2}{2{L}^2} \right)$

$$θ_2 =\pi-θ_1-{θ_2}’ = \pi-θ_1-\cos^{-1} \left(\frac{2L^2-{l_d}^2}{2{L}^2} \right)$$

以上より、足先の座標(x, y)からサーボモータの角度を導出できるようになりました。

動作

まずは逆運動学で足の高さを指定して、屈伸と足踏み動作を確認しました。

なめらかで非常に良い動きです。サーボの駆動音も低減されました。

 

歩行

いよいよ歩行です。
SHISEIGYO-2 Walkerで検証した歩行メソッドを適応させます。

 

ヒザによる足上げを伴う歩行が遂に実現されました。

 

歩みを徐々に速くしてみた。

 

おわりに

ここではSHISEIGYO-1 Walker Jr. の足に差動駆動型リンク機構を採用し、さらに足を逆運動学で制御することでの歩行動作を確認いたしました。

差動駆動型リンク機構によって片足サーボ2個のみで足先の上下前後動作ができ、
逆運動学によってスムーズな移動が実現されました。

その半面、機構が複雑になったことにより足のブレも大きくなり若干バランスが悪化しフライホイールの調整は難しかったです。
今後の課題といたしましては差動駆動型リンク機構による足の製作の精度向上が挙げられます。

SHISEIGYO-1 Walker Jr. は1週間ほどで大きく進化しましたので、引き続き取り組んでいきます!

SHISEIGYO-1 Walker Jr. ヒザ爆誕

0
0

前回は1個のリアクションホイールでバランスする小型の2足歩行ロボット”SHISEIGYO-1 Walker Jr. “の誕生を報告いたしました。

SHISEIGYO-1 Walker Jr. ヒザ爆誕

今回は足について更に検討してみましたので報告いたします。

 

リンク機構

足の検討に際しまして、まずリンク機構について学習しました。
CADソフトFusion360で機構を構成し動作を確認します。

上はオーソドックスな平行四辺形型のリンク機構動作を試したものです。
上辺を水平に固定すれば、縦の辺をどの角度にしても下辺は水平を保っています。

図らずも前回作製した SHISEIGYO-1 Walker Jr. の足はこの機構を使用しており、
長辺2つをサーボで動かしている格好となっております。


ロボット犬 Mini Pupper の足もこの機構の変形版であることが分かります。

平行リンク機構

更に辺を追加した平行リンク機構の動作は以下の通りです。

上辺を水平に固定すれば、残りの横の辺は水平を保持します。
更にヒザのような機構がうまれ下部の辺の角度も変えることで人間のような足の動作ができております。

差動駆動型リンク機構

平行リンク機構では下腿の角度を変えるにはヒザより下にモータを配置する必要があります。
以下の差動駆動型リンク機構を用いれば、上部にモータを配置することが可能となります。

差動駆動型リンク機構は上部にモータを2つ配置して、大腿と下腿を制御できる素晴らしい気候であることを学びました。

参考

平行リンク機構による足

ここでは平行リンク機構を用いでSHISEIGYO-1 Walker Jr.の足を再構築しヒザのある歩行を目指します。

 

足上部の大体の辺2本をサーボで動かし、下腿は直角固定で動かしてみます。

平行リンク機構の採用でヒザができました!生命感が少し増したようにも感じます。
前回に比べ足が長くなり高くなったのでフライホイールは2枚重ねにしてトルクを向上しています。

しかし下腿は直角で固定しましたので足を後方に下げた際に逆関節になってしまいます。

より生物らしい歩行を目指すのであれば、差動駆動型リンク機構を導入する必要がありそうです。

引き続き検討を進めます。

 

次の記事

SHISEIGYO-1 Walker Jr. 差動駆動型リンク機構で歩行

SHISEIGYO-1 Walker Jr. 爆誕

1
0

これまでリアクションホイールでバランスする2足歩行ロボットを3体ほど製作してきました。

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

この度、4台目の製作を実施いたしましたので報告させていただきます。

 

コンセプト

今回は足を小さく構築して、安定度を向上し素早い歩行を目指します。

 

足用のサーボモータにはFEETECH のミニサーボを採用しました。

製作

コントローラとIMUセンサはこれまでのSHISEIGYO-1 Walkerと同様にESP32とMPU6050を採用します。

ミニサーボFT1117Mを4個使用して足を構築します。

 

倒立動作

3Dプリントした足をサーボアームに固定。片足を2つのサーボを使用して構成します。

取り付けた足での倒立動作を確認いたしました。

歩行検討

サーボ角度をざっくり指定して歩行を試しました。それなりに歩けています。

 

歩行の可能性が確認できましたので、足の角度を正弦波形でスムーズに動かしてみます。
若干バランスが悪いですが立派に2足歩行ができています。

 

更にLiPoバッテリを搭載し、電源コードなしでの動作を実現しました。

SHISEIGYO-1 Walker Jr.

SHISEIGYO-1 Walkerの4号機として ここまで作ってきましたが 仕上がりが思いのほかこじんまりしたので、
セカンドブランド 『SHISEIGYO-1 Walker Jr.』を立ち上げることにしました。

足を小さく作ることができましたので、安定度も高く素早い動作も可能です。

足再検討

歩行動作の更なる安定を目指して、足の形状を変えてみます。

足幅を長くしました。

 

断面はエッジを立てています。

 

これにより、更に安定度が増し歩幅を大きくとることが可能になりました。

 

おわりに

ここでは新しいコンセプトのSHISEIGYO-1 Walkerの製作に取り組み、
SHISEIGYO-1 Walker Jr.がこの度 誕生いたしました。

これまでのSHISEIGYO-1 Walkerとは異なるフォルムと動作を実現でき大変良かったです。

(仕上がりが想像よりも地味であったため 完成時に少し心が折れたのはナイショ)

次の記事

SHISEIGYO-1 Walker Jr. 爆誕

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

4
2

前回はSHISEIGYO-1 Walker 参 の歩行動作の実現を確認できました。

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

SHISEIGYO-1 Walker 参はリアクションホイールでバランスをとり、格安シリアルサーボLX-244で構成された足で歩行します。

 

バッテリ内蔵

高トルクのシリアルサーボLX-244で足を構成しましたので、念願だったバッテリ搭載を実施しました。

構成

部品

動作

無事にバッテリ搭載できました。
電源コードなくなって快適♪

歩行

バッテリ内蔵でコードレス化に成功したのでどこまでも歩けるはずですが、
なかなかスピード出せず安定性含めて調整が必要です。

もっとサクサク歩けるようにして一緒に散歩行きたいな。

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

0
2

だいぶ期間があいてしまいましたが、シリアルサーボLX-244で足を構築しリアクションホイールでバランスをとる二足歩行ロボット”SHISEIGYO-1 Walker 参” の歩行検討を実施いたしました。

前回は歩行動作の自動化を目指し歩行動作をプログラミングしましたが上手くいかず、サーボのギアに若干遊びがあるためではないかと結論付けました。

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

 

前回のおさらい

前回は歩行の自動化を試みましたが、機体の振動が大きく実現できませんでした。

 

シリアルサーボLX-244には若干ギアの遊びがあり、これが振動の原因でないかと考えました。

ギアの遊び低減検討

前回の段階でバネでギアの遊びの低減する方法のアドバイスをいただいておりましたので 試してみました。


ちょうどよいバネをダイソーで見つけました。

 

このバネを機体の股関節2か所に3Dプリントした治具を用いて固定しました。

 

この状態で歩行を試してみたのですが大きな改善はなく、そもそも股関節のロール軸サーボを固定する土台の強度が弱いことに気づきました。

股関節強度改善

ロール軸サーボの固定があまいことが判明しましたので、バネは取り外して3Dプリントした板治具で強化しました。

 

前面と裏面に治具でねじ止め固定しました。倒立が非常に安定しました♪


サーボの問題ではなく単純に私の作りこみがあまいだけでした。
サーボを疑ってしまい申し訳ございませんでした (m´・ω・`)m ゴメン…

歩行検討

股関節サーボの固定を強化し倒立が安定したので、早速歩行動作を実施しました。

見事に一歩踏み出せました!!

 

もう一方の足でも踏み出せました!!

おわりに

ついにSHISEIGYO-1 Walker 参 の歩行動作が実現できました!

当初はシリアルサーボLX-244のギアの遊びで歩行動作は無理だと思っていましたが、単純に作りこみがあまいだけでした。。。
当たり前ですがロボットは頑丈に作らないといけませんね。
いずれ金属加工なども検討したいものです。

しかし、ここでは大きな進捗を得ましたので、次に向けて頑張りたいです。

歩行動作の最適化やバッテリ内蔵など検討いたします。

次の記事

SHISEIGYO-1 Walker 参 を実現させたい俺6 ーバッテリ内蔵ー

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

0
0

前回はシリアルサーボLX-244で構築した足の形状を検討し、遠隔で足の位置を手入力で指定しながら足を交差させての一歩を踏み出すことができました。

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

 

ここでは手動による足座標指定ではなくシーケンスをプログラムしての歩行を目指します。

 

 

歩行シーケンス検討

以下は手動で足座標指定して歩行の一歩を踏み出した動画です。

 

ここでは歩行動作のシーケンスを組んで自動で歩くことを目指しました。

足を前方に出すまでは非常にスムーズに実現できました。

しかし。。。

足を前に出した次は出した足を下げる動作に入ります。

 

 

足を閉じる際に機体が震えてリアクションホイールによるバランスの保持が難しい状態になってしまいます。。。

 

要因考察

動作中に機体が震えてバランスを崩す現象はたびたび起こりなかなか歩行動作の実現ができない状況です。

要因としまして
若干サーボのギアに遊びがあり動いてしまうために、特定の姿勢で機体が震えリアクションホイールでのバランス保持が難しいためであることがわかりました。

 

 

シリアルサーボLX-244は低価格ではありますが高トルクで指定角度への移動精度も高く歩行動作実現が 可能であると考えたのですが、大きな壁にぶち当たってしましました。

 

おわりに

ここでは歩行動作の自動化を目指しましたがサーボの機械的精度のために実現には至りませんでした。

サーボギアの遊びによる振動をどうにかしないといけないわけですが、SHISEIGYO-1 Walker 初号機で使用したサーボKRS-3301 ICSではサーボ停止時の振動は無かったので、
このシリーズのサーボで高トルクの製品を採用すれば解決する可能性はあります。
しかし、非常に高額となってしまいます。

 

バネによる補助のアドバイスをいただいたので次回はコチラを検討したいと思います。

 

それではまた。

次の記事

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

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

0
0

前回はシリアルサーボLX-244で2足を構築し、リアクションホイールによる自立動作を確認しました。

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

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

 

 

足の形状検討

歩行検討の前に更なる安定性向上を目指し、足先の形状を再検討しました。

 

足自体の高さを低くし幅広くして、傾いた際にフレームが接触しないようにしました。

動作確認

新しい足によって主に高さ低減のために安定性が向上し以下のように、かなり高速に前後の重心移動ができるようになりました!

この時点でシリアルサーボLX-244の精度とトルクには大きな問題はないことを確信いたしました。

 

歩行検討

遂に歩行にむけて検討を開始します!

まずはBLEを介してコントローラのESP32と通信して、地道に足座標を指定して動作確認します。

かなり道のりは険しそうです。。

足形状再検討

歩行検討の際に足を交差させるときに接地してる足を下げるとバランスを崩して前方に転ぶので足先を長くすることにしました。

歩行検討

新しい足で歩行動作を検討しました。

 

足の交差に成功し、一歩踏み出すことができました!!
以下は10倍速動画です。

おわりに

ここでは足の形状の検討を実施して安定性を向上し、足を交差させての一歩を踏み出すことができました。

次は手動によるものではなくシーケンスをプログラムしての歩行を目指します。
なるべく早い周期での歩行を目指したいと考えております。

それではまた。

次の記事

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

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

0
0

前回はシリアルサーボ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 参 を実現させたい俺3 ー歩行検討1ー

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

0
0

これまで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から信号を送って実施しました。

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

 

屈伸動作

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

 

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

次の記事

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

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

0
0

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

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

 

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

 

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

 

 

歩行検討

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

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

 

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

 

SHISEIGYO-1 Walker

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

 

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

 

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

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

 

おわりに

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

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

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

 

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

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

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

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

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

0
0

以前に姿勢制御リアクションホイールに足をつけて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足歩行ロボットの製作を開始しました。

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

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

それではまた。

次の記事

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

デジタルおかもち2

0
0

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

デジタルおかもち

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

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

 

 

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

試しに姿勢制御モジュール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軸のブラシレスモータ デジタルおかもちの実現障壁もそれほど高くないと思っています。

それではまた。

デジタルおかもち

0
0

凄い動画が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:係数$$

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

 

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

 

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

 

おわりに

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

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

 

次の記事

デジタルおかもち2

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

0
0

たまに面白い製品がないかと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つのサーボモータを使用することによって、一律で引っ張る機構よりも
複雑で生物的な動きが実現できました。

 

おわりに

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

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

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

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

0
0

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

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

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

 

 

後進

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

 

旋回

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

 

おわりに

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

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

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

0
0

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

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

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

 

 

機体調整

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

ホイール変更

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

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

足の調整

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

動作

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

 

歩行検討

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

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

歩行シーケンス

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

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

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

 

おわりに

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

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

  • サーボのトルク不足

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

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

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

次の記事

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

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

0
0

前回は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を実現させたい俺3 ーバランス動作検討ー

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

0
0

前回はシリアルサーボ (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を実現させたい俺4 ー歩行検討2ー

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

0
0

先日 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-1 Walkerを実現させたい俺3 ーバランス動作検討ー

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

0
0

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

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

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

 

 

足の前後

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

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

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

 

歩行検討

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

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

動作

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

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

 

おわりに

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

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

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