付け替えるのが面倒なのはギヤボックスです。ユニバーサル基板と微妙に大きさがネジ穴の位置が違うため、切欠きを新たに。
ギヤボックスと電池を床下において、軸上に重心センターがくるべく調整します。
重心を合わせるために計量です。
ギヤボックスは、82g。
電池ケースは、90g。
差は8gです。これは後で微調整。
あとは、床上に配線の取り回しを考えて基板を配置します。
DCモーターへの配線が短かったので、長いものに交換します。
動作確認して再度パラメータ探しの旅です。高重心の時に比べると、倒立しそうな感じですが、なかなかじっとしません。師匠から重心とDCモーターの残電池容量の確認、モーターコントロールをタイマー割り込みをやってみるとよいとのアドバイスをもらいました。
電池は再度充電、重心はクリップで微調整しほぼ車輪軸上になりました。
この1週間だいぶ戯れましたが、今日のところまでで「倒立」せずです。(とほほ)
しかし、micropythonの勉強や、9軸センサーの補正方法、DCモーターの特性等いろいろと勉強になりました。頭で理解したつもりでも、実際はいろいろとうまくいきません。
あと、タイマー割り込みはまだ勉強中です。これも取り入れていきたいと思います。
残り少ないGWですが、最後に「倒立」するのか?
最初の動作確認は、一旦micropythonから離れて、元ネタを踏襲してみるとよいかもしれません。うまく動作する時の、起動時の手を放すタイミングとか、モータの振動や音を体感してから、micropythonへ戻る手もありますね。
返信削除倒れずに稼働している動画です; https://youtu.be/c-j9tR0omlA
そうですね。今更Arduinoに戻すのも、ちょっと躊躇します。
削除これまでモーター出力を高めで調整していたので、センター重心+モーター出力弱めを試してみます。Timer interruptのお作法は個別プログラムで確認中です。
加速度センサーも振れていたので、LPFを導入しました。ただし、感度が悪くなるのでジャイロよりはゆるく係数を設定しました。ちょっとは、安定方向でしょうか。まだ、自立はしませんが。
返信削除https://youtu.be/qGQlckxr-yU
独自仕様の方は、今のところやはり自立できません。動作確認をしているうちに、モータのドライバー1個が壊れたり、、、
返信削除元ネタを参考にした方は、倒れた時に起き上がるための腕の追加(サーボモータ)と、超音波の距離センサーを追加を試みています。それぞれ単体の動作確認は終わりました。距離センサーは、ソフトも簡単で、結構使えそうな印象です。
やはり独自仕様は、パラメータ探しの旅が遠いのですかね。状態方程式を解くとそれなりのパラメータが出てくるそうですが。明日もう一日いろいろと試してみます。
削除GW最終日。引き続きパラメータ探しの旅でした。
削除ちょっと違う路線をということでPID制御プログラムを作成中です。こちらを参考にhttp://www.picfun.com/motor05.html
ジャイロ値を使わずに、加速度センサー値のみでいけそうです。
GW中の倒立は残念でした。
いや~制御は難しい、、、距離センサーの処理をループの中に組み込んだら安定性が低下したようです。今のところ、距離が、例えば30cm以下になったらLEDをさせるだけで、方向変換のロジックは未実装ですが、自立はするものの、リモコン操作での方向転換や加減速の際に転倒しやすくなりました。ちょっとした処理タイミングの問題のような気がします。C++で書かれたロジックをmicropython移植しただけでは、処理所要時間の違いから、同じタイミングにならない可能性もありそうです。
返信削除距離センサーとサーボ(自立を助ける「腕」は未実装)を搭載した画像です:https://youtu.be/ITuR66wC7GQ
制御恐るべしです。センサーとモーター組み合わせれば、それなりになるかと思っていましたが、まったく言うこと聞きません。躯体の精度、センサーの精度等々いろいろと考えないと思ったとおりに動いてくれません。
削除倒立はセンサー出力を再度見直し、PID制御プログラムへ移行中です。
今日も独自仕様に取り組んだ結果、安定性は低いものの、一応自立できました。現状、小さい外乱には対応します。多少大きな力を加えると、直ぐに倒れます。参考にした元ネタと違って、CPUは ESP8266、センサーはBMX055です。バテリーを搭載して重くなると、現状では自立しないような気がします。
返信削除https://youtu.be/pbK20oy8c8Q
動画拝見しました。静止してますね。ゴールはここですね。PID制御は古いとかいろいろありましたが、こちらも周末頑張ります。
削除