みなさんこんにちは。すみやです。
今回は発売前から話題になっていたmyCobot 280を紹介します。

myCobot280は 280 mmの作業半径、6軸の可動域、ROS(Robot Operating System)に対応 小型・軽量・安価な学習用ロボットとして開発された製品です。本体にM5Stack Basic、ATOM Matrixが組み込まれています。
電源を入れると手で実際に動かした動作を繰り返し再生するデフォルトのプログラムが起動しますが、ペイロード250 gと力強いため、まず最初に本体を固定する必要があります。
実は吸盤で固定するプレートを用意したのですが、Lego互換コネクタ10個で強力に張り付いてしまい、外すときに本体下部のプレートを割ってしまいました… 今回使っているmyCobotは直販初期のモデルです。現在弊社で扱っているモデルでは強化されているのでご安心ください。

スイッチサイエンスから販売されるmyCobotにはメーカー保証がついています。今回破損した本体下部のプレートも交換品を提供してもらう予定です。製品の保証について詳しくはこちらを参照ください。

とりあえず代替の部品が届くまで、本体を固定しないと使用できないので本体にある4つの穴を用いてコンパネに木ビスで固定しました。

気を取り直して、公式ソフトであるmyStudioをインストールします。公式サイトより提供されているmyStudioでは出荷時へプログラムの初期化、ファームウェアの更新、アームのキャリブレート、myCobotに関するドキュメントやフォーラムやGithubへのリンクが提供されています。
ファームウェアの更新の際はスイッチサイエンスの商品ページにもある通り、本体のBasicだけでなく、先端部のATOM Matrixの更新も必要です。この際、myCobotProではなくmyCobotの方を選択し、ATOM、Basicに正しいものを書き込む必要があります。どれも同じESP32を搭載しているので誤って書き込めてしまいますが、正しい動作をしません。特にmyStudioの画面移行をしないと、ATOMの方にMainControl1.0を書き込んでしまうので注意が必要です。

myCobotが工場出荷時のように動かなくなった場合は、ATOM、BASICに正しいファームウェアが書き込まれているかよくお確かめください。
さて、協働ロボットとして実際に作業させてみたいと思います。ROSに対応とありますが、ロボットに疎い僕はArduinoを使ってみます。M5Stack、M5AtomのArduino開発環境が揃っていれば、公式ライブラリMycobotBasicを追加するだけで、Arduino IDEで開発が可能です。コンパイルエラーが出た場合、GithubのFAQにある通り、M5Stackライブラリの一部をコメントアウトする必要があります。

Arduinoのスケッチ例としてAnglesTestを書き込めば、下から順番に関節が動きます。関節部に1~6まで数字が割り振られており、writeAngleで関節の箇所、角度、速度をするだけで簡単に動かすことが可能です。ライブラリの仕様については公式ドキュメントについて詳しく書かれています。

myCobotの先端部にはLego互換のコネクタがついており、様々なエンドエフェクターを接続可能です。現在、スイッチサイエンスではグリッパーと吸引ポンプを取り扱っています。グリッパーはちいさな箱や小さなボール等の持ち上げ作業に、吸引ポンプは滑らかな平面の物体やカードの持ち上げに適しているそうです。
カードといえば、たまたま僕の手元に昨年集めたぐんまダムかるたがありました。

というわけで、myCobotとダムかるた勝負!…をやりたかったのですが、僕にそこまでの技術はないので、以前の記事でお世話になったM5StickVに協力してもらい、混ざってしまった取札と読札の仕分け作業をしてもらいます。

以前の記事と同様に取札と読札を撮影し、M5Stack社のV-Trainingを使い学習させ、M5StickVに判定させます。M5StickVとmyCobotの通信はアイソレータを使い、読札のときはLOW、取札のときはHIGHになるようM5StickVにプログラムしました。また、ポンプの制御はドキュメントどおりに配線するだけで簡単に使用することができました。アームの動作はスケッチ例を参考に手動で調整しました。


一枚だけ誤判定しましたが、すべての札を移動することができました!
というわけで本格的なロボットプログラミングを期待した人には申し訳ないのですが、ロボット初心者の僕にも簡単にmyCobotに作業をお願いすることができました。
小型・軽量・安価な学習用ロボットmyCobot 280はスイッチサイエンスのこちらのページで販売中です。