Double or Triple Rotarydeltakins on Ethercat

More
03 Nov 2020 08:07 - 03 Nov 2020 08:25 #188189 by Grotius
Update:

Just started to code the kinematics in c++. This is working now. Output is checked oke with lcnc.
Now test some more and then simulate more robots at the same time.



The kinematics file is updated. For the cascade every calculation may have a robot with different specifications.
So the cascade may contain small or bigger robots.

For the ammount of robots in the cascade we use a struct. If we have 50 robots. We auto generate 50 structs.
Attachments:
Last edit: 03 Nov 2020 08:25 by Grotius.
The following user(s) said Thank You: TheRoslyak

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 11:00 #188202 by TheRoslyak
This is great !!!
Can't wait to check it out on real robots.
But my question is how to address each robot? By MDI

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 11:31 - 03 Nov 2020 11:36 #188204 by Grotius
Hi,

I have now a cascade of 50 robots in c++. Only 3 robots are connected in hal.
The robot dimensions and so on are the same as in the rotary delta example. So you can check the output easy.

I can select a robot number. And do a mdi command for that robot. My ethercat motors at my desk are connected to robot 0.
All working fine. The motors are running to the commanded position.

But my question is how to address each robot? By MDI

Next step? Look for some ethernet io code to your vision pc?



Project code so far attached, i call the program "STUXNET_Cascade". Don't worry about my stepper connections. Servo is much easyer.

File Attachment:

File Name: STUXNET_Cascade.zip
File Size:10 KB
Attachments:
Last edit: 03 Nov 2020 11:36 by Grotius.

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 11:41 - 03 Nov 2020 11:46 #188205 by TheRoslyak
Is it possible to do so that I would write the index at the beginning of MDI command and then the command itself.
Like for first robot "E1 x100 y100"
second "E2 x100 y100"
And if a command is sent without an index, then an error
Last edit: 03 Nov 2020 11:46 by TheRoslyak.

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 12:00 - 03 Nov 2020 12:18 #188208 by Grotius
Hi,

Yes. But there is more,

Each cascade robot has the following specs :

2. Robot indentifyer 'R' , followed by the cascade number 'N'
- R0
- R1
- R2 = robot 2, etc.

3. Robot target positions 'X', 'Y', 'Z'.
- X5.10 Y-4.21 Z-9.65

4. Robot speed 'V' for all axis
5. Robot gripper off 'GRon'
6. Robot gripper on 'GRoff'
7. If you need a robot home command 'H' followed by the robot cascade number 'N'
- H0

So a command for robot 0 can be :
R0 X4.2 Y-2.20 Z-12.550 GRon V500

A command for robot 1 can be :
R1 X3.22285 Y-3.5556 Z-10 GRon V500

You can consider to close the package with a mark : 'End'
In that way expanding the package data is easyer in future.

In the project there is already a data read in textfile template, this for info.

Later on : Sealing or floor matrix.
- This is the sealing rotated position of the robot. In wich rotated position you screwed the robot to the sealing.
- In future software releases we leave the current lcnc kinematics and integrate the kdl kinematics. Then we have this option and more.

I looked at linuxcnc's telnet service.
The telnetd program (telnet server) is a server which supports the DARPA telnet interactive communication protocol.
Quite interesting.. :ohmy:
Last edit: 03 Nov 2020 12:18 by Grotius.

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 12:31 #188210 by TheRoslyak
One moment!!!
Letter "R" reserved for rotation coordinate system "G10 l2 p1 R-30"
Letter "E" is free

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 12:58 - 03 Nov 2020 13:30 #188211 by Grotius
Oke.

Do you apply alway's the same tooloffsets for a specific robot ?
If so, it's easyer to apply the tooloffsets to the robot data input structure.

I have integrated a telnet darpa class into the program. I have no server here, so i can not test the packages at the moment.
So we have bypassed the lcnc telnet ..
The telnet code is quite compact, so i think this will work right away.



Another question.

Do you already a logic wich cascade robot will pick up stuff?
I mean you can calculate the active robot area in relation to the pickposition , we don't need the robot number from the server.
And it could avoid a 20 mph collision if robot's overlap pick area's.

I downloaded a model. Maybe connect it to the gui with opencascade.
Attachments:
Last edit: 03 Nov 2020 13:30 by Grotius.

Please Log in or Create an account to join the conversation.

More
03 Nov 2020 13:59 #188219 by TheRoslyak
This is Work Offset. I always flip the coordinate system (multiples of 30 garadus) and compensate for Z.

Please Log in or Create an account to join the conversation.

More
09 Nov 2020 08:32 #188728 by TheRoslyak
hi
I'm sorry for the late reply.All week I was engaged in logistics for these robots
I try to compile file on past past and got errors.
As I understand it, the new program does not require this. or it is a plugin for linuxcnc?

Please Log in or Create an account to join the conversation.

More
10 Nov 2020 09:20 #188854 by Grotius
Hi,

My example program is not fertig for usage.

If you want to look at the following :

1. Make a setup for 9 axis with normal lineair kinematics, here you can send the (mdi) position command trough the lcnc telnet.
2. Make and halcompile a user component, for example "kinematics.comp"
-- use my earlyer providfed c++ kinematics code example in this component, or take the rotarydelta kinematics code and put this code into the component. This is not hard to do. You got a few float inputs, do some calculations, and have a few float outputs.
3. In hal, connect the lcnc position command to your component imput.
4. Connect your component outputs to your motor drives.
5. In your provided hal files there are some scale calculation's. You have to be aware of that.

This is quite a simple solution, based on a existing lcnc installation.

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.276 seconds
Powered by Kunena Forum