Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Smoother movements

#1
Hi everyone,
I've been using RoboDK with Python API for a while now with KUKA Robots, and there's something that's bothering me lately... the robots take a long time between each movement, and by a long time I mean almost a 1 second pause between movements, is there something I can change for making the robot's movements smoother?

Thanks for reading :)
#2
Make sure you don't have collision checking activated:
Tools-Check collisions 
(uncheck this option)

Also, if you change some of the default settings it can alter the default behavior. I recommend you to set the default settings:
Tools-Options-Select Set Default Settings
#3
(12-11-2018, 11:37 PM)Albert Wrote: Make sure you don't have collision checking activated:
Tools-Check collisions 
(uncheck this option)

Also, if you change some of the default settings it can alter the default behavior. I recommend you to set the default settings:
Tools-Options-Select Set Default Settings

I've made both things, but the robot still waits a lot in between movements, I was reading that this can be something about the $ADVANCE option for KUKA robots, default is 2 on RoboDK, but I have no idea if I have to set it less than 2 or bigger than 2...
#4
Setting the $ADVANCE value to 5 should help. This is the maximum value accepted by KUKA KRC2 controllers (and KUKA KRC4 as well, I believe). This value tells the controller how far ahead the robot can look to smooth the movements and prevent speed changes (avoiding jerky movements).

If you select the KUKA KRC2 post processor you'll see that the $ADVANCE value is set to 5 by default. The following link shows how you can select a post processor for a specific robot in your RoboDK project.
https://robodk.com/doc/en/Post-Processor...SelectPost

Also, make sure you don't generate points that are too close to each other. For example, robots are repeatable in the 0.020-0.300 mm range. Having a step of 0.100 mm could be reasonable if you are concerned about accuracy. The robot motion should be smooth if the robot speed is not too fast.
#5
Hello Albert.

I am new in robodk, I would like to know if robotdk has a feature similar to the one in Kuka PRC regarding the type of movements. In Kuka PRC you can choose the type of movement interpolation you desire for the path to execute, It looks like Movement interpolation by distance or by velocity
#6
You can customize this behavior in the Post Processor.

The following link shows how you can select or modify a post processor for a specific robot in your RoboDK project.
https://robodk.com/doc/en/Post-Processor...SelectPost

For example, if you look for the MoveL function in your post processor you can replace the PTP/LIN commands by SPTP/SLIN. You can also define custom triggers in your program to switch from one to the other. For example, if you call a program named SLIN you could intercept it in RunCode function of your post processor and for output as SLIN.
#7
Hello,

I am struggling with a similar issue. I am doing a 3D Printer as the final project at my uni, and I cannot figure out how to maintain the constant movement of the robot. I am parsing the values from gcode (part of the assignment), but when I move around corners using the MoveL command, it is slow, but on straight lines its speeds up rapidly. I am doing online programming using a separate Python script that communicates with RonoDK and KUKA KR 6 R700 Sixx robot.

Except for the speed issue, I have trouble with jerky movements. During the implementation of ball-tracking, I found that increasing RDK.setSimulationSpeed() solves the problem since I must ask RoboDK for the robot.Joints() coordinate to move the real robot, and having faster simulation creates more points where the robot moves, so the movement of the real robot is smoother.

Unfortunately, it is not possible in the case of 3D printing. Because I already know the track (the ball tracking was in real-time using a webcam), increasing the simulation speed results in too fast movements of the robot.

What I have tried so far:
1) I set up the linear speed and acceleration of the robot
2) I restored the settings and made sure that the collision check was unchecked
3) I turned off the blocking command of MoveL
4) I looked for the MoveP command instead of MoveL, which is used by Universal robots, but RoboDK has no movement like this

All mentioned above have not solved my issue, and I am running out of options. As it is online, I can't edit the parser to receive the desired result. The two files are attached below. Firstly open the robo_base, and then run the python script. I would be very grateful for any help.

Thank you very much for your time.


Attached Files
.py   3Dprint.py (Size: 3.67 KB / Downloads: 364)
.rdk   robot_base.rdk (Size: 305.79 KB / Downloads: 275)
#8
I answered your question in the API section.
It's not the same thing if you are using the online programming feature (driver / direct connection between RDK and the robot).
You can't have fluid motion because a handshake is required between the robot and RDK at the end of each move. Therefore the robot must stop.

What you need to do is generate the program and load it on the controller.

Jérémy
Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel


  




Users browsing this thread:
2 Guest(s)