Vehicle Zero Coordinate - Robot Base Reference Set Up

  • For those people who works on Automotive BiW integrations: what method of measurement use for set up of the robot user frame reference on the plant floor? I have some experience using cad software with measuring arms, and old excel macros for calculate transformations. Recently, i programmed a spot welding operation with an old robot setted with a "theoric reference" from robcad. Welding engineers wanted to compare the physical weld points coordinates with 3D car body and check spots deviation. Once the user frame is setted incorrectly, and all waypoints programmed, is a pain in the ass define a new correct frame, execute manually the movement and replace it in each point. do you all have any suggestions?? Thanks.

  • If you are using Fanuc Robots, I built a tool specifically for this situation. Check my sig. The gist of the tool is to convert the path to joint, update the frame and convert back.


    Most robots nowadays have built in conversion packages allowing you to convert from one frame to another.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • For measurement, most of the major robot brands include an "indirect" method for setting up a Base frame. This method most often consists of touching a TCP to four points on the car body, and inputting the car-body frame coordinates of each of those four points. The robot carries out a transform between where the points lie in the robot's "world" or "root" frame and where they are in the car-body frame, and generates a Base frame in the robot that matches the car-body frame.


    A lot of BiW plants don't bother, but it's often a requirement in German automakers facilities.


    Now, if someone has programmed all the weld spots in robot world, instead of in the car-body frame, and you want to convert these points into car-body coordinates without re-programming them all again, that gets into brand-specific territory. In KUKAs, for example, the simplest method is to step through the program and stop at each weld point, change the Base setting for that point, then do a TouchUp on it before moving on.


    Most robotic programming languages include functions that essentially perform matrix inversions and cross-multiplication on positions -- it would be possible to generate the offset between the original and "correct" base frames, then offset each point by that difference. But it would be cumbersome.


    Offline tools... There are some brand-specific tools. For brand-agnostic, setting up a matrix calculator should be possible, in Excel or MatLab. It might be simpler to create a "corrected" copy of an existing program. There might be a way to script it using RoboDK, but I've never looked into it.

  • Thanks guys.

    Nation: I took a look to your app. I understand the math, but can not see how you get the vector position and orientation from the base of the robot (workobj0->ABB, UFRAME[0]->Fanuc, BASE[0]->KUKA) unto the vehicle origin reference.

    SkyeFire: when you talk about indirect measurement, is to teach the robot the measuring points in the station, those destined to metrology?? I need to know the relative positions of the measuring points to the vehicle zero first?? Am I Right??

    In the past i have work in a new cell built in the integrator's shop. Then they made try-out, and sent the cell to the factory. They updated the base frame measuring with a FARO arm using Metrolog software on the station, then measuring robot tcp on many test points, and finally calculate the new "real plant floor" frame with an excel macro inserting the measured points relative to vehicle frame and doing the math. It is impossible that the robot can be mounted in the same exact position of simulation.

    I am Sorry, it is a complex tech topic and maybe exceeds my english skills.

  • SkyeFire: when you talk about indirect measurement, is to teach the robot the measuring points in the station, those destined to metrology?? I need to know the relative positions of the measuring points to the vehicle zero first?? Am I Right??

    Yes. Basically, once you set up a TCP on the robot, the robot always knows where that TCP is relative to the robot's Base 0. So if you have 4 points on the car whose coordinates in the car-body reference frame are known, and touch those 4 points with the TCP, the robot can calculate the 6DOF transform between Base 0 and the car-body origin.


    A similar process can also be carried out using metrology tools, and larger numbers of points. But the built-in robot tools (that I am aware of) usually use only 4 points -- 3 are the mathematical minimum, but the 4th provides a degree of redundancy.


    Robots usually have a "direct" 3-point measurement method, but that requires that the robot be able to touch its TCP to the origin, a point on the X+ axis, and a point in the X+Y+ plane. Since these physical points are rarely available to the robot, the indirect method is often the only means available.

  • Nation: I took a look to your app. I understand the math, but can not see how you get the vector position and orientation from the base of the robot (workobj0->ABB, UFRAME[0]->Fanuc, BASE[0]->KUKA) unto the vehicle origin reference.

    Ah, I thought you were asking about specifically changing frames quickly. I missed the initial part. On Fanucs there is no built in way to get a car into body space easily. On jobs I've worked on where this is done, we would laser shoot the robot into the body space frame, typically by running the robot through at least 30 points to up to 100 points in the body space. They are metrology systems, so that many points was required. The metrology software would then fit the robot into body space with the positions provided by the laser tracker, and then generate a userframe you would then type into the robot.


    Before the metrology software did this though, they used an excel spreadsheet that would best fit the points, and then generate a frame.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

Advertising from our partners