3D Printed Rover

To recap a few things before I go on to the next part, the rover is powered by 4x continuous rotation servos and communicates with the computer by means of Xbee and a program running on the computer called ZTerm. The part are all printed and designed by me and what makes them unique is the fact that the 3D printed parts are held together by friction. The wheels and motors are bolted on, but that is it, there is no glue, tape or anything bonding the robot together.

What I am planning to do in the future is add an Ultrasonic and IR range finding sensors (long and short range respectively) so that the rover can navigate around while the driver cannot see it. Simultaneously it will build a 2D landscape as if you were looking at the surroundings from above by taking that data collected from the sensors (and a compass sensor for direction) as a Python program plots the points.

Here is the code that runs on the rover:

The controls are “wasd” and “e” to stop.

If you think that this is neat please pass it on. I would love to hear any suggestions that people have for improving it. I apologize for the video quality. This is the only camera that I have on hand at the moment but I will try and get my hands on another for a better quality video in the next day or so. Please refer to the photos here for better detail.

I will also upload the 3D files if you would like to print your own copy. It took me about 22 hours to print everything on the “Fine” setting.

Recently I was able to convince Instructables to sponsor our Robotics Club with a 3D printer. THANK YOU INSTRUCTABLES! We have been busy printing ever since. Despite the long wait for prints we have completely fallen in love with the printer.

As a second term senior I have found that I have some additional time on my hands and needed a new project. What I came up with was a 3D printer cart powered by 4x continuous rotation servos that would be remotely controlled with Xbee. The attached sensors are a compass sensor and IR range finder. The point is to be able to remotely drive the cart into a room and have it create a 2D map of the room and then send that data back to the controller wherever their computer is.

At this point I have run test scripts with the Xbee and compass sensor. Finished printing all of the parts and soldered header pins onto everything. Now I need to put all of the parts together and program it.

To clarify a few things in the schematic. The Xbee will be connected to the Arduino with Sparkfun’s Xbee shield. There will also be some additional button/LED/switches in the final project, but I did not feel that it was worth cluttering the schematic up to put them in.

The majority of the programming will take place using Python and Tkinter for the interface. I hope to do as much of the number crunching on the computer instead of on the Arduino to keep the rover constantly moving instead of pausing to do calculations.

The general idea is to have the computer send a command “drive forward 10cm” which the rover then does. Then the computer says “ping” and the rover spins the servo with attached ultrasonic sensor and takes distance readings at 0′,30′,60’…180′ and then sends that back to the computer. The computer then with some geometry plots those coordinates and sees that there is a wall 15cm ahead so it sends “turn 90 degrees”. The rover does this with the help of the compass sensor and continues on.