Autoware/ROSから駆動系への出力方法の検討（車両/台車/モータ）

Autowareの出力結果を使って、実際の車両/台車などを動かしたい。
そのためにいろいろと調べたので、内容をまとめておく。

＜希望の要件＞
* 人(体重60kg)を乗せて、室内(フローリング)を走行したい（秒速10cmくらいでOK）
* Autoware/ROSの動く強力ノートPCからPWM制御
* 左右の2輪を別モーターで駆動させ、軌跡追従の制御ができる
* なるべく安く構築：目安は3万円以内（PCとVelodyne除く）

＜想定する構成要素＞
* モーター
* バッテリー(12V ディープサイクルバッテリー等)
* ヒューズ
* 緊急停止ボタン
* トランジスタ/リレー/モータードライバ
* ラズパイ/GPIO
* PC

初号機：写真
<img width="400" alt="IMG_5047.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/4658629a-6157-d683-0488-dba67fa63bac.jpeg">

# モーターの選定
### ギヤードモーター
https://www.amazon.co.jp/gp/product/B07J4TXTQD/
約3000円。単純な構造で低RPMが実現できる。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/2df995f5-b147-9b3f-a78c-f7b2e3aebb48.jpeg">

### DCモーター
安い。

### ブラシレスDCモーター
ドローンなどにも使われる。制御が難しい。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/12bb9eba-d41f-0c68-03bb-232984f27cd6.jpeg">

### インホイールモーター
車輪まで含んでいるので、組付けがシンプル。人間が乗っても大丈夫。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/b8636bc6-7dc3-6cc1-89dc-45bffb4a2a80.jpeg">


### エンコーダモーター
DCモーターにセンサがついたもの。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/b5c18342-99a1-a284-efae-d6ee56e79466.jpeg">



#車体/ユニットの選定
### 研究用の台車
https://www.vstone.co.jp/products/wheelrobot/index.html
高い。30-50万円程度。
![mecanum_main.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/6e951d99-09e3-67e9-face-fd14e57c1084.jpeg)


https://t-frog.com/products/icart_edu/
85,000円。ちょっと高いし、人が乗れない。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/dd21397b-c55e-4a1e-e6c4-532cd69ffe32.jpeg">

ZMPの。300万円。
https://www.zmp.co.jp/products/tools/robots/powerwheel
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/d2cc8190-726a-83d2-8955-afdfae0167ea.jpeg">


### 電動台車
約7万円。
https://www.monotaro.com/g/04290981/
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/9329643d-a618-a245-49ea-594a333ea5b8.jpeg">


### 電動キックボード用
約5000円。よさげ。ブラシレスDCモーター3相+ホール5線が多い。
https://www.amazon.co.jp/gp/product/B08GY9KY28/
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/99686376-e86c-dad6-7c80-5f72c7a1a01b.jpeg">


### 電動自転車用
約7000円。よさげだが、駆動のためにチェーンを組む必要がある。
https://www.amazon.co.jp/gp/product/B0822QSPPR/
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/d70b4bda-1a0b-e16e-98cf-62ef161a3581.jpeg">


### セニアカー用
ちょっとかさばるのと、配線が不明。
https://page.auctions.yahoo.co.jp/jp/auction/c806479174
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/c773c439-86b9-4946-2835-b993d2fc235d.jpeg">


### 車椅子用
座席まで全部備わっているのはよいが、ちょっとかさばるのと、配線が不明。
https://page.auctions.yahoo.co.jp/jp/auction/k517347800

### AGV用
よさげだが、日本では買うのが難しい。工業用のゴツいものが多い。
https://japanese.alibaba.com/g/agv-driving-wheel.html
http://www.nippo-d.co.jp/solution.php
https://japanese.alibaba.com/product-detail/24v-250w-agv-driving-wheel-robot-motor-500w-automated-guided-vehicle-motor-with-10inch-12inch-8inch-wheel-1600052398495.html
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/295d6664-5905-8515-ef5f-4f21a84acd9c.png">

### ロボット用
耐荷重30kg程度。少し高い。3万円程度。
https://www.robotshop.com/jp/ja/devantech-rd03-24v-robot-drive-system.html

### リアルな車両
https://autonomoustuff.com/products/astuff-automotive

# 制御出力の検討
USB→I2C出力→モータードライバ(PCA9685ボード)→PWM制御
### PCからGPIO出力
https://qiita.com/kotai2003/items/0c96143b7d6e84629d99

### USB接続のモータードライバ
大電流でもいけるタイプもあり。
https://www.switch-science.com/catalog/1061/
https://www.pololu.com/category/94/pololu-simple-motor-controllers

### Arduino利用
https://qiita.com/k-Mata/items/075b0219ba76ff6e0a09

### ラズパイ利用
https://qiita.com/MENDY/items/0089b0f52acf23b7d3f1
http://forestofazumino.web.fc2.com/ros/ros_5th_seminer_nagoya_ppt.pdf
https://www.slideshare.net/mozyanari/rosl-165988072
https://qiita.com/NeK/items/e7e2fcab57705818a46b

# 購入したもの
これを選択。
https://ja.aliexpress.com/item/4000687647392.html
<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/bdaded18-e20f-ea3e-9b19-9aa690d70bfc.jpeg">


# ブラシレスDCモーターの制御
https://www.denshi.club/cookbook/output/motor/bldc/1-9.html
https://www.seeedstudio.com/TB6605-BLDC-Motor-Kit-for-Arduino-p-4024.html
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80263/2e5beb28-f5f6-bf9d-00f4-05bdd4d3c512.jpeg">


# Autowareの制御出力について
twist_cmd.twist.linear.x：目標速度(m/s)
※マイナスの値になることがありますが、Autoware 1.9.1にバック機能は無いため、abs()関数ですべてプラスになるように変換。
twist_cmd.twist.angular.z：目標角速度(rad/s)
※右カーブがマイナスで、左カーブがプラス。

# 安全対策
サージ対策、ヒューズ、緊急停止ボタンなどを入れて、安全を重視した実装を目指す。
分からないことは詳しい人に聞いてみる。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13229643213