System variable for parallel linkage?

  • Hi


    We have made a pretty big program in Rapid that we use on many different robots. The program is responsible for robot control in a vision application. Once in a while we encounter a robot with parallel linkage, i.e. the axis 3 servo is next to the axis 2 servo, and the servo pulls a bar that goes up to joint 3, like this:



    Every time we encounter one of these robots I have to change the program, because of how the kinematics works on these robots (joint angle of axis 3 is dependent on joint angle of axis 2).

    So I was wondering : Is there a way to ask the robot software whether axis 2 and 3 are linked like that? Is there a system variable that has this information? In that case the program could have different cases depending on whether the type of the robot, and I could solve the problem once and for all.


    Thanks in advance!


    /RoboticsMan

  • Why, do you have to change the program every time you have one of these robots? You have to have two different programs, one for the linked and one for the others.

    What about an own variable/constant, that you can set during setup of the robot, in case that you don't find a system variable.

  • Easiest is probably just to write your own function to read out the robot model and compare it to known parallel link robots...



    PROC readrobmodel()


    VAR string strRobType;

    ReadCfgData "/MOC/ROBOT/ROB_1","use_robot_type",strRobType;

    TPWRITE strRobType;


    ENDPROC

  • There is not really a "variable". Just the configuration files, as Saaboholic mentioned the robot type is one such instance. I also suggest that you could read the robot serial number upper part which would indicate the robot type. I might be wrong, but I think that the general rule is that the parallel arm robots are named X400, like 2400, 4400 and so on. Their non-parallel are X600, like 2600, 4600, and so on. Older robotware used only two digits for the upper part, 24, 44 and so on. Newer ones were lengthened to 4 digits to indicate the variants like 6620, 6650 and many more.

  • Why, do you have to change the program every time you have one of these robots? You have to have two different programs, one for the linked and one for the others.

    What about an own variable/constant, that you can set during setup of the robot, in case that you don't find a system variable.

    Yes, maybe I made it sound worse than it actually is :smiling_face: I have encountered the "special" robots a couple of times, but it is so far between that I usually have a problem finding the program I made the last time I had that issue... So this time I am going to make the solution so that it can be reused and is always part of the program. A constant in my own program would definitely be an option, but it would be nicer if the person setting it up would not have to worry about this.

  • There is not really a "variable". Just the configuration files, as Saaboholic mentioned the robot type is one such instance. I also suggest that you could read the robot serial number upper part which would indicate the robot type. I might be wrong, but I think that the general rule is that the parallel arm robots are named X400, like 2400, 4400 and so on. Their non-parallel are X600, like 2600, 4600, and so on. Older robotware used only two digits for the upper part, 24, 44 and so on. Newer ones were lengthened to 4 digits to indicate the variants like 6620, 6650 and many more.

    Thank you, that is very useful information!

  • Thanks for that example, I will look into it!

Advertising from our partners