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

Creating robot targets from gcode for ABB robot using C# API

#1
Hello,

I have been trying to understand how RoboDK creates targets from gcode. For example, how is a sample Gcode line: G1 X123.45 Y67.89 Z0.15 F1200 converted to a robotarget in MOVEL instruction for a ABB robot?

I know robot machining project and 3d printing projects do this automatically, but I want to embed some digital input-output signals and speed information during specific movements and hence need a little more flexibility.

I have looked into some of the functions in the RoboDK.cs file in the C# API example (also the python version). Keeping the discussion specific to ABB IRC5 MoveL command and as per my understanding, the workflow for creating a MoveL robotarget is as follows:

1. Create a pose matrix using position and Euler angles [xyzrpw]: Use function
Code:
static public Mat FromXYZRPW(double x, double y, double z, double w, double p, double r)
在c# API (Transl一样(x,y,z)*rotz(w)*roty(p)*rotx®)

2. Get orientation information from pose matrix (ABB uses quaternions) [q1 q2 q3 q4]: Use function
Code:
static double[] ToQuaternion(Mat Ti)


3. Compute joint angles required for the pose (using inverse kinematics?)

4. get configuration vector [cf1 cf4 cf6 cfx] from joint angles

Questions:

How does RoboDK compute [xyzwpr] (more importantly "wpr" Euler angles) from a gcode line G1 X123.45 Y67.89 Z0.15 F1200? I know this has to do with the relationship between TCP frame and the XYZ coordinates w.r.t userframe (work object frame) but can't wrap my head around it.

Does RoboDK use inverse kinematics to compute joint values for a given pose? Are there any functions available in C# API?

Any help will be appreciated!

Thanks
Rock


Messages In This Thread
Creating robot targets from gcode for ABB robot using C# API - byrakshithb174- 05-14-2019, 06:25 AM



Users browsing this thread:
1 Guest(s)