【ECEN034】Guide for POSEINV and POSEMUL without Knowing about Matrix or Vector Calculation

    POSEINV instruction and POSEMUL instruction are advanced instructions in Elite Robot Programming. The concept behind these two instructions involves vector calculation with matrix, which gives a hard time for users to understand without a full time studying in the field. However, learning how to use these two instructions doesn’t necessary requires understanding the principle behind these two instruction. Just like people don’t need to understand the mechanical knowledge behind the design of the screw drivers when they use them. All the users care are about how to use the screw drivers to handle the screws.

    The function of POSEINV and POSEMUL basically handles the pose relationship between each objects. (Pose include position and orientation, which is presented by X, Y, Z, Rx, Ry, Rz). By drawing the arrows between the objects can make the relationship clear to view. The effect of POSEINV and POSEMUL will be applied to the arrows.

Using an arrow to understand what POSEINV does:

    Assuming a object and a robot are placed as figure above, the object is at point O, and consider the origin of the robot is at point R.

    The arrow above shows a pose of O is indicated by the coordinate system of point R. It’s probably easier to consider it as a master-slave relationship, where R is the master, O is the slave. The pose of O refers to R can be written as Or.

    If inverse the pose of Or, the arrow will flip direction as figure above. The master-slave relationship will be reversed, where O becomes the master, R becomes the slave. The new pose is the pose of R refers to O, which can be written as Ro.

    In EC JBI programming, if V000 is the pose value of Or, then POSEINV will change the value of V000 to pose of Ro.

    Making words simple: POSEINV is used for inverting the arrow direction!

Using the arrows to understand POSEMUL:

    In the figure above, there is a robot at point R, an object at point A and another object at point B. Ar is the pose of A refers to R. Ba is the pose of B refers to A.

    If multiply the pose Ar and Ba, as Ar*Ba, then result will be pose Br as figure above. Br is pose of B refers to R.

    Making words simple: POSEINV connect two arrow into a single arrow.

    In EC JBI programming, if V000 is pose value of Ar, V001 is pose value of Ba, then “POSEMUL V000 V001” will obtain pose value of Br and save it into V000.

    Please be aware about the order of poses for POSEMUL instruction, the leading arrow should have its pose value filled in the first parameter for POSEMUL instruction; the following arrow should have its pose value filled in the second parameter.

Application Example:

    In real applications, multiple POSEINV instructions and POSEMUL instructions are used in a series to get a specific pose value from a complex pose relationship.

    The figure above is an example for common vision application: R is the robot, B is a calibration board, O is an object for pick up, C is a smart camera mounted above the object.

    Br is pose for the board refers to robot, which is normal obtained by some kind of calibration method.

    Bc is the pose for the board refers to camera, which should be obtained by visual calibration.

    After the calibration for both robot and camera is completed, the board can be removed in most cases.

    Oc is the pose for the object refer to camera. It’s calculated from photo taken by the camera. Normally this is the picking up reference point, which means object at this exactly position should not need any offset for picking up.

    In the program, the first step is to use POSEINV to inverse Bc to Cb, so pose of the camera refers to the board is obtained.

    Then POSEMUL Cb*OC to obtain Ob, which is the pose of the object refer to the board.


    Finally, POSEMUL Br*Ob to obtain Or, the pose of the object refer to the robot.

    Or is used as picking up reference position. During the production, the object’s pose of each cycle will be calculate by the camera, which would be Oc’. Then this pose will be converted to a pose refers to robot by the process above, which results as Or’. The robot need to calculate difference between Or’ and Or to update the picking up position for the object in current cycle. And the process repeats for every single cycle.


    By drawing the arrow diagram, then use POSEINV and POSEMUL to organize the relationship. The ideas are just 3 sentences:

    POSEINV inverts the arrow.

    POSEMUL connects the arrow.

    Parameter order for POSEMUL: (Leading Arrow)*(Following Arrow)


  • 密码登录
  • 验证码登录