myCobot 280 Piを買ってみた
前から気になってて買うかどうか迷ってたものがあります。それがmyCobotです。
中国深センのElephant Roboticsが製造している格安のロボットアームです。
日本でもスイッチサイエンスでいろいろ売られていて個人の趣味で使っていたり、ビジネスで活用している事例もちらほら見るようになりました。
そんなわけで僕もお試しでシュミレータで遊んでみました。
遊んでいたやっぱり実機が欲しくなりました。
というわけでスイッチサイエンスの年末セールでめちゃくちゃ安くなっているうちに買ってしまいました!まだ出ていませんが、ボーナスが出ることを考えると実質ボーナスで買ったようなもんですw。
ボーナスの先払いとしてmycobot 買っちった
— KMiura (@k_miura_io) 2022年12月27日
転職してこいつを余裕で買えるぐらいはボーナスもらえるから助かる pic.twitter.com/dHFYlTAXCM
今回購入したロボットは、中にRaspberry Piが使われているモデルで、買ったときの価格はなんと107,057円でした。
もっと安いM5 Stackのモデルでもいい気がしましたが、Raspberry Piにしておけば開発環境が本体に入っていて導入が簡単な気がしたのでRaspberry Piのモデルを選びました。(最近Arduino全然触ってなくてM5 Stackも触ったことないのもありますw)
というわけで今回はこれを開封して動かしてみたいと思います。
開封の儀
期待に胸を膨らませ開封の儀です。中に使われていた緩衝材は持ち運ぶときに使えそう。
開封して真っ先に出てきた冊子はmyCobotについての紹介と簡単なデータシートが載ってました。
やっと開封の儀 pic.twitter.com/UaDsgjohqt
— KMiura (@k_miura_io) 2022年12月29日
付属品はACアダプターとディスプレイに接続するためのHDMIとUSB TypeC、GPIOに接続する用のジャンパーケーブルでした。
意外と充実してる印象。
付属品の面々
— KMiura (@k_miura_io) 2022年12月29日
HDMIケーブルついてるのがいい pic.twitter.com/OvZxlb2USC
本体はこんな感じで折り畳まれて入ってました。
ご対面ー!
— KMiura (@k_miura_io) 2022年12月29日
折りたたむとコンパクト pic.twitter.com/nS4yVPDUU5
SDカードはすでに刺さってました(実質これも付属品みたいなもん?)。32GBが刺さっていて十分いろいろ遊べそうです。
すでにSD刺さってるってことはもう電源入れたら遊べるのか⁇ pic.twitter.com/z2YbHA9Jbh
— KMiura (@k_miura_io) 2022年12月29日
初起動
ディスプレイとキーボードを接続して電源を入れましたが、なかなか画面が映らず苦戦しました…
接続するHDMIの端子を変えたら無事に画面が映りました。初期不良かと思って焦りましたw
Ubuntuは18.04が中に入っていて、ROSのmelodicがすでにインストールされてました。
画面映らず苦戦しだけど端子を変えて映った
— KMiura (@k_miura_io) 2022年12月29日
Raspbianかと思ったらUbuntu入ってるのか(それは映像端子片方しか使えないの納得)
ということはROSもうセットアップされてるのか⁇ pic.twitter.com/0CASveabVc
軽く動かしてみる
無事に起動したところでアームを簡単に動かしてみます。
今回は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
とりあえず軽く動かしてみた
— KMiura (@k_miura_io) 2022年12月29日
Raspberry pi なら本体だけで手軽にブロックプログラミングできるのいいね! pic.twitter.com/C5nKKIGwR5
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マトリックスの色が順番に変わります。
せっかくなのでAtomのLEDを光らせた
— KMiura (@k_miura_io) 2022年12月29日
ずいぶんと高級なLチカですなw pic.twitter.com/rAh4la6Z7V
Blocklyからアームの姿勢角を確認することもできます。
画面の右上にある赤いアイコンをクリックしてポートに接続すると姿勢角を表示できるようになります。
まとめ
今回はmyCobot 280 Piを触ってみました。
Raspberry Piを使うことでLinuxを使ったロボットプログラミングを本体で直接できるのはとても魅力的で高くてもRaspberry Piバージョン買ってよかったです!
なによりROSがセットアップされているので、以前試したMoveitを使って制御ができそうです。
おまけ
完全所見で遊んでましたが、後になって調べたら公式ドキュメントがあることに気づきましたw
これでできることが更に増えそうです。