Raspberry Pi Robotics

Raspberry Pi Robotics

For my MSc thesis, under the supervision of Prof. Andrew Davison,  I analysed the capabilities of Raspberry Pi for use in teaching robotics at Imperial College London and then developed a Python module to control LEGO Mindstorm robots with Raspberry Pi. I also explored electronics via the GPIO and the performance of some computer vision algorithms on this platform.

 

rpi_labelled
Investigated the robotics capability of Raspberry Pi.
mindstorm_robot
Developed a prototype robot teaching kit powered by Raspberry Pi, making hardware such as motors and sensors work.
pi-camera
Proved some of the exciting things the platform seemed to offer for robotics teaching.

Thesis Abstract

Raspberry Pi is the £25 single-board computer that has taken the education world by storm. Accessible, compact, and capable of running Linux operating system, Raspberry Pi is an interesting platform for small scale robotics, as well having potential for use in teaching robotics. In this paper we highlight the robotics capabilities that this platform has to offer and build a prototype teaching kit, centred around the Raspberry Pi.

This project paved the way for changing the practicals of the Robotics teaching course at Imperial College London.

We focus on undergraduate level robotics teaching, specifically around mobile robotics. We introduce rpirobotics, a python module that we developed for robotics. rpirobotics extends the functionality of nxt-python to control a LEGO NXT 2.0 Mindstorm robotics system using the Raspberry Pi. We showcase the module working with example robotics tutorials. In addition to this prototype we briefly explore GPIO and show the process to develop a simple prototype breakout board. Plus we review work done with the recently released Raspberry Pi camera module in conjunction with OpenCV for simple computer vision algorithms.

→ Robotics Lecture Course by Prof. Andrew Davison

 

Client

Company: MSc Computing Science Masters Thesis

Year: 2013

Role: Developer

Client: Department of Computing, Imperial College London