fc2ブログ

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

レゴマインドストームEV3を使って6軸ロボットアームを作りました 

レゴマインドストームEV3を使って6軸ロボットアームV760を作りました。
以前NXTで作った5軸ロボットS750の改良版です。
以前のロボットは5自由度なのでハンドのとれる姿勢に制限がありましたが、
これは6自由度なのでハンドを自由な位置・姿勢に持っていくことができます。
関節の構成は一般的な産業用6軸垂直多関節ロボットと同じです。



bP1000259.jpg bP1000264.jpg
bP1000228.jpg bP1000186.jpg

以前レゴでロボットアームを作った時に比べ、今は、Mサイズのサーボ、60歯の新型ターンテーブルなどがあり、とても作りやすかったです。今回は運動性能重視で外装は作っていません。バネバランサは一番力がかかる部分にだけ使っています。レゴの純正部品だけで作ることにこだわっていますが、唯一ケーブルは純正は50cmまでしかなく足りないのでHT製をやむを得ず使っています。

工夫した点は、旋回軸です。旋回軸はアームを伸ばした時に大きな曲げモーメントが加わります。
ターンテーブルだけで負担するのは厳しいので、4×4のマカロニとローラーで軸受けを作って支えるようにしました。

プログラムはTOPPERSEV3RTを使ってCで書いています。 2つのEV3間の通信はUSBかBluetoothで行いたかったのですが、まだできていません。とりあえず、今は光センサーで同期だけ取って動かしています。原点調整は手動です。

動画のデモではロボットは関節補間と直線補間の動作をしています。
直線補間動作ではハンドのマーカーがXYZ軸に対して平行に動きます。ハンドがまっすぐに動くはずなのですが、実際にはたわみやギヤの遊びの影響でずれてしまいます。

ちなみに一部EV3ではなくNXTのモーターを使っているのは、NXTのモーターの方がモーター内部ギヤバックラッシュが小さく精度が良いからです。というより、EV3が悪すぎます。

今後としては、未使用の出力ポートにチャックを取り付けてマテハンができるようにする予定です。

スポンサーサイト



5軸ロボットアームS750完成 

前回の4軸ロボットS740の改良型、5軸ロボットS750が完成しました。
マインドストームNXTでコントロールされたロボットアームです。

主なハードウェアの改良点は以下です。
・手首に関節が増えて、ハンドのとれる姿勢が増えた
・コンパクトで分解しにくい構造
・ウォームギアを使わず関節の減速比を小さくし、約2倍のスピードアップ
・可動範囲の拡大
・重量バランスの改善

電源とエアーが外部供給なのは前回と同じです。

増えた手首関節を利用してデモ動画をつくってみました。4つのブロックを運んで椅子のようなものをつくります。




s750_001.jpg
今回も機構に干渉しない範囲で外装をつくりました。

s750_002.jpg

s750_003.jpg

s750_004.jpg

s750_005.jpg
カウンターウエイトにNXT本体を利用し軽量化しました。

s750_006.jpg
カウンター用の輪ゴムを目立ちにくくするカバーを加えました。

s750_007.jpg
ハンド部です。ニューマチックのシリンダーの固定にももんがさんのブログのロードオブザリングの指輪をスペーサーとして用いる方法を使わせていただきました。

s750_008.jpg
ケーブルベアがたるまなくなりました。これの名前がケーブルベアであるということをニコニコ動画のコメントで知りました。

s750_009.jpg
ヘッドライトパーツのわずかな出っ張りを利用してたるまないようにできました。

s750_010.jpg
4つあるターンテーブルのうち、両端の2つが駆動されます。
フレームはビームとリフトアームを組み合わせて歪みにくく、分解しにくい構造になっています。

s750_011.jpg
外装を外したところです。

s750_012.jpg
前作ではこの部分にはモーターが1つでしたが、今回は2つ詰め込みました。この2つのモーターが手首の姿勢をコントロールします。

s750_013.jpg
後ろ側のモーターの動力をチェーンと同軸構造を使って先端まで伝えています。

s750_014.jpg
ロボットの両脇にギアボックスがあります。

s750_015.jpg
この3つのモーターが手首の位置をコントロールしています。

s750_016.jpg
ロボットをレールから外して裏側から見たところです。真ん中に左右移動用の40歯ギアが見えます。右下のPF-Mモーターはバルブ駆動用です。8個のプーリーでレールを挟み込んでいるのは前回と同じですが、より滑らかで遊びが少なくなっています。

ソフトウェアの改良点は
・5軸同時PD制御
・動作の加減速を滑らかに
・隣り合った2つのNXT間の通信をBluetoothからセンサーポートを利用したRS485有線シリアル通信に変更
です。

このロボットアームをつくってみて分かったことは、レゴで垂直多関節型のロボットアームは非常に精度を出すことが難しいということです。

