Discussion

Left ArrowBack to discussions page
Grady_TurnerGrady_Turner Posts: 67Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
edited November 2016 in Programming
I would like to be able to have a known path, and be able to "slice" that path into tiny moves such as the UR does in the background when generating motion.  During each move slice, I'd like to look at a force value on the FT sensor and adjust the next move accordingly so that the robot can either:  1. move on a path and keep a constant force applied very consistently or 2. "react" or follow a non smooth surface.

Comments

  • Etienne_SamsonEtienne_Samson Posts: 417Beta Tester Beetle, Wrist Camera URCap 1.3.0, Vacuum Beta tester Handy
    @MarcAntoine_Lacasse could advise you on that!
    Etienne Samson
    Technical Support Director
    +1 418-380-2788 ext. 207
    [email protected]
  • MarcAntoine_LacasseMarcAntoine_Lacasse Posts: 23Beta Tester VIsion 1.1 Program Handy
    Actualy, their si no easy way of recording a path to play it back in force mode. Fortunately, we are developping  such a tool. It will add a PATH node to Polyscope programming interface and you will be free to use this path inside a standard forcemode node. The forcemode doesn't use the Force/Torque sensor data yet but we are also working on that.  Your program will resume to a path node into a force node.



    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • Etienne_SamsonEtienne_Samson Posts: 417Beta Tester Beetle, Wrist Camera URCap 1.3.0, Vacuum Beta tester Handy
    Grady, you should check out the path recording Marc-Antoine is speaking about!
    Etienne Samson
    Technical Support Director
    +1 418-380-2788 ext. 207
    [email protected]
  • Grady_TurnerGrady_Turner Posts: 67Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
    @MarcAntoine_Lacasse @Etienne_Samson  

    I do not mean doing this while using force mode, or recording a path.  For example, I have a starting point and an end point (or a distance to travel) and I want to slice that path up into many tiny moves.  During each tiny move in positioning mode, I would like to monitor the force along an axis from the FT Sensor, and then update my next tiny move in the positive or negative direction of that axis.  This would allow very sensitive reaction to forces vs. using the UR force mode.

    Does this make more sense?
  • MarcAntoine_LacasseMarcAntoine_Lacasse Posts: 23Beta Tester VIsion 1.1 Program Handy
    You could make the moves relative to a frame and in a separate thread, move this frame in reaction to the force ?


    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • matthewd92matthewd92 Posts: 948Founding Pro, Tactile Sensor Beta Testers Handy
    @Grady_Turner is the path that you want to travel linear?  Can you draw out a diagram of what you are wanting it to look like, I have an idea based on some work we did creating a modifiable circle script so that we can make ellipses if we want with the script.
  • Grady_TurnerGrady_Turner Posts: 67Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
    @MarcAntoine_Lacasse  Great idea! I will try it.

    With my initial testing I calculated an end point from a start point, then used interpolate pose function to slice up the path.  In a thread I would, based on force, alter the next position output from the interpolate pose function.  It did not work so smoothly...
  • matthewd92matthewd92 Posts: 948Founding Pro, Tactile Sensor Beta Testers Handy
    @Grady_Turner was the motion just not smooth or did it not work?
  • Grady_TurnerGrady_Turner Posts: 67Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
    @matthewd92  It was not smooth.  I played with all of the numbers for a good while and still it was rough.  These were: blend radius, slice size, speed, acceleration, thread update rate, and force range for altering the points.  A lot of variables to be sure...
  • SimonSimon Posts: 8 Apprentice
    @Grady_Turner are you still interested in a solution?
    In case no, I'm happy to have one of our support engineers provide a small video explaining how that problem would be solved with our software.
  • matthewd92matthewd92 Posts: 948Founding Pro, Tactile Sensor Beta Testers Handy
    @Grady_Turner one suggestion that was given to me last week since we are trying to do a similar thing is to use the servoj command instead of a movej or movel command.  You would need to feed the command the joint positions but if you have the slice in TCP coordinates you could use get_inverse_kin() to get the joint positions.  Supposedly this is how you get very smooth movement on the robot.  I have gotten it to work in a thread, but not in what I am trying to do.  Let me know if you have any questions.  Also, if you want to share the program I could take a look at it as well.
  • Grady_TurnerGrady_Turner Posts: 67Founding Pro, Partner, Beta Tester VIsion 1.1 Program, Wrist Camera URCap 1.3.0 Handy
    @Simon Yes I am still interested, and would be happy to see what you come up with.

    @matthewd92  Thanks for the tip, I'd forgotten all about that command..  I'll give it a try and share the results.
  • matthewd92matthewd92 Posts: 948Founding Pro, Tactile Sensor Beta Testers Handy
    @Grady_Turner something I was told was to try to feed the servoj command a move every time slice to get the best response. 
  • SebastienSebastien Posts: 219 Handy
    @Simon
    This is really interesting, do you have a video that you could share to show this?
  • SimonSimon Posts: 8 Apprentice
    edited September 2016
    @Sebastien @Grady_Turner
    Here's the result from a short demo in the lab we made this afternoon




    What do you think, would that solve your problem?
  • SebastienSebastien Posts: 219 Handy
    @Simon
    Nice and smooth! Do you have automatic trajectory generation in the software? Let's say along the edge of a particular CAD object?

  • SimonSimon Posts: 8 Apprentice
    @Sebastien
    We have path interpolation (linear, ptp etc.) as well as collision-free motion planning in our software. Right now, you cannot pick an edge directly but we offer tools like snapping to vertices to select points on the surface of a CAD file. Based on these points you can generate the motion you like, e.g. a linear or spline motion. In the image you see a motion along the edges of a CAD file with its velocities encoded using a color scheme from red (slow) to green (fast).
    You can also generate collision-free trajectories around teached obstacles as well as obstacles loaded from CAD files automatically. Alternatively you can load a path or reference points from a CSV file.






  • MarcAntoine_LacasseMarcAntoine_Lacasse Posts: 23Beta Tester VIsion 1.1 Program Handy
    @Simon
    Offline programming from CAD requires precise calibration and part location relative to the robot frame.
    Does generated trajectories generally require a touch up  ?
    Is it faster to use a path recording tools ?
    The force overlay during execution, is it a custom force control or the UR force mode ?

    @Grady_Turner
    Suppose you have a known path recorded at 10 Hz and you want to play it back with force control at 125 Hz, you could have the main loop that set a global target poses variable at 10 Hz and a thread running at 125 Hz that calculates an offset poses according to the force and calls something like servoj(get_inverse_kin(pose_add(target_poses, offset_pose)), t=0.008). This way the robot target position would be updated at 125 Hz even though the trajectory has been recorded at 10 Hz.  

    Marc-Antoine Lacasse
    Research Engineer
    [email protected]
  • SimonSimon Posts: 8 Apprentice
    @MarcAntoine_Lacasse
    This depends a lot on the mechanical setup, the required accuracy to solve a given task and if the required path is known without the real setup. You often have to calibrate the reference coordinate frame of the path but this takes less time than recording a highly accurate path. For tasks like polishing it is usually not easy to define a path offline without having the real setup and recording is the better choice.

    In our software, we use a custom force control algorithm (inside the generate URScript), which can be far better customized than the UR force control.
  • SebastienSebastien Posts: 219 Handy
    @Simon and @MarcAntoine_Lacasse
    Based on the experience of some projects that we worked on, for glue dispensing application that require just programming a path along a specific surface, to avoid part localisation matching between the virtual world and the real robot cell, I would consider path recording option. This way you simply record the path live on the object and I believe it saves time and removes all the position matching issue between virtual and real cell. However, we did robot milling project where extremely complex trajectories needed to be programmed and this required us to use offline programming tool like MasterCam and RobotMaster.
  • SebastienSebastien Posts: 219 Handy
    @Grady_Turner  @matthewd92
    I was curious to see how that program turned out. I have a part that I need to do something like this but with a constant moment rather than force as the robot move along. Can you guys share some programs to help us get started. We could build onto it and adapt it to our application and then share it back!
Sign In or Register to comment.
Left ArrowBack to discussions page