I have been working on the design of this project for close to two years, through many iterations and much trial and error, I am finally done with prototypes, testing, and concepts and ready to begin my final build.
Here is a rendering of my final design:
NineFour is a four legged, nine degree of freedom tele-presence quadruped.
The following is a breakdown of the NineFour features.
- Qwerk Robot controller
- ARM9 RISC processor, 32 Mbytes SDRAM, 16Mbytes flash memory.
- Linux 2.6
- WiFi networking
- Webcam support
- 16 RC-servo controller
- 8 12-bit analog inputs
- 2 RS-232 ports
- USB 2.0
- Built-in audio amp for playing MP3 & WAV files
- 9 Hitec HS-475 HB servos
- 4 Hitec 645MG servos
- 1/4″ laser cut polycarbonate
- Pan/Tilt web cam
- Foot contact sensors
- 1 Ping Ultrasonic range finder
- 4 Sharp IR distance sensors
- Webcam & Laser for 3D object modeling on demand (using software from www.david-laserscanner.com)
The NineFour will be primarily controlled by a Ipad/Iphone app, but will be able to be controlled from anywhere on the globe with access to the internet as long as NineFour has access to a open WiFi network.
My ultimate goal is to create a website where anyone connect to and take control of the robot. A time limit would be imposed to allow many people the opportunity to control it.
In time I would like to add other bots to the system and allow for multiple users to control different robots.
The addition of 3D laser scanning has many possiblities as well. With the use of an onboard laser and webcam, it will be possible to sweep across an object and export a very accurate 3D model for manipulation and viewing. With the eventual addition of a 3D printer, these objects could be reproduced at will.
Sensor input comes from the 4 IR sensors mounted on the top of the robot. These sensors are mounted on a pivot and linked to a servo. These four sensors sweep 360 degrees, with the data being recorded every 3 degrees. This results in a radar-like display locating any obsticles in the surrounding 60 inches of the robot.
Navigation is achieved by one of two methods. First is manual control, essentially having the operator control the speed and path of the robot.
The second method is autonomous navigation in which NineFour will navigate through a space, or play motion detecting security.
Below are some images of my progress, starting off with my first batch of laser cut parts:
Below is an image of an early prototype rendering:
Here is an assembled prototype:
This prototype was designed as a proof of concept, and after initial testing, I determined the weak points in the design and corrected them in the lastest 3D model.
Some of these weak points include:
- Too much flexing in the legs, solved by adding vertical supports.
- Too much play in the leg linkage, solved by using gears instead of links.
- Extreme battery drain, solved by adding higher power battery setup.
Stay tuned for more updates!
This is the final few pictures of my tire molding adventure..
Here you can see the two halfs apart and the keys to line them back up together. Also notics the pour spout and air vent on the top of the mold.
After putting the two halfs together, I used scrap lexan and rubber bands to secure it all together.
Here is the completed tire, I have a little flashing to remove here and there, but overall I’m very pleased with the results!
This is my first attempt at creating a mold for the wheel. Below are a few progress pictures as I went along.
I used Tap Plastic Polyurethane mold material for this project.
The first step was creating the mold frame out of plexi, I used a glue gun to secure the panels together, and a really thin bead of glue to secure it to the base panel. This will allow me to remove the mold piece to flip it.
I added clay to be able to depress the wheel so I can create the mold half.
To calculate how much mold material I will need, I used rice to estimate the volume. This was the way Tap Plastic suggested doing it, not the best way in my opinion. The rice sticks to the clay and takes forever to remove!
The final step was to pour the mold material. This will need to set up for 48 hours.
48 hours later I flipped the mold and here is the clay bottom.
Even with the use of mold release the clay still stuck to the polyurethane. The bits left that you see in the picture were removed before the pour of the second mold half. Notice the 5 nubs sticking up that act as “keys” to match the two halfs together. Also note the three small “pour spouts” that will allow me to pour in my casting material once the two halfs are together. Another 24 hours and I will be able to make my first tire.
The primary microcontroller for this project will be a Pololu, Baby Orangutan B. This is a decent ATmega328P AVR microcontroller, but in order to not use all the resources controlling the servo, I will be making a servo controller. The process of doing this can be found here: http://www.rentron.com/PICX5.htm, this is a very cheap (less than $3) and very easy way to offload the PWM (Pulse Width Modulation) signal from your main controller. Basically you send it a servo ID number and a servo position, the “Servo Pod” will take care of everything else, leaving your controller free to think of other things…such as keeping the robot upright!
(Programming the PIC12F675 chip, sure is tiny!)
The Lexan wheel has a flat outer wall, making turning impossible. The solution to this is to add a polyurethan tire that will mount to the Lexan rim, creating a surface that has a radius that changes as you get to the edges, enabling turning.
The mold was created by sandwiching balsa wood sheets together and cutting out the shape. I then sanded the curved outer surface. To increase surface traction I have also added string “treads” that I have glued around the tire. Once I cast this out of a soft urethane, it will solve the turning problem, as well as adding rotational mass, traction, and hopefully increasing gyroscopic forces.
I usually have my pieces cut by a local laser cutter, but this time I was determined to try out my new scroll saw and Dremel circle cutting jig. The goal of this project was to be simple and cheap, so all included I only have 5 pieces for this robot. I have taken a first pass at painting on the encoder wheel.
In a moment of boredom and inspiration I have decided to build a self balancing, single wheeled robot. the overall dimensions are 7″ tall x 1.5″ wide. The basic principal for the robot is as follows: A single moving outer wheel will rotate on three supporting wheels, one of which is driven by a small dc motor. The robot will balance with the aid of three GP2D120 IR sensors, one mounted on each side of the robot, and a third mounted on the rear. Balance will be achieved by measuring the distance each IR sensor reads relative to the ground, adjustments to the center of gravity will be achieved by rotating the battery pack left or right to get the desired orientation. The third IR sensor will be used to control forward and backward rotation of the body, as to unsure the center section does not rotate within the outer wheel.