室内用AGV EspressoFrame

# about EspressoFrame
EspressoFrameはオープンソースハードウェアの室内用AGVです。設計はすべて公開していて、3Dプリンターレーザーカッターで作成した部品と市販品を組み合わせて作成できます。

<iframe width="560" height="315" src="https://www.youtube.com/embed/mXv3kD34pzc?si=2JjtzJxWbhcyjY3A"
    title="YouTube video player" frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

# 特徴

## 主要諸元

| 項目 | 値 |
|:-:|:-:|
| 重量 | 10kg |
| 寸法 | 510mm(全長)、388mm(全幅)、939mm(全高) | 
| 移動機構 | 差動2輪 (直径144mm 間隔356mm) |
| 認識カメラ | CMS-V43BK-3 |
| 深度カメラ | RealSense D435、パンチルト駆動 |
| 障害物センサー | 2D Lidar(前方 LD19)、超音波センサー(後方)、バンパー |
| UI | AndroidTablet、ステータスLED、ブザー|
| 処理PC | Intel NUC |

## 電装系

![espresso_frame_module_map.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254442/235ce0e5-a0b7-3f42-88dc-4f3d0a0f8039.png)

# ハードウェアセットアップ
EspressoFrame全体は移動モジュールとタワーモジュールの2つの部分から構成されます。

![module.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254442/67ade791-c8f6-d114-abb4-3503f4e7743f.png)

[Rover-01 スペックの設計をする](https://qiita.com/srs/items/866a6ac77068dd7065c5)
ロボットのサイズを決めるために必要な事項を検討します。

[Rover-02 EspressoFrameの紹介、主要部品の選定、必須パーツリスト](https://qiita.com/srs/items/f8c71e2f56d890244004)
今回製作するAGVである「EspressoFrame」の紹介と、この先で必要な購入品の一覧を乗せます。

## 移動モジュール

[Rover-15  EspressoFrameの電装品（移動部）の用意](https://qiita.com/srs/items/2487fac45c1cde249218)
移動部で必要な電装品や制作が必要なケーブル・基板を紹介します。

[Rover-03 MissionPlannerでardupilotと接続・アップデートする](https://qiita.com/srs/items/c278c3d9f56b213ba202)
PixhawkにファームウェアであるArdupilotを書き込みます。

[Rover-04 ArdupilotにXBeeで接続する](https://qiita.com/srs/items/3db6a3532d06931f2334)
XBeeを使って無線でPC-Pixhawkを接続します。

[Rover-05 ArdupilotでIMU、地磁気センサーの初期設定をする](https://qiita.com/srs/items/ff9a6d42640e2dfdc4a3)
IMU、地磁気センサーの設定をします。

[Rover-06 Ardupirotでプロポの初期設定をする](https://qiita.com/srs/items/eb50af277a29a129a5f9)
プロポの接続をします。

[Rover-07 Ardupirotで距離センサーの設定をする](https://qiita.com/srs/items/79efc5f2c0d1eefa1929)
外付けデバイス系の設定します。

[Rover-08 Roboclawの設定をする](https://qiita.com/srs/items/0704ff8da189949e71f0)
モーター周りの配線をして、Roboclawでモーターを駆動します。

[Rover-09 Ardupirotで駆動系の設定をする](https://qiita.com/srs/items/2ab8f7f6e8371c6cfba4)
電装品の実装・電源の接続・モータードライバの設定の後に、MANUALモードでのモーター駆動をします。

[Rover-10 ArduRoverでバンパースイッチ、外付けステータスLEDの設定をする](https://qiita.com/srs/items/4082b69bf2ba55c9600b)
バンパースイッチと外付けステータスLEDの設定をします。

[Rover-11 EspressoFrameの筐体(移動部)を組み立てる](https://qiita.com/srs/items/aeb85ebb6528e89a14ef)
筐体を組み立てて走行可能な状態にします。

[Rover-13 Ardupirotで自己位置・速度制御の設定をする](https://qiita.com/srs/items/b036a7ba18173ad97db4)
自己位置の設定と、ACROモードで移動できるように設定します。

## タワーモジュール

[Feetechサーボを動かす](https://qiita.com/srs/items/366be9e9d2ed2f355b66)
STS3215のサーボ軸の駆動とID設定をします。

[Rover-12 EspressoFrameの筐体（タワー部）を組み立てる](https://qiita.com/srs/items/f1af0e61fcaea2260253)
機体上部のUI部を組み立てます。

# ソフトウェアセットアップ

## システム系
[Rover-14 ロボット用のNUCの事前設定をする](https://qiita.com/srs/items/54ad0d3fd2e9e03de2d7)
メインコンピューターであるNUCをロボット用に自動起動するように設定します。

## ROS系
[ROS2-11 FeetechServo(STS3215)を動かす](https://qiita.com/srs/items/5664b3adfea889763a98)
ROSからシリアル方式のサーボモーターを動かします。

[ROS2-12 ydlidarX4を使う](https://qiita.com/srs/items/1c857a1d0bc39d7a068f)
YDLIDAR X4をROS2につなげて使用します。

[ROS2-13 Ardupilotとmavrosで通信する](https://qiita.com/srs/items/1b14bdf0f1fd3c49cf49)
mavrosを使ってardupilotとROSを接続します。

[ROS2-14 mavrosのpluginsを作成する](https://qiita.com/srs/items/8bf1776fe7a062c0c8f2)
mavrosのpluginの記述方法を解説します。

[ROS2-15 RealsenseD435を使う](https://qiita.com/srs/items/9677f4128215c9021571)
RealsenseをROS2に接続して観測データを可視化します。

[Rover-17 実機をROS2で動かす](https://qiita.com/srs/items/1a7ddf6e9545eadf79e6)
ドライバーとサンプルアプリを起動して、実機を動かします。

[Rover-16 シミュレーション環境を動かす](https://qiita.com/srs/items/842a762c7b1567b2dff7)
EspressoFrameの2種類のシミュレーション環境を動かします。