basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · master...
TRANSCRIPT
![Page 1: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/1.jpg)
Master in Bionics EngineeringUniversity of Pisa and Scuola Superiore Sant’Anna
Basics of robot control
Cecilia LaschiThe BioRobotics InstituteScuola Superiore Sant’[email protected]
Human and Animal Models for BioRobotics
![Page 2: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/2.jpg)
Robot definition
A robot is an autonomous system which exists in the physical world,
can sense its environment, and can act on it to achieve some goals
Maja J Mataric, The Robotics Primer, The MIT Press, 2007
![Page 3: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/3.jpg)
What’s in a robot?Robot components
Maja J Mataric, The Robotics Primer, The MIT Press, 2007
![Page 4: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/4.jpg)
Robot Control
• Control of one joint motion:• PID controller
• Control of the manipulator motion:• Trajectory planning• Motion control in joint space• Motion control in operational space
T. Bajd et al., Robotics, Springer 2010
![Page 5: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/5.jpg)
Robot kinematics and differential kinematics
Kinematics
Differential kinematics
𝑥 = 𝑘 𝑞
ሶ𝑥 = 𝐽(𝑞) ሶ𝑞ሶ𝑞 = 𝐽−1(𝑞) ሶ𝑥
𝑞 = 𝑘−1 𝑥𝑥 =
𝑥𝑦𝑧𝜑𝜗
𝑞 =
𝑞𝑜𝑞1𝑞2𝑞3𝑞4𝑞5
Velocity space
𝑘 ∙ = equations of direct kinematics
𝐽(𝑞) = Jacobian matrix
![Page 6: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/6.jpg)
Robot Control
• Control of one joint motion:• PID controller
• Control of the manipulator motion:• Trajectory planning• Motion control in joint space• Motion control in operational space
T. Bajd et al., Robotics, Springer 2010
![Page 7: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/7.jpg)
Controllers• Encoder: sensor measuring joint
rotations, either as an absolute or a relative value. The measurement is given in “encoder steps”
• Reducer: mechanism reducingthe motor rotations with respectto the rotations of the axismounted on the motor (ex. 1:k reduction)
• Power amplifier: it amplifies a reference signal into a powersignal for moving the joint
• Control unit: unit producing the reference signal for the motor
A control system provides a command(in voltage or current) to the actuators(motors) such that the joints reach a desired configuration
![Page 8: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/8.jpg)
Relations between joint position and encoder position
• q: joint angular position (in degrees)
• : joint position in encoder steps
• k: motor reduction ratio
• R: encoder resolution (number of steps per turn)
𝑞 =𝜃 × 360°
𝑅 × 𝑘
![Page 9: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/9.jpg)
Control of one joint motion
• Objective: move the joint from the current position qi (in
degrees) to the desired position qf , in a time interval t :
qi qf
![Page 10: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/10.jpg)
Closed-loop (feedback) control
• The variable to control is measured and compared with the desired value
• The difference, or error, is processed by an algorithm
• The result of processing is the input value for the actuator
Actuator
Sensor
Desiredvalue
-
Current position
e Control algorithm
V
+
![Page 11: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/11.jpg)
PID control(Proportional, Integral, Derivative)
• It is a closed-loop control in which the error is processed with an algorithm including Proportional, Integral and Derivative components.
• The algorithm processes the error and provides an input to the actuator, with 3 components:
• Proportional, producing a correction proportional to the error;
• Integral, producing a correction given by the errorintegral in time;
• Derivative, producing a correction which is a function of the error first derivative.
• Not all closed-loop control systems use a PID algorithm
![Page 12: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/12.jpg)
PID control(Proportional, Integral, Derivative)
• In a PID control system, the error is given to the control algorithm, which calculates the derivative and integral terms and the output signal V
Actuator
Sensor
Desired value
-
Current position
ePID
V
+
![Page 13: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/13.jpg)
PID control(Proportional, Integral, Derivative)
Kp is the proportional gain or constant
Ki is the integral gain or constant
Kd is the derivative gain or constant
eq is the error, i.e. the difference between the desired position and the current (or actual) position
𝑉 = 𝐾𝑝𝑒𝑞 + 𝐾𝑑 ሶ𝑒𝑞+𝐾𝑖 𝑒𝑞 𝑡 𝑑𝑡
𝑒𝑞 = 𝑞𝑑 − 𝑞𝑎
ሶ𝑒𝑞 =𝑑𝑒𝑞
𝑑𝑡
![Page 14: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/14.jpg)
PID control
Proportional term
• The voltage V given to the motor is proportional to the difference between the actual position measured by the sensor and the desired position
Kp * eq
VMotorqd
desiredposition Robot
Encoder
+
-
qa (actual position)
eq
![Page 15: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/15.jpg)
PID control
Proportional term:
• The voltage V given to the motor is proportional to the difference between the actual position measured by the sensor and the desired position
( )
dt
dee
qqe
dtteKeKeKV
p
p
dp
qiqdqp
=
−=
++=
KP : proportional constant
adq qqe −=
![Page 16: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/16.jpg)
PID control
Proportional term: system behaviour
Desiredposition: 1
• The motoroscillates beforeconvergingtowards the desired position
• The system maysettle withoutcancelling the error
![Page 17: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/17.jpg)
PID control
Derivative term:
Error derivative in time
Kd : derivative constant
𝑉 = 𝐾𝑝𝑒𝑞 + 𝐾𝑑 ሶ𝑒𝑞
𝑒𝑞 = 𝑞𝑑 − 𝑞𝑎
ሶ𝑒𝑞 =𝑑𝑒𝑞
𝑑𝑡
![Page 18: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/18.jpg)
PID control
Proportional and derivative terms:
• Oscillationreductions
• Reduction of settlement time
• The system maysettle withoutcancelling the error
Desiredposition: 1
![Page 19: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/19.jpg)
PID control
Integral terms:
( )
dt
dee
qqe
dtteKeKeKV
p
p
dp
qiqdqp
=
−=
++=
Error integral in time
Ki : integral constant
( )
dt
dee
qqe
dtteKeKeKV
q
q
adq
qiqdqp
=
−=
++=
( )
dt
dee
qqe
dtteKeKeKV
p
p
dp
qiqdqp
=
−=
++=
q
![Page 20: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/20.jpg)
PID control
Proportional and integral terms:
The system settlesand cancels the error
Desiredposition: 1
![Page 21: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/21.jpg)
PID control
Proportional, Integral and Derivative terms:
𝑉 = 𝐾𝑝𝑒𝑞 + 𝐾𝑑 ሶ𝑒𝑞+𝐾𝑖 𝑒𝑞 𝑡 𝑑𝑡
𝑒𝑞 = 𝑞𝑑 − 𝑞𝑎
ሶ𝑒𝑞 =𝑑𝑒𝑞
𝑑𝑡
![Page 22: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/22.jpg)
PID control
Proportional, Integral and Derivative terms:
Kp, Kd, Ki constants are set empirically or with specific methods
![Page 23: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/23.jpg)
Controllers
• eq is the error, i.e. the difference between the desired position and the current position
• Kp is the proportional gain or constant
• Ki is the integral gain or constant
• Kd is the derivative gain or constant
( )
dt
dee
qqe
dtteKeKeKV
q
q
adq
qiqdqp
=
−=
++=
Maja J Mataric, The Robotics Primer, The MIT Press, 2007
![Page 24: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/24.jpg)
Controllers
Maja J Mataric, The Robotics Primer, The MIT Press, 2007
![Page 25: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/25.jpg)
Robot Control
• Control of one joint motion:• PID controller
• Control of the manipulator motion:• Trajectory planning• Motion control in joint space• Motion control in operational space
T. Bajd et al., Robotics, Springer 2010
![Page 26: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/26.jpg)
Control of robot manipulator motion
• Objective: to have the robot arm moving from a starting position to a final position, both expressed in operational space coordinates
• In general, the control problem consists in finding the torques that the actuators have to give to the joints, so that the resulting arm motion follows a planned trajectory
![Page 27: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/27.jpg)
Robot Control
• Control of one joint motion:• PID controller
• Control of the manipulator motion:• Trajectory planning• Motion control in joint space• Motion control in operational space
T. Bajd et al., Robotics, Springer 2010
![Page 28: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/28.jpg)
Trajectory planning
Objective: generate the reference inputs to the robot control system, which will ensure that the robot end effector will follow a desired trajectory when moving from xstart to xf
• PATH: set of points, in joint space or operational space, that the robot has to reach in order to perform the desired movement
• TRAJECTORY: path with a specified time course (velocity and acceleration at each point)
![Page 29: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/29.jpg)
Trajectory planning
Objective: generate the reference inputs to the robot control system, which will ensure that the robot end effector will follow a desired trajectory when moving from xstart to xf
• INPUT DATA:
• Path definition
• Path constraints
• Constraints given by the robot dynamics
• OUTPUT DATA:
• in joint space: joint trajectories
• in operational space: end-effector trajectory
![Page 30: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/30.jpg)
Trajectories in joint space• Between two points: the robot manipulator must be
displaced from the initial to the final joint configuration, in a given time interval t.
• In order to give the time course of motion for each joint variable, we can choose a trapezoidal velocity profile or polynomial functions:• Cubic polynom: it allows to set
• the initial and final values of joint variables qi and qd
• the initial and final velocities (usually null).
• Fifth-degree polynom: it allows to set
• the initial and final values of joint variables qi and qd
• the initial and final velocities
• the initial and final accelerations.
![Page 31: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/31.jpg)
Trapezoidal velocity profile:
• Constant acceleration in the starting phase
• Constant cruise velocity
• Constant deceleration in the arrival phase.
The corresponding trajectory is mixed polynomial: a linear segment connected to parabolic parts in the neighbourhood of the initial and final positions.
Trajectories in joint space
![Page 32: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/32.jpg)
Trapezoidal velocity profile
Position
Velocity
Acceleration
Note: velocities and accelerations at the initial and finaltimes can be different from zero
![Page 33: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/33.jpg)
Trapezoidal velocity profile
First phase:
Second phase:
Third phase:
Posi
tio
nV
elo
city
Acc
eler
atio
n
![Page 34: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/34.jpg)
Trajectory interpolation
![Page 35: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/35.jpg)
Trajectories in operational space
• The trajectory planning algorithm generates the time course of motion of the end effector, according to a path of geometric characteristics defined in the operational space.
• The result of planning is a sequence of n-uples: (p(t),, (t), v(t), (t))
![Page 36: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/36.jpg)
Robot Control
• Control of one joint motion:• PID controller
• Control of the manipulator motion:• Trajectory planning• Motion control in joint space• Motion control in operational space
T. Bajd et al., Robotics, Springer 2010
![Page 37: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/37.jpg)
Motion control in joint space
• It can be used for moving the end-effector from xi
to xd expressed in the operational space, withouttaking into account the trajectory followed by the end effector
• The final position xd is transformed in the corresponding final position in joint space qd, by using the inverse kinematics transformation
qd = K-1 (xd)
• All joints are moved from the current position qi to the desired position qd
![Page 38: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/38.jpg)
Motion control in joint space
• The trajectory of the end effector in the operational spaceis not controlled and it is not predictable, due to the non-linear effects of direct kinematics
![Page 39: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/39.jpg)
General scheme of robot control in joint space
T. Bajd et al., Robotics, Springer 2010
![Page 40: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/40.jpg)
Motion control in joint space
PD position control
Diagonal matrix
T. Bajd et al., Robotics, Springer 2010
![Page 41: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/41.jpg)
Motion control in joint space
PD position control
T. Bajd et al., Robotics, Springer 2010
![Page 42: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/42.jpg)
Motion control in joint space
PD position control
Setting the Kp e Kd parameter matrices:
• Fast response: high Kp
• Kd sets the best damping and guarantees a fast responsewithout oscillations
• The K parameters needs to be set independently for eachjoint
T. Bajd et al., Robotics, Springer 2010
![Page 43: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/43.jpg)
Motion control in joint spacePD position control with gravity compensation
T. Bajd et al., Robotics, Springer 2010
![Page 44: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/44.jpg)
Robot dynamic model
𝜏 = 𝐵 𝑞 ሷ𝑞 + 𝐶 𝑞, ሶ𝑞 ሶ𝑞 + 𝐹𝑣 ሶ𝑞 + 𝑔(𝑞)
𝜏 = torque
𝐵 = inertia term
𝐶 = Coriolis term
𝑔 = gravity terms
𝐹𝑣 = friction coefficients
![Page 45: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/45.jpg)
Motion control in joint space
based on inverse dynamics
T. Bajd et al., Robotics, Springer 2010
![Page 46: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/46.jpg)
Motion control in joint space
based on inverse dynamics
T. Bajd et al., Robotics, Springer 2010
![Page 47: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/47.jpg)
Motion control in joint space
based on inverse dynamics
T. Bajd et al., Robotics, Springer 2010
![Page 48: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/48.jpg)
Motion control in joint space
based on inverse dynamics
T. Bajd et al., Robotics, Springer 2010
![Page 49: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/49.jpg)
Robot Control
• Control of one joint motion:• PID controller
• Control of the manipulator motion:• Trajectory planning• Motion control in joint space• Motion control in operational space
T. Bajd et al., Robotics, Springer 2010
![Page 50: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/50.jpg)
Motion control in operational space
• In the movement from xi to xd the robot end effectorfollows a trajectory in the operational space, according to a planned time law.
• e.g. linear or curvilinear trajectory
![Page 51: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/51.jpg)
Motion control in operational space
• To make the robot follow a trajectory
(t, p(t), (t), p(t), (t))
• To set joint velocities and accelerations in time, in order to reach the final desired position, expressed in Cartesian coordinates (Jacobian)
• To set voltages and currents to give to the motors in order to apply to the joints the velocities and the accelerations calculated with the Jacobian
.
![Page 52: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/52.jpg)
Set the relations between the joint velocities and the corresponding angular and linear velocities of the end effector. Such relations are decribed in a transformation matrix (Jacobian) which depends on the robot configuration.
Differential kinematics
![Page 53: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/53.jpg)
Geometric Jacobian = transformation matrix depending on the current robot configuration
J(q) = geometric Jacobianp = linear velocity of the end effector = angular velocity of the end effectorq = joint velocity
Differential kinematics
.
.
𝑣 =ሶ𝑝
𝜔= 𝐽(𝑞) ሶ𝑞
![Page 54: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/54.jpg)
To find the joint velocities given the end effector velocity in operational space
Integral numerical methods allows to find the q vector from the vector of joint velocities
J-1 is the inverse Jacobian
Differential kinematics
𝑣 =ሶ𝑝
𝜔= 𝐽(𝑞) ሶ𝑞
ሶ𝑞 = 𝐽−1 𝑞 𝑣 = 𝐽−1 𝑞ሶ𝑝
𝜔
![Page 55: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/55.jpg)
Motion control in operational spacebased on the transposed Jacobian matrix
f = force at end effector
T. Bajd et al., Robotics, Springer 2010
![Page 56: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/56.jpg)
Motion control in operational spacebased on the inverse Jacobian matrix
for small
displacements
T. Bajd et al., Robotics, Springer 2010
![Page 57: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/57.jpg)
Motion control in operational spacePD control with gravity compensation
T. Bajd et al., Robotics, Springer 2010
![Page 58: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/58.jpg)
Motion control in operational spacebased on inverse dynamics
![Page 59: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/59.jpg)
Motion control in operational space
t
pf
pi
p(t)
t
p(t)
t
q(t)
J-1(p(t))
Position in operational space, in
time
Velocity of the end effector, in
time
Joint velocities, in time
Trajectory planning
(t, p(t),, (t), p(t), (t))
Joint velocities
(t, q(t))J-1(p(t)) ..
![Page 60: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/60.jpg)
Force control
Effect of
external forces
![Page 61: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/61.jpg)
Force control
![Page 62: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/62.jpg)
Force control
![Page 63: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/63.jpg)
Performance of a manipulator
• Payload: maximum load
• Velocity: maximum velocity in operational space
• Accuracy: difference between the position calculated by the control system and the actual position
• Repeatability: measure of the robot capability to reach the same position (function of the control system and algorithm, in addition to the robot characteristics)
![Page 64: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/64.jpg)
KUKA KR 15/2
• Dof: 6
• Payload: 15 kg
• Max. reach: 1570 mm
• Repeatability: <± 0.1 mm
• Weight: 222 kg
![Page 65: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/65.jpg)
PUMA 560
• Dof: 6
• Payload: 2 kg
• Velocity: 1.0 m/s
• Repeatability: <± 0.1 mm
• Weight: 120 lb = 55 Kg
![Page 66: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/66.jpg)
Dexter Arm
• Cable actuated
• d.o.f.: 8
• Workspace: 1200 mm x 350°
• Repeatability: ± 1mm
• Velocity: 0.2 m/s
• Payload: 2 Kg
• Weight: 40 Kg
![Page 67: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/67.jpg)
Manus
• Cable actuated
• d.o.f.: 6
• Velocity: 0.2 m/s
• Payload: 2 Kg
• Power: 24V DC
• Weight: 12 Kg
![Page 69: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/69.jpg)
The Dexter Arm
![Page 70: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/70.jpg)
The Dexter Arm
• Workspace: 1200 mm x 350°
• Repeatability: + 1mm
• Velocity: 0.2 m/s
• Payload: 2 Kg
• D.o.f.: 8
• Power: 24V DC
• Weight: 40 Kg
![Page 71: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/71.jpg)
The Dexter Arm
• 8-d.o.f. anthropomorphic redundant robot arm, composed of trunk, shoulder, elbow and wrist
• designed for service applications and personal assistance in residential sites, such as houses or hospitals
• mechanically coupled structure: the mechanical transmission system is realized with pulleys and steel cables
• main characteristics: reduced accuracy,lighter mechanical structure, safe and intrinsically compliant structure
![Page 72: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/72.jpg)
The Dexter arm
• Transmission system realized with pulleys and steel cables
• Joints J0 and J1 are actuated by motors and driving gear-boxes directly connected to the articulation axis
• Joints J2,..,J7 are actuated by DC-motors installed on link 1
![Page 73: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/73.jpg)
Transmission #6
![Page 74: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/74.jpg)
Transmissions #2-5 and 7
![Page 75: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/75.jpg)
Anthropomorphic structure
Shoulder
ElbowWrist
Trunk
![Page 76: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/76.jpg)
8
7
6 5
4
2
1
x8
z8 z7x6
x7
z6
z5
z4
x4x5
x2x3
z3
z2
x0z1
x1
z0
3
Kinematic Configuration
![Page 77: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/77.jpg)
Denavit-Hartenberg Parameters
Joint ai [mm] di [mm] i [rad] i [rad]
1 0 0 /2 1
2 144 450 -/2 2
3 0 0 /2 3
4 -100 350 -/2 4
5 0 0 /2 5
6 -24 250 -/2 6
7 0 0 /2 7
8 100 0 0 8
![Page 78: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/78.jpg)
The Dexter Workspace
![Page 79: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/79.jpg)
Joint Ranges
![Page 80: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/80.jpg)
Control system
Power
drivers Dexter
(actuators and
encoders)
Axes control
boards
PID
AD/DA
converter
Control
CPUV
olta
ge
sto
the
mo
tors
Encoder signals
PC
Refe
ren
ce
sig
na
ls
![Page 81: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/81.jpg)
Software architecture
ARM
Arm Controller
Command library
![Page 82: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/82.jpg)
Software interfaces
Current position reading
- In joint space:
bool read_arm_q (double* q)
• q: pointer to a 8-double array containing the arm position in joint degrees
- In Cartesian space:
bool read_arm_c (double* p)
• p: pointer to a 6-double array containing the end-effector position in mm and orientation in degrees, in Cartesian space
bool move_arm_q(double* q)
• q: puntatore ad un array di 8 double contenente la posizione in gradi dei giunti del braccio
![Page 83: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/83.jpg)
Software interfaces
Motion commands
- In joint space:
bool move_arm_q(double* q)
• q: pointer to a 8-double array containing the armposition in joint degrees
![Page 84: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/84.jpg)
Software interfaces
Motion commands
- In Cartesian space:
bool move_arm_c7(double* p, double elbow, double J0, double velocity)
• p: pointer to a 6-double array containing the end-effectorposition in mm and orientation in degrees, in Cartesian space
• Elbow: elbow angle in degrees
• J0: final position of joint 0
• Velocity: ratio of maximum velocity
Kinematic inversion on 7 dof
![Page 85: Basics of robot control - unipi.itdidawiki.cli.di.unipi.it/lib/exe/fetch.php/bionics... · Master in Bionics Engineering University of Pisa and Scuola Superiore Sant’Anna Basics](https://reader036.vdocument.in/reader036/viewer/2022062506/5fb66ee747ec99472f3a7a3f/html5/thumbnails/85.jpg)
Software interfaces
Motion commands
- In Cartesian space:
bool move_arm_c(double* p, double elbow, double velocity)
• p: pointer to a 6-double array containing the end-effectorposition in mm and orientation in degrees, in Cartesian space
• Elbow: elbow angle in degrees
• Velocity: ratio of maximum velocity
Kinematic inversion on 8 dof