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

Smooth motion with real robot

#1
Hi everyone,

I am currently using a Python program with the RoboDK driver (RUNMODE_RUN_ROBOT) to execute a machining path on the actual robot. However, I have noticed that the robot briefly stops at each waypoint, instead of moving smoothly as it does in the simulation.
I would like to achieve smooth, continuous motion on the real robot—similar to the simulation—without requiring any manual intervention. 
If anyone has experience or knows how to configure this properly, I would greatly appreciate your guidance.
The robot I am using is FANUC CRX-10iA.
#2
You should use the rounding instruction (setRounding when using the API) to make the movements smoother. However, you'll get better results when generating program files instead of using the driver. More specifically for Fanuc it can only buffer 1 movements when you use the driver, however, when you use a program file (LS or TP file for Fanuc controllers), the blending will work better (CNT flag for Fanuc).
#3
Dear Albert,
 
Thank you for your previous response.
 
As you mentioned, achieving real-time control equivalent to the actual robot seems difficult with Fanuc’s KAREL socket communication due to its sequential execution.
Perhaps this could be resolved in the future if we can utilize Fanuc’s RMI option R912 (Position Data Line Communication, Manual B-84184JA_02).
 
I would like to confirm the following additional points:
  1. When I double-click a program in the station, the robot executes it. Is there a Python API command that replicates this “double-click” action  (i.e., execute on the robot)? My goal is to automate the entire process from program creation to execution on the actual robot.
  2. When transferring a program offline, is it possible to automate the process from transfer to execution on the real robot? Ideally, I would like to accomplish this using the Python API as well.
Thank you for your support, and I look forward to your guidance.


Attached Files Thumbnail(s)
program.png   
#4
If you want to generate and send the program to the robot you can trigger MakeProgram with the corresponding flag. For example:
Code:
program.MakeProgram(run_mode=RUNMODE_MAKE_ROBOTPROG_AND_UPLOAD)
You can find more information here:
https://robodk.com/doc/en/PythonAPI/robo...akeProgram

You can find a flag called RUNMODE_MAKE_ROBOTPROG_AND_START. However, this is usually supported with Collaborative robots but not with Fanuc controllers. You could implement a custom integration mixing a station with RoboDK generating the programs and sending them to the robot, and another station with the driver connected to the robot and triggering the program call on the robot. 

You can also trigger a program simulation by calling RunProgram. 

For example, if you want to run a program simulation:
Code:
# program.setRunType(PROGRAM_RUN_ON_SIMULATOR) # Programs are already in this state by default
program.RunProgram()

If you want to run it on the real robot using the driver you can do:
Code:
program.setRunType(PROGRAM_RUN_ON_ROBOT)
program.RunProgram()

You can find more information here:
https://robodk.com/doc/en/PythonAPI/robo...RunProgram

Also you should be able to provoke the same double click event on any item by triggering the parameter "Action" with value "DoubleClick". Example:
Code:
program = RDK.Item("AUTO_PROC")
program.setParam("Action", "DoubleClick")
  




Users browsing this thread:
1 Guest(s)