Author
Topic: CAD of my newest robot (Read 49400 times)

Ive probably made 30+ robots in the last 5 years, and decided I waste a lot of time building a new chassis each time . . .

So now Im working on a one-size-fits-all robot test platform. Im designing it to be easy for anyone to make. It also has a special upgrade platform to add whatever I want without rebuilding the whole robot. It will use the same controller as from the $50 Robot.

I want opinions on it - so if anyone wants to use the design it will be useful.

This is the 'bare-bones' platform, a simple diff drive with a castor:

This is the experiment platform that can be changed out depending on 'mission' requirements:

This is an example of what can be added to the experimental platform:

I will use this bot for the next 5+ or so tutorials, including pathfinding, mapping, more vision and sonar stuff, wireless communications, and more! (the red line is a laser pointer that will be controlled by the robot)

Here is a video simulation I did for the prototype:[youtube=425,350]SRx4puXRzmw[/youtube]

I decided that all my robot could do is just wander around (boring) . . . so I decided to add a basic 3 DOF robot arm to it so it can poke stuff. I have some ideas of doing realtime visual servoing without doing trig or frame transposing (hard/intensive stuff) that Ive been wanting to try, anyway.

In the future I could always actuate the claw, but for now Ill keep it simple.

I just ran some stress analysis simulations on the robot arm . . . it turns out my original design was way overkill. Ideally you want the robot arm as small as possible to keep weight as low as possible . . . but if you make it too thin then it starts bending too much. Im a mechanical engineer, I dont just use intuition when it comes to mechanics

I ran the analysis applying 4 to 5 pounds at various locations (the robot itself only weighs 2 pounds). Below is just some of what I did. Click for enlarged images. Btw, my older design was able to handle over 100 pounds, but was too heavy

Im currently trying out Autodesk Inventor 2008 . . . it apparently has ANSYS built in for FEA.

In more updates, I just calculated that with the servos Im using (HS-225 MG), the arm can lift 2.6 pounds plus its own arm weight before stalling. The robot now weighs ~2.7 pounds, so it can almost bench its own weight!

Im now checking the CAD for dumb mistakes and I will hopefully start CNC'ing the parts next week.

I still havent made a decision on which camera I will use yet . . . Ill do that later I guess . . .

Since this robot has a robot arm, I had to do some various calculations to get it perfect.

As always with my projects, all tools I develop become free for anyone. This time, I developed a program that can do all the math for you if you ever wanted to build a robot arm. It even shows you what the arm will look like given your parameters.

Check out my Robot Arm Designer v1 (in excel).To use it, all you do is enter your design parameters in the yellow boxes, and the calculated values appear in red. It also does both forward and inverse kinematics for you. At the moment it is only for a 3 DOF arm:

Made all the parts, then realized I sized all my holes too big . . . so I had to make all the parts again . . .

So here are a few pics of the current level of assembly. I still have yet to decide on which camera to use, so I left that part out for now.

There are unfortunately two more mistakes I made . . .

I forgot that I already modified the servos I am using for the arm, so now I need to buy two new ones (doh!).

Also, I realized my Robot Arm Designer has a flaw in it I cant figure out. For some reason the inverse kinematics do not work outside of quadrant I (doesnt work for negative positions). Can anyone good in math figure out what Im doing wrong?

Also, I realized my Robot Arm Designer has a flaw in it I cant figure out. For some reason the inverse kinematics do not work outside of quadrant I (doesnt work for negative positions). Can anyone good in math figure out what Im doing wrong?

In that case sir, allow me to to explain you problem:When you calculate theta and psi(by the way the symbol for psi in your tutorial is wrong as well. It is not Φ but Ψ, the one that you used is the symbol for phi), you are forgetting that the equation has 2 solutions and you are considering only the positive one for both angles. In that case you will only get the solution in the first quadrant. In other words:let K=(x^2 + y^2 - L1^2 - L2^2) / (2 * L1 * L2) and C=(y * (L1 + L2 * c2) - x * L2 * s2) / (x^2 + y^2)

