RobotStudio event

CalcJoint in background task

Hey,
our goal currently is to detect collisions between two roboters. For this reason we want to collect the current JointPos in a background task while the robots move around in another task. The robots send the relevant data via TCP and the collision detection is then done outside of Rapid. The thing is, we do not have the MultiTasking option currently to test things and I just read CalcJointT only works when the robot is standing still. Is there an alternative way of doing this?



Comments

  • Hi IX,
     

    I guess you can use system output signal "Motion supervision triggered (MotSupTrigg)" for this purpose.

     

    From IRC5 system parameters manual :


    Description:
    If Status has the value Motion Supervision Triggered, the I/O signal is set when the collision detection function has been triggered.
    Erdem Karaçeper
  • Hi,
    well the thing is, we want to use our own collision detection, which is then done in a ROS node. So we need a way to get the current axe values while the robot is moving around.


  • Hello IX,
     

    The IRC5 controller does not have any built-in real-time stream of joint values to a TCP client outside of the controller.

     

    The idea of using CJointT to get the joint positions from RAPID and then sending them via a RAPID SocketMessage in a Background task would work, but only at low robot speeds (about 200 mm/sec).  While CJointT works, it is slow and not necessarily synchronized to the robot motion, particularly at high robot speeds (> 500 mm/sec).  One must remember that background tasks will get low priority when the robot motion has a complex motion to do, for example in singularity re-orientations, the background task will not run for several milliseconds.

     

    So it matters what levels of performance you are looking for. 

     

    Kind Regards,

     

      Steve

     
  • Hi IX
     

    There is a RobotWare option called Robot Reference Interface (RRI) which could be helpful for you application. This description below is from the RRI application manual:

     

    Robot Reference Interface is an option, supporting data exchange on the cyclic
    channel. It provides the possibility to periodically send planned and actual robot position
    data as well as the exchange of other RAPID variables. The message contents are
    represented in XML format and are configured using appropriate sensor configuration
    files. The cyclic communication channel (TCP or UDP) can be executed in the high-priority
    network environment of the IRC5 Controller which ensures a stable data exchange
    up to 250Hz.

     

     

    -Osku
  • Hello,

    Good answer Osku,  that was better information, I had forgotten about RRI.

     

      Steve

     
  • Cool. Good luck.
    Now, the international
    robot concept has been gradually approaching the same. In general, people can accept this argument, that the robot is to achieve its own power and ability to control the various functions of a machine. Adopted by the United Nations Organization for Standardization defined under the American Federation of Robotics (IFR) to the robot: a programmable and versatile operating machine;, or to perform different tasks with specialized systems available computer changed and programmable actions. "That it could Humans bring a lot of convenience!


  • Hi Guys,
    I'm not very familiar with the IRC controller, however, we simply use world zones for crash prevention. A signal is turned high while one robot's TCP is in the zone, and while this signal is high the other robot simply waits until the first is out of the zone.

     

    Might be too simple for your application, but always worth a shot.

     

    -matt