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

Connect to Automata EVA

#1
I'm trying to connect RoboDK to an Automata EVA. I would like to run a RoboDK robot program on a real robot, but I can't find any documentation on how to do that. The "Connect to robot" ping is working, but I can't actually connect to the robot. There doesn't seem to be any field for an EVA token or any other authentication settings. Am I missing something, or does EVA even work with RoboDK? AutomataDriver.py seems to use compiled .pyc files, so I can't verify whether the Python connection is working properly.

From log:
Code:
auth_create_session request error: status code 400 with error [{'error': {'error_code': 8, 'title': 'error while parsing parameters', 'details': 'invalid JSON: expects " or n, but found 1, error found in #10 byte of ...|"token": 12345}|..., bigger context ...|{"token": 12345}|...'}}]
#2
There is no dedicated driver for the Automata EVA robot.

However, both offline programming and online programming functions are implemented in the 'Automata' postprocessor.

After configuring the connection parameters, you can try to send a program to the robot or execute it:



automata.png   
#3
I got the connection working by modifying the Automata.py file. I commented out the lines:
Code:
#self.eva.control_reset_errors()
#version = self.eva.versions()[0]
#print_message("API Version:" + str(version))
And added the API token like this:
Code:
self.eva = Eva(ip, "MY_API_TOKEN")
Would be nice to be able to add the API token directly from the RoboDK UI.
Now I'm getting a Joint 2 boundary limit error, but it might be coming from evasdk. I’ll look into that next week.
#4
Excellent, thank you for letting us know.

We'll update the post processor accordingly and add a parameter to easily configure the API token.

How do you retrieve the API token? I assume this is different from one robot to another?
#5
(04-22-2025, 03:17 PM)Albert Wrote: Excellent, thank you for letting us know.

We'll update the post processor accordingly and add a parameter to easily configure the API token.

How do you retrieve the API token? I assume this is different from one robot to another?

I think tokens are always different (User/Robot). I attached a PDF of documentation for API token generation and a screenshot of EVA UI. There is still some problem with generated joint values (robot maybe expecting radians?), but I haven't had time to test this enough. Will do more testing next week.


Attached Files Thumbnail(s)
API_token_gen.png   

.pdf   EVA_API1.pdf (Size: 811.01 KB / Downloads: 66)
#6
With quick testing, when generating a robot program from RoboDK, the joint values are in degrees:
Code:
robot.MoveJ([0.000000,26.941900,32.492400,0.000000,-85.214100,0.000000])
robot.MoveJ([16.526600,22.812800,29.575700,0.218710,-83.970100,16.502200])

This results in the following error:
Code:
control_go_to error: status code 400 with error [{'error': {'error_code': 0, 'title': 'Toolpath error', 'details': 'Go to generation error: Motion error (Joint 2 Boundary Limit: Joint 2 hit boundary limit.)'}}]
[16.5266, 22.8128, 29.5757, 0.21871, -83.9701, 16.5022]
control_go_to error: status code 400 with error [{'error': {'error_code': 0, 'title': 'Toolpath error', 'details': 'Go to generation error: Motion error (Joint 1 Boundary Limit: Joint 1 hit boundary limit.)'}}]
When converting these degree values to radians, the code works, but joint 3 flips to the wrong side of the robot. It seems that negative values correspond to the "front" side and positive values correspond to the "back" side for joint 3.


Attached Files Thumbnail(s)
RealRobotPose1.png    PoseInRoboDK.png    EVAJoints.png   
#7
We just updated RoboDK to include the option to setup the variable API_TOKEN in your post processor. It also includes the fixes reported April 25th and suggested improvements.
#8
Can you test this version and confirm that the joints senses are correct?


Attached Files
.robot   Automata-EVA.robot (Size: 283.19 KB / Downloads: 51)
#9
(05-07-2025, 02:11 PM)Olivier Wrote: Can you test this version and confirm that the joints senses are correct?

This version of Axis 3 works correctly in RoboDK axis jog when compared to Automata Choreograph. The robot positions are the same in both visualizations (see pictures). Thank you!

Also connection from RoboDK to real robot is working when replacing API_TOKEN = "ROBODK" with real generated api_token. Thank you!

eva_python_sdk is still waiting for radians for axis angles so getting error when trying to run program on real robot. 

Also this new EVA robot model does make weird moves in RoboDK when trying to teach targets and movements... but this was still work in progress? All my targets are unreachable.


Attached Files Thumbnail(s)
Old_EVA_Axis3_Wrong.png    New_EVA_Axis3_Good.png   
#10
Thank you for your feedback. We just updated RoboDK to account for proper units when using the Automata EVA post processor.

You can take the latest version here (Windows only for now):
https://robodk.com/download
  




Users browsing this thread:
1 Guest(s)