then in ADMIN's answer we getpsi=arccos(K) and theta=arcsin(C)

but, unfortunatelly, that is just one case.Why? Simple, if you try to solve that equation step by step you will first and up in this equation:K=cos(psi)Now lets examine psi. Psi can be both positive and negative, and one of the properties of cosine is the following:cos(x)=cos(-x)=cos(abs(x)), where abs(x) is the absolute value of x. Considering the range of Psi you nescessarely have to you consider abs(x), because both negative and positive values give the same result. It is exactly when you are solving x^2=1, if you are solving this equation in the most formal way you will get:x^2=1 <=> abs(x)=1 <=> x=+/-1 where +/- is the plus-minus signalReturning to the topic you will then get the following result:K=cos(psi) <=>abs(psi)=arccos(K) <=> psi=+/-arccos(K)then you use this result in order to solve theta and get:theta=-/+sin(C)In the and your final equation will be:

Now you ask me: Thanks, but how am I supposed to do create a Excel file with a graph for that? Ans: As far as I know, you can't. I advise you to use MATlab, but still it would be very difficult.

Now there are 2 things that I can't understand in this robot arm.1) Why is ADMIN trying to caltulate the inverse kinematics equation? An arm that does more than 1 rotation movement will get multiple answers because there are more than one way to move to a certain point and you will get a nightmare equation in the end that will drive you crazy when programing it. Not to mention that your controller will that forever to compute the results.( maybe for this robot it is still possible, but try a slightly more complex robot and you will never be the same anymore)I believe that the best way to calculate this moviment is actually getting the position of the target, then the position of the arm and calculate the actual angle you have to rotate. I mean:X=FUNCTIONTHETA where X is the vector that describes the position of the arm, FUNCTIONTHETA is the vector function of the angles. Let D mean the difference( for example DY=Y2-Y1)than, you calculate the derivative and getDX=DFUNCTIONTHETA=J*DTHETA where J is the Jacobian matrix and THETA the angle vector.DX is the linear displacement and DTHETA is the angular displacement for each servo. Since you have the linear displacement then you want to calculate the angular displacement. In that case you calculate the inverse of the Jacobian Matrix. You will get in the end:DTHETA=J^(-1)*DX

It is a boring process but 100% safe. And easy to program (just use arrays and math.h in C and you are done).

2) the second thing I can't understand is the hand of the robot. That hand can't close. I know you may just want to put some beer on let the robot transport it. But in my opinion, a hand that can't close is like a plane that can't fly.

Now, enough of boring maths, I will post my robot as well. I am doing it mainly for 2 competitions that will be held in September and October and for the 200 bucks contest in the end of July, I think. I am very busy now so I haven't started building it yet, I will start in the and of June.

The ojective is to transport that apple over a outdoors irregular field full of obstacles without letting the apple fall. Except by the apple, according to the rules, I cannot have anything over the top most plataform. Yes, that is right, it is a nightmare. I think I might change the tires for something softer(I am using gum, but I will choose another type of gum and a bigger pneumatic tire). And since I bought a tiny UMPC I might add a camera in order to help the 4 sonars I am using (the fith one is for cheking the position of the apple). The movement system is very similar to ADMIN's Taurus 2. There is a part with some lines so I will be using line tracer as well. My sponsors are Freescale and Futaba, so I am getting the controller and the servos(11 of them) for free. There are a few more features and sensors in this robot but I will leave then for the tutorial later. The robot looks big but it is actually 30X30X25cm^3

Whoa! I don't understand any of that math... I guess this is what I'm missing by not having a university degree...

It makes a lot of sense to calculate the difference in the actual position of the arm and the desired position. I am building a big robot that will have 2 arms, one with 6DOF and one with less, probably 3 or 4. Since I don't know the math, I will make something like a lookup table with stored positions. But this will not be enough, so there will be adjustments based on camera image processing. Hmm, I see it is hard to explain.

