Jarvis is the upgraded version of my first DIY mobile robot, Dolly. My goal in this DIY project is to make a low-cost yet feature-rich ROS (Robot Operating System) based mobile robot that allow me to experiment my hobby work on autonomous robot. To that end, Jarvis is designed with all the basic features needed. To keep the bill of material as low as possible, i tried to recycle all of my spare hardware parts.
This booklet will walk you through all the basic building steps of the robot. both on hardware and software (ROS).
SLAM mapping with Jarvis
Jarvis is controlled by ROS, the following video demonstrates the use case where the robot is used to performed the localization and mapping task using its available sensors such as odometry, LIDAR, IMU...
Robot's chassis is 3D printed, the chassis's plate design is borrowed from the design of ** Turtlebot 3** which is a smart design. The other hardware parts, however, are completely different from the Turtlebot 3.
IMU sensor with 9 DOF (accelerometer, magnetometer and gyroscope) for robot orientation measurement
Two DC motors with magnetic encoders using as wheels and odometer
Arduino Mega 2560 for low level control of the robot
NVDIA Jetson nano with embedded Linux for high level algorithm and network communication. The ROS middle-ware on top of the Linux system offers a powerful robotic software environment
A 360 degree Neato LiDAR (laser scanner) up to 6 m range
A 8 Mega pixel camera (Raspberry PI camera)
Adafruit Motor shield V2 for motor controlling
10000 Mah battery
ADS1115 analog sensor to measure and monitor battery usage
0.95" (128x64) mini OLED display
Wifi + Bluetooth
The robot can be tele-operated using a bluetooth controller such as a PS4 controller
The robot is built on 3 main layers:
The first layer consists all the low-level components for robot controller:
On the bottom of of the first layer:
Two 6-12v DC motors with magnetic wheel odometry sensor
10000 MAh battery
All low-level components for robot controlling are mounted on the top of the first layer:
Step down voltage regulator that provide two independent outputs up to 3A:
6V/3A that powers two DC motors
5V/3A for all logic circuits
Arduino Mega 2560 + Adafruit Motor shield V2: for motor controlling, raw sensor reading/processing and hardware interrupt