Skip to content

Components (BOM)

BOM for REMO Robot

Affiliate links

The Amazon links in the following lists are affiliate links. As an Amazon Associate I earn from qualifying purchases, at no extra cost to you.

The following figure shows a 3D-printed Remo robot together with its components that satisfy the requirements for the ROS Navigation Stack. These parts are introduced next:

Remo prototype.

Bill of Materials (BOM) for REMO robot:

Part Quantity Cost Store Notes
Raspberry Pi 4 B (4 GB or 8 GB) 1 $55.0 Sparkfun (4 GB), Amazon.com (8 GB), Amazon.de (8 GB starter set) 4 GB is enough
SanDisk 64 GB SD Card Class 10 1 $13.99 Amazon.com, Amazon.de
SLAMTEC RPLiDAR A2M12 (12 m) 1 $319.00 Robotshop, Amazon.com, Amazon.de Other, less expensive, LiDARs will work as well, e.g., RPLiDAR A1
SLAMTEC RPLiDAR A1M8 (12 m) 1 $99.00 Robotshop, Amazon.com, Amazon.de Cheaper alternative to RPLiDAR A2M8
Adafruit DC Motor (+ Stepper) FeatherWing 1 $19.95 adafruit.com, Amazon.us, Amazon.de
Teensy 4.0 or 3.2 1 $32.29 Amazon.com, Amazon.de, PJRC Teensy 4.0
Breadboard (half size, 400 points) 1 -- Holds the Teensy, see assembly step 15
Hobby Motor with Encoder - Metal Gear (DG01D-E) 2 $12.50 Amazon.com, Amazon.de, Sparkfun, RobotShop On Amazon.de it's sold by BerryBase
Powerbank (e.g 15'000 mAh, or 10'000 mAh) 1 $23.99 Anker 10K Amazon.com, Anker 10K Amazon.de The Powerbank from Goobay (and Anker) is close to the maximum possible size LxWxH: 135.5 x 71 x 18 mm
Battery pack (for four or eight batteries) 1 $5.59 Amazon.com, Amazon.de
USB C to USB C cable 1 $6.99 Amazon.com, Amazon.de USB C to USB C for Powerbank to SBC
Remo Base 1 -- Remo STL files on Gumroad 3D printed, see 3D printing
Caster ball 1 $6.30 Amazon.com, Amazon.de 25.4 mm (1-inch) diameter; Alternatively any smooth, durable 3/4" ball bearing for the caster
Wheels 2 $3.50 Amazon.com, Amazon.de, Sparkfun, exp-tech.de Wheels are often part of a robotics kit or can be purchased separately
Power supply 1 $7.50 Amazon.com, Amazon.de USB C, 5V, 3.5A

USB Wi-Fi Dongle (optional)

For improved connectivity use a Wi-Fi USB dongle.

Part Quantity Cost URL Notes
WiFi Dongle - TP-Link Archer T2U Nano 1 $17.99 Amazon.us, Amazon.de RTL8811AU chipset
WiFi Dongle - TP-Link Archer T3U 1 $18.99 Amazon.us, Amazon.de RTL8812AU chipset
WiFi Dongle - TP-Link Archer T3U Plus 1 $19.99 Amazon.us, Amazon.de RTL8811AU chipset

Camera Modules (optional)

The camera modules are currently optional. SLAM, localization and navigation is currently laser based. Get a camera in case you plan to do applications such as object detection, visual graph based SLAM methods, etc.

Part Quantity Cost Store Notes
Raspi Camera Module V2, 8 MP, 1080p 1 $ Amazon.com, Amazon.de
OAK-1 1 $149 OpenCV.ai
OAK-D 1 $199 OpenCV.ai
OAK-D Lite 1 -- OpenCV.ai Will be released

Assembly Hardware

You need the following parts to build REMO. They come in packs, so order the quantity you need for the number of REMOs you are going to build.

Part Qty per REMO Qty per pack Cost per REMO URL Notes
Adhesive pads 2 48 $0.14 optional
Velcro strap 2 48 $0.14 To fix the battery pack and the breadboard
M2 screw (self tapping) 22 100 $1.42 Amazon 8mm long, self tapping; 4 more if you screw the camera into its adapter
M2 screw 8 60 $0.94 Amazon 8mm long, for the deck and the Raspberry Pi
M3 screw 4 20 -- Amazon.de 25mm long, to fix the motors to the base frame; from a 280-piece M3 set
M3 screw 4 20 -- Amazon.de 6mm long, to fix the LiDAR to its platform; same set
M3 nut 4 100 -- Amazon.de To fix the motors to the base frame; same set, which has 20 screws of each length (4–25 mm) and 100 nuts
M2 Brass threaded inserts 8 100 $0.48 Amazon 4 in the chassis posts, 4 in the deck for the Raspberry Pi
Jumper wires 4 40 $0.13 Amazon Female-female, ~20cm

Optional parts

