In a previous article I was talking about how to start learning robotics. Today we will explore some of the most interesting project ideas. Building stuff is much more fun than reading textbooks and you will explore the theory on the way. The entry barriers to do robotics are lowered a lot as nowadays you only need a computer and not even necessarily any electronics knowledge. Sometimes it can be confusing though where to start. There are thousands of possible projects out there and various different topics you can explore in robotics. In this article I will give an overview of different categories of projects you can do and present some of the most interesting ones. We will cover DIY robots with embedded boards like the Raspberry Pi or Arduino, more advanced robots to experiment with the Robot Operating System (ROS) and projects you can do entirely in simulation!
DIY Robot Projects with Rasperry Pi or Arduino
Arduino and Raspberry Pi are two embedded computer boards that are perfect for building robots. They are small, easy to program and have a considerable amount of computing power despite their small footprint. You can easily mount them on different robot chassis and connects motors and various sensors to it. Your imagination is your limit.
Arduino
The Arduino board is less powerful than the Raspberry Pi but maybe a bit easier to set up and it is cheaper. The following Arduino Project presented on circuitdisgest shows how to build a selfdriving robot that avoids obstacles:
It uses an ultrasonic sensor to measure the distance to the next objects. If the object is to close, it autonomously changes directory. An arduino board only costs about 6 $ and a simple robot chassis including motors like the ones used in their setup is just 15$ while a ultrasonic sensor is 2 $ each. So all in all this is a cheap, simple and fun starter project.
Raspberry Pi
The Raspberry Pi is more like a mini computer that is powerful enough to run an operating system like Linux. In this line following project they connect an infrared sensor to the RasPi which makes the robot capable of following a black line on the floor. This is a very common use case for example for warehouse robots. They use Python to program the robot which is a programming language that is easy to start with but nonetheless used a lot in professional robot applications.
There are a ton of other cool DIY robot projects out there like a hand-gesture-controlled robot arm or robots that can be controlled via smartphone and even via speech. You see, the opportunities with those simple embedded boards are endless.
These DIY projects are a great way to learn about electronics, sensors, actuators but also programming that is close to the hardware. If you don’t want to do the assembly and wiring yourself, there are also a lot of shops that provide cheap robot kits like for example Robotshop.
Robot platforms running on ROS
ROS (Robot Operating System) is an open source software framework for applications in robotics which has gained wide popularity in recent years. It is widely used in universities for teaching robotics and even in professional robotics companies (read more here). There is a great community around ROS which offers tutorials, help and ready-to-use implementations. In order to run ROS on a robot however, some computing power with an operating system is necessary. You can experiment with ROS purely in simulation on your computer which we will talk about in the next section but there are also real robots that are dedicated to ROS.
TurtleBot
Possibly the most popular one is TurtleBot, of which the newest version 3 is built by Robotis. It is a mobile platform that is mainly developed for navigation but a gripper can be attached to it for manipulation tasks. The price, starting at 549 $ for the smallest version, is not exactly small but becomes much more attractive when you have a look at the features. Amongst other components it comes with powerful motors, quite some computing power, a battery pack and a 360 degree LiDAR which allows for building a map of the environment (using the SLAM algorithm). The more expensive versions even have a camera attached to experiment with Computer Vision applications. All this makes the TurtleBot very popular in research and education, so if you are searching for an easy entry into ROS on a real robot you might have a closer look.
Robot Arm
If you are looking for a robot arm check out what Trossen Robotics has to offer. Their smallest version PincherX 100 begins at a price tag of 549 $ . With a very small payload of 50g it is not meant to manufacture cars but maybe with a bit of programming it can help you tidying your desk from paperclips. As it is especially developed for use together with the ROS framework, a lot of resources are available to help you get started. It is also worth checking out the rest of their product range where they offer different kinds of robot kits in different price categories.
You can find an exhaustive list of robots that are developed to run with ROS under the following link
Finally, if you rather build your own robot it is possible to install ROS on the Raspberry Pi! There are some limitations due to lack of computing power but it is still sufficient for a whole variety of projects. One example is hooking up a Raspberry Pi on a driving robot platform, installing ROS and connecting an XBOX controller to be able to control it. Wil Salby describes this project on his blog where he also attaches a camera to the Raspberry Pi for vision applications.
Projects with simulated Robots
Let me tell you something truly amazing: For many of the robots on the market there are simulation models available for use in Gazebo and other simulators. Many of them can be downloaded for free, just like Gazebo, which allows us to play with robot applications for no cost whatsoever! The simulation opens up a whole new world of opportunities as it allows to run the robot on our computer in different environments under the physical influence of the real world. We can even simulate sensor data input for example from a 3D-camera. That makes the simulation suitable for all kinds of projects including Vision, Perception, Motion Planning, Control, Machine Learning and more!
On this blog I wrote tutorials for projects with the UR5 robot from Universal Robots. If you are new to Gazebo or robot simulation it definitely makes sense to go through these or the ones on the ROS wiki first. There you can learn how to create your own robot model and how to move it using the MoveIt! Package. When you are ready to take on more ambitious projects, there are a lot of great resources available to help you with that as well. Let me show you some examples for interesting robot projects on different advanced topics done in simulation:
– Robot Kinematics with the Kuka robot
On his medium blog, Nick Hortovanyi writes about projects within the Robotics Nano Degree program on Udacity. One of them is an advanced course about Robot Kinematics. He goes through the process of deriving the DH-Parameters and constructing the transformation matrices to compute the forward kinematics. Based on that, he writes a program to compute the inverse Kinematics to control the gripper position of the Kuka robot and perform a pick and place task.
– Machine Learning with the TurtleBot3
Earlier we talked about the TurtleBot3 from Robotis. They provide tutorial projects on their website, also for using the robot in simulation. One interesting Project is teaching the robot to avoid obstacles using machine learning. In particular, they use reinforcement learning which is a special form of machine learning. They show how to install Tensorflow and Keras as well as the necessary packages, how the model is trained and how to visualize the results. Machine learning is a whole new world on it’s own and at the moment most likely the hottest topic in robotics so it is worth exploring!
– 3D Perception with the PR2 robot
Another project from Udacity’s Robotics Nano Degree program targets robot perception. Nick Hortovanyi describes the project to identify objects on a table. The simulated PR2 is used, which is a two-arm robot developed at willow garage (the creators of ROS). The PR2 robot has a depth camera that delivers a point cloud as a representation of the environment. This point cloud is then processed and various filters are applied to extract the desired information. Finally, a classical machine learning model is trained to label the objects.
The projects that I just described are advanced and target more experienced ROS users. However, the aim was to give you some motivation and to show you all the possibilities you have when working in a simulation. Once you are getting started with basic ROS and Gazebo tutorials and small projects you will automatically gain knowledge and discover more topics that you are interested in and that you want to explore.
In this article I tried to give you an overview of the robot projects that are best for learning robotics. I tried to cover different project categories with varying prerequisites and scope. I hope you found it helpful and now have a starting point from which you can start searching and choose the projects that are the best fit for you. If you know other cool robotics projects worth checking out please put them in the comments below!