# Scale factor of a 3d robot model relative to the real measurements of a robot

I have some measurements of a real life robot, and a 3d model of that robot (lets say in Unity) and I want to know the scale factor, plus I dont want to find the 3d models measurements and then divide with the real world ones to find the scale factor, in order not to get more confused with more mathematics than I am already. So, is there a methodology or will I have to do it as I mentioned?

• What do you mean by "calculate the virtual distances"? What makes you think that the virtual model of the robot has a different scale than the real one? Could you post a link to the model and a link to a description of the robot? – Bending Unit 22 Aug 22 '16 at 17:01
• @BendingUnit22 I've got an ABB IRB 1600 3d model from a "custom" source and I dont know if 1 unit in Unity equals 1 meter or 1 cm or whatever, and I know the model has been previously scaled. Edited the question to help understand what i mean virtual distances. – hey Aug 22 '16 at 17:21
• "I dont want to find the 3d models measurements and then divide with the real world ones to find the scale factor, in order not to get more confused with more mathematics than I am already" - that doesn't make much sense to me. If you already know that this is the solution to your problem, why aren't you simply applying that solution? What is there left to get confused about? – Bending Unit 22 Aug 22 '16 at 17:39
• @BendingUnit22 I dont know the linear algebra needed to achieve this – hey Aug 22 '16 at 17:57
• @BendingUnit22 Also I do not know from exactly which points to measure that distance needed. The measurements are DH parameters and I have them for a real world robot, and given a randomly scaled 3d model of it, I want to adjust them – hey Aug 22 '16 at 18:07

You will have to do it as mentioned. However, if the 3D model is accurate, there is only one number you have to find. Choose any dimension you can measure on both the real robot and the 3D model.

$Scale=\frac{RealDimension}{3Ddimension}$

Every matching real and 3D dimension will give you the same number for scale.

So once you calculate scale once, you can apply it everywhere.

If you know the Real dimension and want to calculate the 3D dimensions:

$3Ddimension=\frac{RealDimension}{Scale}$

If you know the 3D dimension and want to know the real one:

$RealDimension=Scale\times 3Ddimension$

This works for all dimensions. Note that angles don't change with scale. If something is 90 degrees at one scale, it will be 90 degrees at all other scales.

If you are measuring a mesh, then extremes are easier to measure than axis centers. For instance, in the following drawing, the 840mm dimension is probably the easiest to measure in your 3D model. • yup thats what i did but my program isnt working, hope it is not this case's fault. I had a hope I could find scale factor somehow else as I am not sure if the real dimension was measured from the points I used, hope it did. – hey Aug 24 '16 at 21:37
• I did notice that the DH parameters you listed in your other question (it would have been better to just improve that question that start this one) did not seem to match pictures of the robot. Since there are two DH approaches, and link frames aren't always put in intuitive locations, maybe it's nothing. The distance between the two parallel joints is probably the easiest dimension to use. – hauptmech Aug 24 '16 at 22:26
• (I thought it was a different topic(this is "how" and the other is "if"), but now that you mention it, I see it is not that much, maybe I'll do improve the other one and delete this one(?) when ill have some free time). the robot I have is IRB 1600, distal DH convention is used, and check this ( diva-portal.org/smash/get/diva2:648693/FULLTEXT01.pdf ,page 28-29 ) and i have crossed the numbers and tables with irb140's model in Robotics Toolbox, so I guess I am ok. – hey Aug 24 '16 at 22:46
• Nah, I'd say leave the questions as they are now. Regarding your comment, generally it's better to use original data rather than something that could have been copied with mistakes. Drawings (and 3D models) are here: new.abb.com/products/robotics/industrial-robots/irb-1600/… There's two types with different parameters; maybe your 3D model is the other one? – hauptmech Aug 25 '16 at 0:13
• i couldn't find the dh parameters anywhere else, they say that ABB keeps hem secret for some reason, so I found this pdf quite after some search and it contained two models irb 140 and 1600, in the RoboticsToolbox there was only 140, so i checked values and tables for 140 and they where exactly same as RTB which I think is trustable so I guess and hope I was correct, my problem may be with some other part of my code. Also note that d2 and d3 are actually d4 and d6. – hey Aug 25 '16 at 0:54