JetCobot

最近本業でロボットアームを扱う機会があり、いろいろ新しく知識も得たので、その経験を生かしてRubyと組み合わせていろいろ試してみたいと思って、個人でも買えるロボットアームを探してみた。

ElephantRoboticsのmyCobot280が手ごろで扱いやすそうなので、こちらを購入してみることにした。単体で買うとグリッパーや台座などついてなかったり、SwitchScience経由で買ったりするとちょっと高くなったりするのだけど、YahboomのJetCobotだと、一式揃って、加えてJetsonも付いて安かったので、そちらをAmazonで注文した。

香港からの発送で、1週間ほどでUPSで届いた(配達はヤマトだった)。

梱包の様子

組み立ては難しくなく、JetsonNanoをケースに収めて、本体とUSB接続して、電源を入れると自動で起動する。(付属の無線は使わないでおく)

myCobot本体はUSBシリアルで認識されており、それをPythonで制御している。

チュートリアルに従えば、紹介動画にあるような画像認識と制御のデモも簡単に試せそう。

JetCobot 7-axis visual collaborative robotic arm for Jetson NANO 4GB/Orin NANO/Orin NX

Jetson Orin NX 16GB

今回はさらに奮発して、Jetson Orin NX 16GBも購入した。

仕事では会社のプロダクトがJetsonベースだったりして、Jetsonをよく使うので、Isaac ROSを自分でも試して勉強したかったので購入した。別途買ってるロボカーと組み合わせてROSでVSLAMやNavigationあたりももっと試したかったのが理由。

JetCobot付属のJetsonNanoだとあまり自由が利かないので、Orin NXから制御しようと思う。

動かしてみる

Jetson nanoに最初からPythonの制御プログラムが起動するようにサービスが設定されているので、電源を入れると自動で初期位置に戻る。

そのプログラム

Ubuntu22.04とmyCobot280のシリアル

JetPack6.2をインストールした環境で試していたが、myCobotにつながっているUSBシリアルをつないでもOrinNX側でうまく認識したい。

CH341のドライバが読み込まれていない模様だったので、次の手順で対応してつながるようになった。

Fix Driver issues for CH340N usb serial chip in Linux (Ubuntu 22.04)Fix Driver issues for CH340N usb serial chip in Linux (Ubuntu 22.04) - CH340N_linux_fix.mdGist

そしてアームのUSBカメラの映像をCheeseで見ようとしたら、JetPack環境のlibjpegとマッチしてないようで、エラーが起きた。ffplayでUSBカメラも映ることが確認できた。JetPack環境は素のUbuntu環境と微妙に異なるので、ちょいちょいこういうことが起こる。

自由に制御する

JetCobotにはあまり依存したくないので、まずはmyCobotの環境をDockerでOrinNX側に作って、今後はそちらで開発を進めたい。elephantroboticsのPythonライブラリをインストールする。

GitHub - elephantrobotics/pymycobot: This is a python API for ElephantRobotics product.This is a python API for ElephantRobotics product. - elephantrobotics/pymycobotGitHub

バージョンによって依存関係があれこれあってビルドが通らなかったりしたが、とりあえず動かせたDockerの設定を以下に置いてある。いったんPythonを経由するが、余裕があればシリアルを叩く部分を移植できればと思う。

GitHub - kishima/mycobot-rubyContribute to kishima/mycobot-ruby development by creating an account on GitHub.GitHub

今後これをROS2、moveit2とも組み合わせて、rclrbとも連携させていく予定。

ロボカー(MentorPi)

SLAM関係も試してみたいので、LiDAR、深度カメラ付きのミニカーも購入した。

MentorPiという製品。Raspi5でコントロールするタイプ。