2025年の振り返り
1月
ContactGlove2を入手、テスト
Initial test of ContactGlove2 hand tracking device from Diver-X. Looks calibration didn’t go well. Will try again. pic.twitter.com/60o49RpPJP
— higrado (@EL2031watson) 2025年1月7日
Hand tracking data extraction test from ContactGlove2. Thumb data is not properly described so far. pic.twitter.com/2oAmYJCQ0G
— higrado (@EL2031watson) 2025年1月14日
2月
自作ロボットハンド改良、15DoF化
Updating my DIY robot hand by reducing it to 15 DoF and making it thinner. pic.twitter.com/3m4xmG8gcP
— higrado (@EL2031watson) 2025年2月3日
My DIY robotic hand update: I reduced the hand thickness from 60mm to 40mm by removing 1 DoF from the thumb. Also, the axis direction change gears have been replaced with metal parts (SLM aluminum), allowing the hand to output more force. https://t.co/zvcZ9cTDRc pic.twitter.com/gsr1cWeORE
— higrado (@EL2031watson) 2025年2月12日
バレル研磨機を購入、それに合うサイズの小型防音箱を作成
Testing a DIY soundproof box for a barrel polishing machine. pic.twitter.com/d7rPg0UFLA
— higrado (@EL2031watson) 2025年2月11日
バレル研磨機で金属3Dプリントしたギアを研磨
SLM aluminum before (left) and after (right) barrel polishing.
— higrado (@EL2031watson) 2025年2月11日
It looks like a stone turns into metal after polishing. https://t.co/ikJJfDFuin pic.twitter.com/FUngdGJ0GS
ContacClove2と自作15DoFロボットハンドの連携テスト
The FPS of ContactGlove2 appears to be around 65 FPS.
— higrado (@EL2031watson) 2025年2月15日
The Diving Station app shows a latency of 5ms to 30ms for each glove, so 65 FPS should be reasonable. https://t.co/GeSGWS5GgK pic.twitter.com/T2RWbyV4cF
Leader-follower system with ContactGlove2 and my DIY 15 DoF robotic hand. pic.twitter.com/rLATeNCKmT
— higrado (@EL2031watson) 2025年2月15日
自作ロボットハンドにPIP軸に連動するDIP軸を追加
Adding a DIP joint to my robotic hand that articulates with the PIP joint, just like a human finger. Now my robotic hand will have 15 active joints with 4 articulated joints. pic.twitter.com/YcNqOylkuB
— higrado (@EL2031watson) 2025年2月16日
第3回OpenArm勉強会でロボットハンド関連の調査結果を発表
本日の発表資料はこちら。https://t.co/wB892oL2uZ
— higrado (@EL2031watson) 2025年2月19日
自作ロボットハンドのDIP軸をPIP軸を弾性で連携させるように改良
The DIP joint (No. 3) of my DIY robotic hand moves together with the PIP joint(No.2). This time, however, it behaves more like an actual human DIP joint, which is underactuated but not connected by a simple rigid linkage. https://t.co/tAxVOBWVtB pic.twitter.com/u4qo2i63W2
— higrado (@EL2031watson) 2025年2月20日
3月
自作サイクロイド減速機(37:1)とRollerCAN-Liteによる自作アクチュエーターのテスト
DIY cycloidal reducer (37:1) with Unit RollerCAN-Lite. Fun project, but honestly, a Chinese actuator would be cheaper and better. pic.twitter.com/rcqGttewdl
— higrado (@EL2031watson) 2025年3月21日
ContactGlove2と自作ロボットハンドのリーダーフォロワー連携の最適化
Update my DIY 15-DoF robotic hand by adding 4 underactuated DIP joints and optimizing the leader-follower scripts. pic.twitter.com/dKkpopAiUN
— higrado (@EL2031watson) 2025年3月24日
I’m considering going back to my DIY finger tracking device because potentiometer-based finger tracking seems more accurate. https://t.co/NHUGnx2AmS
— higrado (@EL2031watson) 2025年3月24日
4月
Teensy 4.1及び自前設計のPCBを使用し自作ハンドトラッキングデバイスの改良
An updated hand-tracking device for 15 DoF DIY robot hand using a self-designed PCB with Teensy 4.1. https://t.co/yS01M5I7uA pic.twitter.com/aooR4vPKr5
— higrado (@EL2031watson) 2025年4月16日
自作ハンドトラッキングデバイスの動作確認とカバー追加
My updated DIY hand tracking device is working well now. 3 DoF for each finger.
— higrado (@EL2031watson) 2025年4月22日
I added a cover to the PCB, which makes the device look a bit nicer though it adds about 50g. https://t.co/5ENQOU5XTE pic.twitter.com/17v4Y7s3cY
明日の第5回OpenArm勉強会にはこの自作ハンドトラッキングデバイスを持っていく予定です https://t.co/49868HUByU
— higrado (@EL2031watson) 2025年4月22日
15DoFリーダーフォロワーハンドシステムの動作確認
15DoF leader-follower robotic hand system working fine. pic.twitter.com/nGeSvn5O2Z
— higrado (@EL2031watson) 2025年4月23日
As you can see in the previous video, I added covers to most of the linkages of my finger tracking device. https://t.co/InT5fDHPkO pic.twitter.com/S0yITYXNQ5
— higrado (@EL2031watson) 2025年4月23日
DIY hand tracking device for right and left hands. pic.twitter.com/dJ3tiaGLjL
— higrado (@EL2031watson) 2025年4月27日
Testing DIY hand tracking devices on both hands simultaneously. https://t.co/4y3efIqUkI pic.twitter.com/NCXzjQXNlP
— higrado (@EL2031watson) 2025年4月29日
My robotic hand just barely managed to rotate the Rubik’s Cube with one hand. pic.twitter.com/ksvMsT03NP
— higrado (@EL2031watson) 2025年4月30日
What I realized is with only vision information without force feedback or some sort of tactile feeling, it is really difficult to achieve this kind of complicated in-hand manipulation. https://t.co/VwyvdFHxN3
— higrado (@EL2031watson) 2025年5月1日
This kind of manipulation is still quite difficult with my DIY robot hand. The fingertip is made of silicone, but it's still much more slippery than a human fingertip. pic.twitter.com/Wu8hAG5I8T
— higrado (@EL2031watson) 2025年5月4日
5月
自作ハンドトラッキングデバイス紹介動画をYouTubeに投稿
Just published a new YouTube video about my DIY finger tracking device.https://t.co/70PrNvZK48 https://t.co/VwyvdFHxN3 pic.twitter.com/3lC7jwF3sU
— higrado (@EL2031watson) 2025年5月5日
Feetech HLS3950Mサーボを入手
Just got the FEETECH HLS3950M. It’s about the same size as the STS3215, but it’s heavier(74.5g vs 55g), more expensive, and has higher torque(50kgcm@12V vs 19kgcm@7.4V). pic.twitter.com/ovERx9pri4
— higrado (@EL2031watson) 2025年5月14日
7-DoFアーム + 15-DoFハンドのテレオペレーションテスト
Teleoperation test of DIY 7-DOF robotic arm with 15-DOF robotic hand. pic.twitter.com/gYTK3F4nSa
— higrado (@EL2031watson) 2025年5月25日
ルービックキューブ回転の初トライアル(双腕7-DoFアーム + 15-DoFハンド)
First trial of rotating a Rubik's Cube using a DIY dual 7-DOF robotic arm with a 15-DOF robotic hand.
— higrado (@EL2031watson) 2025年5月30日
Super difficult! pic.twitter.com/F7tRLCA90W
And the right thumb was broken. https://t.co/rlKfyJTXMx pic.twitter.com/D3E02di022
— higrado (@EL2031watson) 2025年5月31日
6月
自作ロボットハンドの指のカーバーを作成
Covers have been added to hide the servo motors of my robotic hand. pic.twitter.com/RHwExt4UPM
— higrado (@EL2031watson) 2025年6月1日
形状ソーティング玩具のテレオペレーションテスト
Trying a shape-sorting toy with DIY 15-DOF robotic hands (x10)
— higrado (@EL2031watson) 2025年6月7日
A lot of precise manipulation is required during this task pic.twitter.com/gbbiDsmTNp
SO-101アームの構築とテレオペレーションテスト
Finally I built a SO-101 arm and tested teleoperation. pic.twitter.com/dPGUBG6FjJ
— higrado (@EL2031watson) 2025年6月29日
7月
Maker Faire Tokyo 2025出展承認(双腕7軸 + 15DoFハンドのテレオペレーションデモ)
自作双腕7軸+5指ハンド(15軸+従属4軸)のテレオペレーションロボットシステムでMaker Faire Tokyo 2025への出展承認頂けました。
— higrado (@EL2031watson) 2025年7月3日
卓球ロボット以降落選が続きましたが5年ぶりの出展で楽しみです。テレオペレーション2日間は多分疲れるので間に合えば自動化も着手したいと思っています。
#MFTokyo2025 https://t.co/aOrNlrbArP
XT30(2+2)のケーブル自作にチャレンジ
First time for me to make a custom L-shaped XT30 (2+2) cable. A little tough. pic.twitter.com/vgmOvEXzss
— higrado (@EL2031watson) 2025年7月27日
8月
DAMIAO高トルクモデル(DM-J6248P-2EC)入手
The DM-J6248P-2EC from DAMIAO has arrived. It has a rated torque of 30 N·m, a rated speed of 40 rpm, and weighs 628 g. With its 48 : 1 reduction ratio, it isn’t very smoothly back-drivable, but it should be acceptable. pic.twitter.com/EMUyqbGlaU
— higrado (@EL2031watson) 2025年8月7日
9月
MyActuator X2-7,X4-10,X4-36,X6-60入手
Got X2-7, X4-10, X4-36, X6-60 from MyActuator. pic.twitter.com/80HrNDFRiX
— higrado (@EL2031watson) 2025年9月16日
Maker Faire Tokyo 2025準備
Preparing for Maker Faire Tokyo 2025 this weekend.
— higrado (@EL2031watson) 2025年9月28日
#MFTokyo2025 pic.twitter.com/G2zRJP1RB6
Add covers and a stereo camera to my robot. pic.twitter.com/KlNom230tw
— higrado (@EL2031watson) 2025年9月24日
10月
Maker Faire Tokyo 2025出展(テレオペ + VLAファインチューニング自律動作)
結局ファインチューニングしたVLAによる自律動作はうまく行きませんでした。#MFTokyo2025 pic.twitter.com/YkfzR81KJ9
— higrado (@EL2031watson) 2025年10月4日
自律動作は全然ダメですが、遠隔操作モードでは比較的スムーズに動きます。#MFTokyo2025 https://t.co/bCEZyTCRjD pic.twitter.com/KdXjyf17b5
— higrado (@EL2031watson) 2025年10月4日
ハードが故障しました…
— higrado (@EL2031watson) 2025年10月4日
16:00〜にうまくいけば復帰できるかもしれないです。#MFTokyo2025 https://t.co/EWTvmbj8tr
1日目のデモで肩、腰が痛くなりましたが、
— higrado (@EL2031watson) 2025年10月5日
2日目も双腕ロボットのテレオペレーションデモやろうと思います。#MFTokyo2025 pic.twitter.com/KFn12N9A0p
1日目はハード故障で2時間停止状態でしたが、2日目は大きなトラブルなく、型はめパズルを解き続けて肩と腰がかなり痛くなりました。型はめパズルのロボット操作解きのスキルはかなり向上しました。
— higrado (@EL2031watson) 2025年10月5日
7時間で各色合わせて約360回の型はめをしたようです。大量のデータ収穫となりました。#MFTokyo2025 pic.twitter.com/KOA7ObSXNS
今回の出展の学びとして、ロボット固定用の4040アルミフレームを600mm長さ以下のみで構成すればよくある海外旅行用のスーツケース(高さ700mmが多い?)にギリギリ入るので分解してコンパクトに収めやすいということ。
— higrado (@EL2031watson) 2025年10月6日
今回4箇所で800mmを使ってしまったため、搬送時にスーツケースに入らず面倒だった。 https://t.co/8c833CaNgE pic.twitter.com/Dq8wvLDp9O
RTX PRO 6000 Blackwell Max-Qを入手
The NVIDIA RTX PRO 6000 Blackwell Max-Q has arrived.
— higrado (@EL2031watson) 2025年10月14日
It’s quite an expensive GPU, but with three times the VRAM of the RTX 5090, I think it’s worth it.
I’m planning to use it mainly for fine-tuning VLA models. pic.twitter.com/1binRRjKlU
DAMIAOクロスローラーベアリング付きモデル(DM-J4310P-2EC))入手
Got new models of Damiao motors with cross-roller bearings (DM-J4310P-2EC). pic.twitter.com/vIsdkwOydA
— higrado (@EL2031watson) 2025年10月23日
11月
MyActuatorのEtherCAT制御初テスト
First EtherCAT control test of a MyActuator. pic.twitter.com/Q8JPsevTkJ
— higrado (@EL2031watson) 2025年11月12日
4チャンネル双方向制御(力覚フィードバック)テスト
First test of 4-channel bilateral leader–follower control using EtherCAT MyActuator motors. Parameter tuning is a bit tough. pic.twitter.com/zLjqqGlghg
— higrado (@EL2031watson) 2025年11月14日
Second test of 4-channel bilateral leader–follower control using EtherCAT MyActuator motors.
— higrado (@EL2031watson) 2025年11月16日
Demonstration of contact with soft vs. hard objects. pic.twitter.com/l2hFnMzukH
2-DOF leader–follower system with 4-channel bilateral control using EtherCAT MyActuator motors (X2-7 and X4-10).
— higrado (@EL2031watson) 2025年11月18日
I could feel some force feedback on the leader side, but it still didn’t feel as rigid as the hard surface the follower was actually touching. pic.twitter.com/KTMLzH5A4K
Another example of 4ch bilateral control of 2-DOF leader–follower system using MyActuators over EtherCAT. https://t.co/OQVhop3qoB pic.twitter.com/73KhLnp7Yp
— higrado (@EL2031watson) 2025年11月19日
DAMIAOクロスローラーベアリング付き48Vモデル(DM-J4310P-2EC, DM-J4340P-2EC)入手
Got 48V Damiao motors with cross-roller bearings (DM-J4310P-2EC and DM-J4340P-2EC) pic.twitter.com/Yi2gWrctFf
— higrado (@EL2031watson) 2025年11月21日
12月
7-DoFロボットアームのアップデート(関節制限、安全カバー、配線内蔵)
Updated my 7-DOF robot arm:
— higrado (@EL2031watson) 2025年12月8日
– joint range limits for safety
– motors and wiring inside outer covers pic.twitter.com/xfsU8MOaAV
総括
- 自作ロボットハンドとアームの改良を行い、テレオペレーションデモをMakerFaire 2025に無事出展
- EtherCAT対応MyActuatorでEtherCATに入門、バイラテラル制御に入門
- VLAなどのテストやローカルLLMの検証などを目的としRTX PRO 6000 Max-Qを購入し多分人生で一番高額な買い物となった
2024年の振り返り
1月
UFACTORY Lite 6のリーダーフォロワーでサイコロ投げやUSB刺しタスクなどの実験
Lite 6使ったリーダーフォロワーシステム、制御周期を20msあたりぐらいにして3つのサイコロを投げる動作をやったみた。
— higrado (@EL2031watson) 2024年1月1日
アームだけなら3-4msまで削れたが、自作グリッパーの配線が悪いせいかグリッパーのbaud rateをあまり上げられず20ms止まり。
2指グリッパーだとサイコロ3つはなかなか掴みずらい。 pic.twitter.com/hPlHF2rYpd
ロボットアームでUSBを刺すタスク。ある程度力が必要で難しい。このタスクにはソフトグリッパーは向かないのかも。
— higrado (@EL2031watson) 2024年1月4日
作業中にアーム同士が接触してエラーで止まることがしばしばあるから、電流も制御できるアームを使いたい。AlohaとかのDynamixel使ったアームはその辺気楽に使えそうなのが羨ましい。 pic.twitter.com/zgdBG69g3I
小型の安定化電源として話題になったDP100を購入
便利なのでリーダーフォロワーシステムのリーダ側のDynamixelへの電源供給で常用するようになった。
DP100とPD対応のACアダプタを購入。
— higrado (@EL2031watson) 2024年1月10日
小さくて良さそう。
直流としてUSB-Aかバナナプラグから出力ができるみたいだが、説明書にはUSBの方は5V/1Aまでという感じになっているので、バナナプラグを使うことになりそう。バナナプラグオスから変換するケーブルを用意すると便利そう。 pic.twitter.com/iASNk0uv4A
今回からDynamixelへの給電用の電源をDP100にしたからコントローラー付近もコンパクトになった。 https://t.co/C0KB7tcn2I pic.twitter.com/7Dxm4x0Ite
— higrado (@EL2031watson) 2024年1月14日
UFACTORY Lite 6用のリーダーフォロワーシステムのリーダー側グリッパーハンドルを改良
Lite 6用のリーダーグリッパー操作機器を改良して1人で両手持つことが出来てかつ人差し指の動かす方向とグリッパーの開閉方向も大体一致した。
— higrado (@EL2031watson) 2024年1月14日
これでより掴む感覚に近い感じで操作できるようになったはず。 pic.twitter.com/OV2BGmLpnJ
自作UFACTORY Lite 6用のリーダーフォロワーシステムをGELLOの論文著者の提案を受け、GELLOレポジトリに統合
Dynamixel XL330をリーダー側エンコーダーとして使ったUFACTORY Lite 6用のリーダフォロワーシステムですが、そもそも作るきっかけとなったプロジェクトであるGELLOの論文の著者(@philippswu )から統合の提案を頂き、Lite 6用をマージしてもらいました。https://t.co/bkZhOYp0yB
— higrado (@EL2031watson) 2024年1月16日
サザエさんで登場した「自動大根おろし機」をUR3(6軸ロボットアーム)+2F-85(グリッパー) + FT300(トルクセンサ)で再現
2分で大根おろし64g(約1人前)の製造自動化に成功 youtu.be
自作平行グリッパーをPA6-CFで印刷し強度の強化を図る
自作グリッパー外側をPA6-CFで印刷。あと内部のギアも金属3Dプリンター部品から差し替え。XL-330サイズだとセレーションに差し込むピニオンギアを炭素繊維強化ナイロンフィラメントで印刷しても使用中に滑ってしまうのでピニオンギアのサイズを少し大きくして標準のホーンにねじ止め出来るようにした。 pic.twitter.com/5sE3y3y5u6
— higrado (@EL2031watson) 2024年1月23日
フォースゲージを購入しRobotiqのグリッパー2F-85の端力を計測
フォースゲージ(300Nまで、精度1%)を手に入れたので、Robotiqの2F-85の把持力を測ると片指で129.3N、両指に同じ負荷がかかるとすると2倍の258.6Nなので公式スペックの235Nは合っていそう。一方自分の両指で大体60Nだった。
— higrado (@EL2031watson) 2024年1月24日
普通の人間の作業代替を目指すには2F-85みたいに235Nもいらないはず。 pic.twitter.com/ZZfPBbLt67
2月
フォースゲージで自作グリッパーの端力を計測
63Nだったので2F-85の1/4程度の力しかないが自分の指の力も60N程度だったので、グリッパーとしてはこのぐらいあれば大体のタスクはこなせるという感想を得た
自作グリッパーの把持力を測ったところ片側31.5Nだった。XC330-M288-Tを使用。
— higrado (@EL2031watson) 2024年2月21日
両側だと2倍の63Nで、自分の指でピンチ力を測ったら両側換算60N程度だったから、だいたい同じくらいの力は出せている。つまりこのグリッパーは指でつまむ系の作業の模倣には足りる力は出せているはず。 pic.twitter.com/GZTtM5Gq4z
4月
ROBOTISからDYNAMIXEL-Yシリーズが発売されているのを発見したが、値段的に購入は断念
ROBOTIS Shop見たら、
— higrado (@EL2031watson) 2024年4月1日
DYNAMIXEL-Yシリーズの発売が開始されていた。
予想通りかなり高額でなかなか手は出せなさそうだ。
ブレーキ付きのモデルはまだ出てないが、ついたバージョンはさらに高くなるのか...https://t.co/mWQNp1Mjqd pic.twitter.com/xTzGUHnhnK
UFACTORY Lite 6用のリーダーフォロワーシステムのリーダー側に重力補償と摩擦補償を実装しテストした
UFACTORY Lite 6用のリーダーフォロワーシステムのリーダー側の重量補償が出来た。
— higrado (@EL2031watson) 2024年4月20日
重力補償あり•なしの比較。
似たような例だとALOHAはバネとワイヤーみたいなもので上から支えていたが、こっちはサーボに重力を消す様なトルクを発生させる方式。サーボが結構発熱するから長時間使えるかは不明。 pic.twitter.com/Z9dmShHtmR
摩擦補償っぽいのも一応できた。
— higrado (@EL2031watson) 2024年4月21日
重力補償ありで、追加で摩擦補償あり•なしの比較。
重力方向の動作はなんか摩擦がまだ結構ある感じしたが、水平方向は滑らかに動く様に出来た。
重力方向は上手くいってないのと、そもそも等速直線運動にならないことからモデルを色々工夫しないといけなさそう。 pic.twitter.com/4U5f70P45j
上記過程でXL330-M288-Tを一つ破損
30分ー60分ぐらい重力補償ONで放置してたら3軸目のDYNAMIXELサーボ(XL330-M288-T)がおかしくなったから分解したらギアの一つが欠けていた。
— higrado (@EL2031watson) 2024年4月21日
ちょっと負荷が高すぎたのかもしれない。
値段3倍近いけどXC330に変えた方がいいかな。 https://t.co/Y7PNSWXRC2 pic.twitter.com/avLF9s9YVJ
5月
Unitree G1というヒューマノイドロボットが発表され、16000ドル~という価格に驚いた
オプションを入れると結構値段が高くなりそうで買うのはまだまだ先になりそう
Unitree G1歩かせると何かと危なそうだから取り敢えず双腕ロボとして上半身だけ欲しい。 https://t.co/KwT72aheuZ
— higrado (@EL2031watson) 2024年5月13日
Unitree G1の腕の自由度デフォルトでは5で、オプションで7自由度に出来るみたい。ということは7 自由度x2の腕が欲しければ 16000ドルより多く課金しないといけないのだろう。やっぱポケットマネーではキツそう。https://t.co/8HWXYZxBcy pic.twitter.com/s8ooziHYdr
— higrado (@EL2031watson) 2024年5月16日
第45回ロボティクス勉強会でUFACTORY Lite 6のリーダーフォロワーシステム作成について発表
明日のロボティクス勉強会でLite 6のリーダーフォロワーシステムを作ったという発表をします。https://t.co/odOFKD646K https://t.co/nkCeq8rfQ0
— higrado (@EL2031watson) 2024年5月23日
CyberGearを2つ購入
CyberGear特に用途とか無いけど取り敢えず買ってみた。 pic.twitter.com/5BeRhXVIoo
— higrado (@EL2031watson) 2024年5月28日
サイクロイド減速機を3Dプリンタで自作
31:1から始まり37:1, 45:1, 77:1を作成。すべてバックドライブまで確認。高くなるがそのうち金属化したい。
減速機作ったこと無かったので、勉強兼ねて減速比31:1のサイクロイド減速機を作った。
— higrado (@EL2031watson) 2024年5月31日
ベアリング、ピン、ボルト以外は3Dプリント。普通のPLAだけど一応バックドライブも出来る。
サイズは大体CyberGearと同じくらい。一応中空にした。 pic.twitter.com/3PbKHSOgyC
自作サイクロイド減速機、減速比を37:1にしてかつ小型化、軽量化して100gきった。直径52mm、高さ27mm。接触部の摩擦がやや気になるからスラストベアリング入れた方がいいかも。せっかくだからなんかブラシレスモーターとドライバー、エンコーダーも用意してアクチュエータにしたい気がしてきた。 pic.twitter.com/iZKAjEc7xu
— higrado (@EL2031watson) 2024年6月1日
サイクロイド減速機の設計にハマってしまって、3台めをさらに作成。減速機は45:1で直径54mm、高さ27mm、バックドライブもまだ可能。中も14mm直径の穴になりコードなどが通し易くなった。重量もわずかに軽くなったがややがたつく音が気になった。流石にこのサイズではやや設計がきついかも。 pic.twitter.com/GFXRNLVd7p
— higrado (@EL2031watson) 2024年6月4日
自作サイクロイド減速機、77:1でもかろうじてバックドライブさせることができた。流石にだいぶ重くなってきている。31, 37, 45, 77と減速比を上げてきてこれで4つめ。サイズは直径54mm,高さ27mm、重量は106gと少し重くなった。 pic.twitter.com/3miiDXPSKq
— higrado (@EL2031watson) 2024年6月6日
6月
LKMTECHのブラシレスモーター+ドライバ+遊星ギア一体系のアクチュエータを購入
注文していたLKMTECHのMG6012E-i36とMG4010E-i36が届いたのでMG6012の方を試す。遊星ギアを2段積んで減速比36らしい。Rated Torque 25Nmだけあってかなりトルクが強くて回転しはじめの時の反力が大きくて驚く。
— higrado (@EL2031watson) 2024年6月8日
最初置いたまま回転させたら回転で線が抜けて停止してしまったので手で持ってテスト。 pic.twitter.com/yKfqm7iKEf
MG4010E-i36の方も動いた。こちらはrated torqueが9Nm
— higrado (@EL2031watson) 2024年6月9日
角度制御とトルク制御のテスト。
ただやや気になるのが24V、定格電流3.5A、最大が135Wにしては付属の線が細い気がして不安。JST ZH 1.5mmの6pin端子だが、コネクタと太い線で別のケーブルを作りたい。 pic.twitter.com/LHbIlJxE7g
LKMTechのアクチュエータの電流の上限設定を変更して保持力を変えることができた。フォースゲージで計測したところ、動画の柔らかい方は1Nm程度、硬い方は9Nm程度が上限値になっている。9Nmがrated torqueだからもう少し硬くはできるが、9Nmで既に実験用のレバーがたわんだのでその上は未検証。 pic.twitter.com/XEIw69v8EA
— higrado (@EL2031watson) 2024年6月10日
igusの低摩擦フィラメントi150-PFを購入
自作サイクロイド減速機の内部の摩擦を減らせるかなと期待したがそこまでPLAと差が無さそうという結論になった
接触時の摩擦が低いというigusのi150-PFというフィラメントを入手。高速の動作には向かないらしいが、上位のフィラメントより安いのと加工がしやすいということらしいのでこちらから入門。 pic.twitter.com/fJzUg5Fc9R
— higrado (@EL2031watson) 2024年6月13日
固体潤滑剤配合というigus のフィラメント(I150-PF)とPLAの摩擦の比較。
— higrado (@EL2031watson) 2024年6月16日
1kgのおもりを乗せて、各フィラメントで印刷した面同士の接触状態で引っ張る。
手引きなのと、機器の精度的に厳密ではないが、一応I150の方が静止摩擦は低いという結果になりそう。しかし思ったほど大きくは変わらない印象。 pic.twitter.com/HQo77oimd5
アクチュエータのトルクのテスト自動化のため安定化電源の電流とフォースゲージの表示値をウェブカムで取得し、GPT-4oで読ませて集計の自動化
トルクのテストの効率化のためにシリアル出力できるフォースゲージ探したが、高額だったのと、電流も取りたかったので両方が映る画角にカメラを設置して試験中に画像取得しGPT-4oに力・電流・電圧を出力させた。手入力の手間が省け、データ自動試験できるようにした。OCRほとんどミスないので助かる。 pic.twitter.com/aZfxckH7Yw
— higrado (@EL2031watson) 2024年6月19日
Maker Faire Tokyo 2024は再び落選
来年はよりオリジナリティのある内容で出展を狙う
Maker Faire Tokyo 2024落選… 今年は模倣学習のデモだからいけるかと思ったんだが、やっぱ自作感をもうちょっと出していかないときついかな。
— higrado (@EL2031watson) 2024年6月20日
アクチュエータのトルクテストで高負荷にも耐えられるようにレバーをPAHT-CFで印刷
40Nm程度のトルクテストでも耐えられるようになった
レバーをPAHT-CF製のものに差し替えて再度トルクのテスト。
— higrado (@EL2031watson) 2024年6月20日
0.2m先のゲージに200N超の力を与えても壊れない。さすがBambu Lab公式のフィラメント内で最高額のフィラメントだ。
台とかが少し力で変形はしているが、MG6012-i36で40NmがMax Torqueで大体それくらいの値に到達している。 pic.twitter.com/V5GYy9bHbR
SteadyWinのデュアルエンコーダー+ブレーキ搭載版GIM6010-36をカスタムオーダーで入手
電磁ブレーキ開放時の発熱が大きく、かつ重量もかなり増え、ソフトウェアの使用感などもあり使用は断念
SteadyWinのデュアルエンコーダー+ブレーキ搭載版GIM6010-36を入手。rated Torque 24Nm Stall Torque 58Nm。ブレーキを付けたせいで標準版の574gより重い。ブレーキは赤線2本に24V通電時に解除、非通電時にロックがかかる。解除時15Wぐらい使っている。通電・非通電時にブレーキの独特の音がする。 pic.twitter.com/BKm03jnTqf
— higrado (@EL2031watson) 2024年6月25日
電磁ブレーキ発熱がすごいのでアクチュエータを分解して取り出し、挙動を確認。通電でコイルが磁化して鉄板を吸引、四角のコルクみたいな素材が自由に動き回れるようになる仕組みのようだ。鉄板のわずかな動きでブレーキ有無を制御するみたいだ。発熱はコイル由来か。手で触るとかなり発熱していた。 pic.twitter.com/ZtNevaP6JU
— higrado (@EL2031watson) 2024年7月13日
7月
LKMTechのアクチュエータで自作7軸ロボットアームを作成
動くか不明だけど自作7軸アームロボット作った。タイミングベルトで手先の2自由度が交わるようにしたいが設計が面倒そうなので取り敢えず楽なバージョン。計算上は490mmリーチ、2.5kgペイロードあたりまではいけるはず。配線がややこしい。信号線と電力供給線がそれぞれ2つあるモーターが羨ましい。 pic.twitter.com/qqmzVNLWTe
— higrado (@EL2031watson) 2024年7月7日
自作7軸アームロボットついに動いた。ひとまずジョイントベースの制御。手先に1kgの重りを持たせている。
— higrado (@EL2031watson) 2024年7月11日
途中で気づいたが2軸目のモーターに異常がありトルクが出ていないから停止後に少し2軸目回りに動いている。
遊星ギアのバックラッシュ由来なのか、別由来かは不明だが停止時は結構揺れる。 pic.twitter.com/3VuWROJ5kq
自作7軸アームロボット、リーダーフォロワーシステムで動かすところまできた。2軸目のアクチュエータが不具合で動かないので2軸目は同期していないけど、それ以外は正常に動いているように見える。制御の周期はだいたい11-12msあたり。フォロワー側から聞こえる振動音のような音がやや気になる。 pic.twitter.com/TWXeEBsN34
— higrado (@EL2031watson) 2024年7月24日
ブラシレスモータの制御の勉強をしようと思い本を買う
理解出来るかは不明だが最近ブラシレスモータを扱っているので、少しはモータも勉強しておこうかと思って買ってしまった。 pic.twitter.com/ZvsQZ75soy
— higrado (@EL2031watson) 2024年7月26日
ブラシレスモータの勉強用にmoteus-r4, c1を購入
ブラシレスモータ勉強用にmoteus-r4とc1を購入。r4は初心者にも優しそうなセットのdeveloper kitにした。r4の方はデイジーチェーンにできるように端子が二つずつ用意されている。セットのBLDCも1.7Nm, 7500rpm出せるようで減速機つけたら結構便利なアクチュエータになりそう。 pic.twitter.com/ioydD4qJSK
— higrado (@EL2031watson) 2024年7月30日
moteus r4.11、早速動画インストラクション通りに進めてBLDCを回すところまで簡単にできた。説明がかなり丁寧で親切。静かにスムーズに回転する。 https://t.co/HS4ZS8XpLQ pic.twitter.com/nZSRLVN8Nj
— higrado (@EL2031watson) 2024年7月30日
OAK-D Short Range PoE with ToFを入手
OAK-DのToFが搭載された新型OAK-D Short Range PoE with ToF
— higrado (@EL2031watson) 2024年7月31日
が7ヶ月経ちついに届いた。比較のためL515と並べたが予想以上に大きかった。ToFだけじゃなくてIRドットプロジェクターも搭載みたいで、RealSense L515とD435を合体させたような感じか。PoE給電できてGigEカメラのように使えるらしい。 pic.twitter.com/z4rIaq1X2k
OAK-D Short Range PoE with ToF起動できた。PoE給電なのでカメラ接続はLANケーブル1本で済む。20cm付近までデプス対応していると書いてあったので25cmあたりで撮影。悪くはなさそう。ドットプロジェクタをONにすると、D435などと違ってデプス専用カメラがないためRGBにドットが入り込んでくる。 pic.twitter.com/g4iyZBtrFe
— higrado (@EL2031watson) 2024年8月4日
8月
中空のアブソリュートエンコーダを入手
そのうち中空のアクチュエータを自作したい
謎の中空のアブソリュートエンコーダー届いた。いまいち使い方わからないけどRS485で通信できるらしいからそのうち試す。 https://t.co/yKglTa2NXf pic.twitter.com/T1U1xup13p
— higrado (@EL2031watson) 2024年8月8日
Feetechの電流制御対応サーボモータのHLS3606Mを入手
Feetechのトルク制御対応版サーボのHLS3606M気になってたから念のため購入。サイズはやっぱかなり小さい。 pic.twitter.com/hXjJxWz3XE
— higrado (@EL2031watson) 2024年8月10日
自作7軸アームロボットのアクチュエータをDamiao製に変更し、リーダーフォロワーシステムの動作に成功
Testing of a self-developed 7 DOF robotic arm using a leader-follower system. pic.twitter.com/zogV9Qpus2
— higrado (@EL2031watson) 2024年8月14日
自作7軸アームロボットに1kg-2.1kgのおもりを付けて動作確認
1kg payload test for a DIY robotic arm with a 480mm reach. pic.twitter.com/NF2vKcb3pR
— higrado (@EL2031watson) 2024年8月15日
2.1kg payload test for a DIY robotic arm with a 480mm reach. Looks a little tough challenge for this arm. pic.twitter.com/VHu1u15phc
— higrado (@EL2031watson) 2024年8月17日
自作7軸アームロボットの先端2軸を直交させるデザインに変更
Testing a new design part of my DIY robot arm with 6th and 7th axis are orthogonal like Figure 02. pic.twitter.com/6mDVxXEAiN
— higrado (@EL2031watson) 2024年8月18日
The orthogonal wrist of my robot arm. Now, the 5th, 6th, and 7th joints are orthogonal.
— higrado (@EL2031watson) 2024年8月19日
It looks more like actual human arm movement compared to the previous non-orthogonal version. pic.twitter.com/o5ZSVGAezu
Added a cover to the wrist joint to protect the linkages. pic.twitter.com/MQ37BLJeEG
— higrado (@EL2031watson) 2024年8月21日
9月
7軸アームの2つ目を作成し、双腕リーダーフォロワーシステム化
Controlling a DIY dual-arm 7DoF robot using a teleoperation system. pic.twitter.com/CsyHXrY6Ao
— higrado (@EL2031watson) 2024年9月1日
HLS3606Mを使って16DoFの自作ハンドを作成
Lots of HLS3606M arrived. pic.twitter.com/Ik13zSDY5U
— higrado (@EL2031watson) 2024年9月8日
DIY 16DoF robotic hand for my 7DoF arm robot. Although the back of the hand is thick, each finger is 20mm wide, which is similar to the size of a human finger.
— higrado (@EL2031watson) 2024年9月12日
The finger pad is made from silicone rubber. pic.twitter.com/D58D5cmvR7
1kgの把持をテスト
Testing a 1kg payload of my 16DoF robotic hand. A little slip at the beginning but gripping force seems strong enough to hold the bottle. https://t.co/zvcZ9cUbGK pic.twitter.com/omdvipFEEZ
— higrado (@EL2031watson) 2024年9月12日
16DoFの自作ハンドの電流位置制御の性能をテスト
Torque limiting test of my 16DoF robotics hand to handle soft materials. Changed the torque of ring finger and pinky in this case. pic.twitter.com/gcp9zuFZzR
— higrado (@EL2031watson) 2024年9月13日
KiCadで自作ハンド用の簡単なPCBを作成
Designing a simple PCB with KiCad. Feel like someone already designed this kind of simple PCB but I couldn't find same one so have to make it by myself. Using prototyping board would be ok for a trial but soldering takes lots of time and tiring. pic.twitter.com/xG3wZnZ0NA
— higrado (@EL2031watson) 2024年9月25日
The simple PCB I designed last week arrived. https://t.co/fdCDXYvloZ pic.twitter.com/zZn0YeDsmH
— higrado (@EL2031watson) 2024年10月1日
10月
自作ハンドを操作する外骨格デバイスを作成
Finished making all 16DoF of DIY input hardware for my robotic hand. pic.twitter.com/8Vpbw8gdeD
— higrado (@EL2031watson) 2024年9月30日
Showing the inverse kinematics solution for actual finger angles using my DIY 16DoF input hardware for my robotic hand. Calibration is challenging, especially for the thumb. pic.twitter.com/NfzLr80MGX
— higrado (@EL2031watson) 2024年10月12日
自作ハンドのデバッグ用にOSSのハンド模型を印刷
It is tiring to put on and take off my hand tracking device every time. I found a poseable hand that could be a good tool for debugging.
— higrado (@EL2031watson) 2024年10月17日
It has 20 DoF which is almost same with an actual human hand.
3D print based on Make-A-Print's work. CC BY-NC 4.0.https://t.co/vs5pdvyrC6 pic.twitter.com/q6i7U6Vyhk
RollerCAN、RollerCANLiteを入手
RollerCAN and RollerCAN Lite arrived.
— higrado (@EL2031watson) 2024年10月29日
Looks smaller than I imagined. pic.twitter.com/6HT3WsOZ9L
11月
GoPro Hero 13を購入、400fps撮影をテスト
Testing high framerate video mode with GoPro HERO 13
— higrado (@EL2031watson) 2024年11月3日
(Both videos are 1/10 of normal speed)
(Left): 400fps Burst Slo-Mo Mode
(Right): 240fps normal Video Mode (cropped to 1080x1920)
400fps Burst Slo-Mo Mode looks really clear but it can only record for up to 15 seconds. pic.twitter.com/t9DPzzrI8N
自作16DoFハンドと外骨格デバイスを接続、リーダーフォロワー動作のテスト
Testing the leader-follower application between my DIY hand tracking device and my DIY 16-DoF hand. It’s currently very slow and doesn’t include the thumb, but it looks a good start. pic.twitter.com/KF3CdsetaF
— higrado (@EL2031watson) 2024年11月4日
12月
第2回OpenArm勉強会で16DoFハンドと外骨格デバイスを展示
今日は自作16DoFロボットハンドおよび操作装置を持って第2回OpenArm勉強会に行きます。 pic.twitter.com/nQFcC9PvEV
— higrado (@EL2031watson) 2024年12月5日
BlackFridayのセールで購入したSpaceMouse Wireless Kit 2を開封
総括
- 例年とは違い今年のガジェット支出はアクチュエータがメインとなった
- アクチェータの低価格化が一気に進み手が出しやすくなった
- いつかやりたいと思っていた自作多関節アームロボットを作ることができて満足
- 自作ハンドもいつかやりたいとは思っていたので今年ある程度できたのは大きな進歩
- 自作ハンドは強度・操作性等課題が多く来年もアップデートをしていきたい
- 自作Lite 6用リーダーフォロワーシステムをGELLOへコミット出来て一定のユーザーに問い合わせ等もらい手ごたえを感じた
2023年の振り返り
1月
OAK-D ProとFEMTOのポイントクラウドの比較動画を作成
OAK-D ProとFEMTOというデプスセンサーを買ったので、OKA-D LiteやRealSense, Azure Kinectなどと合わせてポイントクラウドの比較動画を作りました。ちなみにZED Miniで深層学習ベースの深度推定モードと思われるNeural Modeもついでに試しました。https://t.co/RJRFETc7jm pic.twitter.com/c0abnoRo9L
— higrado (@EL2031watson) 2023年1月2日
詳細3次元点群処理を読み終える
詳細3次元点群処理を一通り読み終えた。点群処理はほとんど勉強したことがなかったので、一回読むくらいではとても消化しきれないほどの情報量だった。個人的には最近傍探索に使うkd-treeが一番印象に残った。
— higrado (@EL2031watson) 2023年1月6日
色々使えそうな情報が多かったから今後何か作る際に実践して身につけていきたい。 pic.twitter.com/h3luyD75OL
OpenParallelGripperのプロモーション用動画を作成
自作していた平行グリッパーの紹介ムービーをYouTubeで公開しました。
— higrado (@EL2031watson) 2023年1月8日
Kickstarterでよくみられる見るだけで欲しくなり次の瞬間にはバックしている魔法のようなプロモーションビデオは作れませんでしたが、最低限はまとめられたかなと思います。https://t.co/VdkDdUHJrm
ML-Agentsで深層強化学習にトライ。Google論文にあるタスク複数について成功
ML-Agentsで、Googleの論文に出てた白い円柱を動かして赤と緑ブロックの仕分けタスクを強化学習。
— higrado (@EL2031watson) 2023年1月11日
動画下のように斜め上からのRGB画像と円柱の座標のみから行動を生成。
序盤は模倣学習でデモを真似させ段々自動で最適化される。RTX3090を1枚使い6並列で約1日学習の結果。中々上手く出来て驚き。 pic.twitter.com/N0F9suiZxw
ML-Agentsで強化学習使った赤・緑ブロックの仕分けタスク、さらに12時間ぐらい学習させたら少し効率が上がった。このレベルだとキーボードでやる自分のデモだとほぼ正確さとスピードでかなわない。そろそろさらに高難易度のタスクに移行しよう。 pic.twitter.com/Dq43eO7crc
— higrado (@EL2031watson) 2023年1月12日
ML-AgentsでGoogle論文の(c)のタスクに挑戦しているがなかなか学習が進まない。黄色いブロックを「コ」の字の部分に入れるタスクだが、角に引っかかりやすく、細かい調整が必要でなかなか報酬にありつけない。最初に試した2色のブロックを仕分けるタスクよりはるかに難易度が高い。 https://t.co/4KYs8X1RwQ pic.twitter.com/20p7NGgSUa
— higrado (@EL2031watson) 2023年1月13日
ブロック挿入タスク、報酬のバグを直したら遂にかなりの確率でブロックを「コ」の字の部分に入れることができるようになった。
— higrado (@EL2031watson) 2023年1月14日
タスク成功には結構正確な円柱操作が必要だが、エージェントは下の様な斜めから見た128x128画像と位置座標のみでタスクをこなしている。強化学習の凄さを実感。 https://t.co/IPSdjR1MVU pic.twitter.com/5EdTh1Zpvv
ML-Agentsで試していたブロック挿入タスク、カメラの位置・角度・FOVと照明をランダム化して(入力画像は下側)さらに45時間ぐらい学習してタスクの成功率が95.2%(476/500)になった。
— higrado (@EL2031watson) 2023年1月19日
カメラの厳密な取付が不要というのを現実のカメラ・ロボットのシステムで適用出来たらありがたそう。 pic.twitter.com/vlah0g3Ubh
自作グリッパーをUR3に対応させる実験
自作平行グリッパー、UFACTORY Lite 6やxArmに続き、Universal RobotsのUR3でもTool I/O経由で開閉できた。手持ちのCBシリーズではRS485の線が手先に来てないようで、開閉ぐらいしか指示出来なさそうだが、e-seriesならRS485が手先のコネクタ経由で使えるので、開閉ストロークを細かく指示できそう。 pic.twitter.com/gxlEKSZnVh
— higrado (@EL2031watson) 2023年1月31日
2月
Unity ML-Agents実践ゲームプログラミングを読み終える
Unity ML-Agents実践ゲームプログラミングを一通り読み終えた。
— higrado (@EL2031watson) 2023年2月5日
4年前に初期版も買っていたが、利用先が思い付かず途中で放置してた。
今回は強化学習で手軽にロボット動かす実験したいと思い新版(v2.2対応版)を購入。
今回は電子版。ML-Agents自体も改良され使い易くなった印象を受けた。 pic.twitter.com/0vmXmYVKMO
やや出遅れたがChatGPTを試し、その性能の高さに感動する
ChatGPT遅れたが試した。簡単なGUIツールとか素早く作れて便利。
— higrado (@EL2031watson) 2023年2月11日
これは試しに作ってもらったPythonでフォルダ内の画像を一括で指定サイズに変換してくれるアプリ。要件が適切に指示できてない時等は何回か修正を指示する必要があるが、十分使える。VBAとかWebアプリも行けたので活用範囲は広そう。 pic.twitter.com/KHsNbYZ0xe
ML-Agentsで黄・青球入り容器から青を取り出すタスクを深層強化学習で行う
黄・青球入り容器から青を取り出すタスクの深層強化学習、3週間ぐらい試行錯誤して多少拾えるようになった。成功率75%程度。
— higrado (@EL2031watson) 2023年2月19日
入力はスプーンのx,y,z,rx,ry,rzとRGB画像(下)の直近6フレーム分で、出力はスプーンの次の変位という構成。貫通とか問題設定にも難ありだったが、学習も高難易度。 pic.twitter.com/nsWBfG0oMi
3月
WhisperとGPT-3.5のAPIとVOICEVOXを組み合わせて音声会話できるエージェントを実装して遊ぶ
流行に乗ってWhisper+ ChatGPT+VOICEVOX
— higrado (@EL2031watson) 2023年3月5日
でChatGPT同士に「産業用ロボットを使った遊びの提案」という題で議論してもらった。「お菓子のつかみ取りゲーム」を提案された。反射神経が要求されるゲームらしく、なかなか難しそうだが、アイデアの発掘に使えそう。https://t.co/60HXuWKvGo pic.twitter.com/GGoEjr2xdA
4年ほど使用していたCLOVA Friendsがサービス終了で使用できなくなった
朝起きてCLOVA Friendsが使えなくなっていた。昨日までに必要なBluetoothスピーカーとしての設定を忘れてたから、もう使え無さそう。分解するか。
— higrado (@EL2031watson) 2023年3月30日
2018年末あたりから使い始めて4年。
今ならWhisper+ChatGPTのAPIで自作スマートスピーカーは作れそう。4年前と比べて時代の変化を感じる。 pic.twitter.com/mK0E1VEw0j
4月
DOBOT MG400を入手
DOBOT MG400をついに入手。
— higrado (@EL2031watson) 2023年4月23日
リーチ440mmペイロード750g、4自由度。
DOBOT Magicianと迷ったけどリーチ、高速移動時の安定感等でMG400が良さそうだったので選択。
Lite 6と比べて先端が下向きしか向けられないが、重心が1軸付近かつ手先が軽いので素早く動かした時もあまり怖さがないのがよい。 pic.twitter.com/AiEUtkJMmA
5月
OpenParallelGripperを改良し、Dynamixel XL-330を採用と共に薄型・軽量化を行う
LITE 6につける自作グリッパーのサーボをDynamixelに交換するついでに薄型版も作成。掴む方向と垂直な向きの厚みが57mmから41mmに減少、重量もCNC部品点数を減らす方向に改良し250g以下に出来そう。小型化でDOBOT MG400への取付も視野に。
— higrado (@EL2031watson) 2023年5月8日
ストロークは少し減って現在は40mm程度。伸ばすことは可能。 pic.twitter.com/bhAlc5WcPF
Kickstarterで低価格7軸ロボットのLucid ONEをバック
1年前ぐらいに届いた7軸ロボAmber B1の小型廉価版Lucid ONEおよびPro版がKickstarter に出ていたので安い無印の方をバックした。
— higrado (@EL2031watson) 2023年5月10日
現在はリーチ443mmの7軸が1199ドル。ハーモニックと自社製のサイクロイド減速機のハイブリッドでコスト下げているようだ。https://t.co/EcFjy1CRMK
7月
OpenParallelGripperの内部で使用するボードをOpenRB-150に変更し内部がシンプルになった
自作グリッパー結局Atom LiteやめてOpenRB-150に変えたから、RS485→UART変換ユニットとOpenRB-150にDynamixelサーボを繋ぐだけのシンプルな構成になった。電流制御で把持力をうまく調整できるサーボなのは有り難い。
— higrado (@EL2031watson) 2023年7月11日
Pick and placeのデモ:https://t.co/RLoCLkX5lI pic.twitter.com/O9p1nTI1Cm
8月
PyBulletに入門し、UFACTORY Lite 6の動作をシミュレーションした
PyBullet入門したので、試しにLite 6で正方形のパスをなぞらせてみた。
— higrado (@EL2031watson) 2023年8月20日
上部の移動時、特異姿勢に近いのでパスがなぞれなかった。実機だとジョイント速度が高くなったことによる異常停止が起きそう。結局こういうパスにならないようにロボットを使うか速度を落とすしか解決策はないのかな。 pic.twitter.com/5dMMlZASpz
逆運動学解法のSR-Inverseを自分で実装しPyBulletでシミュレーションに使用し理解を深める
PyBulletのLite 6の逆運動学のテスト、特異点付近でパスが外れてしまっていたので、紹介いただいたSR-inverseという逆運動学プログラムを実装してPyBulletの標準のIKと比較した。SR-inverseの方が滑らかに、しかもパスをより正確に描けている。 pic.twitter.com/iPlOGvdWzI
— higrado (@EL2031watson) 2023年8月21日
PyBullet上でKUKA LBR iiwaの動作シミュレーションを試す
PyBulletでKUKA LBR iiwaのシミュレーションでうまくパスを追従しなかった問題、単に速度が速すぎただけかもしれない。ゆっくりにしたら綺麗にパスに追従してくれた。
— higrado (@EL2031watson) 2023年8月27日
あと四角形の頂点は丸めないと加減速がロボットには厳しいかも。 pic.twitter.com/hfM7WN9SEk
PyBullet上のシミュレーション動作とUFACTORY Lite 6実機を同時に動かす
Lite 6のPyBulletシミュレーションと実機を自前実装のIKで同時に動かせた。 pic.twitter.com/EsCAbJ9vtW
— higrado (@EL2031watson) 2023年8月30日
Lite 6の4軸目と6軸目が平行になったいわゆるWrist Singularityの状態で本来は力が出せない方向に動作指示しても少しの経路乖離でなんとか動かせた。どうしても方向変更時のジョイントのスピードは上がってしまうが、パラメータ調整しても結局経路乖離の度合いとのトレードオフになりそうだった。 pic.twitter.com/nQ8ph0qEGu
— higrado (@EL2031watson) 2023年8月31日
9月
雲行きが怪しいと噂されたFranka Emikaのシミュレーションをなんとなく試す
Franka Emikaの雲行きが怪しくなっているが、とりあえずPyBulletに出してみた。
— higrado (@EL2031watson) 2023年9月3日
xArmと同じで5軸目と7軸目が一致しないようになっていてWrist Singularityを気にする必要がなくて扱いやすいからなのか、各軸にトルクセンサー搭載なのがいいのか理由はよくわかっていないが、論文でよく見るロボット。 pic.twitter.com/4s0MhfuVhR
RealSense T265でUFACTORY Lite 6のTCPをシミュレーション上及び実機で操作する
RealSense T265を使ってPuBullet上でLite 6のTCPを操作するテスト。pyrealsenseの最新版ではT265が認識されなくなっていて先行き不安。USB差しただけでトラッキングできる気楽さは良い。未発売のViveの新型トラッカーがPCと直接通信可なら良いが、現状T265が6DoFトラッカーとしては一番手軽か。 pic.twitter.com/SGKj02UUSZ
— higrado (@EL2031watson) 2023年9月8日
RealSense T265でUFACTORY Lite 6を操作する実機版のテストも成功。
— higrado (@EL2031watson) 2023年9月8日
最後の方で、手首特異姿勢付近で4軸が大きく動いてしまった。IKは色々調整して特異姿勢付近の挙動はだいぶ安定したと思ってたが現実はなかなか厳しかった。やっぱxArmみたいな手首特異姿勢を気にしなくていいアームの方が気が楽だ。 pic.twitter.com/eG1UOwrCWg
RealSenseのRGB画像とロボットの姿勢から模倣学習でスプーンで緑の豆のみを拾うタスクを学習させる
RealSenseのRGB画像とロボットの姿勢から模倣学習でスプーンで緑の豆のみを拾うタスクを学習させてみた。ランダムに拾っているようにも見えるが、緑を拾うと反応が変わる気がした。1視点画像ではきついタスクかも。モデルは以下の論文参考に、流行りのTransformerを使用。https://t.co/5sI9CPVZvw pic.twitter.com/EqXJ693CXV
— higrado (@EL2031watson) 2023年9月25日

