Let's Make Robots!

I.M.P. - Intelligent Mobile Platform

Stands, Navigates (to be programmed)

Hello LMR! I am a Mechatronics Engineering student in Canada. This is one of my current projects - IMP. He is the result of the voices in my head exchanging cookie recipes. This project is more for self indulgence as I chose to forego some good engineering principles for design reasons/to appease my creativity/satisfy the voices in my head. I welcome any suggestions you guys may have for this project. I am still working on it but have purchased the majority of parts/thought it out in my head. The idea is to build a quadrapod that can also tuck its legs underneath itself and drive around on wheels. This project is going to be stretched over a long period of time as I am always either busy with work or school (and its going to be like this for at least another 4 years) so its hard for me to devote as much time to this as I should.  

To Do

- Develop a gait

- Add all sensors (Infared, Sonar, GPS, Accelerometer, temperature)

- Making him remote controlled

- Build a tail

- Build 4 H-bridges for motors

- Add wheels and program a method to change the method of locomotion

 

Long-term Goals

- Build a speech circuit (Based on SpeakJet chip and text-interpretation chip)

- Add a power consumption sensing circuit

- Develop/program the appropriate inverse kinematics

- Add a web camera

- Stop using DIP parts and develop SMT boards for everything used.


So far IMP is only able to hold himself up + 7.5 pounds (he can hold 150% of his own weight on slippery hardwood floor). I think he can lift up to 10 pounds but I worry about burning out the servos. I will update this blog up more as I get more done.  Here is my progress so far;   



The design was done in Siemens NX 6.0 (CAD program) and Siemens Aero (smaller program that’s part of NX that deals with sheet metal construction). 586 objects present in the final assembly. For every hour of machining I spent 1.5 hours designing.

Assembly 1

Figure 1. Nearly Full Assembly from the Front.

Figure 2. Nearly Full Assembly from the Back.

Figure 3. Blueprint of Leg in Walking Position

Figure 4. Blueprint of Leg in Driving Position


Once everything was designed I machined all the parts, mostly using a bandsaw, drill press, various punches, metal shears, hammer and any other useful heavy machinery in sight. (done in university machine shop). The chassis is made of aluminum and Lexan plastic.

Figure 5. Legs After Being cut and Polished

One easy way to make parts is print them out on paper in a 1:1 ratio and glue them on to your raw metal, plastic or whatever. Then machine your parts and let them soak in water. Use a dish scrubber/metal wool to rub off the glue and paper. Tell people you eyeballed it ;)

Figure 6. Legs that I Machined by Eye-balling .....dam I'm good ;)

After everything was done I put it together.

Figure 7. Legs Assembled and Thread Sealed

Here you can see me finish up putting him together - you can even see me try on one of the wheels that will be mounted on him later.



Figure 8. IMP Laying on his Back While I Attach the Legs

After the subassemblies where done I lubed it up and epoxied anything that looked sketchy. The result was IMP. Here you can see him dangling while I test/program everything individually. And yes that is an Arduino Duemilanove on my desk.

 

Figure 9. Imp Hanging Out

Here is the latest image of him standing  on my floor and holding 7.5 pounds for 30 seconds without slipping (after 30 seconds I removed the weight b/c I was worried about the motors). Please note the cable only provides power to logic. The servos where holding this weight using onboard batteries (attached to belly). As of right now the computing is shared between an Arduino Mega clone and a Lynxmotion SSC-32 board.

Figure 10. Imp Holding 7.5 Pounds on a Slippery Floor


Lessons Learned from This Build


- Be very sceptical of Chinese data sheets that seem too good to be true. I had to replace 8 of the servos because the first ones I bought where not what they where speced to be.
- Buy parts from China. I am a student and this is an expense out of my own pocket. No fancy Hitec servos for you.
- Threadseal gets everywhere and deteriorates plastic. It ruined the mounting brackets on the previous servos and made some of the lexan plastic parts brittle.
- Beware the Arduino 0018 environments. I had some port trouble with it. Wasted a day trying to fix it, reinstalling USB drivers, reading forums, and scanning the source code. Gave up and went back to the tried and tested 0017 - all my problems dissapeared. My machine is a Lenovo w a T5800 and 4GB ram running 64bit windows 7. (PS I know 0019 is out but im sticking with 0017 for now)

/* All my work is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License or any subsequent version of that license. Details here "http://creativecommons.org/licenses/by-nc-sa/3.0/". You don't need to give me any credit but any derivative works must remain free and open source to the community. All code, media, diagrams and details are provided on an "as is" basis with no expressed or implied warranties for suitability to any purpose - don't blame me if something breaks. */

NOT A REAL UPDATE

Sorry LMR I needed to take this project out of “drafts” to show a potential employer the type of projects I pursue on my own time. As it is right now, I.M.P. is hanging in my room back home and I am at university. All the parts have arrived and I will begin integrating them as soon as the study semester is over. While at university I am trying to find a professor that can help me with the IK code.

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Very cool~ That makes me going to modify my FROG someday with wheels.

Pretty much weight that IMP could carry. Good job! Are you gonna post video soon? Can't wait to see it in action. :D

Love the hybrid of wheels and legs.  It will be interesting to see what mechanics you employ for steering the wheels, I look forward to it.  I also suggest Class 1 Bluetooth for remote control, if you want to use it with a computer as well as mobile phone, although I don't think many phones carry the long range Class 1 Bluetooth, which may change.

Yeah all the phone's I ran into have been class 2. When I get around to it I will probably use long range RF and build a local controller for it. The steering of the wheels can be done with rotating the legs about the z-axis. It won't be very quick though as the turning radii of each leg will be slightly off.

yes of course its a nice nice robot... :) great work maaan :) love this things... are going to make a robot like Halluk II

 

http://www.youtube.com/watch?v=AlyvI9Ndo2o

 

nice design mate, really nice one

Yeah the Halluk 2 is really nice >.<  I wish I had the budget for 6 legs (or even 8!). I think IMP will end up being a pilot project and lessons learned from him will be used to make other anthropomorphic robots. One of the videos that I saw while designing him that inspired me is this one;

http://www.youtube.com/watch?v=p1xwF6y8MOs

Thanks for the kind words.

this is nice by the way... looks really professional... can I see your arduino code for servo? you have 4 servos or 12 btw... how are they controlled individual with only 2 pwm channel? :|

There are 12 servos, 3 for each leg. Commands are sent by an arduino via a UART port to the SSC-32 board. The SSC-32 board takes care of refreshing each servo. This was done to help free up the Arduino for other tasks. I didn't go into detail about electrical and coding yet because hardly anything has been done. The code to get IMP to stand in one position and hold weight is bellow. I will update the blog once I program a gate/simple manouvers in.

void setup()
{
   Serial.begin(9600);
}

void loop()
{
    for(int i=0; i<12; i++)
       move(i,1500,1000);          
}

void move(int servo, int position, int time)
{
  Serial.print("#");
  Serial.print(servo);
  Serial.print(" P");
  Serial.print(position);
  Serial.print(" T");
  Serial.println(time);
  delay(time);
}

That looks great. i am impressed with the design being that it can hold 7,5 pounds.

am looking forward to seeing the other integrations you are talking about.

Goodluck

Joker94