In this project I will build an autonomous driving vehicle. I’ve been involved with IoT for a few years now and have a few Arduino and Raspberry PI in use. Since about a year a new topic has been added: Artificial Intelligence. I self-taught myself the basics of machine learning via Youtube, Audacity and Udemy and experimented with object recognition. Time to put it all together and start a new mega project.
My wish is to build a vehicle that can move autonomously. The vehicle should serve me as an experimental platform. As the project progresses, I want to expand it with sensors and actuators. There are already many robotic vehicles that can move autonomously with a camera or lidar. The vehicles are mostly simple small model cars with 4 wheels that drive on the ground and follow e.g. a line. However, I would like to build a vehicle that can handle rough terrain. In the first moment either tracked vehicles or Mars rovers come to mind.
Sawppy as a basic framework
A quick search brought Roger Cheng‘s Sawppy-Projekt to my attention. The Sawppy rover is a miniature Mars rover that is a low cost version of the Open Source Rovers developed by JPL for educational purposes. Roger states on his home page that the rover can be built for about $500. In contrast to the Open Source Rover with costs of about 2500$ a good starting point for a private project.
The Sawppy rover, like many Mars rovers, has a rocker-bogie suspension. NASA tested this in 1997 during the Pathfinder Mars mission with the Sojourner rover. They have since used it on the Opportunity, Spirit, and Curiosity rovers. The suspension is distinguished by the fact that the wheels on both sides are arranged over rockers. This compensates for unevenness when driving through rough terrain. The two main rockers are connected by a differential. This arrangement reduces the movements of the chassis. This makes sense because it will later serve as a mounting platform for the sensors and, if necessary, actuators.
The mechanical structure of the Sawppy rover consists of 15x15mm extrusion profiles made of aluminum. These are connected via plastic parts from the 3D printer. The axles of the wheels and the bearings of the rockers are realized with standard 608 ball bearings. The rover has a four-wheel drive, whereby the four wheels at the corners can be rotated around a vertical axis, as is the case with the Opportunity, Spirit and Curiosity rovers. This also allows the rover to turn on the spot. In total, the rover is driven by 10 servo motors.
Software
The rover should be able to drive autonomously with the Robot Operating System (ROS). Rhys Mainwaring has made a ROS package available on Github with which the Sawppy can drive autonomously using lidar. It should serve as a basis for my project.
Hardware
For pure navigation on flat surfaces indoors, a 2D lidar is probably the best choice. Scanning the environment outdoors is rather difficult I think. I expect that as the project progresses I will reach my limits with the lidar and use a camera or both. Rhys Mainwaring is using a Raspberry Pi 4 and I will be using a Nvidea Jetson Nano for hardware.
In contrast to the Raspberry Pi 4, the Jetson Nano is equipped with a GPU and has 4 USB 3.0 on board. In addition, I do not yet have a Jetson Nano and am curious how the part performed.