Tag Archives: romi

GeMaB Update

RomiBot Update

I recently moved to a new house, which is great in many ways, but unfortunately, the floor is tile, which is much more uneven than the laminate that I used to have. This means that the Romi robot occasionally gets stuck over a crack or uneven tile due to the size and design of the chassis (4 points of contact mean that it is possible that one of the drive wheels is no longer in contact, and hence the bot can’t move).

Since the last post, I upgraded the Lidar shelf to a fully 3D printed part and upgraded to a Raspberry Pi 4, though I never really took advantage of the power it had. For now, I am going to cannibalize the Raspberry Pi, Camera, and Lidar, though I may upgrade GeMaB later and bring these parts back to the Romi for some parallel development or other fun use.

GeMaB Architecture

I’ve done more development on what I want the overall Architecture for GeMaB to look like. For now, the main brain will be an Atomic Pi. In the future, I may replace this, but since I plan on adding an ethernet switch and modular power, I could simply augment it with something like a Jetson. I’m planning on using a Ryobi 18v battery to power it for now with a Teensy as the motor controller.

More to come with assembly pictures.

The Birth of GeMaB

(Get Me a Beer)

Introduction

I’ve always been interested in Robotics.  From playing with motors and popsicle sticks to the first LEGO Mindstorms, underwater ROVs, and FRC, it’s always been an interest.  I haven’t had the chance (outside of internships) to get paid to work on them, so I’m starting this project as a hobby to build my skills up in the hardware and software field for current, state-of-the-art robotics topics.  

The goal of the project is to create a robot that I can ask to get me a beer, and it will be able to go and retrieve one for me.  There are many ways to accomplish this, from a simple arm on a bench that reaches over to an open fridge, to a set of beer-pouring robot arms, to a mobile beer fridge.  My goal is to create something that is capable of accomplishing this task while having the flexibility to do other household tasks. The goal is also to incorporate a number of technologies that give me an opportunity to learn the full overview of technologies that allow mobile robots to perform autonomous tasks, not just the minimum to accomplish the state goal.

To that end, my plan is to create a small, inexpensive learning robot to provide a foundation for initial real-world software development, while designing the larger goal robot.  A smaller platform will allow me to iterate more quickly and easily, and is less expensive to screw up.

RomiBot

The Smaller Platform

I am using the Pololu Romi base as my small learning platform.  It is relatively inexpensive (especially when on sale…), and takes care of a number of start-up hurdles like power, motor control, and processing connectivity.  It is also flexible enough that I can strap on sensors and develop algorithms for many of the needed skills.

It currently consists of the Romi Base, a Raspberry Pi 3, an RPLIDAR A1 and a Raspberry Pi Camera.  I’ve expanded the hardware using a combination of micro-rax, 3D printed components, and plastic sheets. Power is provided through 6 Eneloop NiMH AA batteries. It’s not perfect, but it allows me to have a replacement set on hand, and rechargeable. I can get 1-2 hours of runtime with LiDAR and driving around out of them.

The Raspberry Pi is running Ubuntu with ROS Kinetic as the underlying framework.  The Arduino on the Romi control board is running the mostly default AStar code, with ros_arduino_bridge (updated to include i2c support).  The general framework is intended to be compatible with the turtlebot3 code as much as possible to reduce initial setup effort. It currently can run the turtlebot3 slam gmapping code as well as the camera view code.  I have not created a custom URDF or tweaked the gmapping settings to work cleanly, but everything runs. You can also connect to it from remote Android apps to view the camera and control it.

I’ll follow this post up with more details on my higher level plan as well as the on-device setup procedure to get things working in software-land, the 3d files, hardware configuration, and some more.

Hopefully, I’ll update at least once a week with progress, ruminations, or designs.