1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Exact path with constant speed

  • lionpeloux
  • November 7, 2018 at 4:01 PM
  • Thread is Resolved
  • lionpeloux
    Reactions Received
    1
    Trophies
    3
    Posts
    47
    • November 7, 2018 at 4:01 PM
    • #1

    Hello,

    KRC2, KSS5.6, KR5002MT

    I am struggling with this (very) simple programme :

    Code
    LIN P1
    	LIN_REL P2
    	CIRC_REL P3, P4
    	LIN_REL P5
    	LIN P1

    P1, P2, P3, P4, P5 define a rectangle with a rounded edge (P2, P3, P4). See the attached figure.

    I am not able to find a way to make the robot follow this path exactly so it does not mark a stop in P2 and P4 (LIN-CIRC junctions).
    I know I can use the same set of instruction with C_DIS ($ADVANCE >= 1) and the bigger $APO.CDIS is the smoother the trajectory will be.
    But to have a smooth trajectory I need a quite big $APO.CDIS (around 50mm for a = 250mm) which is not desirable in my case.

    I would like to follow the exact path between P1>P2>P3>P4>P5 at constant velocity, which is physically possible because of tangency between LIN and CIRC. Is that possible for the robot ?

    Even more simple, what if I have three points P1, P2, P3, aligned. Will the robot always mark a stop in P2 if I write the following program and dont use C_DIS ?

    Code
    LIN P1
    LIN P2 ; robot mark a stop ?
    LIN P3

    Images

    • LIN_CIRC.jpg
      • 61.56 kB
      • 640 × 480
      • 31

    Files

    LIN_CIRC.jpg_thumb 20.05 kB – 164 Downloads
  • Fubini
    Reactions Received
    282
    Trophies
    9
    Posts
    1,903
    • November 7, 2018 at 6:37 PM
    • #2

    You have to use blending $Apo.

    From a physical point of view

    Quote

    which is physically possible because of tangency between LIN and CIRC.

    is not true. You need to be at least twice continuous differentiable to follow a path with constant velocity. The Lin has curvature zero and a circ has a constant nonzero curvature. Hence entering the circ results in a instantaneous acceleration jump. It's the same problem you would have with your car running on the highway at 200 kph and trying to instantaneously turn the steering wheel. You will crash. A robot can not cheat physics. Hence the acceleration difference in Lin and circ need to be transferred. Blending not only transfers velocities but also acceleration.

    Concerning your Second question. Even if the lins are perfectly aligned the robot will stop. The command that tells the robot controller to try not to stop ist the blending command. But if you program in this case c_vel blending the robot will not decelerate at the sections transistion. Here this is perfectly possible because there is no curvature difference.

    Fubini

    Edited once, last by Fubini (November 7, 2018 at 6:51 PM).

  • lionpeloux
    Reactions Received
    1
    Trophies
    3
    Posts
    47
    • November 8, 2018 at 3:28 PM
    • #3

    Oh gosh, you're right !

    Constant velocity on the circle means constant inward acceleration (perp to the path).
    But constant velocity on the line means null acceleration.

    So there is actually a jump in (perpendicular) acceleration at the tangency point and the only way to blend acceleration continuously while staying true to the path is to stop at the tangency point.

    What sort of blend is using the KRC ? Is this a kind of clothoid ?

    See : https://en.wikipedia.org/wiki/Track_transition_curve

  • Online
    SkyeFire
    Reactions Received
    1,060
    Trophies
    12
    Posts
    9,456
    • November 8, 2018 at 5:32 PM
    • #4

    The approximation is based on multiple factors. For a path from A to B to C to D, with B and C approximated, the path will begin approximating at a distance from B controlled by $APO, but limited to no more than 50% of the distance between points.

    This means that, if A and B are far apart, but B and C are closer, a "maximum" approximation at B will cause the TCP path to begin cutting the corner at 50% of the distance from A to B, and "get back on path" at 50% of the distance from B to C.

    The manuals cover this in detail.

    Basically, when Approximation is used, the programmed points act more like "attractors," within a specific rule set. If you need to run a path exactly through your set of points, you can look into Spline motion, which KSS 5.6 supports, but it can get tricky, and has its own tricks. For one thing, the "twice differentiable" that Fubini mentions still applies, and the "conversion" between "classic" motion and Spline motion can get a little tricky. You'll need some practice to get it right.

  • Brecht
    Trophies
    1
    Posts
    1
    • July 28, 2023 at 5:32 PM
    • #5

    Hi,

    Your explanation shows me why I'm working on something that isn't possible. I was following a course of Kuka (Robot Programming 1) : there was an exercise where a spline should follow a constant velocity.

    This exercise is mathematically not possible? Is my interpretation correct?


    Capture.png

  • Fubini
    Reactions Received
    282
    Trophies
    9
    Posts
    1,903
    • July 28, 2023 at 5:50 PM
    • #6

    Sure its possible. But you have to either use blending or better use a spline block. Since the rest of the task is about conditional stop and constant velocity the block is the intended solution anyway. In this case you need to add a spl segment between each scirc and the following slin and vice versa. Spl segment than takes care to meet the conditions on velocity and accelaration of its neighbouring points. The task does not forbid this.

    Fubini

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download