ultraArmと吸引ポンプを繋いでみた

先日、ソラコムさんが開催されている年次カンファレンス「SORACOM Discovery」に参加してきました。

discovery.soracom.jp

僕はコロナ禍が収まってからオフライン参加がメインになってきて、何かしら登壇や出展という形で爪痕を残してきました。

今年もIoTプロトタイピングで出展してきました!

今年で10回目の記念すべき回でまた自分の作品を出展することができるのはとてもありがたい話です。

前回はスマートコーヒーメーカーを展示しまして、そのときに使ってたセンサーの使い方をブログで紹介しました。

supernove.hatenadiary.jp

で、今年は30歳になったこともあり、せっかくなので僕が前から作りたかったものを作ろうと思い2年前にモニター提供していただいたultraArmを使ってマルバツゲームの対戦相手を展示しました。

完成品はこんな感じです。

youtu.be

正直当日まで間に合うか心配でしたが、無事前日にギリギリ完成し当日も無事安定稼働で終えることができました!(余談ですが、2年前に登壇したときにもデモとしてロボットアームを持ち込んだのに電源忘れて持ってきたデモが動かせなかったという失敗をしたので今回はそのリベンジを達成できたまでありますw)

で、このプロトタイピングを作るにあたってミソになったところの一つがハンドエフェクターとして吸引ポンプを採用したことです。

もともとmyCobotに対応している機種で最初はmyCobotを使って作品を想定してしましたが、関節に使われているロボットがすぐオーバーヒートを起こして思い通りの姿勢に動かなくなってしまったので急遽ultraArmを使う作戦にピボットすることになりましたw(去年もそんな調子でしたね…)

ピボットしたとて、調べてみると吸引ポンプをultraArmで使う事例がそんなに出て来ず苦戦しました。(そもそも日本語のultraArmの記事このブログしか出てこないw)

というわけで前置きが長くなりましたが、今回は久々のultraArmネタとしてこの吸引ポンプをultraArmと連携する方法を紹介しようと思います。

用意するもの

ハードウェアのセットアップ

ポンプの先端はultraArmに付属のLEGOコネクタに対応したフランジで取り付けておきます。(実際にはUltraArm用ピッキングキット付属の吸引ポンプを使うのがよさそうです)

ポンプは付属のGroveケーブルを使いultraArmの本体裏側の「Switch」端子に接続します。(ピンボケで分かりづらいですが、同じGrove端子になっているのでお分かりいただけるかと思います)

ハードウェアのセットアップはこれで以上です。

PCの環境構築

今回はサクッと動かせるようにPythonを使います。

Pythonのライブラリである pymycobot にultraArmを操作するためのモジュールがあり、それをつかえば ultraArm内臓のインターフェースも操作することができます。

まずはターミナルで以下のコマンドでインストールします。

pip install pymycobot

インストールしたら以下のコードを pump_sample.py で保存します。PORT はお使いのPCの接続先のポート合わせて書き換える必要があります。

from pymycobot import ultraArm

# Connecting the mechanical arm
PORT = '/dev/ttyUSB0'
ua = ultraArm(PORT, 115200)
ua.sleep(0.5)

# Open suction pump
ua.set_gpio_state(0)
ua.sleep(2)

# Close the suction pump
ua.set_gpio_state(1)
ua.sleep(2)

ultraArmで吸引ポンプを動かすサンプルが見当たらないと書きましたが、以下の公式ドキュメントに接続方法から使い方までシンプルにまとめられてましたw

docs.elephantrobotics.com

これで python pump_sample.py を実行するとポンプの吸引、停止の一連の動作を行うことができるので吸引しやすいカードや平たい小物を使って動作確認を行うことが出来ます。

以下の動画はmyCobotだし、適当なモーションを入れてますがポンプの挙動はイメージいただけるかと思います。

まとめ

今回はSORACOM DiscoveryのIoTプロトタイピングで使われていた吸引ポンプをultraArmで動かす方法を紹介しました。

ロボットアームを持っていても何かしらハンドエフェクターが無いと面白みが無いよなーとふわっと思ってましたが、Discoveryを期に試すことが出来たのが良かったです。

何より昔あこがれてた某T社系列の会社が開発してた将棋ロボットのようなロボットアプリケーションとAlpha GoのようなゲームAIをあわせた作品を自分の手で実現出来たのが個人的に大きな成果です。

これでまた、一度やってみたかったことをまた一つ達成できました!