Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS...
Transcript of Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS...
![Page 1: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/1.jpg)
Programming with KUKA Sunrise.OS
![Page 2: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/2.jpg)
KUKA LBR IIWA 7 R800
• 7 DOF lightweight robot• Weight: 22.5 kg• Load: 7 kg• Height: 1.25 m• Range: 0.8 m
![Page 3: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/3.jpg)
KUKA Sunrise Cabinet controlller with realtie OS
System Setup
• Prepared Eclipse-Workspace provided• API useable in regular Java programs
Clients using Java API (not RT)
Ethernet
![Page 4: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/4.jpg)
Coordinate Systems
• World CS located in base of robot• KUKA conventon:– Distances in mm– Rotatons in degree (frames) or
radians (joint positons)
X
Y
Z
A
B
C
![Page 5: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/5.jpg)
Basic Usage
• Important classes:– LBR: communicaton with robot, created at startup– JointPositon: 7D vector of motor positons [rad]
j = new JointPosition(0,Math.Pi,0,0,0,0,0)
– Fraie: describes spatal displacements in space, contains redundancy parameters
f = new Frame (x,y,z,a,b,c)
– IMoton: Interface for moton commands
![Page 6: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/6.jpg)
Basic Motons: PTP
BasicMotions.ptp(JointPosition);BasicMotions.ptp(Frame);
![Page 7: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/7.jpg)
Basic Motons: LIN
BasicMotions.lin(Frame);BasicMotions.linRel(x, y, z);
![Page 8: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/8.jpg)
Basic Motons: CIRC
BasicMotions.circ(Frame aux, Frame end);
![Page 9: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/9.jpg)
Basic Motons
• Execute motons synchronously/async.:LBR.move(IMotion); // blocking callLBR.moveAsync(IMotion); // non-blocking call
• Important parameters:– Velocity– Acceleraton
IMotion.setJointAccelerationRel(0.5).setJointVelocityRel(0.3);
![Page 10: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/10.jpg)
Blending
IMotion.setBlendingRel(0.2); // relative valueIMotion.setBlendingCart(20); // in millimeters
PTP: LIN :
CIRC:
![Page 11: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/11.jpg)
Combine Motons
• Create moton batches to combine motonsVector<RobotMotion<?>> l = [...];l.add(IMotion m1);l.add(IMotion m2);...MotionBatch mb = new MotionBatch(l);
• Set parameters per moton or for complete moton batch
• Blending of moton commands (for moton batches or async movements)
![Page 12: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/12.jpg)
Read Sensor Values
• Joint positons and tcp frameLBR.getCurrentJointPosition();LBR.getCurrentCartesianPosition(LBR.getFlange());
• Torque sensorsLBR.getSensorForMeasuredTorque().getSensorData();LBR.getSensorForExternalTorque().getSensorData();LBR.getSensorForExternalForce().getSensorData();
![Page 13: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/13.jpg)
Conditons
• Place break conditons on motons:– JointTorque Conditon– Force Conditon
IMotion.breakWhen(new JointTorqueCondition( JointEnum, minTorque, maxTorque))
• Combine conditons with and, or, xor..ICondition cond = ICondition.and(ICondition);
![Page 14: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/14.jpg)
Compliant Control
• Joint impedance and Cartesian impedance controller available
IMotion.setMode(ImpedanceControlMode);
• Joint impedance controller:JointImpedanceControlMode JICM = new Joint…();JICM.setStiffness(<7 values>);JICM.setDamping(<7 values>);...
![Page 15: Programming with KUKA Sunrise · 2018-07-27 · KUKA Sunrise Cabinet controlller with realtie OS System Setup • Prepared Eclipse-Workspace provided • API useable in regular Java](https://reader031.fdocuments.net/reader031/viewer/2022021621/5e6e8f62c0c3d577da0513e6/html5/thumbnails/15.jpg)
Compliant Control
• Cartesian impedance controller:– DOF-dependent (stiness, damping , maximum
TCP force, …)CartesianImpedanceControlMode CICM = new Cart…();CICM.parametrize(CartDOF.X).setStiffness(3000);CICM.parametrize(CartDOF.ALL).setDamping(0.7);CICM.setMaxControlForce(maxForceX, maxForceY, ...);
– DOF-independent (nullspace stiness, -damping)CICM.setNullSpaceStiffness(10.0);CICM.setNullSpaceDamping(0.7);