About the robot, it looks great! Suggestion: get inflatable tires, and inflate them half way. You will have a soft rocking movement and the apple will have a better chance to stay in place.

Edit: Yeah, where is the claw ADMIN? When I saw your CAD I thought you minimalised it but you have in mind to install one...

Admin, as I was looking at your robot, it stroke me that it has too much weight on the front and too little support for the balance of the arm movement. You will lose adherence (your wheels will slip) if driving on a smooth surface... I would have mounted the arm over the driving wheels, a little to the back, for better stability and traction.

I havent had time to go back over my math yet, but I did however write up a really fast trig lookup table calculator for the AVR to use later. Im still debating if I just want to fudge the arm motions with fuzzy logic or stick with inverse kinematics. Ill play around with it a bit more first and see what it can do.

Quote

where is the claw ADMIN? When I saw your CAD I thought you minimalised it but you have in mind to install one

Dont worry its coming. This is an ERP so it will be forever upgraded with new human killing features. I just wanted to get a basic base and basic software to start off with.

Quote

Admin, as I was looking at your robot, it stroke me that it has too much weight on the front and too little support for the balance of the arm movement. You will lose adherence (your wheels will slip) if driving on a smooth surface... I would have mounted the arm over the driving wheels, a little to the back, for better stability and traction.

Yea Im sort of having this problem. The arm is soooo fast and soooo strong that the whole base moves when the arm does. If you look carefully you can see it in the video. Its a dynamic issue I didnt really consider and I suck at calculating. Im going to have to analyze it to see what I can do. In the mean time Ill add a second NiMH battery to weigh it down by another ~30%.

I think I didn't explain right what I was thinking. I meant to say that I would had the omniwheel at the back of the robot (the back of your robot would be the front) and have the arm above the driving wheels but inside the triangle made by the 3 wheels touch points on the ground. and the battery weight over the omni wheel for counter ballancing. Does this make more sense?

Admin, wouldnt you actually want the hand to bend a little bit?, this would allow the robot to pick things, of course, it wouldnt be able to put them back down unless another arm started pulling,

Quote

=cos(psi)Now lets examine psi. Psi can be both positive and negative, and one of the properties of cosine is the following:cos(x)=cos(-x)=cos(abs(x)), where abs(x) is the absolute value of x. Considering the range of Psi you nescessarely have to you consider abs(x), because both negative and positive values give the same result. It is exactly when you are solving x^2=1, if you are solving this equation in the most formal way you will get:x^2=1 <=> abs(x)=1 <=> x=+/-1 where +/- is the plus-minus signal

is it normal to have a headache now?

Logged

All hail Rodney, the holy 555 timerAnd Steve said: "Let there be lead!"

Wow I can't believe its been 8 months since my last update . . . hmmmm so I guess I should post an update so you guys don't think I've fallen behind too much . . .

Attached is what it currently will look like with all my new upgrades. Lets give a quick rundown here . . .

I've added a second arm, and it has a claw to grab stuff. I don't plan to ever have both arms the same as I want to play around with different claw ideas.

I got bluetooth wireless working - transmitting data, commands, etc.

Wireless bootloading works.

I am swapping out my $50 Robot controller for my new Axon microcontroller. I will post code for both in the future for others to use.

I swapped out the servos in the base of each arm to more expensive/stronger servos. It can now easily (as calculated) do pullups with its two arms.

I increased the robot height so the camera can see better, and so that I can have two levels of space to add upgrade sensors/components.

I increased wheel diameter to increase robot speed, and the wheels are now custom made and ultra light weight/thin.

I got a new 4200mAh battery, giving a calculated 3 full hours of continuous runtime.

Oh and I just spent another $250 in parts . . .

