Keigan Motorの感想

#Disclaimer
あくまで１日触っただけの個人的感想なのであれです。
#背景

Discovery Hackathon 2019というのに参加した時にKeiganの[KM-1Sの中サイズ](https://keigan-motor.com/km-1s/)を貸していただいたので、比較的新製品らしく触る機会がある人が少なそうなので感想を書いておく。

# Pros
#### すぐ使える
インターフェースがUSB(中にSerial変換が載っているっぽい)、Bluetooth Low Energy、I2Cとそれなりにあって、つなぎやすい。

Keigan Coreというスマホ用アプリで簡単な動作確認が取れるのでデバッグ的にもありがたい。ヴィジュアルプログラミングなあれもできるらしいが、私はCUIじゃないと逆に困惑する人なので評価しようがない。

[Pythonのライブラリ](https://github.com/keigan-motor/pykeigan_motor/tree/master/pykeigan)もあるのですぐプログラムもかける。ROSのノードもあるらしいのでそれもよさそう。

電源もモバイルバッテリーからとれる。5V 2.4Aなのでちょっと強めの子を要求するけど許容範囲。

手でモーター回してティーチングとかいう真似もできるらしい。もっと大きなプロジェクトのモジュールを作るなら便利かも。

#### いろいろついてる
エンコーダとモタドラがついていて位置制御までまとめてやってくれる(!)。

IMUまでついてるのでもはやモーターじゃなくセンサーとして使える。

#### 無限回転任意位置指定サーボ!!
既製品のサーボを買うときに大体悲しい気持ちになるのが、ホビーサーボだと大体無限回転でないか、無限回店でも速度制御しか対応していないパターンである。ダイナミクセルとかのお高めなシリアルサーボでも無限回転の時には速度制御なこともままある。

それに対してKeiganのやつは起動時の角度から任意の量の角度(1回転以上でもよい)で制御できるので車輪やらギアやらをかませるような位置制御のシステムの場合便利。車体を何センチ進ませる、みたいなことを簡単にできる。

単精度浮動小数点数で位置の指令を送っているようなので、あんまり回転が大きくなると誤差があれかもしれないが、インターフェース的にゼロ点を変更できるので、ワークアラウンドは可能な気がする。

トルク制御もできるので優秀。

#### 駆動部の接続が軸じゃなくて面にねじ

大体モーター使うときに困るのが、モーター軸に動かしたいものをどうやってくっつけるかである。えぐれたDカーブほど悲しいものはない。かといってキー溝は金銭的・時間的コストがかかる。

その点、Keiganのモータはとりつけが回転する面に空いた４つの穴にボルトで締める感じなので、がっちりつけれるし、板状のものなら適当に穴を開ければつく。なんかほかにも取り付け方法あるかもしれないけれど試していないのでわからない。

#### ブラシレス
中身がブラシレスらしく、モダンな感じがする。音もブラシレスな感じ。

#### 強そうな見た目
光沢のある黒っていいですよね。動いていないときのモーター本体がほぼ円筒に見えるのもスタイリッシュな気がする。

#Cons
####高い
[一つ前のモデルはスイッチサイエンスで売っている](https://www.switch-science.com/catalog/3961/)のだが４万弱する。まぁ学生が気軽に使える感じではない。研究室ならありうるけど。

やっぱダイナミクセルやマクソンの仲間という感じである。プロトタイプ寄りに振っているところが違うが。

#### 情報量が少ない
筆不精な私がさすがに書こうかなと思う程度には情報量が少ない。担当の人も認める程度にドキュメントが整備されていない。正直ハッカソンで初めて名前を聞いた。

[Pythonのライブラリ](https://github.com/keigan-motor/pykeigan_motor/tree/master/pykeigan)の場合ソースコードがドキュメントである。まぁ、コメントが多いし関数名が良いので大体わかった。バイナリでの通信形式もソースコード見ると大体わかる。プロトタイピング向けなのだが、まだそういう点では障壁が高い。

#### Bluetoothつながりにくい
せっかく無線で使えるのにこれがつらい。BLEの仕様的な問題もありそう。あるいはハッカソンの人口密度高かったから2.4GHz帯が混雑してた？

安定していれば無限回転するパーツにさらに駆動部を付けるとか、配線がつらいのをバッテリーを分散することで解消できるのでうれしいのだけれど、正直信頼性的に本番仕様はつらいところがある。

まぁ、ハッカソンではマイコンを本体に積まずに制御できるので無理くり使ってましたが。

#### 位置指定動作の完了通知がない
細かいことだが、位置を指定して動作させたときに、目標位置に到達したことを簡単に知る方法がない。結局作ったやつは動作が終わりそうな程度の時間待つ感じになったので、動作を滑らかにするのがつらかった。

#### 出力が小さい
今回のハッカソンぐらいのレベルだとそこまで問題ではないし、自分の作ったやつでも問題なかったが、NHK学生ロボコンとかで使う場合はもっと出力があってもいい気がする。USBからとれるのは便利なので、USB PDに対応して60Wとか出るといいなぁと思ったりする。まぁ、60W対応のモバイルバッテリーは高いので、もっと低くてもいいけれど、5V 2.4Aの12Wはもうちょっとあると無理がきいていいなぁと思う。

#### 熱い
大した負荷もかけずに回していたつもりだったのだが、簡単に長時間手で持つのがつらいレベルで熱くなる。まぁ、機体に組み付けてしまえば簡単なのだが、プロトタイピング的には手でもって回すとか機構を組み替えるとかしたいので辛さがある。

#### 大きい
KM-1Uは70mm角とかあってサーボとして使うにはつらい。KM-1Sの中サイズはモータ自体は直径46mmで見た目が円筒形で無駄がないのでいいのだが、モータードライバーが別でそれが大きい。

プロトタイピングは大きい方が楽だという人もいるかもしれないので、異論はありうる。個人的には、小さいほうが何かと無理がきくので良い気がする。同サイズで出力が上がるのでもいいだろうけど。

#### なぜかモタドラとモータのペアが固定
わざわざモタドラとモータがわかれているのだから当然適当に差し替えれるのかと思ったら、モータを変えたら変な動きをして結構戸惑った。どちらかが壊れたらもう片方も交換しないといけないというのは壊れた時の修理や破損原因のデバッグの面で辛いものがある。モータごとの特性がバラバラなのだろうか。それならモータに不揮発性メモリでもつけたらいい気がするが。普通に指し間違えたら異常動作というのは下手すると機構が壊れるのでつらい。

できれば一つのモタドラで複数のモータを制御できるとサイズ的にもよいのだが、電力的に厳しいのだろうか。

#### IMUいる？
もはやセンサーとしても使える、というのは人によってはメリットなのかもしれないが、個人的にはモーターとかいう振動の激しいところにIMUを付けるメリットがよくわからない。モーターを使わないときならIMU付きエンコーダとして使えるが、贅沢すぎる使い方である。ハッカソン的にもさすがにIMUぐらいは自前で持ってたのでいらない気がした。IMUをなくしてコストが下がるならそのほうが嬉しい。IMUをモータの位置制御に使っているとも思えないし。

ターンテーブルの軸とかなら振動も少ないしついでに機体全体のためのIMUとして使えるかもしれない。あるいはロボットアームの関節なら関節の姿勢推定の補助になるのだろうか。エンコーダついているのだからオーバーキルな気がするが。

# 結論
２，３個すぐに使える状態にあったら便利だとは思う。単純なボックスを組み合わせた概念的なCADだけ作るくらいならこれでちょっと大型なり低速低トルクになってでも実証実験をするのは良い考えだと思う。

ロボットにそのまま組み込むには非力すぎるか大きすぎることが多いと思うので、現状だとプロトタイピングだけに使うものになるだろう。もともとそういう用途で、組み込むのもできるとよいというのはまぁ正直贅沢な願いではある。逆に言うと組み込まないなら別のプロジェクトに使いまわせるので、そうやって価格分を回収することになるのだろう。

残念ながら組み込むためのモーターも不足する状況だとプロトタイピング専用にモーターを買う予算は下りないだろうけど......