Hello,
You should keep the robot "moving", otherwise brakes closes and force is not reduced. Maybe you can keep commanding the movement on the same position (in a loop) until the operation is finished.
Kind Regards
Hello,
You should keep the robot "moving", otherwise brakes closes and force is not reduced. Maybe you can keep commanding the movement on the same position (in a loop) until the operation is finished.
Kind Regards
Hello,
Did you configured the robot as a Device or Controller?
Did you linked and managed safery relevant signals?
Kind Regards.
Hello friends,
just to inform you that I added some other data structures and functions to the library. Now geometric library has to be tested, I will try to make a testing function.
I will not write further updates here in the forum to avoid spamming. Just consider that libray is evolving, so when you will need it, use updated copy.
Have a wonderful day.
Hello friends,
Today added LINE 3D, VECTOR 3D and PLANE geometric data structures and functions.
I made different syntax corrections using WoV, but it could be great if someone could test it with a robot or OfficeLite.
Kind Regards
Hello friends,
Added 3D PLANE geomertry functions. (To be tested)
Have a wonderful day.
Davide
Thank you for your comments panic mode .
I added the missing MSG procedure.
Added the geometric library. Actually it just contains LINE_2D, but I planned to write LINE_3D, PLANE, CIRCUMFERENCE... (I have some c++ code ready to be translated to KRL)
The geometric library is untested. I kindly ask someone to test it, because I have not OfficeLite or Robots actually.
Kind Regards.
Hello panic mode ,
I was hoping for a comment from you 😀
Have you seen the library?
I like your way to debug and comment, so what are your thoughts?
Hello friends,
Here is a repository with some useful KRL functions I wrote in my spare time.
Consider to contrinube with your code if you find it interesting.
Kind Regards,
Davide Rosa
Hello friends,
Just to inform that the repository already contains a client example in python
So rafa del angel can use it.
Kind Regards
panic mode happy to know such results. If you want, if you see it useful for others, you can join the kukavarproxy repository and push your client into the repo. I would be happy to accept you in the developers group.
Right know the only pending improvement is to add a server version message. If someone has suggestions just let us know.
Thank you for the information, I will report it on the repository.
Do you have also information about performance?
if i may add, it would be really handy to have a command to identify server and version.
Nice idea
Hello panic mode ,
Thank you very much for the extensive issue documentation.
I think that I found the problem but I am unable to test it (I don't have a robot nor an OL installation in this moment). However I pushed a new version.
When you have the time, please download and give it a try.
I will be out (because of a working trip) up to the March 4. So I don't know If I will be able to reply before that date.
Have a nice day,
Davide
Hello panic mode , thank you a lot for the feedback. Following some points that I would like to discuss:
All right, i implemented own client in visual studio and it talks...
there were only few minor crashes in the early stage.
1. Do you mean the server crashed? If so, is it reproducible?
2. Yes port is 7000, I will write it in the console description
for some reason running Pyton sample in IDE did work but only rarely, but running it from command line worked most of the time. neither way would work when more than one KRC (OL instance) was running:
3. I had not tested it extensively. I had the possibility to test it only on one KRC4 KSS V8.5. Did you get the same issue with your client?
Not sure why the timestamp is included since all nodes are on the same subnet, likely in the same building. I mean, sure i can strip it and replace with local timestamp but just mentioning it. is there a way to adjust it to show local time? It thinks I am in Portugal
4. It is the KUKA robot that returns the timestamp of the readings. I don't know to which time it refers to.
it would be nice if the discovery would work but at least i was able to simply skip it...
i picked IP addresses from local list and that was fine, rest worked, i can switch to a different controller. so far only tested with two OLs, but hope to try soon discovering two or more real KRCs.
5. During my tests discovery worked fine. Which problem you got with discovery? Does it crashes? Or it simply doesn't return any IP?
Have a nice day
This is a little gift
;this goes in the dat file
global STRUC STR_CIRC REAL A, B, C, RADIUS, E6POS CENTER
;the following goes in the src
global DEFFCT REAL FPOW( BASE:IN, EXP:IN )
DECL REAL BASE
DECL INT EXP
REAL RET
INT ITER
INT ITERS
IF (BASE == 0.0) THEN
RETURN 0.0
ENDIF
RET = 1.0
ITERS = ABS(EXP)
FOR ITER = 1 TO ITERS
RET = RET * BASE
ENDFOR
IF (EXP<0) THEN
RET = 1.0/RET
ENDIF
RETURN RET
ENDFCT
global DEFFCT STR_CIRC circ_from_center_radius(pcenter:IN, radius:IN)
E6POS pcenter
REAL radius
DECL STR_CIRC circle
circle.a=-2*pcenter.x
circle.b=-2*pcenter.y
circle.c=fpow(pcenter.x, 2.0)+fpow(pcenter.y,2.0)-fpow(radius, 2.0)
circle.center = pcenter
circle.radius = radius
return circle
ENDFCT
global DEFFCT BOOL CIRC_FROM_3P(p1:IN, p2:IN, p3:IN, circle:OUT)
E6POS p1, p2, p3
DECL STR_CIRC circle
REAL e, f, g, h, i, m, q, a, b, c, eg, fm, fh, fpow_p1y, fpow_p3x
if (p1.x==0) or (p3.y==0) then
return false
endif
e = 1.0/p1.x
f = 1.0/p3.y
g = p3.x*f
eg = e*g
if ((1.0 -p1.y*eg)==0) then
return false
endif
h = 1.0/(1.0 -p1.y*eg)
i = p1.y*e
m = h*i
fm = f*m
fh = f*h
q = (1.0 +eg*h*p2.y -fh*p2.y -eg*m*p2.x +fm*p2.x -e*p2.x)
if q==0 then
return false
endif
fpow_p1y = fpow(p1.y,2)
fpow_p3x = fpow(p3.x,2)
c = (-fpow(p2.x,2) -fpow(p2.y,2) +p1.x*p2.x +fpow_p1y*e*p2.x -fpow_p3x*fm*p2.x -p3.y*m*p2.x +p1.x*g*m*p2.x +fpow_p1y*eg*m*p2.x +fpow_p3x*fh*p2.y +p3.y*h*p2.y -p1.x*g*h*p2.y -fpow_p1y*eg*h*p2.y ) / q
a = -(p1.x +fpow_p1y*e -fpow_p3x*fm -p3.y*m +p1.x*g*m +fpow_p1y*eg*m +c*eg*m -c*fm +c*e)
b = -fpow_p3x*fh -p3.y*h +p1.x*g*h +fpow_p1y*eg*h +c*eg*h -c*fh
circle.center = $NULLFRAME
circle.center.x = -a/2.0
circle.center.y = -b/2.0
circle.radius = SQRT((a*a)/4.0+(b*b)/4.0-c)
circle.A = a
circle.B = b
circle.C = c
return true
ENDFCT
Display More
Hello VDm,
Thank you!
This version uses WorkVisualInterface. We switched from Cross3 to WorkVisualInterface to prevent installing a server on each robot.
Hope you will find it useful.
This allows you to communicate with more than one robot on the network, and it doesn't require the server to be installed on the robot anymore.
NOTE: I developed it some months ago. If I remember correctly, in order to read/write variables, a program (KRL program) must be selected on the controller. Not a specific program, a program of your choice. It is a limitation of kuka API.
Hello,
Here is the first release of KUKAVARPROXY server for KRC4. It is to be considered an alpha stage release.
The protocol documentation is shown on server startup, printed in the console.
It has a simple python client too.
skilledAutomation/KUKAVARPROXY_KRC4: KUKAVARPROXY for KRC4 controllers (github.com)
Kind Regards,
Davide
Hello my friend,
Unfortunately I cannot share the code, this is our business, you know.
Of course, if you need a particular plugin we can do it.
Kind Regards,
Davide
Hello,
We have developed a plugin for KUKA KRC4 robot that allows the robot to communicate as TCP Client in a network, directly from KRL.
Attached you can find a 24hours demo.
We are able to create any kind of plugin.
Have a nice day,
Davide Rosa
Massimiliano Fago