ロボットアームでカメラの測定を自動化したいメモ

# 背景

https://www.sofica.fi/
https://www.youtube.com/watch?v=vuNijZpYHX4

こんな感じで一眼レフカメラ(レンズ込みで 3~5 kg)によるカラーチャート計測などをロボットアーム :robot: で自動化したいけど, どうすればいいのか(sofica のシステムを買えばとりあえずは解決ですが, 自前で安くできる方法があるなら自前でやりたい), どれくらい費用がかかるのか?　まったくわからない :cry:

なんかロボットアームをラズパイとか Arduino で操作して動かしたり, ディープラーニングでよろしく(精度よく?)動かす〜, みたいな取り組みがあるのは知っている.

## 産業用ロボットアームはどうか?

昨今はロボットアームとかが流行りですので, いろいろ探すと国とか各都道府県の自治体とかの団体がロボットアーム相談とかやっているのがありますので, それ経由で産業用ロボットアームに詳しい人に聞いてみました.

ぼく「ロボットアームでこんな感じでカメラ動かしたいんですが... んーたとえば 1 [um] の精度で調整できるとうれしいかな〜 最近のイメージセンサーは画素数多いんで, 1 画素 1 [um] くらいだから 1 画素(1 [um])ずらして計測みたいな〜 」

産業用ロボットアームおじさん「 :angry: :angry: :angry: :angry: 1 [um] の精度を出せるものは存在しませんよ. そもそも絶対精度と繰り返し精度というものがあって〜　絶対精度は無理だし〜　繰り返し精度だと 50 [um] が出せるのが限界かな〜」

「そもそもその精度になると温度の影響もあるし〜(熱膨張は小学生で習ったよね〜), ちょっとでもロボットアームの位置がずれるだけでも大変なわけでロボットを設置する基礎とかから作らないといけないし〜 (道路とかからの)振動なんてもってのほか！ 本当に精度だしたいならアメリカとかで地下に施設作ってやるレベルだよ〜 最低でも 1000 万円, きちんとやるなら数十億単位の費用がかかるかもね :innocent:)」

「また、その精度までいくとなるとカラーチャート(の壁)が本当に水平(or 垂直)になっている必要もあるよね. その辺どうするの?」

ぼく「 :crying_cat_face: うわああああん〜 (でもカリフォルニアの砂漠に太陽光 + GPU マイニングで稼いでその稼ぎで地下に計測施設つくるっていう手もあるかも? :thinking: ) 」

とりあえず繰り返し精度 0.1 [mm] くらいならまあだせるね, という回答をいただきました.

とはいえ産業用ロボットアームは 700 万円くらいからスタートとかで制御も独自ソフト(?)らしく, ラズパイで python or C++ で数万円くらいでのロボットアームでお手軽高精度ロボットアーム制御だぜ!と思っていた身としてはハードルが高い.

## リニアスケーラー?

XY 軸などであればリニアスケーラー(プロッターみたいな)という手もあります. でも(カメラの)傾きとかも必要なのでやっぱり 3 軸以上は必要になりロボットアームっぽいのがいりそう.

## 民生品系

### Dobot magician

https://www.physical-computing.jp/page/14

20 万円くらい. スライダーなど入れても 30 万円くらい.

ラズパイとかで制御できて, 繰り返し精度 0.1 [mm] でよいのですが, 最大積載量が 500 g なのがネック.

### Franka Emika

Dobot Magician についてツイーヨしたところ, ロボット制御にくわしい Erwin 先生から Franka Emika のリコメンド(と Dynamixel アクチュエータ情報)をいただきました. ありがとうございます.

<blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">Dobot Magician(4 軸ロボットアーム), いい感じなのですが最大積載量が 500g なのがつらい(DSLR カメラを載せたいため). Arduino とかで制御できて 3~5 kg まで積載できる ~30 万円くらいのロボットアームは無いかしら? &gt; <a href="https://t.co/LoQcVFC6h5">https://t.co/LoQcVFC6h5</a></p>&mdash; Syoyo Fujita 🌸  RayWa(Ray and Peace) (@syoyo) <a href="https://twitter.com/syoyo/status/1161601970945138689?ref_src=twsrc%5Etfw">August 14, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

https://www.franka.de/

### Blue

https://wired.jp/2019/05/09/blue-the-robot/

60 万円くらいでいい感じっぽいが, まだまだ製品販売には時間かかるっぽい(あと 2 年くらい?) 

### Dorna arm

https://dorna.ai/

15 万円くらい?

### xArm 6

https://store.ufactory.cc/pages/xarm

繰り返し精度 0.1 [mm] で, 6 軸で最大積載量 5 kg

85 万円くらい.
受注生産? らしく納品は 2 ヶ月くらいかかる模様.

## まとめ

繰り返し精度は 0.1 ~ 0.2 [mm] くらい.

最大積載量 ~500g くらいだと, 10~30 万円でいろいろある.
最大積載量 3 kg くらいだと, 100 万円 ~ 200 万円くらい.
(とりあえず Franka Emika のロボットアームを買えばハズレはない. 今回の要求は十分満たせるでしょう)

Dynamixel で自作する手もある(or OpenManipulator-Pro(120 万円くらい). CG とかで使われている IK の知識とかがやくだつ.

http://www.robotis.us/openmanipulator-pro/

(OpenManipulator とかで Dyanimxel で自作だと, 3D プリンタとかでのフレームの工作精度が影響しそうなきがするがどうかしらん?)

本格的に精度が欲しいなら 1,000 万円以上から

## その他

Raspberry Pi ベアメタルとかで機械制御(低遅延処理)やりたい.
超低遅延でフィードバックしたいとかだとベアメタル必須っぽい.

## TODO

* アメリカの砂漠の広大な土地を手に入れ, 太陽光で GPU クラスタを動かしつつ, その地下で精密測定環境できる施設を建造したい.
* ROS などでのロボット制御の仕組みを学ぶ
* 位置決めなどはレーザー測長器をつかうようですが, これもおたかそうであるが, 中身は光干渉計のようなので, レイトレーシングの知識が役立ちそう
  * 光学による測定と機械学習を組み合わせて, 精度高い処理したい
  * リーマン幾何によるやつも興味あります > Riemannian Motion Policies https://research.nvidia.com/publication/2018-03_Riemannian-Motion-Policies