自前実装のPythonの逆運動学コードが遅いのでChatGPTを使ってC++に移植し、爆速になった
自前実装のPythonの逆運動学の計算に10ms~程度かかっていてやや長いなと思い、逆運動学部分だけC++に書き換えてpythonから呼び出す方式にしたら1msと爆速になった。ChatGPTで気軽にC++へ書き替え出来て助かる。
— higrado (@EL2031watson) 2023年9月28日
10月
Meta Quest 3を購入
最近VRとかMRからは遠ざかってたが、Meta Quest 3を購入。最後に買ったのは初代Oculus Questだったので進化をだいぶ感じた。パススルー使ってHoloLens見たいに現実空間上でメニュー操作するUIが日常使いには良さそう。あと今更かもしれないが、両手組んでもハンドトラッキング破綻しないのに感動。 pic.twitter.com/He84AzyUJ2
— higrado (@EL2031watson) 2023年10月15日
11月
OpenParallelGripperのXL-330版を公開
Lite 6などの小ペイロードのアームロボ用グリッパーOpenParallelGripperのアップデートをしました。
— higrado (@EL2031watson) 2023年11月4日
新版では柔らかい物体でも掴めるように電流制御対応のDynamixel XL330-M288-Tを採用しました。剛性は犠牲になりますが、3Dプリント部品を増やし薄型化・軽量化を進めました。https://t.co/kbv3em5g4M pic.twitter.com/vLsiOIRZ00
Bambu Lab X1-Carbon Comboを購入
3Dプリンタ結局Bambu Lab X1-Carbon Comboを購入。ただ初期不良を引いてしまったようで、初期設定付近でディスプレイが付かなくなる。中の基板交換品を送ってもらって自分で交換予定。
— higrado (@EL2031watson) 2023年11月10日
20万超えのプリンタを自分で修理するのはやや緊張するが新品交換だと向こうの検品後に新品発送らしく時間がかかる。 pic.twitter.com/uJObtuD1LJ
Bambu LabのX1Cがついに稼働開始。初期不良は基板交換で治った。取り敢えずBenchyを印刷。かなり印刷は早いが、音はうるさい。少し速度落とそうかなと思った。
— higrado (@EL2031watson) 2023年11月14日
完成品のクオリティは前使ってたものよりも遥かに良さそう。AMS非対応らしいがTPUを試したい。 pic.twitter.com/wEGzP9oDeL
前から気になっていたOSSの4指ハンドLEAP Handを作成
公開後から気になってたDynamixel を16個使った4手ハンドのLEAP Hand を作成。XC330を使用した通常版は高いのでXL330使用したLite版にした。
— higrado (@EL2031watson) 2023年11月17日
結構大きい。重量的にUFACTORY Lite 6には付けられなさそう。
(Kenneth Shaw, Ananye Agarwal, Deepak Pathak, BY-NC-SA 4.0)https://t.co/OsFF6V98o2 pic.twitter.com/pTKU0lmgFM
ソフトグリッパーをOpenParallelGripperに取り付けて実験
自作グリッパー先端にTPUで作ったソフトグリッパー爪を搭載してみた。特に何も考えずにフィーリングで設計したが、少し内側に曲がってくれた。このグリッパー爪はFESTO社のHPでFin Ray Effectで登録商標のマークついているが、構造自体は特許化されてないのか気になる。 pic.twitter.com/GGmIXRfTUP
— higrado (@EL2031watson) 2023年11月21日
第42回ロボティクス勉強会で「RealSense T265とD415とUFACTORY Lite 6で模倣学習の実験」というタイトルで発表
本日の第42回ロボティクス勉強会の資料はこちらです。
— higrado (@EL2031watson) 2023年11月24日
発表タイトルは「RealSense T265とD415とUFACTORY Lite 6で模倣学習の実験」でした。https://t.co/glrfe4KO65
SUNLUのフィラメントドライヤーFila Dryer S2を購入
https://x.com/EL2031watson/status/1729841895973470270?s=20
SUNLUのフィラメントドライヤー Fila Dryer S2を購入。TPUとかカーボン配合フィラメントとかの印刷成功率を高められるに違いない。Kickstarterで次世代バージョンのS4が先月まで受付してたみたいだが、サイズが大きくなってるのと消費電力がかなり高くなっていたのでS2でいいかなと思った。 pic.twitter.com/NDPXUSvdj3
— higrado (@EL2031watson) 2023年11月26日
Dynamixelをリーダー、Lite 6をフォロワーとするリーダーフォロワーシステㇺを自作
Dynamixelをジョイントの角度指示用のセンサーとして使用したリーダーフォロワーシステムが出来た。
— higrado (@EL2031watson) 2023年11月29日
既にGELLOという同じ仕組みのものがあるが、UFACTORY Lite 6用のものが無かったので自作。T265と違って特異姿勢をあまり気にしなくていいので気楽に模倣学習データ収集に使える。 pic.twitter.com/TkuevWDIBj
12月
Jetson Orin Nanoを購入
iREX2023見てきた。大体全部見れたと思うがやっぱりいつも見て回ると面白い。
— higrado (@EL2031watson) 2023年12月1日
以前AliExpressで見かけた謎のロボットとかアクチュエータの会社が結構出てて驚いた。
そしてNVIDIAのブースでJETSON ORIN NANOを買ってしまった。
以前も同じようにJETSONをイベント会場で衝動買いした気がする。 pic.twitter.com/DgjAXUGPUj
自作リーダーフォロワーシステムのグリッパーも連動させて、色々なタスクを試す
DynamixelとLite 6のリーダーフォロワーシステム、グリッパーの連動も無事うまく行った。公式のグリッパーは開閉の2値のみだが、自作版はModbus RTUでグリッパーの開閉の中間値を細かく扱える。ソフトグリッパーだと衝突が恐怖にならず気楽。iREXにインスパイアされてボルトのピックアンドプレイス。 pic.twitter.com/jvyTW3xIIW
— higrado (@EL2031watson) 2023年12月2日
自作グリッパーの先端をソフトグリッパーにしたバージョンで将棋の駒の成りが出来た。
— higrado (@EL2031watson) 2023年12月3日
ボルトもそうだったが、結構色々掴めて面白い。 pic.twitter.com/KYMhCOOtwP
同じグリッパーでトランプと100円玉もひっくり返せる。トランプは机との間にわずかに隙間ないときついが、中々汎用性ありそう。
— higrado (@EL2031watson) 2023年12月3日
グリッパーのOpen-Closeの中間を細かく扱えるとこういう難易度の比較的高そうなものもひっくり返せておもろしい。 pic.twitter.com/QCvHyGcnMs
ロボットアームに自作グリッパーつけて狭くて硬い箱の中に乱雑に入ってる木製の将棋の駒の取り出し、雑だけどソフトグリッパーで結構うまくいく。操作側の指の向きをグリッパーと合わせて、指で掴んでいる感覚に近づけて操作性を高めた。 pic.twitter.com/YJJEHtgQwJ
— higrado (@EL2031watson) 2023年12月4日
PLA-CFを使用してグリッパー爪を印刷
Bambu LabのX1C買った時についてきたPLA-CFでグリッパーの爪を印刷してみたが、中々綺麗な仕上がり。エンプラ系フィラメント他のも試してみたくなる。 pic.twitter.com/i9sbTqRXP4
— higrado (@EL2031watson) 2023年12月6日
PLA-CFで金属パーツを置き換えて40mmストローク版のLite 6用の自作グリッパーは200gに迫る勢い。
— higrado (@EL2031watson) 2023年12月6日
そしてとっくの昔にLite 6公式のグリッパー295gよりはるかに軽くなっていた。 https://t.co/hzan2cFt9h pic.twitter.com/FIrklx5pYY
リーダーフォロワーシステムを双腕化
Lite 6の双腕構成のリーダーフォロワーシステムで箱の中の包装されたチョコレートを、箱から出し、包装からも取り出すことに成功。5分以上かかった。アームロボットとグリッパーは想定通りの動作だが、爪の摩擦が低いせいか滑ってしまい時間がかかった。
— higrado (@EL2031watson) 2023年12月13日
動画は10倍速。(1倍速動画はYouTubeを参照) pic.twitter.com/4nklgoFOr3
Lite 6と自作グリッパーの双腕構成でスライダー付き袋の開封になんとか成功。
— higrado (@EL2031watson) 2023年12月15日
硬い部分がほとんどない中でスライダーを動かすのがかなり難しい。あとそもそもテーブルに置いてある袋を掴んで開ける体制に持っていくまでもなかなか苦労する。 pic.twitter.com/jWmdxskCGY
双腕ロボットハンドの操作、爪を改良して摩擦が結構効くようになった。
— higrado (@EL2031watson) 2023年12月17日
Amazon で買ったボルトセットの箱を開けて、M6ボルトを取り出すデモ。
65mmストロークではそのまま箱を掴めず、傾けないと箱が掴めない。そして青色のロックも狭い空間に少し力を加えないと開けることが出来ず面倒なタスク。 pic.twitter.com/8GnSNhVQ9N
双腕ロボット操作でトランプのカードを1枚箱から取り出し。改造したグリッパー爪のおかげで指先が滑りづらくなったから、比較的簡単にできるようになった。
— higrado (@EL2031watson) 2023年12月17日
しかし65mmストロークのグリッパーだと意外と幅が足りなくてそのまま掴めないものが多く、わざわざ回転させたり工夫が必要。 pic.twitter.com/aaYd4P4jEJ
ルービックキューブを双腕ロボットで回す。
— higrado (@EL2031watson) 2023年12月23日
ソフトグリッパーだと結構落とすので、PA6-CFで作った爪に滑り止め付けた構成。しかし55mmのキューブだと5mm-10mm程度しか余裕がない。
ROBOTIQの2F-85がよく論文で使われる理由はストローク85mmが結構現実世界で多くのものを掴めるという理由もありそう。 pic.twitter.com/SwrQ9tPiIE
東明テックの食品乾燥機プチマレンギminiが80℃まで出せてフィラメント2つ入れられることを発見しフィラメントドライヤーとして購入
フィラメントドライヤー、SUNLU S2を買ったがPA6-CFとかカーボン配合系フィラメントが80℃で8時間の乾燥が推奨と書いてあるので80℃出せるもの探した。
— higrado (@EL2031watson) 2023年12月19日
東明テックのプチマレンギminiが35-80℃で24時間まで乾燥できて、サイズがちょうどフィラメント二つ分だから購入。無駄がなく丁度よさそう。 pic.twitter.com/yyd5tRMbJn
PA6-CFの印刷にチャレンジ
X1CでPA6-CFのプリントにチャレンジ。
— higrado (@EL2031watson) 2023年12月20日
食品乾燥機で80℃で10時間乾燥させて印刷。
1枚目の左がPA6-CFで右はPLA-CF。
PA6-CFの方が黒が薄い気がする。強度は触った限り差を感じなかった。
2枚目は自作グリッパーの材料の一部をPA6-CFでプリントしたもの。密度はPLAより低く軽量化が期待できそう。 pic.twitter.com/UM87aOiX0U
リーダーフォロワーシステムのプログラムを改良及び机を耐荷重200kgのものに差し替えて操作が滑らかになる
双腕ロボシステム、机が揺れるので頑丈なものに交換したがそれでも揺れたので、別の理由を考えてたら単純にDynamixelの通信のbaud rateが57600bpsのままで角度取得する周期が遅くてロボットアームが加減速を繰り返してたのが原因そうだったので1Mbpsまで上げたら滑らかになり振動もかなり減った。 pic.twitter.com/29OHG0PlZC
— higrado (@EL2031watson) 2023年12月25日
双腕ロボットアームのリーダーフォロワーシステムが滑らかに動くようになったところでスライダー付き袋内の豆を皿に移すタスクに再度チャレンジ。
— higrado (@EL2031watson) 2023年12月25日
前より操作が上手くなったというのはあるがまあまあスムーズ。ファスナー開けるより開けた後の袋の口をうまい具合に開くのが難しい。 pic.twitter.com/WAdvAOLGy8
総括
- 相変わらずガジェットにつぎ込んだ。Bambu Lab X1-Carbon Comboは印刷スピード、印刷品質共に大幅に向上し満足。
- ML-Agentsで深層強化学習に入門、自作タスクも学習させることができたが報酬設計の難しさを感じた。
- 多関節ロボットの逆運動学の自前実装を行い、理解が深まった。
- UFACTORY Lite 6をRGB画像を使って動作生成する模倣学習にチャレンジし、ロボット実機を機械学習を使って動かすことができた。Transformerへの理解も深まった。(実装方針に関してはALOHAの論文がかなり参考になった)
- Gelloというリーダーフォロワーシステムの論文を見て面白いアイデアだと思い、UFACTORY Lite 6版を自作するに至った。T265を使ったリーダーフォロワーシステムと比べて特異姿勢に気を使う必要が減り、グリッパーも操作できるようにして利便性が大幅に向上した。
- 突如出てきたGPT-3.5, GPT-4の驚異的な性能に日々世話になった。来年どうなるのか全く想像ができない。OpenAIのAPIを使ったロボット動作生成もそのうち試してみたい。
2022年の振り返り
1月
セールになっていたTipronを購入。
Tipron届いたけどデカすぎて玄関で詰まった… pic.twitter.com/nIhF0uzQ9N
— higrademe (@EL2031watson) 2022年1月7日
長年使っている3DプリンタCR-10Sのマザーボードを取り換え、静音化を実現。
3DプリンタCR-10Sの静音版のマザーボード(V2.2)が届いたので交換したら印刷時にかなり響いていたステッピングモータの稼働音がほぼ消えた。静かなので逆にエラーとかで止まってても気づきづらいかも。
— higrademe (@EL2031watson) 2022年1月8日
動画の音は部屋のファンの音が入っててわかりづらいが本当に聞こえない。これで24時間稼働できる。 pic.twitter.com/ecbI5HJGIB
2月
3月
Kickstarterでバックしていた7軸アームロボAmber B1が到着。
Kickstarterでバックしてた7軸アームロボのAmber B1がついに届いた。
— higrademe (@EL2031watson) 2022年3月8日
茶色の部分は磁石でくっついてるだけで普通に外れた…
動かすまでが結構苦労しそうだから遊ぶのは取り敢えず週末までお預けの予定。 pic.twitter.com/uU4GMpCaEc
7軸アームロボのAmber B1、無事ティーティングモードで動作の記録、再生ができた。固定がやや不安定で台が揺れているが、アームの動作音はかなり静か。
— higrademe (@EL2031watson) 2022年3月12日
現在はWebアプリから操作をしているが、軽くコードを見た感じだとどうやら中身はROS 2で動いているみたいだ。 pic.twitter.com/lXycI8VVDb
RealSense D405を入手。
RealSense D405が届いた。先週注文してから1週間経たずに届いた。かなり早い。 pic.twitter.com/VLf0hn0Nxb
— higrademe (@EL2031watson) 2022年3月23日
4月
ロードセルで遊んだ。
Amazonで買ったロードセルトランスミッターを使ってxArmのコントロールボックスのAnalog Input経由でロードセルにかかる荷重変化を電圧として出力できた。
— higrademe (@EL2031watson) 2022年4月10日
固定台の剛性が低くフルスケール10kgのロードセルにそこまで強い負荷かけられなかったが、0-10V範囲で2Vから3Vへの変動は見れた。 pic.twitter.com/ERKWxWgmwr
5月
ロードセルをxArm先端に取り付け、荷重計測をテストした。
xArm先端にロードセルとアナログ入力への変換基板を固定して荷重計測出来た。
— higrademe (@EL2031watson) 2022年5月31日
材料費は1万円ちょっとで、1軸で十分なら30万超えの6軸センサーは買わなくて済む。
さらにロボット手先の端子で電源供給とアナログ入力ができているので手先がコンパクト。もっともRealSenseのUSBは手先経由では難しいが。 pic.twitter.com/puyRvnFFnb
6月
MakerFaireの出展期限を勘違いし、応募に失敗。
7月
xArmの先端に取り付けたロードセルを使って背中マッサージロボットの試作を行った。
ロボットアーム(xArm)の先端にロードセルを付けてマッサージロボット化しました。負荷かけすぎると異常停止するので強い刺激は出せませんが多少のリラックス効果は得られそうです。
— higrademe (@EL2031watson) 2022年7月1日
YouTubeに解説動画アップしましたので良ければご覧ください。https://t.co/ak2ZPFD8CK pic.twitter.com/TCONCL7sBT
LIPSedge DLを入手
ToF方式のデプスカメラのLIPSedge DLを入手したので試してみたが、L515やAzure Kinectと比べるとやっぱり物足りなさを感じた。
— higrademe (@EL2031watson) 2022年7月13日
L515はディスコンになったし、Azure Kinectはややでかくて重たいので、なんかコンパクトないい競合品がもっと出てほしいところ。 pic.twitter.com/G3R71RJB96
羽田空港近くのai_scapeに行ってきた。
週末ai_scapeに行ってきた。結構面白い体験だった。
— higrademe (@EL2031watson) 2022年7月20日
7軸リーチ902mmのKINOVA Gen3と思われるが、停止時に結構ブレるのがやっぱ細いアームだから剛性がきつめだからなのだと思った。しかしリーチ長いのはいい。
あとこのアーム、ブレーキが非搭載だった気がするのだが、異常停止時の挙動は気になる。 pic.twitter.com/5nDkB3H0cW
CCDIKをUnityで試してみる。
逆運動学の勉強ついでにCCDIKという先端側のジョイント側から順に目標に向きを合わせていくのを繰り返すという単純かつ高速なアルゴリズムのUnity向け実装をみつけたので7軸アームOPTI 7で試してみた。ソース見る限り、実質この20行もない実装でIKが実現できるのはすごい。https://t.co/qHJt5Qh1HS pic.twitter.com/WLFQ9tw7L7
— higrademe (@EL2031watson) 2022年7月31日
8月
CNC加工を始めて海外業者に発注。以後頻繁に使うようになる。
ボール盤しか手元になく、ドーナツ形状みたいな大きな穴のアルミ加工ができなかったので、始めて中国業者に加工を頼んだ。ちなみに用途はアーム先端につけるアダプタ。
— higrademe (@EL2031watson) 2022年8月15日
1週間ぐらいで到着。二つで送料入れて100ドルくらいだが、自分でやる手間、リスク、仕上がり品のクオリティを考えると悪くない。 pic.twitter.com/JsAgorROef
深度カメラ9種類のポイントクラウドの比較動画を公開。
夏休みの自由研究として9個の深度カメラの比較をしました。研究といってもD405, D415, D435, D455, L515, SR305, Azure Kinect, OAK-D-Lite, ZED Miniでポイントクラウドを取得して並べただけですが。https://t.co/7snCtwfTsj pic.twitter.com/f4cdmGIUNl
— higrademe (@EL2031watson) 2022年8月16日
6軸力覚センサーのFT300を入手。Python用のライブラリを作成してpypiで公開。
ロードセルで自作力センサーをやってたけど結局6軸トルクセンサーのFT300を入手した。
— higrademe (@EL2031watson) 2022年8月19日
Pythonでデータ取得するライブラリがGPLのしか無かったので新規にMITライセンスのライブラリを作ってpypiに登録した。ROSではなく直接しかもUR以外で使う人はかなり限られるとは思うが…https://t.co/mhfK5mAu0q pic.twitter.com/EvEZqYs7b5
MetaCatを入手
metaCat頂いたので開封。
— higrademe (@EL2031watson) 2022年8月20日
外見の作りはなかなかリアル。動作はパンチルトと尻尾の3自由度で動きは比較的単純。いいと思ったのは目の表示。かなり生きてる感が出せてると思った。
猫飼ってる知り合い曰くこの猫ロボは不気味らしいが、アレルギーでリアル猫に近づけないからこういうロボは嬉しい。 pic.twitter.com/nDwVblrfpy
サイボーグハンドを組み立てた
「サイボーグハンド」というのを発見して水圧駆動が気になり、買って組み立てた。水を自分で注入して水圧ポンプ作るところも自分で組み立て。
— higrademe (@EL2031watson) 2022年8月21日
水圧のところ出来て動かしてみたがなかなか面白い。
水圧は温度とか難点もあるみたいだが、なんかこれを改造してエンドエフェクターつくれないかな。 pic.twitter.com/oMvEjx4TZL
深度カメラ9種のポイントクラウド比較動画(高難易度な物体の点群比較)を公開。
デプスカメラの比較動画の続編を公開しました。今回はテクスチャーの有無、反射性の物体、黒い物体など、厄介なものに対する各センサーの特性の違いが結構出ています。
— higrademe (@EL2031watson) 2022年8月26日
比較したのはD405, D415, D435, D455, L515, SR305, Azure Kinect, OAK-D-Lite, ZED Miniです。https://t.co/CXG379EVVt pic.twitter.com/1DH6tn6JGz
Stable Diffusionをテスト
流行りのStable Diffusionをテスト。VRAMを15GBぐらい使い、持っててよかったRTX3090。
— higrademe (@EL2031watson) 2022年8月27日
主語側が優先されるようで似た意味の二つで出力が結構変化したが、レイアウトは一部似てて面白い。
"7-axis arm robot is playing table tennis"
"A man is playing table tennis with 7-axis arm robot" pic.twitter.com/WTB1ZeQNdu
9月
Orbbecの深度カメラFEMTOを入手
OrbbecのFEMTOというToFのデプスカメラが届いた。
— higrademe (@EL2031watson) 2022年9月13日
Azure Kinectの小さい版みたいな見た目。接続端子はセンサー側はType-Cが1つだが、ケーブルが2分岐してUSB Type-AをPC側、もう1つのType-Cを電源に繋ぐ必要がある。
注文中のもう1つ別のセンサーが届いたらまた比較動画でも作るかな。 pic.twitter.com/PnzBW5ybjU
27インチ4Kモニターを入手
画面1枚だと少し不便に感じることが多くなったのと、4Kモニター気になってたので、27インチ4Kモニターを購入してデュアル構成にした。
— higrademe (@EL2031watson) 2022年9月19日
モニターサイズが大きくなったのもあるけど、論文とかの文字はたしかにくっきり見えるようになった感じはした。 pic.twitter.com/dgJF6DFYZq
OAK-D Proを入手
OAK-D Proが届いた。Liteと比較すると少し大きい。特に背面のフィンが長くなっている。RealSense D435みたいにドットプロジェクターが搭載されているactive stereo方式。 pic.twitter.com/R81ckaCRqw
— higrademe (@EL2031watson) 2022年9月25日
10月
KickstarterでバックしていたUFACTORY LITE 6を入手。
UFACTORY Lite 6がついに到着。
— higrademe (@EL2031watson) 2022年10月18日
xArm と比較すると小型だが、xArmみたいにしっかりとした作りに見える。
リーチは440mm。
このサイズなら卓上でも色々遊べそう。 pic.twitter.com/IRw20rvF4m
早速UFACTORY Lite 6でドミノを並べるデモをサクッと作った。グリッパーが空気圧ポンプで駆動しているようで音が少し気になるが、とりあえずそれっぽいものができた。https://t.co/6YWVtqGOIA
— higrademe (@EL2031watson) 2022年10月18日
11月
LITE 6用の平行グリッパー作成(バージョン1)。ストロークは50mmと純正のグリッパーの3倍以上を達成。
UFACTORY LITE 6用に平行グリッパーを試作。
— higrademe (@EL2031watson) 2022年11月15日
元からついているグリッパーは16mmストローク幅とやや使いずらいので、
50mmストローク目標で作成。
重量も309gに抑えた。
今はほぼ3Dプリント部品なので限界があるが取り敢えず開閉は出来た。カバーのせいで45mm程度の開閉。
あとは切削部品の到着待ち。 pic.twitter.com/vFEeYQIXDy
DYNAMIXELに入門
取り敢えず念のためDYNAMIXELのサーボ を購入。なかなかお高いが、ドキュメントはかなり充実してそう。
— higrademe (@EL2031watson) 2022年11月23日
ちゃんと調べておけばよかったが、セレーションが20Tっぽいので、既存のパーツが使え無さそうで困った。付属のサーボホーンに適合するようにパーツを作るしかないか。 pic.twitter.com/JLWQ3ZfYo1
REALFORCE を入手
今までキーボード安い物を使ってたけど、REALFORCEについにデビュー。有線・無線両対応。
— higrademe (@EL2031watson) 2022年11月26日
打ち心地よく、キーボードを押す喜びを感じる。
癖で左のtabキーに指を乗せたまま画面見てたりするとキーの反発力が低いせいかたまにtabが連射されてしまうという悩みはあるが、概ね満足。 pic.twitter.com/eYmK1QQN8x
ATOM Liteと拡張モジュールを買い集める
ATOM Liteシリーズを色々と買い集めた。左下の小さいデバイス(24mmx24mmx10mm)が本体のようで他は装備品とか、本体内蔵してるものとか色々。
— higrademe (@EL2031watson) 2022年11月27日
このサイズで装備品を少しつけただけで気軽に色々拡張できるのはなかなか夢が膨らむ。 pic.twitter.com/X6DY4FT1Dr
12月
金属3Dプリントに初トライ。
無事金属プリント品が届いた。素材はステンレス。サーボのセレーションみたいな細かい部分もそれなりに出来ている。
— higrademe (@EL2031watson) 2022年12月1日
ギアのかみ合いがややきつめな感じがした。 pic.twitter.com/jvCVfUmi6Q
LITE 6用の平行グリッパーをアップデート(バージョン2)
UFACTORY LITE 6用グリッパーver2を作成。サーボを軽いのに変え、アームから来るModbusの信号をマイコンで受け付けてサーボ指示を行うようにした。重量は目標の300g未満にはできなかったのがやや残念。
— higrademe (@EL2031watson) 2022年12月14日
このグリッパー使ったPick and placeの試し動画:https://t.co/naO4XW3FqN pic.twitter.com/1xotd7zWhy
ATOM S3を入手
取り敢えず流行り物のATOM S3を入手。
— higrademe (@EL2031watson) 2022年12月28日
サイズは24mm x 24mm x 13mmとやっぱ小さい。 pic.twitter.com/N3Ky0ZN8fs
LITE 6用の平行グリッパーをオープンソースとして公開
UFACTORY LITE 6用に開発していた電動平行グリッパーをオープンソースとして公開しました。
— higrademe (@EL2031watson) 2022年12月30日
設計など色々課題ある点あるかと思いますが、何か気づいたことあれば教えていただけると助かります。https://t.co/kbv3em5NUk pic.twitter.com/4IPDYtYDqi
総括
相変わらずガジェットにつぎ込んだ。今年はAmber B1とUFACTORY LITE 6と2つの新しいアームを入手した。
Amber B1は待望の7軸アームだったが、エンコーダーが絶対位置を把握できない仕様のため、起動ごとにキャリブレーションが必要になり、かつ正確な位置合わせが難しく使い勝手の良くない状態だった。
UFACTORY LITE 6はxArm 6より小型、安価で作りは値段のわりによくできており、SDKもxArmと共通のものが使えてかなり使い勝手がよかった。付属の平行グリッパーのストロークが16mmととても短く、使い勝手が良くなかった。おかげで自分で平行グリッパーを作ろうという意欲がわき、色々な学びがあった。
CNC切削の海外サービスを利用し、比較的安価に金属部品を製造できることがわかった。今後も試作に積極的に利用する予定である。
YouTubeに初めてそれなりに動画編集をした動画をアップロードして、動画編集の大変さを身をもって感じた。しかし比較的反響を得られたのでやった甲斐はあった。
LITE 6用の平行グリッパープロジェクトに今年の最後の時間の多くを投入し、ほぼゼロからロボット用のグリッパーを作成することができた。Modbus-RTUへの理解が深まったり、部品の選定・軽量化・メンテナンス性・組み立てやすさ・取り付けやすさ等様々な設計上の制約を乗り越えてハードウェアを作成する困難さを感じた。
2021年の振り返り
1月
Anycubic Mega Proの運用を開始
セールで買ったAnycubic Mega Proをサブ機として運用を開始。かなり組み立ても簡単で音も小さめで良い。 pic.twitter.com/Eq7lxouKtr
— higrademe (@EL2031watson) 2021年1月1日
第四級アマチュア無線技士試験合格
第一級アマチュア無線技士試験も受けるので、免許の申請は保留。(12月に結局申請)
2月
myCobotのグリッパーを入手
myCobotのグリッパーが届いた。 pic.twitter.com/rOkgOlqfHX
— higrademe (@EL2031watson) 2021年2月12日
3月
RealSense F455とD415を入手。
F455も届いたがこの間安かったからついでに買ったD415も届いた。やっぱF455かなり小さいな。 pic.twitter.com/jeo03jLl2V
— higrademe (@EL2031watson) 2021年3月13日
第一級陸上特殊無線技士試験に合格し、免許証を入手。
第一級陸上特殊無線技士試験に合格して無事に免許証を取得。
— higrademe (@EL2031watson) 2021年3月31日
第二種電気工事士に続き自分の方向性が意味不明になってきたが、持ってると技適の例外申請とかドローン系の仕事に使えるとかメリットもあるのと、そもそも無線の勉強も色々面白かった。 pic.twitter.com/Q8ykXh8jPM
4月
第一級アマチュア無線技士試験不合格。
法規パートが及ばなかった。モールス信号を始めて学び、古いが自分の中では新鮮さを感じた。
週末に第一級アマチュア無線試験受けたので自己採点した。無線工学は合格ライン超えたが、法規で1問分及ばず不合格の公算大。
— higrademe (@EL2031watson) 2021年4月13日
電波法に違反した場合の罰金額が30万円か50万円か等を真面目に暗記しなかったところが敗因。
でも勉強の結果モールス信号が少し分かるようになったので収穫はあった。
KickstarterでBackしていたPetoi Bittleを組み立てた。
Petoi Bittleの組み立てが何とか終わり、動かしてみた。赤外線リモコンで簡単な事前に入ってる動作をさせられる。Steppingというのを押したら予想してた以上に激しく動いた。なんか間違ってる気もするが他は良さそう。 pic.twitter.com/8Hc8hIYBEZ
— higrademe (@EL2031watson) 2021年4月14日
5月
UnityとROSでカメラ画像から深層学習でつかむ対象の姿勢を予測してPick and Placeを行うチュートリアルを試す。
Unity公式のROSでpick and placeするチュートリアル終了。
— higrademe (@EL2031watson) 2021年5月7日
位置・姿勢・光源などをランダム化して得た30000枚の単眼カメラの画像を使って深層学習モデルを作成しCubeの位置・姿勢を推定。推定結果をMoveItに飛ばして、Goalまで運ぶ軌道を生成するというもの。たまに失敗するが、単眼にしてはなかなか。 pic.twitter.com/cBRbe6mLRR
KickstarterでbackしていたLooking Glass Portraitを入手
Looking Glass初代も買ってる人にとってはfirstじゃなくてsecondなのかなw pic.twitter.com/UwqAdiHUzx
— higrademe (@EL2031watson) 2021年5月12日
6月
Unitree Go1が気になったが、予算の問題で購入できず。
Unitree Go1 公式サイト見た感じ頭部4か所、腹部に前後それぞれ2か所、左右にそれぞれ4か所カメラか何かのセンサーらしきものが搭載されている。結構多いな。$2700がセンサー込みの値段ではない気はするが、センサー抜きでも前買った犬ロボと同サイズ同価格でかなり安い。https://t.co/p3V9GUn5f5 https://t.co/Q8rCKFTvbd
— higrademe (@EL2031watson) 2021年6月8日
7月
Maker Faire Tokyo 2021の出展が不可という連絡を受け取る。
来年再挑戦する予定。
Maker Faire Tokyo 2021今年は出展叶わず。今年は有料化したのに変わらず出展希望者多いのか。
— higrademe (@EL2031watson) 2021年7月13日
また来年。
xArm用のSuction Cupを入手
xArm用のSuction Cupがちょうど届いた。吸着カップ3種類を選べて、最大5個まで付けられるようだ。
— higrademe (@EL2031watson) 2021年7月19日
ということで、久々にxArmを部屋に設置。 pic.twitter.com/sQS10XNwQr
ROS 2の本を揃え、勉強をする決意をする。
取り敢えずROS 2の本5冊を揃えた。
— higrademe (@EL2031watson) 2021年7月23日
まだ1冊終わって2冊目始めたところだが…
現段階だと先にROS1やった方がいい気もしてきた。
そしてScamperは多分TurtleBot3よりも高いのだろう…
ROS 2でできるかはさておき、現状アームロボは結局myCobotが一番入門機として安いのかな。 pic.twitter.com/BY6S2DreHN
8月
Kickstarterでbackして入手したxArm 5 をアップデートしてxArm 6にした。
xArm 6をゲット。xArm 5からアップデートした。
— higrademe (@EL2031watson) 2021年8月24日
ということで新しく動くようになった軸を回してみた。 pic.twitter.com/urDRjJo0I3
休日会員だったDMM.make AKIBAが8月で終了ということで最後の加工を行った。
DMM.make AKIBA 休日会員だったので、実質最終日となる日曜に行ってきた。
— higrademe (@EL2031watson) 2021年8月31日
アルミ板が70%オフだったので買い込み、xArmのカメラ取り付け部品無くしたので作った。
ボール盤とバンドソーとCNCフライスが使えなくなるのはきつい。ボール盤は買う予定。バンドソーはうるさいからきつい。CNCはそのうち。 pic.twitter.com/vo7Uqrquzo
9月
OAK-D-LiteをKickstarterでback
OpenCV AI Kit - Liteとりあえず安いから2つバックしたが、もう一つくらいあってもいいかなと思って変更しようとしたらもうSuper Early Birdは無くなっていた。なかなかの人気だ。
— higrademe (@EL2031watson) 2021年9月15日
ROS 2の入門として「ScamperとRaspberry Piで学ぶROS 2プログラミング入門」を読んだ。
ScamperとRaspberry Piで学ぶROS 2プログラミング入門をなんとか終えた。
— higrademe (@EL2031watson) 2021年9月23日
C++でROS 2の基礎が学べるのと、OpenCV使ってwebカメラの画像をpublish,subscribeして処理を加えるところまでが全てC++で書かれてるのが特に良かった。しかしOpenCVをC++で使いこなすのはPythonに比べるとなかなか大変そうだ。 pic.twitter.com/ervMbcSyMC
Mini PupperをKickstarterでback
出遅れましたが、念のためMini Pupperをbackしました。
— higrademe (@EL2031watson) 2021年9月30日
10月
ROS 2(Foxy)でカルタ取りロボットシステムを作る最初のステップとして、RealSense D435の画像、深度からカルタの位置推定・札認識を実装した。
ROS 2とC++の勉強として、RealSenseのRGB画像からカード認識、深度を使い位置・向きを計算してRVizで可視化した。カードを傾けるとカード面の法線が追従してくれる。
— higrademe (@EL2031watson) 2021年10月17日
法線からQuaternionの計算は自前で作ったが、なんかライブラリ化されていないのかな。まあクオータニオンの勉強にはなったけど。 pic.twitter.com/tuOuqxVWs7
UFACTORY Lite 6をKickstarterでback
UFACTORY Lite 6を無事Kickstarterでバック。
— higrademe (@EL2031watson) 2021年10月26日
以前バックした7DoFの方は来てないが、UFACTORYならほぼ間違えなく届くだろうし、安いから取り敢えずバックした。
11月
百人一首カルタ取りロボの音声認識部分もシステムに接続し、「読み上げ音声を認識→該当の札を取る」を自動でできるようになった。
百人一首の読み上げ音声を認識して、並べた札を画像認識で識別してロボットが該当するものを取るところまでできた。
— higrademe (@EL2031watson) 2021年11月19日
これでロボットと人の対戦ができる。一部は上の句読み上げ中に動くから多分私より強い。なお対戦時の安全性は… pic.twitter.com/2uGqxaloBi
12月
ZED Miniを入手
StereolabsのZED Miniを入手。今使っているRealSense D435と比較したいと思い。
— higrademe (@EL2031watson) 2021年12月1日
基本VRヘッドセットにつけることを想定して作られてるようだけど、小さいからアームに付けるのも良さそう。レンズ間の中心が本体中心とずれてるからxArmに取り付けるためのマウントもずらして作らないといけないのかも。 pic.twitter.com/dH3z9Fx8IZ
クオータニオン学習用のおもちゃを試作したがいまいちだった。
クオータニオンの回転を感覚的に試したいと思い任意の軸周りに物体(写真では座標軸)を回転させる物を作ったが微妙だった。空間の干渉を回避しないといけないのがつらい。
— higrademe (@EL2031watson) 2021年12月17日
こういうのはXRで作った方がよさそう。
ちなみにxyz座標の原点をボールジョイントの中心にオフセットしたから座標も変な形。 pic.twitter.com/EOv4o80Kl6
ロボセミで「百人一首カルタ取りロボでROS 2に入門」のタイトルで発表
先ほどロボセミで発表した「百人一首カルタ取りロボでROS 2に入門」のスライドを公開しました。https://t.co/rMQlfPrdmT#robosemi
— higrademe (@EL2031watson) 2021年12月17日
OAK-D-Liteが届く
無事OAK-D-Liteが到着。本体は言うまでもなくパッケージもRealSenseと比べて思ったよりかなり小さく驚いた。まあ本体以外も入ってる箱と比べてもしょうがないかもしれないが。 pic.twitter.com/wGPV0MYVYW
— higrademe (@EL2031watson) 2021年12月29日
総括
- 相変わらずガジェットにつぎ込んだ。特にKickstarter経由の比率が高かった。
- 第一級アマチュア無線技士試験は不合格だったが、陸上特殊無線技士試験に合格して技適の例外申請などで役に立ちそうな期待をもった。
- ROS 2の学習を始め、百人一首カルタ取りロボットシステムを試しに作ってみてROS 2への理解が深まった。
ROS 2 FoxyでRealSense D435の画像をsubscribeする(QoSの設定とPython、C++実装)
RealSenseをROS 2で利用するときに、少しつまずきがあったので、こちらに記録用にまとめておきます。
具体的には以下のrealsense-rosパッケージを使い、realsenseから得られるRGB画像及びDepth画像をImageトピックとしてpublishしたものを、自分でsubscribeするプログラムを 作成しましたが、ROS 2ではQoS(Quality of Service)の設定を適切にしないと画像がうまくsubscribeできないということを知りました。 重要なのはreliability settingをbest_effortに変更することなのですが、これを含めたrealsense画像をsubscribeするシンプルなプログラムをサンプルとして紹介します。
私の場合、普段はPythonを中心に使っていますが、画像などの重ためのデータを扱う際にノード間のデータのやり取りをプロセス内通信にして余計なメモリへのコピーをなくし、パフォーマンス低下を防げるcomponentの利用は現状C++が必須のようなのと、その他のパッケージでもサンプルがC++で記述されているものもありそうなので、念の為PythonとC++の両方の実装を行いました。 なおパッケージ名や関数名などはできるだけ両言語で同じようになるようにしましたが、両言語のパッケージをそれぞれ試される場合は重複を避けるためパッケージ名を変更してください。
Componentに興味のある方はこちらを参考にしてください。 docs.ros.org
事前に以下のサイトの手順に従ってrealsense-rosパッケージをビルドしてください。
また今回つまずきのポイントになったQoSに関する説明はこちらにあります。やり取りすデータに欠損などが発生した際のデータの扱いに関するルールを事前に定義しておける機能と理解しましたが、今回はその中のReliabilityPolicyというものがRELIABLEになっていると、RealSenseの画像データがsubscribeされないという問題が発生したので設定を変更してBEST_EFFORTにしています。
Python実装
パッケージを作成し、image_subscriber.pyを作成する。
$ cd ~/ros2_ws/src $ ros2 pkg create --build-type ament_python realsense_subscriber $ touch ~/ros2_ws/src/realsense_subscriber/src/realsense_subscriber/image_subscriber.py
image_subscriber.py
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import cv2
class RealSenseSubscriber(Node):
def __init__(self):
super().__init__("realsense_subscriber_python")
self.declare_parameter('image_topic_name', '/camera/color/image_raw')
image_topic_name = self.get_parameter('image_topic_name').get_parameter_value().string_value
video_qos = rclpy.qos.QoSProfile(depth=10)
video_qos.reliability = rclpy.qos.QoSReliabilityPolicy.BEST_EFFORT
self.sub_img = self.create_subscription(
Image,
image_topic_name,
self.on_image_subscribed,
video_qos
)
self.sub_img
def on_image_subscribed(self, img):
img_np = CvBridge().imgmsg_to_cv2(img)
img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
cv2.imshow("Image", img_np)
cv2.waitKey(1)
def main(args=None):
try:
rclpy.init(args=args)
rclpy.spin(RealSenseSubscriber())
except KeyboardInterrupt:
pass
rclpy.shutdown()
if __name__ == "__main__":
main()
setup.pyを編集し、entry_pointsにrealsense_subscriberを追記する。
from setuptools import setup
package_name = 'realsense_subscriber'
setup(
name=package_name,
version='0.0.0',
packages=[package_name],
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='root',
maintainer_email='root@todo.todo',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
"realsense_subscriber = realsense_subscriber.image_subscriber:main"
],
},
)
package.xmlを編集し、rclpyとsensor_msgsを追記する。
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>realsense_subscriber</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="root@todo.todo">root</maintainer>
<license>TODO: License declaration</license>
<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>
<export>
<build_type>ament_python</build_type>
<exec_depend>rclpy</exec_depend>
<exec_depend>sensor_msgs</exec_depend>
</export>
</package>
C++実装
パッケージを作成し、image_subscriber.cppを作成する。
$ cd ~/ros2_ws/src $ ros2 pkg create --build-type ament_cmake realsense_subscriber $ touch ~/ros2_ws/src/realsense_subscriber/src/image_subscriber.cpp
image_subscriber.cpp
#include <rclcpp/rclcpp.hpp>
#include <rclcpp/qos.hpp>
#include <sensor_msgs/msg/image.hpp>
#include <cv_bridge/cv_bridge.h>
#include <opencv2/opencv.hpp>
using sensor_msgs::msg::Image;
class RealSenseSubscriber: public rclcpp::Node
{
public:
RealSenseSubscriber(rclcpp::NodeOptions options = rclcpp::NodeOptions());
~RealSenseSubscriber(){}
private:
void onImageSubscribed(Image::SharedPtr img);
rclcpp::Subscription<Image>::SharedPtr sub_img;
std::string image_topic_name;
};
RealSenseSubscriber::RealSenseSubscriber(rclcpp::NodeOptions options) : Node("realsense_subscriber", options)
{
image_topic_name = this->declare_parameter<std::string>("image_topic_name", "/camera/color/image_raw");
rclcpp::QoS video_qos(10);
video_qos.best_effort();
video_qos.durability_volatile();
sub_img = this->create_subscription<Image>(image_topic_name, video_qos, std::bind(&RealSenseSubscriber::onImageSubscribed, this, std::placeholders::_1));
}
void RealSenseSubscriber::onImageSubscribed(Image::SharedPtr img)
{
auto cv_img = cv_bridge::toCvShare(img, img->encoding);
cv::cvtColor(cv_img->image, cv_img->image, cv::COLOR_RGB2BGR);
cv::imshow("Image", cv_img->image);
cv::waitKey(1);
}
int main(int argc, char **argv)
{
rclcpp::init(argc, argv);
rclcpp::spin(std::make_shared<RealSenseSubscriber>());
rclcpp::shutdown();
return 0;
}
CMakeList.txtの記述を追加する。
cmake_minimum_required(VERSION 3.5)
project(realsense_subscriber)
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
set(ROS_LIBS rclcpp;cv_bridge;sensor_msgs)
find_package(ament_cmake REQUIRED)
foreach(lib IN LISTS ROS_LIBS)
find_package(${lib} REQUIRED)
endforeach()
set(target image_subscriber)
add_executable(${target} src/${target}.cpp)
ament_target_dependencies(${target} rclcpp OpenCV cv_bridge sensor_msgs)
install(TARGETS ${target} DESTINATION lib/${PROJECT_NAME})
ament_package()
package.xmlに依存ライブラリとして、rclcppとlibopencv-devを追加する。
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>realsense_subscriber</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="root@todo.todo">root</maintainer>
<license>TODO: License declaration</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>rclcpp</depend>
<depend>libopencv-dev</depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
PythonとC++共通
こちらをコンパイルする。
$ colcon build --symlink-install --packages-select realsense_subscriber $ source install/setup.bash
コンパイル後にまずrealsense-rosパッケージにあるrs_launch.pyを立ち上げます。
$ ros2 launch realsense2_camera rs_launch.py
その後、別のターミナルで作成したノードを実行します。
$ ros2 run realsense_subscriber image_subscriber
正しく実行できれば、ウィンドウが表示され、RealSenseから取得した画像が表示されます。(筆者環境ではDocker使用のため、表示にXephyrを使用していますが、マシンにROS 2を直接インストールしている場合はWindowが新規に表示されると思います)

