【レゴ】垂直6軸多関節型ロボットアーム試作9号機

ロボットアーム試作8号機制作からしばらく時間が経ちましたが、改良型の試作9号機が完成しました。

この試作9号機では、4足歩行ロボット用に開発した関節を採用し、第二軸と第三軸の2か所に搭載しています。

この関節は、速度とトルクのバランスが良く、なおかつコンパクトな外観のため、ロボットアームにも違和感なく内蔵できています。

うちのロボットアームつくりは、関節の改良の積み重ねによって進化してきましたが、ターンテーブル2個を使った関節としては、非常にコンパクトかつシンプルに構築できているかなと感じています。

試作8号機までは、モータは外付けにし即時交換できることを重要視していましたが、今回採用した関節の場合、関節ごと容易に取り外しができるため、メンテナンス性も損なわれていません。

しかし、まだまだ問題点があります。

まず、アーム全体として外装が不均一なうえに、色合いもバラバラです。

また、第一軸の回転テーブルについては、固定が脆弱なのかグラグラと軸がブレる不具合が発生してしまいました。

また、第四軸と第五軸が大きすぎるため、もう少しコンパクトにし、根本の回転軸に掛かる負荷を低減させる必要があります。

基本的な構造は継承しつつも、作るたびに新しい改良点がみえてくるのが、ものづくりの面白さだと感じています。

本機の教訓を活かし、次はより洗練された試作10号機を建造します。

【プログラミング】Processingをいじってみた。

最近、プログラミング熱がきたので、いろいろな言語や開発環境を勉強中です。
その一環として、雑誌で紹介されていた”Processing”という言語をいじってみました。
開発環境のダウンロードはあっという間に終わり、開いたユーザーインターフェースも極めてシンプル。
プログラムの実行コマンドがダイレクトに表示されており、プログラミング特有の小難しい印象はありません。
Processing_test
試しにサンプルプログラムを打ち込んで実行してみましたが、言語自体もとっつきやすい印象です。
学生時代にC言語/C++等しか学んでいない私には、ちょうどよい雰囲気の言語だと感じました。
今のところ、私の趣味で役立てるられる場面はなさそうですが、なかなかおもしろそうな言語だと感じました。
 

【レゴ】4足歩行ロボット試作4号機

4足歩行ロボット制作もいよいよ形になりつつあり、試作3号機で得た知見をもとに改良型の4号機を作りました。
3号機の関節構造を基礎とし、脚部全軸にモータを搭載したほか、外装も施しました。

3号機にて脆弱だった各部の固定を強化し、最も負荷のかかる脚部根本の関節は、黒ベベル4個を利用した高トルク型を採用しています。
3号機では、黒ベベル8個を使用した関節でしたが、ベベルを増やしすぎたがゆえに機構的なロスが増えてしまい、想定していた性能は発揮できませんでした。
この機構に切り替えたところ、4号機にしてはじめて自立からの屈伸運動が可能となり、大きな進化を遂げることができました。

しかし、やはり歩行させるとなるとまだまだ課題が多く、脚部の動かし方から歩行のリズムに至るまで、改善すべき点が多々あります。
必要最低限の関節は設けたものと思いますが、次はこれらをどう動かすか検討する必要がありそうです。
そして、もう一つ改善したい点としては、本体重量が重すぎるためもう少しダイエットさせた方が良さそうです。

次の5号機ではパーツ数の削減も図りたいと思います。
モータも小型軽量のMモータのみで構築できれば大幅な重量削減が図れそうですが、トルクとスピードの兼ね合いもあるため、すべてをMモータにするのも難しいかもしれません。
とにもかくにも、4足歩行ロボット制作をつうじて得られた知見がいくつもあるため、これらをほかの作品づくりに活用したいです。

【レゴ】4足歩行ロボット試作3号機

ひょんなことから製作し始めた4足歩行ロボットですが、試作2号機の反省をもとにブラッシュアップした試作3号機をつくりました。

試作2号機からの変更点としては、各脚部の関節構造を変更し、しっかりと胴体を支えられる構造にした点です。また、脚部に第二関節も増設しています。
パーツ数は増えましたが、その分つくりがしっかりしたため全体のフォルムが引き締まったと思います。

関節の構成には、ターンテーブル2個による門型構造を採用しましたが、これは以前つくっていたロボットアームの構造をそのまま流用しているため、ロボットアームでの反省点を活かした組み方ができたように感じます。
また、脚部第二関節は、ロボットアームで採用している関節をそのまま搭載したので、無難なつくりです。
しかし、黒ベベル8個による駆動のため、機構上のロスが多いような気もします。無負荷状態であればスムーズに動くものの、立ち上がる動作の際にはギアの歯飛びにより脚が動かない現象が発生してしまいます。
トルクを稼げるからと良かれと思って黒ベベルを増やしてきましたが、機構上のロスを考えると増やしすぎるのも良くないのかもしれません。

本機は、結局自力で立ち上がることはできなかったため、成果としては立たせた状態で姿勢を保持できるようになったという点のみです。
とはいえ、最初の1号機に比べれば自立できるようになっただけでも小さな進歩ですので、次は自力で立ち上がれる試作機を作りたいと思います。

【レゴ】モータ制御の注意点<覚書>

レゴで4足歩行ロボットをつくりながら、EV3のモータ制御での思い違いが発覚したため、忘れないように書き記しておきます。
ものすごく初歩的な話ながら、今までEV3のモータ:ONという指令は使ったことがありませんでした。いつもは、角度指定や秒数指定でモータを制御していたため、単純なモータ:ON指令が必要なかったためです。
今回、4足歩行ロボットの各関節をスイッチ(タッチセンサ)押しっぱなしの間、動き続けるプログラムにしたいと思い、適当に組んだ際、初めてモータ:ON指令をつかいました。
てっきり動作条件がそろったらモータ:ONするものと思っていましたが、実際につかってみると、一度でも動作条件がそろうとモータが本当にONし続けるという代物で、モータの回転が止まらず、あやうくロボットを壊すところでした。
そこで、モータをOFFさせるときには、モータ:OFF指令が作動するプログラムに修正しましたが、この考え方は私の頭の中にはなかったため意外でした。
4LegRobo_Program
産業機械のモータ制御回路でいうと、「モータを停止させる」=「動力回路を遮断する」=「動作条件を落とす/阻害する」という発想ですが、EV3のプログラミングにおいてはモータ:OFFというダイレクトな指令が予め設けられているため、プログラム上で動作条件を落とすほかに、このモータ:OFFも併用する必要があるようです。
どちらかというと、モータ:ON指令自体に自己保持機能が組み込まれているため、親切設計なのかもしれません。(それか、私のインテリジェンスブロックの故障か)