6-axis / robot / pico-system / genserkins
- duesentrieb66
- Offline
- New Member
- Posts: 14
- Thank you received: 0
The point is the values change at puma but not with my setup. Why?
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23170
- Thank you received: 4860
The point is the values change at puma but not with my setup. Why?
Can you confirm that _world_mode_ jogging in C by 0.1 degrees has an effect?
There are two things here that need clarification:
1) What is "C" in your coordinate system?
2) Your C moves are _very_ small.
You can switch to world-mode jogging with the $ key (a bad choice, I know, I have keyboards without it)
Please Log in or Create an account to join the conversation.
- duesentrieb66
- Offline
- New Member
- Posts: 14
- Thank you received: 0
Can you confirm that _world_mode_ jogging in C by 0.1 degrees has an effect?
It does NOT move.
This would move the last axis (AXIS_5) of the robot - there where the spindle is mountedWhat is "C" in your coordinate system?
[AXIS_5]
TYPE = ANGULAR
UNITS = 0.03937007874016
HOME = 0.000
MAX_VELOCITY = 1.20
MAX_ACCELERATION = 2.5
PID_MAX_VEL = 1.2
BACKLASH = 0.000
CYCLE_TIME = 0.001000
INPUT_SCALE = -128000
OUTPUT_SCALE = -1
MIN_LIMIT = -1000.0
MAX_LIMIT = 1000.0
FERROR = 0.1
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0 #.05
HOME_LATCH_VEL = 0 #.1
HOME_USE_INDEX = YES
HOME_IGNORE_LIMITS = NO
DEADBAND = 2e-05
P = 105
I = 0.4
D = 2.4
BIAS = 0
FF0 = 0
FF1 = 0.4
FF2 = 0.001
HOME_SEQUENCE = 0
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23170
- Thank you received: 4860
Can you confirm that _world_mode_ jogging in C by 0.1 degrees has an effect?
It does NOT move.
I thought you said that it _did_ move when jogging, but not MDI?
This would move the last axis (AXIS_5) of the robot - there where the spindle is mounted[/quote]What is "C" in your coordinate system?
I think you are confusing Joints and Axes.
A world-space jog in X will move Joints 0 and 1 to make the tool tip move in a straight line in X.
A jog in Z will (probably) move joints 1 and 2 to make the tool tip move in a straight line vertically.
A jog in A will change the angle of the tool-tip by moving (probably) all joints to rotate the tool tip round the current XYZ point.
Given that, I don't know what a C-jog will do with your machine.
Also, your AXIS_5 UNITS is totally wrong. It should say something like "degrees", it shouldn't be a number at all.
Are you sure about the INPUT_SCALE? I think that the combination of the very small movement commanded (0.1 degrees) and the enormous input scale might mean that the machine is moving, but absolutely imperceptibly.
Please Log in or Create an account to join the conversation.
- duesentrieb66
- Offline
- New Member
- Posts: 14
- Thank you received: 0
I thought you said that it _did_ move when jogging, but not MDI?
The robot is moving in joint mode but not in world mode. So lets forget about the mdi and gcode for now until it will move in world mode.
I think you are confusing Joints and Axes.
A world-space jog in X will move Joints 0 and 1 to make the tool tip move in a straight line in X.
A jog in Z will (probably) move joints 1 and 2 to make the tool tip move in a straight line vertically.
A jog in A will change the angle of the tool-tip by moving (probably) all joints to rotate the tool tip round the current XYZ point.
Given that, I don't know what a C-jog will do with your machine.
In world mode XYZABC is always the same. XYZ are linear movements and ABC rotation around the axis. C is rotating around Axis-Z. A rotates around Axis-X and B rotates around Axis-Y.
Witch joints of the robot is moving if I rotate on C is depending in witch position the Robot is. In the simplest case the robot is in the position like the Puma560 in the demo files or/and like in this image:
A rotation of C would rotate the very last small cylinder on the arm along the Z axis. And now it is clear that only the last joint (AXIS_5) moves. It would be a complete different story if, lets say, the joint before would be rotated. Then a change in C would properly make all joints move. but for now let's keep it simple. The genserkins settings in my hal file are like this on the image. So only Axis_5 has to move.
Also, your AXIS_5 UNITS is totally wrong. It should say something like "degrees", it shouldn't be a number at all.
I agree - thanks for the hint. But in joint mode the axis is moving. I assume that when the values doesn't make sense he takes the values from [TRAJ] UNITS. but I'll correct this. Thanks.
Are you sure about the INPUT_SCALE? I think that the combination of the very small movement commanded (0.1 degrees) and the enormous input scale might mean that the machine is moving, but absolutely imperceptibly.
No, I'm not. And frankly I'm not sure what I'm doing here.
I tried to play on this value but when I go to small - let's say under 10,000, the motor jumps and the drive goes in overload.
But I came closer to my other problem of the scaling. Even when the robot axis made a full turn I have on the display C: 2.000 instead 360 (input_scale-128,800). If I change input_scale to -64,400 then C:4.000. So I assume I would have to go smaller until I have 360.0, but again, the motor starts to jump and stop.
So I'm lost here and properly this is the problem like you wrote.
Thanks
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23170
- Thank you received: 4860
But I came closer to my other problem of the scaling. Even when the robot axis made a full turn I have on the display C: 2.000 instead 360 (input_scale-128,800). If I change input_scale to -64,400 then C:4.000. So I assume I would have to go smaller until I have 360.0, but again, the motor starts to jump and stop
The servo feedback PID loop sets an output command to the motors proportional to the position error.
If you change the numerical value of the position units by changing the scaling then the numerical value if the error term changes too even if the actual motor is in exactly the same position.
So, if you change the scaling to give -180 to 180 movement from +/- 1 then at the very least you will need to divide the P-term in the PID by a factor of 180 to have the same PID stability. I think that you would then need to re-tune I and D FF too, also starting from a much smaller value.
Have you tracked down the problem to there being no change in motor position command for joint 5 or is it that the motor position command changes and the motor doesn't move?
Please Log in or Create an account to join the conversation.
- duesentrieb66
- Offline
- New Member
- Posts: 14
- Thank you received: 0
Now it makes perfect sense to me!
But this still doesn't solve my problem. The servo is running fine with this setting in joint but not in world mode. And I don't think itbis because the settings. Remember, the velicity goes up for ca. 1 second and then back. So something is happening, it just doesn't go back to the servo.
I have an idea to try when I'm in the shop in 1-2h. I keep you informed.
Please Log in or Create an account to join the conversation.
- duesentrieb66
- Offline
- New Member
- Posts: 14
- Thank you received: 0
i changed
[AXIS_4]
HOME = 0.000
to
[AXIS_4]
HOME = 0.0001
and now it works.
The reason must be that the angle calculations in the genserkins.c must f#ck up when this angle is zero. I guess because he doesn't know in witch direction the calculations go. Or so...
Thanks, Andy. For your help and patience!
PS: Hope we have a pint together when I'm in Norwich soon
Please Log in or Create an account to join the conversation.
- Y837
- Offline
- New Member
- Posts: 2
- Thank you received: 0
How to set parameters about genserkins?
Please Log in or Create an account to join the conversation.
- Y837
- Offline
- New Member
- Posts: 2
- Thank you received: 0
How to set parameters about genserkins?
Please Log in or Create an account to join the conversation.