ROSを使った自動航行ロボットをつくるまでの道のり　　　ー序章　概要ー

# 序章 0.ROSを使ってやりたいこと
　$\huge{ROSを使ってやりたいことは”自動航行”です。}$

  　これを行うには様々な道のりを経て辿り着けると思っています。
　その為、この**”自動航行”**に向けた自作ロボットを作りながら投稿していこうと思います。

##  1.メカ設計したロボット
まずはこんな感じな物をCADで設計しました。とにかく、自動航行の目標が達成出来る様な部品を
それぞれ盛り込んでいます。
![T-shirt3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212663/ec0c956e-8fc2-f3a5-8113-772bfd4a90db.png)

##  2.ハードウェア構成
ハードウェアの構成については以下の様な図で概要を説明します。
![メカナムホイールロボットHW構成1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212663/cb4da8af-9cdd-f8b6-d4ef-64fb65214e37.png)
![メカナムホイールロボットHW構成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212663/71c3f6e1-ea13-96b0-fd1d-22afdc1ebceb.png)


##  3.実践環境
メインPC :　LattePanda Alpha864
CPU　　:　Intel Core m3-7y30
RAM    :　8GB
ROM    :　64GB
OS     :　Ubuntu16.04
ROS環境 ：　kinetic

##  4.購入したもの（必要な物＋使えるモノ）
全てではありませんが購入したものを以下に載せます。

- メインPC:Lattepanda Alpha864(https://www.dfrobot.com/product-1728.html)

- メカナム駆動部：(https://www.aliexpress.com/item/32861578501.html?spm=a2g0s.9042311.0.0.27424c4dCq9CoT)
↑価格は変動するためAliExpressをこまめに見て、安い時を狙えると良さそうです。
- 制御機器：SPRESENSEメインボード(https://www.switch-science.com/catalog/3900/)
　　　　　SPRESENSE拡張ボード(https://www.switch-science.com/catalog/3901/)
         Arduino用CNCシールド拡張ボード(https://www.amazon.co.jp/A4988%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%9C%E3%83%BC%E3%83%89-CNC%E3%82%B7%E3%83%BC%E3%83%AB%E3%83%89%E6%8B%A1%E5%BC%B5%E3%83%9C%E3%83%BC%E3%83%89-Arduino%E7%94%A8-%E5%BD%AB%E5%88%BB%E6%A9%9F-3D%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BF/dp/B07SHS36G3/ref=sr_1_8?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=CNC+Shield&qid=1578203359&s=electronics&sr=1-8) 

- モータドライバ：ステッピングモータドライバモジュール(http://akizukidenshi.com/catalog/g/gK-14791/)

- ジョイスティック：PS4コントローラ(https://online.nojima.co.jp/SIE-CUH-ZCT2J-%E3%80%90PS4%E3%80%91-%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%28DUALSHOCK4%29-%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%EF%BD%A5%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF/4948872414203/1/cd/)
↑これ以外に通常のマウスで操作も可能ですが、メカナムホイールロボットで平行移動を楽しむ場合、アナログステックが2個あるコントローラだと便利です。

- LiDAR:RPLIDAR A1M8(https://www.dfrobot.com/product-1125.html?search=lidar&description=true)

- WEBカメラ：200万画素WEBカメラ 広角120°マイク内蔵(https://www.amazon.co.jp/gp/product/B01LXYHF71/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1)

- LeapMotion:(https://www.amazon.co.jp/%E3%80%90%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E4%BB%A3%E7%90%86%E5%BA%97%E5%93%81%E3%80%91-Leap-Motion-%E5%B0%8F%E5%9E%8B%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC-3D%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/dp/B00GWCATS8)
←数年前安い価格で売っていた際に購入しました

##  5.購入したもの（ROSには関係無いが使ったもの）

- 16chServoモータドライバ：(https://www.amazon.co.jp/HiLetgo-PCA9685-16%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB-12-%E3%83%93%E3%83%83%E3%83%88-Arduino%E3%81%AB%E5%AF%BE%E5%BF%9C/dp/B01D1D0CX2/ref=pd_sbs_328_1/358-9837536-8842439?_encoding=UTF8&pd_rd_i=B01D1D0CX2&pd_rd_r=d1850f4c-1a31-40df-af25-fb61b91ccc62&pd_rd_w=i3HrI&pd_rd_wg=b1Z46&pf_rd_p=1585d594-d9d0-474b-8a4e-69eca1566911&pf_rd_r=VPC67HNH6YMFCMPPVPAD&psc=1&refRID=VPC67HNH6YMFCMPPVPAD)
- 降圧型DCDCコンバータ：(https://www.amazon.co.jp/gp/product/B00ZC045ZY/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1)
- アーム用サーボ：(https://www.amazon.co.jp/gp/product/B07QZW1S4Z/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1)
- グリッパハンド：(https://www.amazon.co.jp/gp/product/B07L9TKKN7/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1)
↑サーボモータは付属されていないため別購入が必要

- etc：他にもフレームやバッテリー等ありますが、安全を確保しながら楽しめる部品をお選び下さい。

##  6.実施手順
次の手順でロボット作りから自動航行までの内容を書いて行こうと思います。
少しLeapMotionでの動作など脱線はご了承ください。

[1章.ロボットのROS対応](https://qiita.com/motom0509/items/c81d85b2e7967a780eb9)
[2章.ロボットを操作する](https://qiita.com/motom0509/items/e5b3310c248b23f36ef7)
[3章.LiDARを動かす](https://qiita.com/motom0509/items/382bfcee80aa05f5dcd9)
[4章.urdfを作成する](https://qiita.com/motoms/items/a67b272313d7737a6b43)
[5章.SLAMを使ってみる](https://qiita.com/motoms/items/4c45f75911e210088ea1)
 6章.AMCLで自己位置推定する
 7章.自動航行

# 次は 1章. ロボットのROS対応　
次はロボットのROS対応について書こうと思います。主にArduinoIDEからrosserialライブラリを使う際の方法や注意点、について書こうと思っています。**お楽しみに！**