Three things left to do . . . and I have until the mid April MOBOT contest to finish:1) CNC and assemble the new design2) Get the CMUcam to work3) Integrate all my sub-programs in code to work together

Ive just got a plain old camera module, im hopng to use it for better results than a cmu cam. The problem is that i need to program it with a lcd screen to focus it first blaa! why aint there no decent camera modules for robotics that use a low budget!I mean how are we supposed to get people interested in robotics when its all too expensive (im working on it). I want to start a business but theres no point if it all costs so much, unless......

First amazing job admin. but I have a few questions. You mentioned CNC. Do you have your own or access to one? If you have one I was interested in getting one and wanted to know some recommendations if you have any. Also now that you have 2 arms wouldn't it be better to open the hands more so you could use both hands to pick something up instead of just one? That will allow you to pickup bigger objects like a pop can.

I mean how are we supposed to get people interested in robotics when its all too expensive (im working on it).

When I first started making robots back in like 2002, prices were 2x to 3x higher, and only a 3rd the products were even available. And there was no SoR like website either I think this trend will continue.

Quote

You mentioned CNC. Do you have your own or access to one? If you have one I was interested in getting one and wanted to know some recommendations if you have any.

I work for the Navy, so I have infinite funding I use the Haas Mini Mill, but its the only CNC I've ever used so couldn't tell you . . . I use an old version of EdgeCAM to plot the paths. Ideally, you want a CNC thats easy to learn, and low maintenance - the two biggest problems of a CNC (well, that and cost . . .). We also have a large air compression tank needed for the CNC operation . . . it has a tendency to corrode (despite draining it monthly) and needs to be replaced every 2-3 years.

Quote

Also now that you have 2 arms wouldn't it be better to open the hands more so you could use both hands to pick something up instead of just one?

I call it the ERP because its an Experimental Robot Platform. I'll only be adding features to it in the future - including new gripper ideas. Each gripper upgrade I add I'll do to only one arm, so that means the other arm will get an even better gripper in the next upgrade. I'm still thinking of adding a rotating wrist joint, too.

Actually, my distant long term goal is to slowly turn it into a biped. Slowly designing the technology for it, a bottom up design I guess . . .

I guess I'll make another update here. Last night I finished up 90% of the wiring, but my new batteries have yet to come in. Using my old batteries for now . . . Anyway I have it doing basic arm and head motions. Basic arm coordination is now working. Short term goals are to get it to dance, and to test out my CMUcam code (compiles, but no time to test it yet).

In the last few days building this bot I've learned a lot of important lessons I'd like to share . . .

1) I have a table top drill press, with an attached X-Y table, and a small vice attached to that table. I often put a mill bit into it to convert it as a small mill. What I learned is using this to mill out the flange on the large gear when modifying servos is by far the best way to do it.

2) The HS-225BB can only be modified using lesson #1, or using a dremel (the hard way). A simple snip wont work unlike with other servos.

3) Replacing broken gears in servos is fairly easy, both with metal and plastic gears. Had to do both this week . . .

5) Most servos won't break if you reverse voltage, however one of my HS-225MG servos went up in smoke . . . literally tons of smoke. A wasted $35 My other HS-225MG, four of my HS-311's, a Futaba S3114, two HS-5245MG's, and two of my HS-225BB servos survived without a problem.

6) My Axon microcontroller 100% survived the reverse 6V 4500mA battery over a 5 second period. Proof that its noob proofed . . . and expert [without his thinking cap on] proofed . . . Always use a power light LED to clue you in quick!

In other news, I got my bot doing dancing and ninja attack moves with its arms/wheels today. Soooo glad I didn't fry anything else . . . The perfectly smooth CNC'd wheels don't work very well on smooth surfaces (expected problem), so I'll have to add some of my rubber tread material to it. I'll report on how that works out after testing.

Tried testing my CMUcam code, but it wasn't working, and I stupidly left my USB cable at work so I can't look at the output data for debugging . . . Good thing it was turned off when the voltage was reverse