programming with kuka sunrise · 2018-07-27 · kuka sunrise cabinet controlller with realtie os...

15
Programming with KUKA Sunrise.OS

Upload: others

Post on 13-Mar-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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);