Part list and assembly of the robot platform and the components.

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 SanDisk, Ubuntu 18.04 Image
  Robot Car Kit 2WD robot05 Instructions manual
  Power bank Intenso Powerbank S10000 Intenso
Actuator      
  Gearbox motor DC Gearbox motor - “TT Motor” - 200RPM - 3 to 6VDC Adafruit
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 Joy-IT - LM393 Speed Sensor with H206 slot-type opto interrupter Joy-IT

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 Rasbperry 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

The Robot Car Kit 2WD from Joy-IT (article no.: robot05) is used as the base for the autonomous mobile robot.

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

The acrylic chassis has many holes which allow to mount a mounting plate that can hold different development boards. It allows also to mount a Raspberry Pi 4 B, which will be used in this project. Two wheels, hence 2WD, are included in the kit which can be attached to the motors that are provided too. A third caster wheel is provided which allows the robot to spin on the spot. This means the robot can be described by a holonomic model.

The motors operate in a range between 3 to 6 Volts DC and make it possible to mount a punched disk for speed measurements. With that punched disk and additional speed sensors it is possible to implement odometry in ROS. To power the motors a battery compartment is available together with a switch to turn the robot on or off.

Power Supplies

As mentioned the robot will be equipped with a 5V/2.1A USB-C powerbank to supply the Raspberry Pi 4 B with 5 V.

Power bank with 10.000 mAh from Intenso.

To power the motors the provided battery compartment will be used, which holds four AA batteries $4 \cdot 1.5\text{V} = 6\text{V}$.

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

Odometry

To estimate the change in position over time (odometry) the robot will utilize an optical speed sensor. Specifically the LM393 (datasheet) comperator combined with a H206 slot-type opto interrupter. Joy-IT Speed Sensor.

LM393 Speed Sensor from Joy-IT.

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

Inertial Measurement Unit

An intertial 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.

Actuators

Control

To drive the two motors of the car kit we use the Grove - I2C Motor Driver V1.3 from Seeed Studio.

Grove - I2C Motor Driver.

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 ligth 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), refere to the pinout.

Library

Leave a comment