Posts by ElEsgalho

    As Galet said, there is an instruction getJointForce() to monitor the robot torque, or force if the joint is linear, but that won't prevent collisions.

    Code
    void getJointForce(num& nForce)
    
    Function
    This instruction returns the current joint torque (N.m for revolute axis) or force (N for linear axis) computed from the motors currents.
    
    The joint force is not a direct estimation of external efforts. It also includes gravity, friction, viscosity, inertia, noise and accuracy of current sensors, relation between motor current and torque. It can be used to estimate external efforts only by recording forces in reference conditions, and comparing them with forces measured in similar conditions with additional external efforts.
    
    It returns only an order of magnitude for forces. There is no commitment on accuracy that must be evaluated with each application.
    
    A runtime error is generated if the parameter is not an array of num with sufficient size.


    You may monitor the torque of the regular operation, and when running have a task to compare the current value with the monitored one. If the torque is exceeded, then the robot is probably colliding with something.


    Again, this doesn't prevent the collision, only stops the robot when the torque gets to a certain value. So the robot is already colliding by the time the torque gets exceeded. But is good to prevent hard collisions.


    About the brakes, no robot stops with the brakes, the brakes are only used to maintain the robot's position.

    Even when an emergency stop is triggered, most of the robot uses the motor to hold and stop the robot and after a complete stop, the brakes are engaged.


    Don't know any brand that uses the brakes to stop, unless everything else fails. Keep in mind, braking while moving damage the motor and if you do it multiple times, you will need to replace it.


    Any issues let me know,

    Hi,


    Please follow these steps to create and add a tool to the robot.

    1- Open the 3D View, under the Home ribbon select Show 3D view

    2- Add the CAD file, under the 3D ribbon, insert CAD

    3- Wait to load and then select the CAD component, by default when selected the component colour change to green

    4- On the 3D ribbon, click on Create, and then select Tool.

    4.1 - There are other options, suction cup and gripper if you want to grasp other CAD components.

    5- Once it is created as a tool, when selected, in properties you have more options to configure the Tool. But the Handler and TCP are configured on the Edit Component.

    6- Select the CAD component and under the 3D ribbon, click edit component.

    7- It opens a new window, there expand the behaviours on the tree view, frameContainer, and then select either the Handle or the TCP.

    8- Move the Handle to where you want the tool to be attached to the robot, and move the TCP to where you want to be the TCP of the tool.

    9- Once happy with it, save the tool and then close the window.

    10- To attach the tool to the robot, select the magnet mode under the 3D ribbon.

    11- Now grab the tool and move it to the robot flange, once nearby, a magnet will be displayed at the robot flange indicating is ready to be attached.

    12- After releasing it, it should now be attached to the robot.


    Test it, any issues I will help you out.

    as for AI, they seem to be more of a search engine. i remember when Google was not as smart but was able to return tons of results. now it tries to return targeted results but the number of hits is dramatically lower.


    For those who ever reach page 2 on google :smiling_face:


    But you are absolutely right, there was a time that you could learn something new just by browsing. Nowadays is so targeted that you won't learn that much.


    Similar to looking for a word in the dictionary, I always learn new words while browsing, with google you don't "waste" that time and just go directly to the point.

    Hi,

    The manual description:


    This instruction creates and starts a synchronous task.

    The execution of the task starts with the call of the specified program with the specified parameters. It is not possible to use a local variable for a parameter passed by reference, to make sure that the variable is not deleted before the task is completed. A runtime error is generated if the system doesn't have enough memory to create the task, or if one or more parameters are invalid.

    For a detailed description of synchronous tasks (see chapter 5.5).


    Example

    Code
    // Create a supervisor task scheduled every 20 ms
    taskCreateSync "supervisor", 0.02, bSupervisor, supervisor()


    I believe first of all the scheduled time if too big, you are requesting the task to run at least every second.

    Code
    taskCreateSync "myInterruption",1,bIsLate,syncTask()


    Also, your task is not looping, this means that once finished it won't run again.


    Try with above and let me know how it goes...

    Hi,

    I am a beginner in robotics.

    Welcome aboard :grinning_squinting_face:


    it is therefore the same as adding 160 in X and 80 in Y to pFirst point relative to the frame fPallet?


    Yes, it's exactly as you said relative to the frame, it's important to know that is according to the frame coordinate system. Same for the rotation Rx,Ry,Rz.


    p=compose(pFirst,fpallet,{160,80,0,0,0,0})

    Can we assume that on the frame fPallet this calculation is the same as compose():

    p.X = pfirst + 160

    p.Y = pfirst + 80

    p.Z = pfirst + 0

    Well, it depends if p is in the same frame, if so, adding would be the same.

    If for example, that point p was in the world frame, adding the value of pfirst + offset would go in the X direction of the world frame, the resulting point would be different that the compose. If on the same frame, yes is the same composing or adding.


    Also, when manipulating points with VAL3 the way to get access to the X value of a point is like this:

    Code
    p.trsf.x=pfirst.trsf.x+160

    The point variable has 2 fields, the configuration "config" and the transformation "trsf", so if you want to change or get access to the positional values, please first get access to the transformation.

    There are tasks that are continuously running while waiting for information from the PLC to start the operation.

    Maybe If I add an delay(0) to each one of them it can help?

    Best regards

    Not sure how they are structured but yes, if it is a loop with no delay or waits, it will suck the CPU resources. If you need help looking at this, keep posting here.

    It happens something similar to me once.

    Ensure all tasks continually running do have an instruction to cause an immediate sequence, this is, frees the CPU resources to jump to other tasks avoiding a deadlock.


    Example of a deadlock task:

    Code
    do
       ...Something...
    until false


    Example of a task that sequenced immediately:

    Code
    do
       ...Something...
       delay(0)
    until false


    The delay(0) will free the CPU from the task running too many times, allowing resources to run other tasks, like the pendant update internal task.


    Inside VAL3 manual:

    The VAL 3 instructions that can cause a task to be sequenced immediately are as follows:

    Hope this is your problem, otherwise good luck!

    Hi,


    There could be multiple different reasons for that to happen,

    1- The SRS tool and the real robot tool are different, please select the correct tool on SRS by navigating to it and right click and select as TCP

    2- There is no clear answer, you need to look at the programs and try to understand how the robot gets the vision position. Any change of sharing a backup?

    3- Again, it could be something inside the program forcing the point positions, once you change it on the pendant, and if you save, they should be persistent unless there is something in the program to change the value back.

    Hi,


    24V2 is related to the arm power ON/OFF,


    Are the LED on the ARPS ok?

    If the light is not coming ON on arm power this could mean you have a problem with the brake release signal.


    When did this start to happen? When this happens is the robot moving? Any specific position of the robot?

    What do you mean?

    The robot has it's marks used for calibration, which is what we normally use when we want to calibrate it


    Best regards

    I mean, those are good enough to calibrate the robot itself.

    But if for some reason you replace the robot arm, there is no guarantee that the replacement will be placed in the exact same position, even if it's well-calibrated.


    It's possible to create your own calibration references on your cell, so you could check the robot's calibration against those. Our cells had that in the past but now we have a global frame to check the robot after calibration and to do small adjustments if needed.

    This could be quite good especially if you replace it with a different robot size, just teach the same frame and you should be good to go.


    Again, trusting only the robot calibration could not be enough to recover, especially if you move the robot's position within the cell, either for maintenance or replacement.

    I am also same problem, anybody now problem solution?


    Which problem? Showing upper case U on the 7 segments?


    When U is showing it means, and this is the text on the manual

    Code
    E-STOP 1 order memorised: An emergency stop on line 1 has been recorded by the RSI board. This fault is reset the next time the arm is powered up.


    And the suggested solution is to change RSI if this error code remains when the next enable power sequence is initiated.


    I would just double-check

    1- if any emergency is pressed

    2- if the emergency stop 1 wiring is ok


    please see below


    To add some information up,


    If you have a CS9 controller with any safety configuration, you also need to backup the binary file of the safety configuration.

    You need to connect with SafePMT and get the safety binary file.


    Also, I would strongly recommend in the future to create some calibration reference positions, so you can easily calibrate the robot. As it was said here, having the positional information from the application is not enough to recover, you need as well to make sure the robot is running with the same calibration as before.

    I don't see a massive benefit from the free version to the paid one.

    Everything regarding configuration you can do for free on SRS, programming you can do it with notepad++.

    SRS free doesn't allow you to save programs but if you do it with notepad++ you are able to simulate as well.

    At the end of the day, I can't see it as a good investment... But I admit it would be nice to have it, and not struggle with notepad++ tricks anymore.

    Never played with Kuka Sim, but robot studio looks way better than SRS. Also, roboGuide is quite powerful, I can simulate and test vision on roboGuide, the only difference from the real world would be the image quality, but if you want to teach the shape to be recognized, it is very easy on roboGuide.


    To be fair is quite cheap compared to others, I wish I had more Staubli work, I would buy SRS if that was the case... It looks like is winning traction but is not there yet.

Advertising from our partners