Skip to content

Commit

Permalink
Ready-to-Run OpenBot (#285)
Browse files Browse the repository at this point in the history
* add readme
* add cad files
* add images
* add pcb files

Co-authored-by: Quentin Leboutet <[email protected]>
  • Loading branch information
thias15 and quentin-leboutet committed May 31, 2022
1 parent c265b94 commit d93f8d9
Show file tree
Hide file tree
Showing 53 changed files with 77,838 additions and 2 deletions.
10 changes: 8 additions & 2 deletions body/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# OpenBot: Robot Body

In principle, you can build any wheeled robot body around a microcontroller such as the Arduino Nano to use with the OpenBot software stack. We have designed a [3D-printed body](diy) for a wheeled robot which relies on low-cost, readily available hobby hardware. [OpenBot Lite](lite) is a smaller and simplified variant of the OpenBot DIY version developed for education. Even if you do not want to build it, you may find the [step-by-step video guides](lite/#step-by-step-video-guides) helpful. We have also designed a [3D-printed body](rc_truck) for commercially available 1:16 RC-Trucks (such as [this](https://www.amazon.de/dp/B00M3J7DJW) one). We finally propose a [multi-terrain vehicle](mtv), as a general-purpose platform for outdoor projects using the OpenBot framework.
You can build any wheeled robot body around a microcontroller such as the Arduino Nano to use with the OpenBot software stack. We have designed a [3D-printed body](diy) for a wheeled robot which relies on low-cost, readily available hobby hardware. [OpenBot Lite](lite) is a smaller and simplified variant of the OpenBot DIY version developed for education. Even if you do not want to build it, you may find the [step-by-step video guides](lite/#step-by-step-video-guides) helpful. We have also designed a [3D-printed body](rc_truck) for commercially available 1:16 RC-Trucks (such as [this](https://www.amazon.de/dp/B00M3J7DJW) one). We also provide blueprints for building a [multi-terrain vehicle](mtv), as a general-purpose platform for outdoor projects using the OpenBot framework. If you just want to buy a [ready-to-run (RTR)](rtr) OpenBot you can order one [here](http://www.openbot.info/).

Below are a number of examples with build instructions:
Below are a number of examples with build instructions and further details:

<table style="width:100%;border:none;text-align:center">
<tr>
Expand All @@ -25,12 +25,18 @@ Below are a number of examples with build instructions:
<img alt="Multi-Terrain Vehicle" src="../docs/images/MTV/MTV.jpg" />
</a>
</td>
<td>
<a href="rtr">
<img alt="RTR" src="../docs/images/rtr_tt_assembly.gif" />
</a>
</td>
</tr>
<tr>
<td><a href="diy"> DIY </a></td>
<td><a href="lite"> Lite </a></td>
<td><a href="rc_truck"> RC Truck </a></td>
<td><a href="mtv"> Multi-Terrain Vehicle </a></td>
<td><a href="rtr"> RTR </a></td>
</tr>
</table>

Expand Down
67 changes: 67 additions & 0 deletions body/rtr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# OpenBot: Ready-To-Run (RTR) vehicles

The ready-to-run (RTR) versions of the OpenBot vehicle are targetting an audience which does not have the will or time to build its own robot. The RTR vehicles come with fully integrated electronics, are already supported at the firmware level and have been thoroughly tested both from a software and hardware perspective. The RTR vehicles are available in two different flavours, referred to as "RTR_TT" and "RTR_520". Both vehicles are built around the same splash-proof ABS shell, but are intended for different purposes. While the RTR_TT is primarily intended for indoor use, the RTR_520 comes with a more powerful processor, better motors, stronger metal gearboxes and also has a set of all-terrain wheels supporting both indoor and outdoor use.
<p align="center">
<a> <img src="/docs/images/RTR_TT.jpg" width="35.8%" /> &nbsp
</a>
<a> <img src="/docs/images/RTR_520.jpg" width="33%" />
</a>
</p>

### Ordering

The RTR OpenBot vehicles can be ordered [here](http://www.openbot.info/).

## Building the RTR yourself

In case you want to build your own OpenBot RTR, you will need to print the chassis, manufacture the PCBs and buy the motors and a phone mount.

### 3D printing

In case you still want to print your own OpenBot RTR, you will need to print the following parts.

1) ```shell_bottom``` ([STL](cad/rtr_bottom.stl), [STEP](cad/rtr_bottom.step))
2) ```shell_top``` ([STL](cad/rtr_top.stl), [STEP](cad/rtr_top.step))
3) ```phone_mount``` ([STL](cad/rtr_mount.stl), [STEP](cad/rtr_mount.step))

<p align="center">
<img src="../../docs/images/rtr_tt_assembly.gif" width="600" alt="App GUI"/>
</p>

### PCBs

For each of the PCBs, there are three files. The gerber file contains the actual PCB, the BOM (bill of materials) file contains all components to be soldered onto the PCB and the centroid file contains the coordinates of each componnent for automatic PCB assembly. The base board contains the majority of the components. There are three variants of the base board. Variant A is a bare board with connectors for external motor driver boards and an external microcontroller board. Variant B is a modular board with a pin header for an external microcontroller. Variant C is the fully integrated base board which we would recommend for most users. The front bump sensor board contains two bump sensors, a sonar sensor and the USB driver. There are two variants of the front bump sensor board, one with the cheaper CH340G USB driver and one with the more reliable CP2102N USB driver. Depending on which version (TT-motor or 520-motor) you want to build, you will need the following PCBs.

#### TT-motor

- 1x Base board (Arduino)
- 1x Status LED board
- 1x Front/Top/Back bump sensor board
- 4x Speed sensor board (Arduino)

#### 520-motor

- 1x Base board (ESP32)
- 1x Status LED board
- 1x Front/Top/Back bump sensor board

#### Board reference

- Status LED Board ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_Status_LED_Board_V1.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_Status_LED_Board_V1.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_Status_LED_Board_V1.csv))
- Top Bump Sensor Board ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BumpSensorTop_V1.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BumpSensorTop_V1.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BumpSensorTop_V1.csv))
- Back Bump Sensor Board ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BumpSensorBack_V1.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BumpSensorBack_V1.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BumpSensorBack_V1.csv))
- Front Bump Sensor Board (CH340G) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_SensorBoardFront_CH340G_V1.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_SensorBoardFront_CH340G_V1.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_SensorBoardFront_CH340G_V1.csv))
- Front Bump Sensor Board (CP2102N) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_SensorBoardFront_CP2102N_V1.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_SensorBoardFront_CP2102N_V1.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_SensorBoardFront_CP2102N_V1.csv))
- Speed Sensor Board (Arduino) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_SpeedSensor_Arduino_V1.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_SpeedSensor_Arduino_V1.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_SpeedSensor_Arduino_V1.csv))
- Integrated Base Board C (Arduino) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BaseBoard_Arduino_V1C.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BaseBoard_Arduino_V1C.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BaseBoard_Arduino_V1C.csv))
- Integrated Base Board C (ESP32) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BaseBoard_ESP32_V1C.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BaseBoard_ESP32_V1C.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BaseBoard_ESP32_V1C.csv))
- Modular Base Board B (Arduino) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BaseBoard_Arduino_V1B.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BaseBoard_Arduino_V1B.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BaseBoard_Arduino_V1B.csv))
- Modular Base Board B (ESP32) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BaseBoard_ESP32_V1B.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BaseBoard_ESP32_V1B.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BaseBoard_ESP32_V1B.csv))
- Bare Base Board A (Arduino) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BaseBoard_Arduino_V1A.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BaseBoard_Arduino_V1A.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BaseBoard_Arduino_V1A.csv))
- Motor Driver DRV8870 Board (Arduino) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_MotorBoard_Arduino_V1_DRV8870.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_MotorBoard_Arduino_V1_DRV8870.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_MotorBoard_Arduino_V1_DRV8870.csv))
- Bare Base Board A (ESP32) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_BaseBoard_ESP32_V1A.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_BaseBoard_ESP32_V1A.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_BaseBoard_ESP32_V1A.csv))
- Motor Driver DRV8870 Board (ESP32) ([gerber](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/Gerber_MotorBoard_ESP32_V1_DRV8870.zip),[bom](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/BOM_MotorBoard_ESP32_V1_DRV8870.csv),[centroid](https://github.com/isl-org/OpenBot/blob/thias15/rtr/body/rtr/pcb/PickAndPlace_MotorBoard_ESP32_V1_DRV8870.csv))

## Next

Flash the [Arduino Firmware](../../firmware/README.md)
Loading

0 comments on commit d93f8d9

Please sign in to comment.