Turtlebot3を組み立てる

今更ですがTurtlebot３を組み立てました。
##ROSを初めて触る人にお勧めのTurtlebot3
Turtlebot3は、ROSをはじめる人にとってベストプラクティスと言えます。
<B>Lidar</B>を搭載しており、GmappingによりSLAMを容易に構築可能です。
ROS2にも対応しており、これ1台で一通り以上の学習が可能です。
ただし、値段が日本円で6万円という事で若干高いのがネックです。

##Tutlebot3の組み立て
組み立ては、約２時間３０分で終わります。
途中にArduinoの工程は行っていません。
![uploading-0]()

組み立て後にRaspberryPiの設定をしますが、組み立て後に行うと色々面倒なので、組み立て前に終わらせておくことをおすすめします。
RaspberryPiをもう一台持っておいて、そちらでセッティングをしたほうがいいかもしれません。

組み立てにあたり、注意点です。
基板を固定する位置に指定がありませんが、組み立て後に使用しやすいように
HDMI端子や、スイッチ、MicroUSBの端子は外に来るようにしたほうがいいでしょう。

RaspberryPiのHDMI端子は、スペーサーと位置がかぶるので、ここだけは要注意です。
![DSC_0475 (2).JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/b0c51b0a-30f9-df19-bbf0-dee40e1c89ba.jpeg)
バッテリーは、組立説明書よりも一段外向きに固定することをおすすめします。
これは、充電をする際の取り回しを楽にするためです。

Turtlebot３のRaspberryPiのセッティングは、マニュアルどおりで問題ありません。
次は、RemotePCのセッティングです。

##RemotePCのセッティング
Turtlebot３　Emanualを参照すれば問題なくインストールできるはずです
http://emanual.robotis.com/docs/en/platform/turtlebot3/pc_setup/#pc-setup
が、私はRos　KineticではなくMelodicをインストールしました。
Melodicのインストールは以下を
ROS Melodicのインストール方法(Ubuntu Bionic)
https://raspimouse-sim-tutorial.gitbook.io/project/setup/how_to_install_ros_melodic
Turtlebot３用のセッティングは以下を参照ください。
ROS MelodicでTurtlebot3をGazeboで動かしてついでにSLAMする
https://qiita.com/protocol1964/items/1e63aebddd7d5bfd0d1b

いくつかインストールできないものが存在しました。
例えば
$ sudo apt-get install ros-kinetic-rosserial-python ros-kinetic-tf
これらは、rosserialに入っているようです。
https://github.com/ros-drivers/rosserial

##ROS_MASTER_URI の設定
ROS_MASTER_URIの設定を行います。

```
nano ~/.bashrc
```

```
export ROS_MASTER_URI=http://localhost:11311/
export ROS_HOSTNAME=localhost
```
localhostを書き換えます。
以下はマスターのもので、RaspberryPiの場合、ROS_HOSTNAMEはRaspberryPiのIPアドレスになります。

最後に、

```
source ~/.bashrc
```

![Screenshot from 2020-04-03 19-10-30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/39e674ba-25a5-d993-db73-d0e28817f3ff.png)



注意点は、
最初に

```
$ export TURTLEBOT3_MODEL=burger
```
を入れることを忘れないでください。

マニュアルをコピーして

```
$ export TURTLEBOT3_MODEL=${TB3_MODEL}
```
と入れてはいけません。
The ${TB3_MODEL} is the name of the model you are using in burger, waffle, waffle_pi

上記の設定を入れない為には、以下を行います。

```
$echo "export TURTLEBOT_MODEL=burger" >> ~/.bashrc
```
ただし、これを行う事で、すべての起動でこの設定を呼び出す事となります。
この為、今後、別のシステムを組む場合は、これを行ってはいけません。
(別ファイルを作り、起動時に読み込ませるのでも可能）

私が散々悩んでいるgmappingも普通に使用可能です。
![Screenshot from 2020-04-03 14-28-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/e266071d-933e-0c55-45ee-5047e116cf24.png)
![Screenshot from 2020-04-03 14-12-29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/07046857-8cd8-1bee-f7e9-9284689d8fef.png)
#カメラをつけよう
Raspberry Pi カメラを搭載することが可能です。
カメラマウントはアクリル製のものがありますので適宜用意してください。
RaspberryPi Camera V1が500円、スペーサーは200円以下になります。
![DSC_0471 (2).JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/f039588e-dd49-82f7-8511-3a4edfc39963.jpeg)
他にワッシャーを用意する事をお勧めします。
![DSC_0473 (2).JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/24335db2-c831-896f-a99b-59ba76afc689.jpeg)
取り付けた後は、以下の通りに行えば動かす事が可能です。
http://emanual.robotis.com/docs/en/platform/turtlebot3/appendix_raspi_cam/
#ROS2
ROS2のマニュアルも用意されています。
http://emanual.robotis.com/docs/en/platform/turtlebot3/ros2_setup/