Raspberry Pi

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Fawad Murad
Betreuer: Prof. Schneider
Art: Praxissemester
Projektlaufzeit: 02.11.2021 - 20.02.2022

Abb.1 AlphaBot with Raspberry Pi 4


Introduction

The Raspberry Pi is a single computer the size of a credit card. It features an ARM/Broadcom SoC with a GPU, RAM, and wireless and cable communication options. In some ways, it's that straightforward: the Raspberry Pi is just a small computer. However, it is not so straightforward in another manner. The Raspberry Pi is a very adaptable platform that allows you to build whatever you desire.

Initially, we got the AlphaBot with an Arduino attached to it and then we replaced Arduino with a Raspberry Pi 4 and used or programmed it accordingly. In this article, the idea of using Raspberry Pi 4 instead of Arduino IDE with Alphabot is introduced. Like, how different tools make the Raspberry Pi 4 to control and work with Alphabot. Before we go further, let us take a closer look at the difference between these two boards, Arduino IDE and Raspberry Pi. Then, I will discuss on the installation of required softwares and role of GPIO pins to control the hardware.

Arduino

Abb.2 Arduino Uno Plus


Arduino is a development board that uses a microcontroller. Arduino UNO uses the ATmega328P microcontroller, which is based on Atmel microcontrollers. The Processor, RAM, and ROM are all contained in the Microcontroller on the Arduino Board (such as the ATmega328P). Supporting hardware (for power and data) and GPIO pins are included on the board. Arduino was built from the ground up as open-source hardware and software. The hardware and software of Arduino are both easily accessible. There is no need for an operating system because it is a Microcontroller. To connect to the internet using Arduino, you'll need an extra module or shield. In the case of Arduino, there is no wireless connectivity (at least on board). C or C++ programming languages can be used to programme Arduino.


Raspberry Pi

Abb.3 Raspberry Pi 4


The Raspberry Pi is an SBC (Single Board Computer). It's built around a Broadcom SoC, which is an ARM Cortex A Series microprocessor. The Raspberry Pi Board contains all of the necessary components, such as the processor, RAM, storage, connectors, and GPIO pins. Raspberry Pi's hardware and firmware are both closed-source, which means they are not available for general usage. To boot the Raspberry Pi, you'll need a Debian-based Linux distribution called Raspberry Pi OS. Using Wi-Fi or Ethernet, you may effortlessly connect to the internet. The Raspberry Pi includes Bluetooth and Wi-Fi technology. Python, Scratch, Ruby, C, and C++ are the most popular programming languages for Raspberry Pi application development.


Software requirement

  • Ubuntu 20.04.3 LTS (RPi 3/4/400)
  • Robot Operating System 2 (Foxy Fitzroy)

Hardware requirement

  • Robot (AlphaBot)
  • Raspberry Pi 4
  • HDMI cable (for connecting RPi with Monitor)
  • Network cable
  • Network switch

Project planning

Abb 2: Project plan


Installation of Ubuntu Server and ROS2

Overview of ROS

Using the Raspberry Pi’s GPIO to control hardware components

Illustration of the robot with UML diagram

Abb. 15 Use Case Diagram


Summary

This whole article conveys the information related to one specific part of this project. From the name "Raspberry Pi and ROS2", we can get an insight of what can be included in this section. In this article, I discussed on difference between Raspberry Pi and Arduino, Ubuntu as an operating system on our microprocessor, how we can begin with ROS2, why we need it, how it helps us and using Raspberry Pi GPIO pins to control the hardware.

It is shown how Ubuntu Server can be installed on a Raspberry Pi 4, connected to the internet, and used remotely in this article. There are two ways to set up Pi: with an external HDMI screen and USB keyboard, or without. We utilized the first one, which came with an additional HDMI screen and a USB keyboard. After the installation of Ubuntu server, ROS2 is installed with the help of Debian packages on Raspberry Pi, so that it can be programmed with the integration of ROS2. Why do we need ROS? those reasons and its importance is also discussed here. The Raspberry Pi's GPIO pins link to electronic circuits and allow it to control and monitor the outside world. The role of GPIO pins to control the motors and sensor of the AlphaBot is mentioned with the help of code too.



Self-reflection

Since, the above mentioned things are not the only ones what I participated in doing. We worked as a team on this project and achieved the overall result together. Along with above mentioned sections, I was also able to work and sharpen my skill of programming in Python and C++ language by programming Raspberry Pi 4 using ROS2 and the simulation on Webots .

First, each of us was obliged to practise the tutorials of ROS2 and Webots in order to have a good command on these two tools. After walking through the tutorials, I was able to build a similar robot like Alphabot on Webots that I integrated with ROS2 later. We can also control the robot using Keyboard along with allowing it to drive autonomously on Webots. Then, I started programming Raspberry Pi 4 with the integration of ROS2 in order to make our AlphaBot to be able to detect obstacles and drive autonomously.

In short, I got a good grip on following tools by working on this project:

  • Ubuntu, family member of Linux OS
  • Credit-card sized computer: Raspberry Pi 4
  • Robot Operating System
  • Programming in object-oriented language, Python and C++


Outlook

Every day, technology evolves and expands. It's also affecting how individuals conduct their jobs. Robotics is one of the technologies that is transforming the global industrial landscape. Patience, the courage to work through mistakes, and problem-solving skills are all required to thrive in robotics. And I was privileged to work under the supervision of the professors in order to get into this world, explore my abilities, realize my mistakes and improve them. Internship is the point where we get a chance to implement all of our skills that we learnt previously in a real and professional world.

So far, this what has been done on this project. In future, the main program can be modified for more accuracy, so that the robot can detect the obstacle from a specified distance and move in a direction where there is no nearby object. The feature of mapping can also be added that is more useful for the main purpose of this project. Around the world, robotics is forging new ground in learning approaches. It is imperative that we prepare ourselves for the changes that will occur in the future in all facets of our lives, whether personal, educational, or professional. And I am looking very forward to playing my part in it in near future.

Softwares

  • Ubuntu 20.04.3 LTS (RPi 3/4/400). To install Ubuntu Server 20.04.3 LTS on a Raspberry Pi, please use this guide.
  • Robot Operating System 2 (Foxy Fitzroy). To install ROS 2 Foxy on a Raspberry Pi, please use these instructions.

Demo

The code can be run straight from the SVN repository: https://svn.hshl.de/svn/Robotik_und_Autonome-Systeme/trunk/Projekte/AlphaBot_PI_ROS2/ .

In order to know how the code can be executed from SVN directory, please go through these instructions .

Weiterführende Links