myCobot 280 Piを買ってみた

前から気になってて買うかどうか迷ってたものがあります。それがmyCobotです。

中国深センのElephant Roboticsが製造している格安のロボットアームです。

日本でもスイッチサイエンスでいろいろ売られていて個人の趣味で使っていたり、ビジネスで活用している事例もちらほら見るようになりました。

そんなわけで僕もお試しでシュミレータで遊んでみました。

zenn.dev

遊んでいたやっぱり実機が欲しくなりました。

というわけでスイッチサイエンスの年末セールでめちゃくちゃ安くなっているうちに買ってしまいました!まだ出ていませんが、ボーナスが出ることを考えると実質ボーナスで買ったようなもんですw。

今回購入したロボットは、中にRaspberry Piが使われているモデルで、買ったときの価格はなんと107,057円でした。

もっと安いM5 Stackのモデルでもいい気がしましたが、Raspberry Piにしておけば開発環境が本体に入っていて導入が簡単な気がしたのでRaspberry Piのモデルを選びました。(最近Arduino全然触ってなくてM5 Stackも触ったことないのもありますw)

というわけで今回はこれを開封して動かしてみたいと思います。

開封の儀

期待に胸を膨らませ開封の儀です。中に使われていた緩衝材は持ち運ぶときに使えそう。

開封して真っ先に出てきた冊子はmyCobotについての紹介と簡単なデータシートが載ってました。

付属品はACアダプターとディスプレイに接続するためのHDMIとUSB TypeC、GPIOに接続する用のジャンパーケーブルでした。

意外と充実してる印象。

本体はこんな感じで折り畳まれて入ってました。

SDカードはすでに刺さってました(実質これも付属品みたいなもん?)。32GBが刺さっていて十分いろいろ遊べそうです。

初起動

ディスプレイとキーボードを接続して電源を入れましたが、なかなか画面が映らず苦戦しました…

接続するHDMIの端子を変えたら無事に画面が映りました。初期不良かと思って焦りましたw

Ubuntuは18.04が中に入っていて、ROSのmelodicがすでにインストールされてました。

軽く動かしてみる

無事に起動したところでアームを簡単に動かしてみます。

今回はRaspberry Piにプリインストールされたブロックプログラミングツールの「Blockly」を使ってアームを動かしてみます。

UIFlowのようなツールでプログラミング初心者でも手軽にロボットアームを操作できる仕組みになっています。この手軽さもRaspberry Piバージョンならではですね。

アームの姿勢は各ジョイントの角度と移動速度を指定するだけでフローに組み込めます。

↑の画像のフローは以下のJSONです。このJSONを適当なファイル名で保存してBlocklyのメニュー(右上の青いアイコン)から loadをクリックしてJSONファイルを読み込んでフローを試していただけます。