なおsubscribeするトピック名をパラメータで定義しているので、ノード起動時に引数を指定することでDepth画像を表示したり、別のWebカメラの画像などをpublishするノードを立ててそのtopicを指定すれば、その画像を表示することも可能です。 参考にdepth画像をsubscribeする際の引数の設定がこちらになります。
$ ros2 run realsense_subscriber image_subscriber --ros-args -p image_topic_name:=/camera/depth/image_rect_raw
なおDepth画像のピクセル値はmmで計測された深度情報が入っているので、そのまま表示しても0~255の値の範囲しか通常の画像表示では行えないので、25.5mm程度の距離までしか適切に表示できません。ピクセル値をそれぞれ一定の値で割って(1000など)、0~255の範囲に計測範囲の距離が収まるようにするとわかりやすく画像を表示することができるようになります。
参考
- ScamperとRaspberry Piで学ぶROS2プログラミング入門(オーム社)
- ロボットプログラミングROS2の実装・実践(科学情報出版株式会社)
2020の振り返り
1月
RTX2080搭載のノートPC(PT515-51-A76Y8)を購入。外付けのNVMeSSD経由でUbuntuを起動する。
なかなか起動しなかったRTX2080搭載のノートUbuntu PCがついに起動。
— higrademe (@EL2031watson) 2020年1月23日
自分の自作PCみたいにWindows Ubuntuを同じSSDに入れてデュアルブートしてたらいつの間にかUbuntuが起動しなくなってしまってたので、今回はNVMeのSSDを外付けUSB-C化してそこに入れた。これならWindows Updateでも大丈夫? pic.twitter.com/dZe3aIujtz
2月
xArmにステーキを焼いてもらう芸を仕込む。
xArm芸その1:本物の肉をひっくり返してもらって裏面を焼く。
— higrademe (@EL2031watson) 2020年2月9日
投資額は国産牛390円。 pic.twitter.com/P9tvmjZYnf
xArm芸その2:焼けた肉をお皿に移動。
— higrademe (@EL2031watson) 2020年2月9日
最後が少し惜しかったが、なんとか皿には入ってるからよし。
なお肉の位置がさっきと違うじゃないかというクレームはなしで... pic.twitter.com/PW2k3Imge4
xArmでクッキング。なんか写真が気に入った pic.twitter.com/Z4sYJqnAlL
— higrademe (@EL2031watson) 2020年2月9日
ロボットに調理とかさせる展示等をすることを見越し、食品衛生責任者の講習を受け資格取得。
ロボットに調理とかさせ始めたので念の為、食品衛生責任者の資格を取得。飲食店に一人必要なやつ。6時間の講習で取れる。食中毒など勉強になった。 pic.twitter.com/9H15dASpmk
— higrademe (@EL2031watson) 2020年2月10日
Universal Robots UR3を入手。Maker Faireへの出展きっかけとなる
UR3でピックアンドプレイスが一応できた。
— higrademe (@EL2031watson) 2020年2月19日
下にキューブはめる溝作れば回すこともできるかも。 pic.twitter.com/K1c1de71lU
3月
2d lidarをいくつか買う。
Lidar用の取り外し可能なマウントを作った。取り外しできないと犬用バッグに入らなくなってしまうという前回の教訓を活かして。 pic.twitter.com/msoS3WD2ti
— higrademe (@EL2031watson) 2020年3月4日
2d lidarのA2M6でスキャンしながら某場所を歩き回ってみた結果(x,yの単位はmm)。
— higrademe (@EL2031watson) 2020年3月6日
動いていることがそれっぽくわかる。
そしてさすが所々10m以上のスキャンができている。 pic.twitter.com/y3RSX1e803
Spot Microに障害物回避歩行機能を実装。
単眼カメラから障害物回避するモデルをJetBotを参考に、組み込んでみた。
— higrademe (@EL2031watson) 2020年3月21日
毎周期ごとにカメラから取得した画像から深層学習モデルで障害物有無を判定、障害物ありならその場旋回で回避。モデルは本家に習いAlexNetを200枚ぐらいのアノテーションデータでチューニング。判定は良好だが、駆動に難あり。 pic.twitter.com/CszBxrmay3
Windows MRでUniversal Robotsを遠隔操作する。
Windows MRのコントローラー経由でロボットアームを遠隔操作。
— higrademe (@EL2031watson) 2020年3月22日
取り敢えず少し値をいじっただけだからか、遅延が結構ある。 pic.twitter.com/Sz1VfgKOQq
やはり本家に習い前面にD435をつけられるようにしようと思い、Noseパーツに穴を開ける。縦L字型TypeCケーブルとかでギリギリ収まるかというレベル。 pic.twitter.com/yPk4BxS3nW
— higrademe (@EL2031watson) 2020年3月28日
ちなみにロボットアームの遠隔操作は操作者からVRヘッドセットからみるとこんな感じ。アームが伸び切るあたりで特異点を通っているように思われるが、それ以外は角度を制限してだいぶ安定化させたつもり。最新版にはUSBカメラの映像を見えるようにしたが、画角等の問題で、結局あまり使えなかった。 pic.twitter.com/zkADbBzcdK
— higrademe (@EL2031watson) 2020年3月23日
Spot Microの頭にD435をつける。
d435のRGBと深度それぞれの垂直視野角を可視化して見た。足が伸びると240mmぐらいだったから、その想定。センサー部から373mm水平に離れた地点から深度センサーで地面が検出可能に。中心の水平方向に関しては、深度は200mm以上からで近場が検出できないので、障害物回避はRGBで対応するのが良いか。 pic.twitter.com/XXAlN2krIf
— higrademe (@EL2031watson) 2020年3月28日
D435取り付け用Noseが印刷できたのでつけた。
— higrademe (@EL2031watson) 2020年3月29日
D435が思った以上に目立って不気味な感じが増す。新型iPadみたいに視野角の異なるRGBカメラ2つに加えて深度カメラ(方式はどちらかというとフロントの深度カメラに近いと思うが)という構成になった。ぼかし入れた記念撮影が出来るに違いない。 pic.twitter.com/zo83m4ZCUG
4月
Jetson Xavier NXのModuleが届く。
Jetson Xavier NXが届いた!
— higrademe (@EL2031watson) 2020年4月22日
Jetson Nano(右)との比較。B01ならボードがNXと互換性あるとのことで、サイズは同じ。しかし放熱用のヒートシンクの固定穴位置が異なり、要調達だ。あとMicroSDポートないからm2スロットかUSBにストレージ確保しないといけなさそう。キャリアボード買った方がいいかも。 pic.twitter.com/9QryPXe8gr
5月
Jetson Xavier NX Developer Kitが届く。
Jetson Xavier NX2種類。
— higrademe (@EL2031watson) 2020年5月17日
Xavier NX Developer KitとXavier NX Moduleを載せたNanoのキャリアボード。ボードサイズは同じだが、背面にWiFiのアンテナを埋め込む分DeveloperKitは少し長い。MicroSDカードスロットあるのは非常に助かる。Module版とは違い、Ubuntuマシンなしでセットアップできる。 pic.twitter.com/3xkSgK6ZjG
6月
Realsense L515が届く。
RealSense L515 早速Viewerで確認。なかなか境界がきれい。壁も結構まっすぐ。 pic.twitter.com/tEhLssFrQd
— higrademe (@EL2031watson) 2020年6月14日
Spot Microをブラウザで操作できる用にvue.js+Flaskでコントローラーを簡易Webアプリケーションとして実装。
4足歩行ロボットのコントローラーをWebアプリとして実装し、スマホからJetson上に立てたwebサーバーにアクセスしてコントローラーを取得、操作に成功。肝心の歩行はバランスがおかしくてうまく行ってないが、操作がかなりやりやすくなった。 pic.twitter.com/HLr1wSzgZk
— higrademe (@EL2031watson) 2020年6月15日
驚異の1万円という低価格の二足歩行ロボットPLEN.Dを購入。
PLEN.Dにローラースケート装着。台に傾斜があるのもあるが滑ってる感があって面白い。 pic.twitter.com/wvM8LuaSC8
— higrademe (@EL2031watson) 2020年6月18日
7月
KickstarterでバックしていたxArmのGripperがついに届く。
KickstarterでバックしてたxArmのGripperがアーム本体到着から6ヶ月以上の時を経てついに到着。
— higrademe (@EL2031watson) 2020年7月31日
遅れたお詫びとしてRealSense D435もついてきた。D435が更に増えた... pic.twitter.com/EVOV4GSXOl
書籍「予算1万円でつくる二足歩行ロボット」の通りに二足歩行ロボットを作る。表面実装に初トライ。
二足歩行に成功!
— higrademe (@EL2031watson) 2020年7月18日
背中のバッテリーの重みがあるから少し前に倒した状態を基本姿勢にする必要があった。 pic.twitter.com/2lkgCeBKJY
8月
RealSense D455が届く。
やっとRealSense D455が届いた。結構大きい。
— higrademe (@EL2031watson) 2020年8月28日
ここ2年でRealSenseシリーズが結構増えた。 pic.twitter.com/8hI0Zh2bjP
Spot Microの改良版として自作四足歩行ロボットの足をカーボンで作る。
初めてのCNCフライスによるカーボンの切削。意外とアルミより素直に行けた。粉は最新の注意を払ったが。そしてやっぱ圧倒的に軽い。 pic.twitter.com/1RYhyBoORc
— higrademe (@EL2031watson) 2020年8月1日
自作4足歩行ロボットの太ももの部分をアルミからカーボンに変えて、20gぐらい減らせた。 pic.twitter.com/TNp4kWf5ev
— higrademe (@EL2031watson) 2020年8月2日
9月
dogotix-MIC-01Bを注文。
10月
MakerFaire出展、またその出展内容についてロボティクス勉強会で発表する。
Maker Faire Tokyo無事終わりました。沢山の方にブース見ていただき、ありがとうございます。
— higrademe (@EL2031watson) 2020年10月4日
チーム名もう少しひねったほうが良かった気もしますが名前の通りの展示に一応なったので、これで良かったかなと。 pic.twitter.com/QX3kGvgCiG
Maker Faire Tokyo 2020に自動卓球返球ロボットを出展します。先人が既に数多くいますが、特徴は人間と同じような目線の高さに設置したステレオカメラ、協働ロボットを使っていることです。
— higrademe (@EL2031watson) 2020年9月27日
共同出展者の@chang_ban と本日調整を行いだいぶラリーが続くようになりました。https://t.co/JLTmPT0dnh pic.twitter.com/VQ0xbV50hr
ソフトグリッパーに興味を持ち、3Dプリンターやシリコンゴムで制作する。
2つで挟むとこんな感じか。確かに形状に沿ってうまいこと変形している。 pic.twitter.com/2QXVoA7R6u
— higrademe (@EL2031watson) 2020年10月9日
ソフトロボティクスの例のグリッパー、TPUで直接印刷してたが、今度は型を作ってシリコンゴムを流し込んで作った。かなり柔らかくなって把持面の摩擦力もかなり上がった。ここらへんでそろそろロボットアーム先端につけてものつかめるかを実験してみたいところ。 pic.twitter.com/vChAQqXvox
— higrademe (@EL2031watson) 2020年10月16日
ソフトロボティクスのグリッバー。2つ合わせて紙コップを掴む実験。
— higrademe (@EL2031watson) 2020年10月19日
握りつぶさず掴めた。 pic.twitter.com/ScIrrfYhMR
Pico Flexxを購入して試す。
動画では分かりづらいが、取り敢えず近づいてデプス取れるかの検証。かなり近くまで寄れる。 pic.twitter.com/ivX9xcB2fO
— higrademe (@EL2031watson) 2020年10月16日
Nintedo Switchのマリオカート ライブ ホームサーキット のレースにJetRacerを妨害キャラとして投入し吹っ飛ばす。
NSXを被ったJetRacerを1年ぶりに蘇らせ、マリオカートに妨害キャラとして投入。車高的にゲートを潜れないので、ゲートを避けるように学習させ自動運転。本気で走ったらマリオたちを破壊する可能性あるので、スピードは合わせた。
— higrademe (@EL2031watson) 2020年10月25日
従来は紙コップで進路分かりやすくしていたが、無しでも走れた。 pic.twitter.com/qNFgYLncGe
11月
M8 Lidarを入手する。
世間ではlidar付きスマホが話題ですが、私は3d lidarを入手しました。DHCPサーバーをPCで立ち上げてIPをlidar側に配布しないといけないとか慣れない作業で手こずりましたがなんとか動くことを確認しました。 pic.twitter.com/VjROR4bh7P
— higrademe (@EL2031watson) 2020年11月1日
16Lineの3D Lidarがあきらめきれず、Velodyne Lidar VLP-16-HiResのジャンク品を修理して使用可能にする。
動作不可品として入手したVelodyne VLP-16-HiResを修理してなんと復活!
— higrademe (@EL2031watson) 2020年11月15日
電源周りが何故か切断された状態だったのでDCジャック調達して半田したら普通に起動した。 pic.twitter.com/nMZTcEj8rI
Velodyne Lidar VLP-16を入手する。
Velodyne Lidarで皆さんがよく使っていらっしゃるのはやっぱ垂直角20度のVLP-16-Hi-Resじゃなくて30度のVLP-16ということで、こちらも入手。というかHi-Resが動いたのが予想外だったから図らずもこうなった。
— higrademe (@EL2031watson) 2020年11月16日
なんかロゴ違うけど偽物?3D Lidarだから取りあえずは動けば良し。 pic.twitter.com/JVZ6Ojlc6h
ROSでVLP-16で取った自前スキャンデータを使って3次元のSLAMを試す。
DockerでROS入りUbuntuイメージを量産出来る様になったので、LeGO-LOAMだけでなくてhdl_graph_slam用イメージも作った。
— higrademe (@EL2031watson) 2020年11月24日
性能比較として某コワーキングスペース内をVelodyne VLP-16で取ったデータで比較。
IMU無し。何回か試したがこの地形だとhld_graph_slamが良い。IMUあるとLeGO-LOAMも良くなるか。 pic.twitter.com/o0Fs4erfQQ
12月
myCobotを入手。
myCobotを早速入手。思ったより小さくて軽い。バックに入れて持ち歩けるレベル。本体は848gで6自由度。8.4V-5AのDCで動くみたいなので移動体に乗っけて使うとかできそう。 pic.twitter.com/njTjuFxVQv
— higrademe (@EL2031watson) 2020年12月1日
何らかの先行事例にインスパイアされて、myCobotに茶せん持たせて抹茶をたててもらった。
— higrademe (@EL2031watson) 2020年12月12日
取りあえずかき混ぜはできるが、スピード不足が理由なのか、美味しく見えるとされる泡がほとんど立たなかった。 pic.twitter.com/dAxDgNfkUZ
犬型ロボット dogotix-MIC-01Bが2か月以上の期間を経てついに届く。
その他
自作PCのグラフィックボードをGTX1080 からRTX3090に変更。
- 暖かいが暖房器具としてはもう少しパワーが欲しい。計算資源としてはなかなか。
iPhone XからiPhone 12 Proに機種変更。
総括
- 相変わらず色々ガジェットを買った。
- 給付金を見越して Jetson Xavier NXを2種類購入したが、サイズはJetson Nanoとほぼ同じ割に性能がかなり高く今後もっと活用していきたいと思った。
- CNCフライスでアルミとカーボン切削に挑戦。パラメータの調整がなかなか大変なことを知る。来年余裕あればCNCフライス購入したい。
- MakerFaireに出展。展示の難しさを知ったがかなり面白かった。
- 3D Lidar面白い。もう少し有効活用していきたい。
- 購入した犬ロボは思ったより大きくパワーもあった。試すスペースがなかなかなく、扱いの難しさを感じたが大きな四足歩行ロボットの可能性を感じた。