Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Processor Speed Units Aubo Robots

In Short
Just started using RoboDK and I have some issues generating programs for the Aubo I5 cobot. The core of the issue seems to be that RoboDK is exporting de velocities and acceleration in mm/s, mm/s^2 respectively whereas the aubo expects these speeds in m/s. This results in speeds vastly exceeding the maximum speed of the aubo causing the program to fail.

Is there a way to change the generate a program for Aubo that uses m/s instead of mm/s as the unit for velocity?

Thanks in advance for your help!

Kind regards,


In Detail
To perform some drilling and milling actions I've used the RoboDK plugin for fusion 360 to generate a toolpath. The toolpath displays and runs quite well in de RoboDK software. The program inside RoboDK shows a print command, then speeds, movements, reference frames etc. all the speeds are listed in mm/s.

Then when I generate a path using the 'Aubo' post processor it creates a aubo project folder which I can move to the Aubo robot using a USB stick. When I try to run the programm the Aubo returns an error which roughly translates to 'Velocity outside of allowed range'.

Upon inspecting the move commands it is seen that the speeds are set to 1000 times what they should be. When I lower them manually the programm works as it should.

The Aubo manual states that the robot uses m/s as the unit for interpretting movement speed. So it seems likely that the issue occurs in the translation from mm/s to m/s. I tried to build a new post processor based on the existing one. However the post processerin the RoboDK files only cantains a reference to a compiled bytecode in python.

In light of these issues I have the following questions:
1. Is there any setting within roboDK I can change to make sure it generates the robot program using m/s rather than mm/s?
2. If this is not possible, is there a way I can access uncompiled aubo post processor to see if I can make a custom post-processor that solves this problem.


RoboDK Version: Windows 64 Bit
RoboDK License: Professional (dongle)
Robot: Aubo I5
Robot Software Version: 4.3.5

Note: I am using a slightly outdated version of the aubo software so in the mean time I'll check if the problem persists after an update.
I spend some more into the generated code and noticed 2 more things that might be of use (one of which I basically forgot to mention earlier)

1. I'm loading the files in the Aubo as a project, but the only we I can run them is if I receive them as a Procedure. Other wise running them results in a system crash.
(If I load them as procedure running also results in a system crash).

2. Upon closer inspection it seems the Aubo doesn't load the speeds at m/s but rather as a percentage based on some internal speeds. So 50 mm/s in RoboDK translates to 50% of 2000mm/s in the Aubo software.
Hi Koen, 

We developed the post-processor for the Aubo with a potential customer, but we never had the chance to really test it out ourselves on a real robot. 

I think I already solved the mm/s to m/s issue. 
But good chances other things are a bit wrong. 

Here's the new version of the post-processor. 


Attached Files
.py (Size: 25.6 KB / Downloads: 10)
Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel

Hey Jeremy,

Thanks for the quick response and updated driver. I won't have time to test it till this Thursday so I'll let you know how it goes then.

If that's the case I'd be happy to help with making some improvements, I know my way around python so with some collaberation we can probably make improvements relatively fast.
Hi Koen,

Good, let me know what you can find.

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

Hey Jeremy,

Just found some time to test, in the current version it's moving a lot slower then it should and I think I know why. It looks like my assumptions about unit conversion might have been wrong. It seems the way the post-processor is implemented makes it that the value inputted is a percentage of the max speed of the Aubo.

So I changed the post processor to calculate the max speed as:

SPEED_MS_CURR = speed_mms/2000.0*100

where 2000.0 is the max speed of the aubo, and 100 is 100% which actually seems to work

Attached to this post you will find an example program a screenshot of how the Aubo Controller interpretted the result for the postprocessor you send, and the version of the post-process which gets me the desired speeds. With my modifications the speed value is changed to 5% as opposed to the 0.01 in the picture.

My version of the postprocessor has edits in the following lines:
337 removed the factor 20 with which speed was reduced
338 removed factor 20 with which acceleration was reduced

408 changed setSpeed function
408 changed setAccel function

I haven't checked the joint speed yet.

Btw is there a specific reason you chose to use the Aubo procedure/project format as output from roboDK rather than an Aubo Script (the latter is based on Ual)?

(Asking this because I'm also having some issues regarding program download & reference frames, and I feel the scripts might be more stable. There's examples and an okay-ish reference available on the Aubo Forums)

Attached Files Thumbnail(s)

.rdk   speedTest.rdk (Size: 1.82 MB / Downloads: 0)

Users browsing this thread:
1 Guest(s)