A Useful Autonomous Home Robot, the UR3
by nbaddorf in Circuits > Robots
949 Views, 10 Favorites, 0 Comments
A Useful Autonomous Home Robot, the UR3

I designed and built a useful home robot to navigate around the house and help with simple tasks.
Story
Quick backstory: I started trying to make a useful autonomous robot five years ago when I was 14 years old. This robot showcase today is the latest version of that project. (Project version 1 can be seen here: https://www.hackster.io/nbaddorf/autonomous-home-robot-to-help-around-the-house-250fff )
The Robot Base

The base of the robot contains the drive base and the computing hardware. The drive base is pretty simple--some old dc motors drive Mecanum wheels through some 3D printed bevel gears. Everything on the base is controlled by a Teensy 4.1 microcontroller. This handles running the motors at the right speed to move the robot where it wants to go.
Odom Wheels

One special addition in this version of the robot is what I call "Odom Wheels". These are little omni-wheels that rotate freely on a shaft and are measured with a magnetic encoder. This whole assembly is on a linear slider so the wheel can easily move up and down over bumps without being affected by the big heavy robot.
These wheels measure the robot's position as it moves around the room. By doing math, you can calculate a fairly accurate location of the robot, which helps with mapping and navigation.
The Battery

Additionally, a new feature of this robot is that it has a LifePo4 battery to run the robot fully untethered.
The Brain

On the backside of the robot you can see the Nvidia Jetson Nano (In blue) which is the main computer running navigation. This talks to the other components of the robot like the lidar and drive base and figures out how to move from one part of the house to the other.
On the left is the power control panel, where you can turn on the robot, control power to individual sections, or charge.
The Tower and Arm



After I got the base robot driving around the house and navigating well, I started working on the tower/arm. This is a motorized "scara" type setup. I designed a 3D printed worm gear setup for the vertical axis which I enjoy watching.
The stepper motors are all controlled with CAN bus motor controllers making wiring super easy.
The Bottle Gripper

(This isnt all wired up yet) The first task I want the robot to do is pickup and deliver water to family or guests. I decided to start with plastic water bottles so that I don't accidentally spill water all over my big project. Eventually I would like to add more attachments to the arm for more functionality.
CAD

Everything for the robot was designed in Autodesks Fusion360. Up until last year I was still a student, so I was able to make use of the student license, allowing access to tools like simulations which let me test the durability and strength of the arm.
Software
Everything runs through ROS or the Robot Operating System. This is the big system most people run, including the Boston Dynamics robots.
The robot makes a map of the house using a lidar scanner and the Xbox Kinect depth information. By combining the robot location information and the laser data, the computer creates a map, and then navigate autonomously through it.
The arm is controlled through MoveIt, which is the ROS system for controlling robot arms. With MoveIt you can add the depth data from the Kinect so that the arm automatically avoids obstacles. The Jetson computer I have is not powerful enough to run both the mapping and the arm control, so I am sending all the arm processing to a server in my house.
The Close Future
I am currently working on implementing a YOLO computer vision system to detect the top of the waterbottles so the robot can locate them. I also need to connect a microcontroller wired into the CAN bus wires to control the servo for the bottle gripper.
The (Slightly More Distant) Future
I would like to upgrade the Jetson computer to a more powerful one so I can run all the computing right on the robot. Additionally, it would be beneficial to replace the older dc motors with brushless motors and Feild Oriented Control motor controllers for increased precision and higher efficiency.
Final Thoughts
I have been working on this goal of a useful autonomous home robot for many years. I want it to be universal, to be able to tackle many problems around the house. (My robot's name is Universal Robot, version 3). The big challenges with doing a project like this is the cost of parts and time to work on it. Now that I am working a full time job out of high school, I don't have much time to tinker and still not much money, but I am trying to continue pursuing this dream.
One tip for any aspiring young inventor: Ask for robot parts for your birthday instead of toys, that's how I slowly aquired some of the more expensive parts of the robot.