help to set up the kinematics

More
25 Jul 2011 11:00 #11819 by step4linux
axis - joint relation is defined in kinematics, not in hal.
But sometimes there is a confusion about axis and joints.
Also emc is not consistent, because what is called axis in ini, its in reality joint.
Only for a trivial kinematic, its equal, and for this there is fixed relation in trivkin (joint 0 = axis x, joint 1 = axis y etc).

In hal the joints are connected to a real motor driver.

When you say "My robot work correctly when i use the manual mode", do you use joint or world mode ?

Gerd

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

More
25 Jul 2011 11:05 #11820 by andypugh
honey wrote:

Ok, I have used genserkins module and I set it with the parameters of my robot. But i have a problem.... my axis x not corresponds to joint 0 as well as axis y to joint 1 and so on...!! Where and how i can make the right corrispondence? i must create some lines in hal for resolve this problem?


I am not sure what you mean here.
In "Joint mode" you should be able to move the individual joints as "Joint 1", "Joint 2" etc.
In "World Mode" the end of the arm should move in cartesian X-Y-Z (and possibly A B C) space, with all the joints moving together to achieve this.
You swap between Joint mode and World mode using the "$" key.

Your HAL file should set the correct Denavit-Hartenberg parameters for your particular robot, but that has nothing to do with allocating joints to axes, that isn't what Kinematics does. Kinematics trtansforms motion in a single axis, or simultaneous motion of several axes into the coordinate motion of all the joints that need to move. (Or, in joint-mode jogging, it calculates the current position of the end-effector in Cartesian X-Y-Z space from the joint positions.

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

More
25 Jul 2011 11:13 #11821 by honey
My robot work correctly in joint mode. I am able to move the individual joints as "Joint 1", "Joint 2" etc. Instead in the world mode my robot doesn't move! So which could be the problem?

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

More
25 Jul 2011 16:25 #11836 by honey
This is my hal file. Maybe there is here something wrong......

File Attachment:

File Name: armdroid.hal
File Size:6 KB
Attachments:

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

More
25 Jul 2011 16:48 #11838 by PKM
honey, setting up a robot with serial kinematics is not an easy task, so be ready to put much effort in it. Do not expect it to work from the first attempt, even from the tenth.

Which interface do you use? If it's AXIS, pressing Shift-4 in manual tab lets you switch between joint and world modes. What happens when you try to jog in world mode?

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

More
25 Jul 2011 18:05 #11845 by honey
I know very well that it is not easy especially for who like me are not very experienced. But I do not give up even to the tenth attempt! :)
Yes, i use AXIS interface. When i use joint mode my robot works in manual control ( I am be able to move every single joint) but doesn't in mdi or auto. When I switch to world mode i have in the interface axes XYZABC but I am unable to move my robot either in manual control or with mdi commands.

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

More
25 Jul 2011 18:29 #11847 by PKM
Well, but what happens when you press +-X for example? No messages, and the robot stands still?

By the way, you might try new configurations with robot disconnected from the PC, for safety reasons.

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

More
25 Jul 2011 21:11 #11851 by andypugh
I managed to get your setup to launch.

It seems to have problems in the kinematics parameters. If you look in dmesg you will find thousands of error messages.

I think you need to look very carefully at you D-H parameters.

An (possibly unrelated) problem, I think, is that the joins are not in sequence in the Puma visualisation tool.

In genserkins the joints need to be defined in sequence from the base to the end-effector. That is what Serial Kinematics means. Then the D-H parameters need to be correct and consistent. I don't actually know how to do that bit, it has never been relevant.

Have you see the video here?

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

More
26 Jul 2011 10:04 #11859 by honey
andypugh wrote:

In genserkins the joints need to be defined in sequence from the base to the end-effector. That is what Serial Kinematics means. Then the D-H parameters need to be correct and consistent. I don't actually know how to do that bit, it has never been relevant.


This is the problem that i thought! Now I have defined joints in sequence from the base to the end-effector.
When I use world mode and I try to move robot in manual control, this error message appear. " Need to be enabled, in teleop mode for teleop move" and "jointN following error". What means this?

It seems to have problems in the kinematics parameters. If you look in dmesg you will find thousands of error messages.


You can me explain better this?

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

More
26 Jul 2011 11:25 #11865 by andypugh
honey wrote:

When I use world mode and I try to move robot in manual control, this error message appear. " Need to be enabled, in teleop mode for teleop move"

That isn't a very clear error message, but looking in the source code it seems to indicate that motion might not be enabled on one or more axes.
I think it means that the motion.enable pin is not being set TRUE in your HAL file, or might be a consequence of the next error..

"jointN following error". What means this?

This means that the axis in question can't keep up with the requested motion. With a stepper based system like yours it means that the stepgen can't move fast enough to keep up with the required speed (or that the stepgen isn't even enabled)

It seems to have problems in the kinematics parameters. If you look in dmesg you will find thousands of error messages.

You can me explain better this?


EMC2 sends error messages to the system error log, which you can view in the terminal by typing "dmesg"
I found that my system actually locked up because so many errors were being sent to dmesg by your original config, many thousands of messages stating that the kinematics module couldn't find a solution to the requested movement commands.

if you open a terminal from the accessories menu, then you can type "dmesg" while EMC2 is running to get some clues what is wrong.

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

Time to create page: 0.250 seconds
Powered by Kunena Forum