Part Quantity Cost Store Notes
Jetson Nano 1 $99.00 NVIDIA
PiOLED display 1 $14.95 Adafruit, Amazon
PiOLED header 1 $5.95 Adafruit, Amazon, Sparkfun 2x(3+) right angle male

Components

The following shows a more detailed part list and assembly of the robot platform and the components.

Affiliate links

The Amazon links in the following lists are affiliate links. As an Amazon Associate I earn from qualifying purchases, at no extra cost to you.

Category Hardware Part Number Data Sheet & Info
Accessories
Case for Raspberry Pi 4 B Slim acrylic case for Raspberry Pi 4, stackable, rainbow/transparent BerryBase
Micro SD Card SanDisk 64GB Class 10 Amazon.com, Amazon.de; Raspberry Pi Setup for the image
Robot Car Kit 2WD (plate, caster, two wheels, battery holder and mounting plate) robot05 Instructions manual
Power bank Intenso Powerbank S10000 Intenso
Actuator
(Deprecated) Gearbox motor DC Gearbox motor - "TT Motor" - 200RPM - 3 to 6VDC, without encoder; DiffBot's first version Adafruit
DG01D-E Motor with encoder DG01D-E Hobby motor with quadrature encoder, in DiffBot and Remo Sparkfun
Board
Raspberry Pi 4 B Raspberry Pi 4 B - 4 GB OEM Website
Cables
Jumper - Female to Female
Jumper - Male to Male
Micro USB - USB Cable
Camera extension cable
I2C 4 pin cable
Electronics
Fan Fan 30x30x7mm 5V DC with Dupont connector BerryBase
I2C motor driver Grove - I2C Motor Driver Seeed Studio
I2C Hub Grove - I2C Hub Seeed Studio
Human Machine Interface
OLED Display Grove OLED Display 0.96" Seeed Studio
LED Ring NeoPixel Ring 12x5050 RGB LED Adafruit
Sensors
Camera module Raspberry Pi - camera module v2.1 Raspberry Pi
Ultrasonic ranger Grove - Ultrasonic Ranger Seeed Studio
IMU Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - BNO055 Adafruit
Odometry The quadrature encoders in the DG01D-E motors Motor and Wheel Encoder
(Deprecated) Speed sensor Joy-IT - LM393 Speed Sensor with H206 slot-type opto interrupter, for the TT motors without encoder Joy-IT

Order list

Affiliate links

The Amazon links in the following lists are affiliate links. As an Amazon Associate I earn from qualifying purchases, at no extra cost to you.

Part Store
Raspberry Pi 4 B (4 Gb) Amazon.com, Amazon.de
SanDisk 64 GB SD Card Class 10 Amazon.com, Amazon.de
Robot Smart Chassis Kit (plate, caster, two wheels and battery holder) Amazon.com, Amazon.de
DG01D-E Hobby Motor with encoder (2) Amazon.com, Amazon.de
SLAMTEC RPLidar A2M8 (12 m) Amazon.com, Amazon.de
Grove Ultrasonic Ranger Amazon.com
Raspi Camera Module V2, 8 MP, 1080p Amazon.com, Amazon.de
Grove Motor Driver seeedstudio.com, Amazon.de
I2C Hub seeedstudio.com, Amazon.de

Additional (Optional) Equipment

Part Store
PicoScope 3000 Series Oscilloscope 2CH Amazon.de
VOLTCRAFT PPS-16005 Amazon.de

Board - Raspberry Pi 4 B

The main processing unit of the robot is a Raspberry Pi 4 B with 4 GB of RAM.

Raspberry Pi 4 B - 4 GB RAM variant.

Accessories and Electronics

Case and Cooling

To protect the Raspberry Pi 4 B we choose a case that provides access to all its ports. The following images show a stackable acrylic case in rainbow colors.

Stackable Rainbow Case for Raspberry Pi 4 B.

With this case it is possible to install four heatsinks and apply a fan as cooling equipment for the electronics of the Raspberry Pi 4 B such as its ARM processor.

Heatsinks and cooling fan for Raspberry Pi 4 B.

SD Card

The Raspberry Pi requires a medium to boot from. For this we will use a micro sd card because it is lightweight and easy to flash new operating systems.

SanDisk Micro SD Card Class 10.

Although a micro sd card won't last that long compared to an hard disk drive (HDD) or solid state disk (SSD) it is well suited for testing. Because sd cards are slower when reading and writing data you should make sure to choose a micro sd card with high performance ratings. For the Raspberry Pi a Class 10 micro sd card is recommended. Regarding speed, the Pi has a limited bus speed of approximately 20 MB/s (source)

Robot Base

For the robot base you have at least two options to choose from: DiffBot, built on the acrylic plate of a robot car kit, or the sturdier, 3D printed Remo.

DiffBot is built on the acrylic plate of the Robot Car Kit 2WD from Joy-IT (article no.: robot05). The kit includes two drive wheels, a caster wheel and a battery holder. The holder sits under the base plate and supplies the motors.

Parts of the 2WD Robot Car Kit 05 from Joy-IT.

