Build your own robot car with the Raspberry Pi!

Build your own robot car with the Raspberry Pi!

The Big Rob is not yet finished. I have to work on the look of the robot. But the electronic components are already installed. The brain of the bot is a Raspberry Pi 2 Model B. The Raspberry Pi is connected to a RasPiGNSS module to receive the raw GPS data stream. To control Big Rob via WIFI the Raspberry Pi is connected via a RJ45 cable to a Linksys router which is built into the body. But I will changes this setup in the future and will install an USB wifi card with a booster and external antenna. The robot could navigate autonomously and could be manually controlled via a web interface with a live video stream to show the operator what the bot sees.

The next pictures shows the Big Rob ready for his mission in the field. On top of the bot I mounted a Raspberry Pi Sense-HAT and the GPS antenna. The robot needs the GPS antenna which is connected to the RasPiGNSS module for precise differential GPS navigation. You do not see the base station on the picture which is need in this setup for differential GPS. But the Raspberry Pi of the Big Rob is connected to the base station via WIFI and the RTK library has already calculated a FIX solution with the precise GPS coordinates of the robot.

Raspberry Pi Robot Car - Big Rob

Raspberry Pi robot – Big Rob

The Big Rob itself uses a Linksys WRT54GL WIFI router which is used as access point to control the robot and to connect with the base station. The router inside the robot makes it very handy to get the robot ready for a mission. The WIFI connection is very reliable which is important for the operator.

Raspberry Pi robot with GNSS navigation

I am working on a differential GPS solution since November 2016 for my robot cars. The RTK solution consist out of the base station and the mobile unit which is built into the robot. If you would like to read more about the differential GPS solution setup I wrote an article series about the installation and usage of the differential GPS solution which uses the RTK library.

link: Präzise GNSS-Positionierung mit dem Raspberry Pi und RTKLIB – Einführung

The following picture shows a small part the technical components which are built inside the robot. On the left you see the RasPiGNSS GPS receiver and on top of the RasPiGNSS module you see the GPS antenna.

Raspberry Pi - Big Rob RasPiGNSS SenseHAT

Raspberry Pi – Big Rob RasPiGNSS SenseHAT

At the back I mounted the Raspberry Pi Sense-HAT. I need the Sense-HAT for turning the front of the bot to north with the build in magnetometer. With the gyroscope inside the Sense-HAT I could control how far the robot has to turn to the left or right to face north or the GPS way point to drive to.

Build your own robot car with the Raspberry Pi!

Build your own robot car with the Raspberry Pi!

Step by step to your own robot car
This book guides you in two parts through the project phases with the aim of building an individual, autonomously driving robot car. In the first part of the book you will learn the basics of robotics and the interaction of hardware, electricity and software. You build the chassis and wire the individual components - details can be found in the appropriate, richly illustrated chapters. An introduction to software installation and programming with Scratch and Python completes the first part. You do not need any previous knowledge in robotics and programming. In the second part of the book, you will familiarize yourself with the sensors required for autonomous driving. With the acquired knowledge you can individualize and further develop your robot car as you wish. The knowledge you acquire in this book will enable you to implement your own projects with the Raspberry Pi.

This book offers you that:
  • Simply get into robotics with the Rasperberry Pi without prior knowledge
  • Numerous illustrations, tables, circuit diagrams
  • Information boxes with useful tips also for other Raspberry Pi projects
  • Project code with syntax highlighting
  • Two car projects: remote-controlled robot car via WLAN and self-driving car
  • Hardware tips and recommendations for suitable accessories - Extensive project material as download: Raspbian image, parts list, chassis artwork and code
  • Special features: Easy and robust cabling, use of high-precision time-of-flight laser distance measurement sensors, introduction to servo motors and suitable servo controllers, control via gamepad, use of an OLED display
Your Rasbperry Pi driving instructor
Ingmar Stapel studied computer engineering and is currently working internationally as IT project manager and enterprise technical architect; in addition, he has been intensively involved with Raspberry Pi and robotics for years. He likes to share this knowledge with interested people from the tinkering scene at meet-ups on robotics. On his private blogs he also writes about many current technology trends.

Python modul GPS NMEA data sets

In the past I used a USB GPS mouse for navigation. Most of the USB GPS modules are supported by the GPSD demon and the Python GPS module. Typical for such a GPS mouse is a NMEA stream which could be read from the USB interface the USB receiver is connected to. This NEMA data stream is read by the GPSD demon for further processing inside my Python programs.

For the differential GPS RTK solution I changed my Python program to read the NMEA stream from a TCP/IP socket over the network and not from an USB port. This enables my Python program to read the very precise NMEA stream generated by the RTKRCV program. This enables my robot to navigate very precise with the calculated position by the RTK solution.

To change the Python program was very easy. The new NMEA stream could be read directly over the network from the TCP/IP socket and with the extension PYNMEA it is very easy to process the NMEA data inside a Python program. With PYNMEA I could interpret the RTKRCV generated NMEA stream and work with the GPS information to control the bot.

Python read RTK Stream

Python read RTK Stream

To install PYNMEA on your Raspberry Pi please execute the following command in the terminal window of your Raspbian operating system:

Command: sudo pip install pynmea

The Python program which reads the NMEA stream could be downloaded from the following URL. The program is the base for further programs and explains in general how the GPS data could be processed with Python to control the robot.

download: READ RTKRCV NMEA PYTHON STREAM

Summary:

For now I am happy with the changes inside my Python program. I already tested the Big Rob in the field with the differential GPS setup. The technical effort is very high but it is worth if you get a very precise positioning system for your bot at the end. It took a while to get everything up and running automatically. But for now the RTK solution works very well and I have only to power up the base station and mobile unit to get a very precise NMEA stream for navigation.


Article list - Big Rob:

Big Rob – Raspberry Pi robot
Big Rob – Raspberry Pi robot power train
Big Rob – Raspberry Pi robot motor driver BTS7960B and Python program
Big Rob – Raspberry Pi robot outdoor camera
Big Rob – Raspberry Pi robot with differential GPS
Big Rob – Raspberry Pi robot with nice teeth
Big Rob – Raspberry Pi robot Peak Power Pack power supply
Big Rob – Raspberry Pi robot videos

 

(Visited 2,565 times, 4 visits today)