レゴの自動車工場やレゴがレゴを組み立てるロボットなど精度が求められるレゴロボットを作っている方は、ほぼ必ず直交軸型のロボットを使っている理由がよく分かりました。

どうしても回転関節では、根元の小さな角度のずれでも、先端では大きなずれとなってしまいます。

レゴにおいて、あえて回転関節を用いてロボットを作るメリットは以下のように思います。
・やや高価なパーツであるラックギアやチェーンを使わないのでコストが安い。
・ロボットの大きさに対して可動範囲が広い。
・プログラミングに達成感がある。
・かっこいい(個人的意見)

NXT STEP で紹介されました。感謝です。
http://thenxtstep.blogspot.jp/2012/09/nxt-5-axis-robot-s750-makes-chair.html

レゴ 4軸のロボットアームが完成しました 

ループの動画が取れたのでYouTubeにupしました。




robotarm20

自分はテクニック系の人間で、あまりロボットの外装には手を加えてなかったんですが、今回は外装に挑戦してみました。型番は消防署のセットの文字の組み方を参考にしました。5740では無くS740です。5とSは違いをつけにくいです。
外装のデザインは理屈ではなく感性の問題なので難しいです。配管は見せたほうが良いことが分かりましたが、まだまだ勉強不足です。輪ゴムはうまい隠し方が思いつきませんでしたので今回はパスです。

カウンターウエイトの中には単三電池が6本入った電池ボックスが入っています。おもりとして使っているので配線はしていません。電源は全て外部供給です。


robotarm21
後ろの箱のカバーを外したところです。
制御装置がぎっしり詰まっています。
ロボットの3つの関節と左右移動のためにNXTのモーターを4個使っていて、そのうち3つはこの箱の中に詰め込みました。
ギア比は、手首が56*3/5:1=33.6:1、残りの2軸が56:1、スライド軸がラックギアと40歯ギアの組み合わせになっています。スライド軸は速度重視のセッティングです。

コンピュータから弁を動かすとき、普通は電磁弁を使いますが残念ながらレゴには存在しません。(英語版のCUUSOOでは早速電磁弁が提案されてますね。さすが海外です。)
なので、バルブをPowerFunctionのMモーターでクラッチギアを介して動かしています。Pneumaticのバルブは使い勝手の良いポッチのついた旧式のものを使っています。


robotarm23
ロボットの根元は大きな力が加わるので4連ターンテーブルで支えています。
左右の丸いものはハリボテです。

robotarm22
グリッパの開閉にはエアシリンダを使っています。左右で同じ開き方をするようにギアでつないでいます。


プログラムはNXCでつくりました。各軸をPID制御していますが、わけ合ってスライド軸だけPD制御です。
コンテナに玉が入っているときといないときでは重さで先端の位置が3mmくらいずれてしまい難しかったです。ロボットが一度事故を起こすと、修理して初期位置を設定しなおさないといけなくて疲れました。

このロボットを作ってレゴの限界を強く感じました。信頼性はまだ低いですがそれなりに動くものが作れて良かったです。このロボットをこれからどうするかは未定です。

レゴ 4軸ロボットを製作中 

robotarm9
重なって見にくいですが4軸のロボットを作ってみました。3つの回転関節と1つのスライド軸、エアー式のグリッパがあります。無性に多関節型ロボットが作りたくなったので作りました。NXT二台でコントロールする予定です。

robotarm15
ロボットの動作試験も兼ねて、ボール工場と組み合わせて簡単なループを作る予定です。6畳間の限界を超えてます。作業場所がありません。

robotarm8
エアーと9V電源は外部から引きたいので、コードが引っかからないようにするガイドが大変でした。どうしてもたわみます。

スライドレールは自分としては珍しく、基本ブロックの塊です。分解防止のため内側からリフトアームで縛ってあります。軽く作りたいときはトラス構造がいいですが、いくらでも重くなっていい部分では、基本ブロックの積層が剛性面で最強です。基本ブロックが飛ぶように無くなるのが欠点ですが。

このロボットはこの形になるまでにかなり苦労しました。それも報われないタイプの苦労が多くて疲れました。直交軸型にしておけば1/3の時間でもっと高性能なものが作れていたと思います。

ここから下は製作過程の苦労の記録です。

robotarm1
1号機です。このころはカウンターウエイトが無くても動くんじゃないかと甘いことを考えていました。実験してみてカウンターウエイトが無いと軸が持たないことが分かったので、3つのモーターをすべてロボットの後ろ側に配置しカウンターウエイトにしました。しかし二番目の関節のカウンターが無いので、先端にワークを持たせると二番目の関節が負けてしまい失敗でした。


robotarm2 robotarm3
全ての関節軸まわりのモーメントを打ち消すため、もっと厳密なカウンターウエイトを作ることにしました。点対称にロボットを作れば全てのモーメントを打ち消せる上に重心位置も変化しないんじゃね?という思いつきで点対称にカウンターウエイトを配置したのがこの2号機です。
点対称に作ることで確かに全てのモーメントを打ち消し、重心位置も変わらないようにできたのですが、その巨大なカウンターウエイトのせいでレールを支える柱に干渉すること、なんだかカッコ悪いという理由でこの配置は採用されませんでした。