{"mode":"single","json":{"blocks":{"languageVersion":0,"blocks":[{"type":"init_mycobot","id":"uaX`U[m134rqSFY~Xsh}","x":10,"y":10,"fields":{"ROBOT":"MyCobot","BAUD":"1000000"},"inputs":{"PORT":{"shadow":{"type":"text","id":"J+-+mda/:}Y-+w{E:$=0","fields":{"TEXT":"/dev/ttyAMA0"}}}},"next":{"block":{"type":"send_angles_1","id":"C=VMoJpiGwzGD4MFP[IR","inputs":{"J1":{"shadow":{"type":"angle_slider","id":")oMGRn/k#V!ocD}~nd{O","fields":{"NUM":0}}},"J2":{"shadow":{"type":"angle_slider","id":"LpVGrUW*Ynse+N~^Yq3M","fields":{"NUM":0}}},"J3":{"shadow":{"type":"angle_slider","id":"3sN+mVz]tCX9Q~ifMRvh","fields":{"NUM":0}}},"J4":{"shadow":{"type":"angle_slider","id":"T#bY4NRmAha[;aP$$`nY","fields":{"NUM":0}}},"J5":{"shadow":{"type":"angle_slider","id":"D5p7BhS?ccjVijp6q{`:","fields":{"NUM":0}}},"J6":{"shadow":{"type":"angle_slider","id":"pdYOE27s]c0s|4claR~(","fields":{"NUM":0}}},"SPEED":{"shadow":{"type":"speed_slider","id":"`.Gqdg3kDY#w@Nt:#%Lx","fields":{"NUM":30}}}},"next":{"block":{"type":"time_sleep","id":"ZQ;itb$yoEWcH:$l#{-x","inputs":{"TIME":{"shadow":{"type":"speed_slider","id":"$2A%Y8L6ER,(^Uh_cKh:","fields":{"NUM":5}}}},"next":{"block":{"type":"send_angles_1","id":"JojW]r:0[}i7VeH;(48Z","inputs":{"J1":{"shadow":{"type":"angle_slider","id":"ug(]|NW$H%w-IbX5E^6B","fields":{"NUM":84}}},"J2":{"shadow":{"type":"angle_slider","id":"yb`$u_6q{xCmcerpc5k,","fields":{"NUM":-32}}},"J3":{"shadow":{"type":"angle_slider","id":"iVnqBlS37bvaJSf8mqd@","fields":{"NUM":-49}}},"J4":{"shadow":{"type":"angle_slider","id":"6*N88fhsf!Fl5sayN#h1","fields":{"NUM":46}}},"J5":{"shadow":{"type":"angle_slider","id":"At#_uYvI`[#z=Y4eR[.W","fields":{"NUM":-17}}},"J6":{"shadow":{"type":"angle_slider","id":"B=h*GS-kr1T]Vq0=#ZeL","fields":{"NUM":0}}},"SPEED":{"shadow":{"type":"speed_slider","id":"K/%yeBZz[V{be5g),3GO","fields":{"NUM":30}}}},"next":{"block":{"type":"time_sleep","id":"HJl$/:}64`M38v+sb4}h","inputs":{"TIME":{"shadow":{"type":"speed_slider","id":"L}PwKatHN=)foFUh)(#)","fields":{"NUM":5}}}},"next":{"block":{"type":"send_angles_1","id":"G7!%wy_GQtH#K]@p[(vB","inputs":{"J1":{"shadow":{"type":"angle_slider","id":"yh#[c{E7G|H.#njQ3Uzf","fields":{"NUM":-84}}},"J2":{"shadow":{"type":"angle_slider","id":"VeO#{=-K?GIOQl[*YHv(","fields":{"NUM":29}}},"J3":{"shadow":{"type":"angle_slider","id":"R~:~mLAHHuf*fUQL1g4{","fields":{"NUM":40}}},"J4":{"shadow":{"type":"angle_slider","id":"cpmN=i!E(5_7*jH|cR:4","fields":{"NUM":9}}},"J5":{"shadow":{"type":"angle_slider","id":"ew##4,aEGqnAc?-ocKD?","fields":{"NUM":37}}},"J6":{"shadow":{"type":"angle_slider","id":"@MYBM!Ys?|l_ciA]w|J8","fields":{"NUM":0}}},"SPEED":{"shadow":{"type":"speed_slider","id":"#_.(6dVi{/#B%pfdKe3O","fields":{"NUM":30}}}},"next":{"block":{"type":"time_sleep","id":"kp+=n}VCP:tGwl:5UWKJ","inputs":{"TIME":{"shadow":{"type":"speed_slider","id":"*ZB7lBh4RVzbCU0cUN5o","fields":{"NUM":5}}}},"next":{"block":{"type":"send_angles_1","id":"}q|wzzu,D.U)lY=)T9ox","inputs":{"J1":{"shadow":{"type":"angle_slider","id":"C`34CHdra_I!x]T5TKe4","fields":{"NUM":0}}},"J2":{"shadow":{"type":"angle_slider","id":"8j5ucjs1teV`_r3LGjU[","fields":{"NUM":0}}},"J3":{"shadow":{"type":"angle_slider","id":"Tfy;6/k5}*B*/A,M:9N!","fields":{"NUM":0}}},"J4":{"shadow":{"type":"angle_slider","id":"`G@{:]d]7GX*@F6v_kZ5","fields":{"NUM":0}}},"J5":{"shadow":{"type":"angle_slider","id":"K-{#{n0FPdBWc;DD4Pp*","fields":{"NUM":0}}},"J6":{"shadow":{"type":"angle_slider","id":"3QZpx%C9?u3o/=BhKZO.","fields":{"NUM":0}}},"SPEED":{"shadow":{"type":"speed_slider","id":"n?bzQP`%n$7XwbP2m42W","fields":{"NUM":30}}}},"next":{"block":{"type":"time_sleep","id":"9P56?4Bq#QqzME[(F4VA","inputs":{"TIME":{"shadow":{"type":"speed_slider","id":"qC9FQY8Jgh(p3m%vZLAC","fields":{"NUM":5}}}},"next":{"block":{"type":"release_all_servos","id":"!%!(0s%j-;y@d8.0rz0Z"}}}}}}}}}}}}}}}}}}}]}}}

フローを動かすと以下の動画の動きになります。

固定具がないとすぐ倒れてしまうので、よく見ると土台を手で抑えてますw

myCobotの先端部分にはM5 Atomが使われており、LEDマトリクスの色をBlocklyから変えることもできます。

