Cerus mobile robot with Xbox controller
Cerus mobile robot with Xbox controller

In previous articles we’ve looked at building a mobile robot and programming it using the Arduino IDE and Jupyter notebooks on a Jetson Nano. This approach is beginner-friendly because it requires minimal setup and helped us to implement teleoperation and a simple go-to-goal behavior.

Once we start adding additional sensors or functionality, however, this approach becomes cumbersome: We have to define custom messages and program interfaces and implement them from scratch. This can be a tricky task, distracting from the more fun part of writing actual code for the robot.

This is where ROS comes in. The Robot Operating System…


Image for post
Image for post

Over the last two decades robots have made their way from factory floors of the car industry and science fiction stories into the real world: Waymo’s fully autonomous taxis that are now operational in Phoenix, Arizona are essentially highly sophisticated mobile robots. URBAN-X startup Climate Robotics plans to make fleets of agricultural robots to combat climate change. Aaron Edsinger, Google’s former Director of Robotics, started hello robot, a mission-driven company to make household robots accessible to people who need extra help at home. Countless companies experiment with robots that automate everyday tasks from food delivery to brewing coffee.

In all…


Image for post
Image for post

In this last article of my thee part series on mobile robots, we’ll look at code that allows us to teleoperate Cerus and gives it its first behavior, namely the ability to autonomously move to a goal location. Throughout this article I’ll provide you with a lot of resources that I found helpful on this journey, as well as a complete repository of working code that I was able to build.

⚠️ The code in this article worked well during testing, but may still have issues. If you encounter any, please add the issue on the GitHub page.

Everything was…


Image for post
Image for post

In this article of my three part series on mobile robots, we will look at all the electronics required to make our mobile robot Cerus move. We will walk through connecting the most important components using common interfacing strategies and we’ll implement first bits of code to enable low-level control over our robot. This article requires you to have a basic understanding of electronics and programming but I hope I will be able to explain all the specifics. Let’s get started.

⚠️ When programming and testing code on a live robot, make sure the wheels are not touching the ground…


Image for post
Image for post

In this first article of my three part series on mobile robots I will walk through the hardware design of Cerus and share practical approaches and useful resources with you.

Setting Development Goals

When starting to design a mobile robot there are virtually infinite routes you can go. Popular designs have wheels, legs, tracks in any configuration — each with advantages and disadvantages. I’ve contributed to a number of different robotics projects over time, from factory floor robots to ones that will work on a farm. I’ve found the best way to narrow down development options is to define a concise problem statement…

Johan Schwind

I help companies build technology-driven solutions for the future of urban life through human-centric design, rapid iteration, and data-driven testing.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store