The acrylic plate has many holes for the kit's mounting plate, which holds the development boards, such as the Raspberry Pi 4 B. The two drive wheels and the caster wheel let the robot turn on the spot, but not move sideways: a differential drive robot is nonholonomic (Modeling a Differential Drive Robot).

DiffBot uses the same DG01D-E motors with built-in quadrature encoders as Remo, and the same nominal 65 mm wheel type. Its first version (source code from April 2020) used the kit's motors without encoders and separate optical speed sensors that count the slots of a punched disk on each motor (Alternative Optical Sensor).

Remo is a 3D printable Research Education Mobile/Modular Open robot platform. You can find more information in the following video and on the remo_description package page.

remo fusion animation

Alternatively, you can build your own mobile robot!

Power Supplies

DiffBot's Raspberry Pi 4 B runs on a 5 V/2.1 A USB-C power bank.

Power bank with 10.000 mAh from Intenso.

DiffBot's motor supply uses the battery holder under the chassis.

I2C Hub

The Raspberry Pi provides just two I2C ports, which is why we will use a I2C hub. With the four port I2C hub from Grove it is possible to connect three I2C devices to a single I2C port of the Raspberry Pi

Grove I2C Hub.

Breadboard and GPIO Extension Cable

Optional but helpful for testing is a breadboard and a GPIO extension cable suitable for the Raspberry Pi 4 B.

Breadboard with GPIO extension cable.

Sensors

Sensors are used to sense the environment and to collect information of the current state. For this 2WD robot the sensors are categorized into perception and localization which are explained in the following two sections.

Perception

Perception sensors of the 2WD robot will be used to avoid collisions using ultrasonic rangers. Another use case is to detect and follow objects using a camera.

Ultrasonic Ranger

To avoid obstacles the robot will carry a Grove - Ultrasonic Ranger at the front.

Grove Ultrasonic Ranger for obstacle avoidance.

It is a non-contact distance measurement module which works at 40KHz and can be interfaced via a single GPIO. For example physical pin 11 of the Raspberry Pi connected to the SIG pin on the sensor can provide the PWM communication.

Parameter Value/Range
Operating voltage 3.2~5.2V
Operating current 8mA
Ultrasonic frequency 40kHz
Measuring range 2-350cm
Resolution 1cm
Output PWM
Size 50mm X 25mm X 16mm
Weight 13g
Measurement angle 15 degree
Working temperature -10~60 degree C
Trigger signal 10uS TTL
Echo signal TTL

The code that will be used to wrap this sensor as a ROS node can be found in the Grove Raspberry Pi repository on GitHub.

As an alternative we could use the HC SR04.

Camera

RPi Camera v2.

Localization

Inertial Measurement Unit

An inertial measurement unit (IMU) measures the acceleration and orientation through gyroscopes directly. Other states such as the velocity can then be calculated. For this the Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - BNO055 is used.

9-DOF Absolute Orientation IMU Fusion Breakout - BNO055 from Adafruit.

Odometry

For the used odometry sensor see the section below Motor and Wheel Encoder

Alternative Optical Sensor

To estimate the change in position over time (odometry), DiffBot's first version, with motors without encoders, used an optical speed sensor. Specifically the Joy-IT Speed Sensor which combines a LM393 (datasheet) comperator and a H206 slot-type opto interrupter. The Wheel Encoders (LM393) page describes the optical sensors and their wiring.

LM393 Speed Sensor from Joy-IT.

Technical Specifications:

  • Dimensions: 32 x 14 x 7mm
  • Operating voltage: 3.3V to 5V (DiffBot's first version ran it at 3.3V)
  • Two outputs: Digital (D0) and Analog (A0)

References: https://dronebotworkshop.com/robot-car-with-speed-sensors/

Actuators

Control

To drive DiffBot's two motors we use the Grove - I2C Motor Driver V1.3 from Seeed Studio. Remo uses a different driver, the Adafruit DC Motor + Stepper FeatherWing (Electronics).

Grove - I2C Motor Driver.

Motor and Wheel Encoder

DiffBot and Remo both use the DG01D-E Hobby Motor. It has a quadrature encoder built in, which makes it easy to assemble the robot and saves space because of no additional (optical or magnetic) wheel encoders.

DG01D-E Motor with wheel encoders.

For more details such as the encoder pulses per revolution see the documentation on Motor and Encoder.

Alternative Brushed Gear Motor

Brushed Gearbox Motor

DC Gearbox motor - "TT Motor" - 200RPM - 3 to 6VDC.

Human Machine Interface (HMI)

The human machine interface is the layer between the user and the robot.

OLED Display

To update the user with status messages the robot has a 0.96 inch oled (organic light emitting diode) display. The oled display used is the Grove I2C 0.96 inch OLED display from Seeed Studio.

Grove - I2C 0.96 inch OLED Display.

The display is connected to the RPi via I2C on the physical pins 27 (scl) and 28 (sda), refer to the pinout.

Library

Comments

Comments are GitHub Discussions, shown with giscus. Loading them connects to giscus.app (hosted by Vercel, USA) and GitHub (USA); you need a GitHub account to comment.