そのフローも作ってみたので以下のJSONで試すことができます。

{"mode":"single","json":{"blocks":{"languageVersion":0,"blocks":[{"type":"init_mycobot","id":"uaX`U[m134rqSFY~Xsh}","x":10,"y":10,"fields":{"ROBOT":"MyCobot","BAUD":"1000000"},"inputs":{"PORT":{"shadow":{"type":"text","id":"J+-+mda/:}Y-+w{E:$=0","fields":{"TEXT":"/dev/ttyAMA0"}}}},"next":{"block":{"type":"send_angles_1","id":"C=VMoJpiGwzGD4MFP[IR","inputs":{"J1":{"shadow":{"type":"angle_slider","id":")oMGRn/k#V!ocD}~nd{O","fields":{"NUM":0}}},"J2":{"shadow":{"type":"angle_slider","id":"LpVGrUW*Ynse+N~^Yq3M","fields":{"NUM":0}}},"J3":{"shadow":{"type":"angle_slider","id":"3sN+mVz]tCX9Q~ifMRvh","fields":{"NUM":0}}},"J4":{"shadow":{"type":"angle_slider","id":"T#bY4NRmAha[;aP$$`nY","fields":{"NUM":0}}},"J5":{"shadow":{"type":"angle_slider","id":"D5p7BhS?ccjVijp6q{`:","fields":{"NUM":0}}},"J6":{"shadow":{"type":"angle_slider","id":"pdYOE27s]c0s|4claR~(","fields":{"NUM":0}}},"SPEED":{"shadow":{"type":"speed_slider","id":"`.Gqdg3kDY#w@Nt:#%Lx","fields":{"NUM":30}}}},"next":{"block":{"type":"set_color","id":"8.(fA}%?.wBe([[oTNce","inputs":{"R":{"shadow":{"type":"math_number","id":"1o9P4^rVVSLHviG?;l)o","fields":{"NUM":255}}},"G":{"shadow":{"type":"math_number","id":"xq5s$kbb5!fC4U$#=ru4","fields":{"NUM":0}}},"B":{"shadow":{"type":"math_number","id":"`K@gUA(18l.5b@ulU#Rt","fields":{"NUM":0}}}},"next":{"block":{"type":"time_sleep","id":"J$MkTj8oxb,k%JK*aD{x","inputs":{"TIME":{"shadow":{"type":"speed_slider","id":"I$#Ner:3)|WC._YLE;7s","fields":{"NUM":3}}}},"next":{"block":{"type":"set_color","id":"+_s*|V1Fo2M1sHzW9;6;","inputs":{"R":{"shadow":{"type":"math_number","id":":Qd:9J*F*2$cnZnu;lIa","fields":{"NUM":0}}},"G":{"shadow":{"type":"math_number","id":"ZZ@=a];R8d:cUT2_v@=:","fields":{"NUM":0}}},"B":{"shadow":{"type":"math_number","id":"`}Qe-WqU7?0iOFCe)Y^!","fields":{"NUM":255}}}},"next":{"block":{"type":"time_sleep","id":"yp}u8P;Ru|iU*tzvWI9;","inputs":{"TIME":{"shadow":{"type":"speed_slider","id":"OiH4y/iqXZ]*(r0M9^au","fields":{"NUM":3}}}},"next":{"block":{"type":"set_color","id":"P}kE+@}j=I8pWn+F(~+0","inputs":{"R":{"shadow":{"type":"math_number","id":"1H@ce@;R8|GwxUt@eUl?","fields":{"NUM":0}}},"G":{"shadow":{"type":"math_number","id":"{~vz[812.$)E0M6*{cU,","fields":{"NUM":255}}},"B":{"shadow":{"type":"math_number","id":"OWgbZG|SUQk+X%DObiu$","fields":{"NUM":0}}}},"next":{"block":{"type":"release_all_servos","id":"!%!(0s%j-;y@d8.0rz0Z"}}}}}}}}}}}}}}}]}}}

フローを動かすとLEDマトリックスの色が順番に変わります。

Blocklyからアームの姿勢角を確認することもできます。

画面の右上にある赤いアイコンをクリックしてポートに接続すると姿勢角を表示できるようになります。

まとめ

今回はmyCobot 280 Piを触ってみました。

Raspberry Piを使うことでLinuxを使ったロボットプログラミングを本体で直接できるのはとても魅力的で高くてもRaspberry Piバージョン買ってよかったです!

なによりROSがセットアップされているので、以前試したMoveitを使って制御ができそうです。

おまけ

完全所見で遊んでましたが、後になって調べたら公式ドキュメントがあることに気づきましたw

これでできることが更に増えそうです。

docs.elephantrobotics.com