Double or Triple Rotarydeltakins on Ethercat

More
10 Nov 2020 13:02 #188866 by TheRoslyak
Can you tell me. This is the first time I’m doing this and therefore will be asking a bunch of stupid questions. :-)
For begin, I did this file and compile. Am I acting in the right direction?
And what is the "time" variable?
Attachments:

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

More
10 Nov 2020 15:48 - 10 Nov 2020 15:53 #188887 by Grotius
Hi,

It's starting to look oke.
Try to get your static variables outside the function. Look at other components if it's possible.
Your robot arm lenghts could be done as float input from outside the component. This make's your component more dynamic.

If you want to know the time. You can do a compile to c code. Try that. The output is more difficult to read, but it give's you an idea what's actually happening behind the scene's.

This is the first time I’m doing this and therefore will be asking a bunch of stupid questions.
At first sight. It looks oke. Nice work so far ! I am happy for you !

One thing i thought about.
You can actually make a component for 3 robots. Or make one component for one robot and load it 3 times with a variant name.
Loading multiple threat's can become an advantage if the xyzabcuvw mdi is chucked up in 3 seperate mdi commands. But first try it simple.
Last edit: 10 Nov 2020 15:53 by Grotius.

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

More
10 Nov 2020 16:53 #188895 by TheRoslyak
ok. I understand that now I just do it to somehow work.

As for the 3 robots.
1 I found that linuxcnc (in Hal metr) has 16 joint. I can use them. But as I understand it, I cannot manage them by mdi or it is not possible, isn't it?

Now the question is a little off topic.
2 How much it is now possible to use Etherlab master (ec-debianize) for Jetson AGX Xavier (or other Jetson) I still do not understand. Has anyone done something fancy on the Rasberry Pi?

3 I have an Omron NX-ECC coupler. If you use "ethercat slave" only it is identified, all other modules (like NX-series Digital I/O Unit) are not defined. With what it can be problem? Etherlab master (ec-debianize) ?

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

More
11 Nov 2020 11:33 - 12 Nov 2020 10:17 #188984 by TheRoslyak
I can force data to be put into the "axis.a.pos-cmd" variable.
I can't do
axis.a.pos-cmd: = addrotarykins.0.transA.
Can I in *.comp how to refer to axis.a.pos-cmd bypassing the source code?
Attachments:
Last edit: 12 Nov 2020 10:17 by TheRoslyak.

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

More
12 Nov 2020 16:32 #189121 by Grotius
Hi,

As for the 3 robots.
1 I found that linuxcnc (in Hal metr) has 16 joint. I can use them. But as I understand it, I cannot manage them by mdi or it is not possible, isn't it?

I don't know. Never done that. You can try it and find out.

Now the question is a little off topic.
2 How much it is now possible to use Etherlab master (ec-debianize) for Jetson AGX Xavier (or other Jetson) I still do not understand. Has anyone done something fancy on the Rasberry Pi?
3 I have an Omron NX-ECC coupler. If you use "ethercat slave" only it is identified, all other modules (like NX-series Digital I/O Unit) are not defined. With what it can be problem? Etherlab master (ec-debianize) ?

This are question's that takes more time to ansfer.

I can force data to be put into the "axis.a.pos-cmd" variable.
I can't do
axis.a.pos-cmd: = addrotarykins.0.transA.
Can I in *.comp how to refer to axis.a.pos-cmd bypassing the source code?


You only connect your comp in the postgui.hal file by the net commands. Comp's are loaded at last, after all hal files are loaded.
You can test you component with halshow to make a dummy connection. Then you can monitor your output and what is happening and if it's working at certain levels. Try this !

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

More
12 Nov 2020 17:31 - 12 Nov 2020 18:05 #189133 by TheRoslyak
I don't quite understand why I need postgui.hal in this case.
I am getting the correct transA, transB and transC variables. But I cannot link them to axis.a.pos-cmd. Because the values ​​axis.a.pos-cmd and * transA are output. i can't find a variable which is the input for axis.a.pos-cmd.

In rotarydeltakins this input varibles is rotarydelta.joint(0/1/2) and output is axis.(x/y/z).pos-cmd. And it works both ways,isn't it?
Last edit: 12 Nov 2020 18:05 by TheRoslyak.

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

More
16 Nov 2020 09:00 #189498 by Grotius
Hi,

Your component output can be connected to the ethercat motor controller.
You have to look if you want to add the stepgen before or after the component.

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

More
16 Nov 2020 09:52 - 16 Nov 2020 09:54 #189502 by TheRoslyak
How can I assign my variable to a linuxcnc variable?
by ethercat I send only joint position!
Attachments:
Last edit: 16 Nov 2020 09:54 by TheRoslyak.

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

More
16 Nov 2020 13:27 #189510 by Grotius
Hi,

The component joint output is your ethercat joint position, these should be connected trough a net command.

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

More
18 Nov 2020 08:53 - 18 Nov 2020 10:36 #189651 by TheRoslyak
Good day.
I figured it out. I had to use the formulas from the inverted kinematics. Can you give any example of how I can use the "if" function or analog in a hal file? I want to make a condition that if the robot is not crazy -> work in classic joint
else work in transJoint.
And Can you tell me if the variable in hal knows whether I'm working in World mode or Joint mode?

upd I find var halui.mode.is-joint)

PS Printscreen not work. I'm too lazy to figure it out :)
Attachments:
Last edit: 18 Nov 2020 10:36 by TheRoslyak.

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

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