CODESYS - the IEC 61131-3 automation software
https://forum.codesys.com/

Set Kinematics Configuration of 6-DOF Robot
https://forum.codesys.com/viewtopic.php?f=6&t=9187
Page 1 of 1

Author:  drsumruay [ Wed Oct 03, 2018 8:18 pm ]
Post subject:  Set Kinematics Configuration of 6-DOF Robot

I 've some issues when i try to change my TCP of robot using 'SMC_SetKinConfiguration', so the Done signal of this block is set to true
but when i 've used 'MC_GroupReadActualPosition' block to read my current configuration of kinematics, it's doesn't change

Anyone Can tell me what i missing or the block is inapplicable :cry: :cry:

Here's my partial Code

VAR
Kin_Config : TRAFO.Kin_ArticulatedRobot_6DOF_Config;
ReadKin_Config: TRAFO.Kin_ArticulatedRobot_6DOF_ReadConfig;
SMC_SetKinConfiguration: SMC_SetKinConfiguration;
END_VAR
Kin_Config(ArmState:=TRAFO.Kin_6DOF_J0_State.ARMSTRAIGHT,ElbowState:=TRAFO.Kin_6DOF_J2_State.ELBOWSTRAIGHT
,HandState:=TRAFO.Kin_6DOF_J4_State.HANDDOWN);
SMC_SetKinConfiguration(AxisGroup:=Unibot,Execute:=TRUE,ConfigData:=Kin_Config.Config);
IF SMC_SetKinConfiguration.Done THEN
;
END_IF
MC_ReadPosition_MCSCoord(Enable:=TRUE, AxisGroup:=Unibot, CoordSystem:=SMC_COORD_SYSTEM.MCS);
IF MC_ReadPosition_MCSCoord.Valid THEN
ReadKin_Config(Config:=MC_ReadPosition_MCSCoord.KinematicConfig);
END_IF

Author:  Edwin Schwellinger [ Fri Oct 05, 2018 10:47 am ]
Post subject:  Re: Set Kinematics Configuration of 6-DOF Robot

Hi,

SMC_SetKinConfiguration is an administrative function block. That means that it will not cause a movement. Instead, it will only _set _ the configuration of the robot. This configuraiton will be used for future movements.

Example:
1) A scara robot currently is in configuration “elbow left”.
 MC_GroupReadActualPosition returns configuration “elbow left”

2) SMC_SetKinConfiguration(“elbow right”) is called
 No movement is done, MC_GroupReadActualPosition still returns “elbow left”, as the robot did not move.

3) MC_MoveDirectAbsolute is called with a target position in MCS.
 The scara now moves the TCP to the given target position, but now in configuration “elbow right”.
 During the movement, MC_GroupReadActualPosition first returns “elbow left”, then “elbow right”


Note 1: the configuration is only used if a target position is commanded in MCS (or WCS/PCS), not in ACS.
Note 2: a movement between different configurations is only possible with MC_MoveDirectAbsolute/Relative, not with MC_MoveLinearAbsolute/Relative or MC_MoveCircularAbsolute/Relative. Reason: the movement is going through a singularity of the robot.

BR
Edwin

Author:  drsumruay [ Sat Oct 20, 2018 7:08 pm ]
Post subject:  Re: Set Kinematics Configuration of 6-DOF Robot

Thank you, for your answer
Edwin

but MC_GroupReadActualPosition still doesn't change follow my configuration during movement or synchornize motion state, for example
>> i set the ArmState:=TRAFO.Kin_6DOF_J0_State.ARMSTRAIGHT but the MC_GroupReadActualPosition change the value itself, maybe ArmState:=TRAFO.Kin_6DOF_J0_State.ARMFORWARD ,so it's not my configuration. :cry: :cry: :cry: :cry:
**********************************************************************************************************
i have another problem with the value of ''Machine coordinate System''(MC_COORD_REF) in MC_GroupReadActualPosition,
'A'(Angle of rotation around z-axis [deg]) value and 'C'(Angle of rotation around z’‘-axis [deg]) value always vary while there's no movement, for example, C value vary between -180 and 180
How can I set 'A' and 'C' value to be static.

Page 1 of 1 All times are UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/