robotarm4 robotarm6
3号機では2号機をベースに二番目の関節用のカウンターウエイトをロボット中心に移動させ、根元の関節のカウンターをウエイトの代わりにゴムにしました。ウエイトの変わりにバネやゴムを使うとコンパクトで軽くできますが、モーメントを打ち消せても重心位置の移動は打ち消せません。そのため姿勢が変わると重心位置が大きくずれ、スライドレールにモーメントが加わります。それでレールの幅と厚みを増やしました(右写真)。
二番目の関節もゴム式のカウンターにすればもっとコンパクトになるんじゃないかと思うかもしれませんが、二番目の関節のカウンター量は根元の関節の位置に依存するのでゴムの配置の仕方が難しいです。
この配置では平行リンクによってロボットの根元軸と同軸に二番目の関節の軸がくるので、根元にモーターを配置してアームを軽くできるというメリットもあります。

いつの間にか実際の産業用ロボットの軸配置とそっくりになっていることに気づきましたた。今はじめて身をもってあの産業用ロボットのカウンターウエイトとシリンダーの配置の意味を知りました。

ちょっと露出したゴムがカッコ悪いのが気になります。本物ではシリンダーになっているので、それらしいカバーが欲しいところです。レゴには引っ張りバネが無いのが残念です。ゴムで代用しろということなんでしょうか。

robotarm5
レールの断面構造です。ガタツキが無くてかつスムーズにスライドしないといけないので苦労しました。


ところで、最近長さ2の黒ペグが慢性的に不足しています。昔は部品箱に収まらなかったほどだった黒ペグですが、まさか黒ペグのために作った作品を壊すことになるとは思っていませんでした。最近は何よりも黒ペグが輝いて見えます。部品買いばっかりしているのが原因でしょうか。

レゴ デルタロボット 

レゴでデルタロボットを作ってみました。作ったのはかなり前です。
デルタロボットはパラレルリンクで、普及しているシリアルリンクのロボットに比べて位置決め精度が高く、根元にアクチュエータを配置できるので先端を高速に動かすことができます。その代わり稼動範囲が狭いです。

これは工業用によく使われているタイプのデルタロボットです。

deltarobot1

deltarobot2
3つの濃灰のリフトアームの角度によって先端の座標X,Y,Zが定まります。先端は常に水平に保たれます。独特で非常に面白い動きをします。これだけでも作る価値は十分にあります。

根元にNXTのモーターをつけてコントロールしてみましたがなかなか難しいです。

初めにNXTのモーターは出力軸のガタが非常に大きいので、そのままつけると全く精度が出ないです。
ウォームギアで減速するとガタは無くなりますが、動作が遅くなりせっかくのパラレルリンクの長所が無くなってしまいます。レゴに精度とすばやさを求めてはいけないことは分かっているんですが、つい癖が出てしまいます。

次にこれをNXTでコントロールするには、根元のモーターの角度θ1,θ2,θ3を先端の座標X,Y,Zの関数で表す(逆運動学)必要がありますが、やり方が分かりませんでした。(パラレルリンクはシリアルリンクに比べて逆運動学が容易だったはずですが)

deltarobot6
こちらはリニアアクチュエータ型のデルタロボットです。
根元のガタが少ないので回転関節型より剛性を高く作ることができました。
先端のガタはかなり小さいです。

deltarobot4
最下点に移動させたところ

deltarobot5
最上点

deltarobot3
最左点

かなり稼動範囲は広いです。
このタイプはさっきのタイプより簡単に逆運動学が求まりそうです。
9V高速モーターとRCXの回転センサーを使ってコントロールしようと考えました。
モーターは良いのですが、RCXの回転センサーの性能が予想以上に悪かったです。高速モーターと回転センサーを直結すると回転センサーが全く追従しなかったです。1/5に減速すると追従するようにはなったのですが、時々回転を読み飛ばすのでだんだんとずれてきてしまい使い物になりません。RCXの回転センサーはたった二本の線で電源の供給と信号の送信をやっているので無理があるのでしょう。Philoさんの記事によると分解してキャパシタを追加すると改善されるらしいです。自分には分解する勇気がありません。

HiTechnicのアングルセンサーを買えば良いのですが如何せん高いです。3個も買うとテクニックの大箱が買えます。NXTの高価なセンサーは高性能で魅力的ですが、レゴ社はころころとコネクターの形を変えるので、またコネクターの形が変わって使えなくなるんじゃないかと思ってなかなか買えません。

NXTのモーターを増速して使う手もありますが、減速して増速するのはロスが大きいのが問題です。


deltarobot7

実際にはこんな風につるして部品のピックアンドプレースに使います。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。