A Reliable Way To Compute Robot Trajectories A Reliable Way To Compute Robot Trajectories Simon Rohou1 , Luc Jaulin1 , Lyudmila Mihaylova2 , Fabrice Le Bars1 , Sandor M. Veres2 2 1 ENSTA Bretagne, Lab-STICC, UMR CNRS 6285, France University of Sheffield, Western Bank Sheffield S10 2TN, UK [email protected] TOMS Seminar February 2017 TOMS 2017 1 / 35 A Reliable Way To Compute Robot Trajectories Section 1 Introduction [email protected] TOMS 2017 2 / 35 A Reliable Way To Compute Robot Trajectories Introduction Mobile Robotics: formalization Robot localization = state estimation problem. Classically, we have: ẋ(t) = f (x(t), u(t)) (navigation) y(t) = g(x(t)) (measurements) Where: I x ∈ Rn is the state vector (position, bearing, . . . ) I u ∈ Rm is the input vector (command) I y ∈ R is some exteroceptive measurement (e.g. bathymetry) I f : Rn × Rm → Rn is the evolution function I g : Rn → R is the observation function [email protected] TOMS 2017 3 / 35 A Reliable Way To Compute Robot Trajectories Introduction Constraint Network based on trajectories A problem involving constraints is classically presented with a Constraint Network: [Mackworth1977], [Chabert2009] Variables: Constraints: Domains: [email protected] TOMS 2017 4 / 35 A Reliable Way To Compute Robot Trajectories Introduction Constraint Network based on trajectories A problem involving constraints is classically presented with a Constraint Network: [Mackworth1977], [Chabert2009] Variables: Constraints: Domains: Our approach consists in using: [email protected] TOMS 2017 4 / 35 A Reliable Way To Compute Robot Trajectories Introduction Constraint Network based on trajectories A problem involving constraints is classically presented with a Constraint Network: [Mackworth1977], [Chabert2009] x(·), u(·), y Variables: Constraints: Domains: Our approach consists in using: I trajectories as variables: x(·), u(·) [email protected] TOMS 2017 4 / 35 A Reliable Way To Compute Robot Trajectories Introduction Constraint Network based on trajectories A problem involving constraints is classically presented with a Constraint Network: [Mackworth1977], [Chabert2009] x(·), u(·), y Variables: Constraints: Domains: [x](·), [u](·), [y] Our approach consists in using: I trajectories as variables: x(·), u(·) I tubes as domains: x(·) ∈ [x](·), u(·) ∈ [u](·) [email protected] TOMS 2017 4 / 35 A Reliable Way To Compute Robot Trajectories Introduction Constraint Network based on trajectories A problem involving constraints is classically presented with a Constraint Network: [Mackworth1977], [Chabert2009] x(·), u(·), y Variables: Constraints: – ẋ (t) = f (x(t), u(t)) (evolution equation) – y(t) = g (x (t)) (observation equation) Domains: [x](·), [u](·), [y] Our approach consists in using: I trajectories as variables: x(·), u(·) I tubes as domains: x(·) ∈ [x](·), u(·) ∈ [u](·) Now we can consider constraints defined with differential equations or any other non-linear operation on trajectories. [email protected] TOMS 2017 4 / 35 A Reliable Way To Compute Robot Trajectories Section 2 Tubes: Envelopes of Trajectories [email protected] TOMS 2017 5 / 35 A Reliable Way To Compute Robot Trajectories Tubes: Envelopes of Trajectories Definition Tube [x](·): interval of functions [x− , x+ ] such that ∀t ∈ R, x− (t) 6 x+ (t) [x] x∗ (t) tf t0 t Figure: tube [x](·) enclosing an uncertain trajectory x∗ (·) [email protected] TOMS 2017 6 / 35 A Reliable Way To Compute Robot Trajectories Tubes: Envelopes of Trajectories Tubes arithmetic Example: Tube arithmetic makes it possible to compute the following tubes: [a](·) = [x](·) + [y](·) [b](·) = sin [x](·) Z [c](·) = [x](τ )dτ 0 Definition: If f is an elementary function such as sin, cos, . . . , f [x](·) is the smallest tube containing all feasible values for f x(·) , x(·) ∈ [x](·). [email protected] TOMS 2017 7 / 35 A Reliable Way To Compute Robot Trajectories Tubes: Envelopes of Trajectories Tubes arithmetic: example [x] [y] t [email protected] t TOMS 2017 8 / 35 A Reliable Way To Compute Robot Trajectories Tubes: Envelopes of Trajectories Tubes arithmetic: example [x] [y] t t [a] t a(·) = x(·) + y(·) [email protected] TOMS 2017 8 / 35 A Reliable Way To Compute Robot Trajectories Tubes: Envelopes of Trajectories Tubes arithmetic: example [x] [y] t [a] t [b] t a(·) = x(·) + y(·) [email protected] t b(·) = sin x(·) TOMS 2017 8 / 35 A Reliable Way To Compute Robot Trajectories Tubes: Envelopes of Trajectories Tubes arithmetic: example [x] [y] t [a] t [b] [c] t a(·) = x(·) + y(·) t b(·) = sin x(·) t Z c(·) = x(τ )dτ 0 [email protected] TOMS 2017 8 / 35 A Reliable Way To Compute Robot Trajectories Section 3 Tube contractors [email protected] TOMS 2017 9 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Tubes: arithmetic and contractors Example of constraints on trajectories: a(·) = x(·) + y(·) b(·) = sin x(·) Z c(·) = x(τ )dτ 0 Tubes [a](·), [b](·), [c](·) respectively contain solutions a(·), b(·), c(·). [email protected] TOMS 2017 10 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Tubes: arithmetic and contractors Example of constraints on trajectories: a(·) = x(·) + y(·) b(·) = sin x(·) Z c(·) = x(τ )dτ 0 Tubes [a](·), [b](·), [c](·) respectively contain solutions a(·), b(·), c(·). Contractors for tubes: For each primitive constraint, tubes from both sides of the equation are contracted without removing any feasible solution. [email protected] TOMS 2017 10 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Tubes: minimal and non-minimal contractors Example: Minimal contractor C+ associated with the constraint a(·) = x(·) + y(·): [a] (·) [a] (·) ∩ ([x] (·) + [y] (·)) [x] (·) 7→ [x] (·) ∩ ([a] (·) − [y] (·)) [y] (·) [y] (·) ∩ ([a] (·) − [x] (·)) [email protected] TOMS 2017 11 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Tubes: minimal and non-minimal contractors Example: Minimal contractor C+ associated with the constraint a(·) = x(·) + y(·): [a] (·) [a] (·) ∩ ([x] (·) + [y] (·)) [x] (·) 7→ [x] (·) ∩ ([a] (·) − [y] (·)) [y] (·) [y] (·) ∩ ([a] (·) − [x] (·)) Example: Non-minimal contractor CR associated with the constraint 0 R c(·) = 0 x(τ )dτ : [x] (·) [c] (·) [email protected] 7→ [x] R (·) [c] (·) ∩ 0 [x] (τ ) dτ TOMS 2017 11 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation State equations: ẋ(t) = f (x(t), u(t)) (evolution) y(t) = g(x(t)) (observation) Need for a differential contractor C d and a probe contractor Cobs . dt [email protected] TOMS 2017 12 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation State equations: ẋ(t) = f (x(t), u(t)) (evolution) y(t) = g(x(t)) (observation) Need for a differential contractor C d and a probe contractor Cobs . dt I C d : related to the constraint ẋ = v dt x(·) ∈ [x](·), v(·) ∈ [v](·) [email protected] TOMS 2017 12 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation State equations: ẋ(t) = f (x(t), u(t)) (evolution) y(t) = g(x(t)) (observation) Need for a differential contractor C d and a probe contractor Cobs . dt I C d : related to the constraint ẋ = v dt I x(·) ∈ [x](·), v(·) ∈ [v](·) Cobs : related to the constraint x(t) = z t ∈ [t], z ∈ [z], x(·) ∈ [x](·) [email protected] TOMS 2017 12 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation Cobs : contraction based on the observation [z1 ] made at time [t1 ].C d dt [x1 ] [z1 ] [t1 ] t Figure: tube [x1 ](·) before contraction [email protected] TOMS 2017 13 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation Cobs : contraction based on the observation [z1 ] made at time [t1 ].C d dt [x1 ] [z1 ] [t1 ] t Figure: contraction of tube [x1 ](·) and both [z1 ] and [t1 ] [email protected] TOMS 2017 13 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation Cobs : contraction based on the observation [z1 ] made at time [t1 ].C d dt [x1 ] [z1 ] [t1 ] t Figure: contraction of tube [x1 ](·) and both [z1 ] and [t1 ] [email protected] TOMS 2017 13 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation C d : contraction based on the differential constraint: dt [x1 ] [z1 ] [t1 ] t Figure: contraction of tube [x1 ](·) and both [z1 ] and [t1 ] [email protected] TOMS 2017 14 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation C d : contraction based on the differential constraint: dt [x1 ] [z1 ] [t1 ] t Figure: tube contraction in forward [email protected] TOMS 2017 14 / 35 A Reliable Way To Compute Robot Trajectories Tube contractors Contractors for state estimation C d : contraction based on the differential constraint: dt [x1 ] [z1 ] [t1 ] t Figure: tube contraction in forward/backward [email protected] TOMS 2017 14 / 35 A Reliable Way To Compute Robot Trajectories Section 4 Simulation of Mobile Robots [email protected] TOMS 2017 15 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Dead-reckoning Considering a car R which state ẋ(t) = ẏ(t) = R θ̇(t) = [email protected] is x = (x, y, θ)| . v · cos(θ) v · sin(θ) u(t) TOMS 2017 16 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Dead-reckoning Considering a car R which state ẋ(t) = ẏ(t) = R θ̇(t) = is x = (x, y, θ)| . v · cos(θ) v · sin(θ) u(t) I car’s speed: v = 10m.s−1 I −6π x0 ∈ [−1, 1] × [−1, 1] × [ −6π 5 − 0.002, 5 + 0.002] t + 33 + [−0.02, 0.02] u(t) ∈ − cos 5 I [email protected] TOMS 2017 16 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Dead-reckoning Considering a car R which state ẋ(t) = ẏ(t) = R θ̇(t) = is x = (x, y, θ)| . v · cos(θ) v · sin(θ) u(t) I car’s speed: v = 10m.s−1 I −6π x0 ∈ [−1, 1] × [−1, 1] × [ −6π 5 − 0.002, 5 + 0.002] t + 33 + [−0.02, 0.02] u(t) ∈ − cos 5 I Initial tube [u](·) is obtained with the analytical expression. Other tubes [θ](·), [ẋ](·), [x](·), . . . , are initialized to [−∞, +∞]. [email protected] TOMS 2017 16 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Dead-reckoning Dead-reckoning: state estimation without observation. −6π x(0) ∈ [−1, 1] × [−1, 1] × [ −6π 5 − 0.002, 5 + 0.002] x(14) ∈ [53.9, 55.9] × [6.9, 8.9] × [−2.36, −2.32] Figure: Interval simulation of the robot following car equations. A strong drift can be observed, depicting cumulative uncertainties. [email protected] TOMS 2017 17 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Observations Same simulation considering constraints on both initial and final states: −6π x(0) ∈ [−1, 1] × [−1, 1] × [ −6π 5 − 0.002, 5 + 0.002] x(14) ∈ [53.9, 55.9] × [6.9, 8.9] × [−2.36, −2.32] Figure: With a forward/backward contraction, uncertainties are maximal in the middle of the mission. [email protected] TOMS 2017 18 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Observations Same simulation adding measurements from beacons. −6π x(0) ∈ [−1, 1] × [−1, 1] × [ −6π 5 − 0.002, 5 + 0.002] x(14) ∈ [53.9, 55.9] × [6.9, 8.9] × [−2.36, −2.32] Figure: With a forward/backward contraction, uncertainties are maximal in the middle of the mission. [email protected] TOMS 2017 19 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Observations Same simulation without any knowledge on initial or final states: −6π x(0) ∈ [−1, 1] × [−1, 1] × [ −6π 5 − 0.002, 5 + 0.002] x(14) ∈ [53.9, 55.9] × [6.9, 8.9] × [−2.36, −2.32] Figure: With a forward/backward contraction, uncertainties are maximal between precise constraints. [email protected] TOMS 2017 20 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: complex differential equations Example: a robot described by its state x| = {x, y} and following a Lissajous trajectory: 2 cos(t) x(t) = 5 · sin(2t) [email protected] TOMS 2017 21 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: complex differential equations Example: a robot described by its state x| = {x, y} and following a Lissajous trajectory: 2 cos(t) x(t) = 5 · sin(2t) x2 5 0 −5 −10 0 Initial conditions: x(0) ∈ [email protected] 10 x1 9.8, 10.2 0 , ẋ(0) = −0.2, 0.2 10 TOMS 2017 21 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: defining constraints Defining a set of constraints based on the trajectory equation: 10 cos(t) x(t) = 5 sin(2t) [email protected] TOMS 2017 22 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: defining constraints Defining a set of constraints based on the trajectory equation: 10 cos(t) x(t) = 5 sin(2t) 1. Calculating derivatives: I I −10 sin(t) 10 cos(2t) −10 cos(t) ẍ(t) = −20 sin(2t) ẋ(t) = [email protected] TOMS 2017 22 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: defining constraints Defining a set of constraints based on the trajectory equation: 10 cos(t) x(t) = 5 sin(2t) 1. Calculating derivatives: I I −10 sin(t) 10 cos(2t) −10 cos(t) ẍ(t) = −20 sin(2t) ẋ(t) = 2. Inter-variable relations: I ẍ2 (t) = −20 sin(t) [email protected] TOMS 2017 22 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: defining constraints Defining a set of constraints based on the trajectory equation: 10 cos(t) x(t) = 5 sin(2t) 1. Calculating derivatives: I I −10 sin(t) 10 cos(2t) −10 cos(t) ẍ(t) = −20 sin(2t) ẋ(t) = 2. Inter-variable relations: I I I I ẍ2 (t) = −20 sin(t) ẍ2 (t) = −20 · 2 · sin(t) · cos(t) 1 (t) 1 (t) ẍ2 (t) = −40 · ẋ−10 · ẍ−10 ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) [email protected] TOMS 2017 22 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: defining constraints Defining a set of constraints based on the trajectory equation: 10 cos(t) x(t) = 5 sin(2t) 1. Calculating derivatives: I I −10 sin(t) 10 cos(2t) −10 cos(t) ẍ(t) = −20 sin(2t) ẋ(t) = 2. Inter-variable relations: I I I I Selected constraint: ẍ(t) = −10 cos(t) −0.4 · ẋ1 · ẍ1 ẍ2 (t) = −20 sin(t) ẍ2 (t) = −20 · 2 · sin(t) · cos(t) 1 (t) 1 (t) ẍ2 (t) = −40 · ẋ−10 · ẍ−10 ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) [email protected] TOMS 2017 22 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: CSP The following CSP will be used for state estimation: Variables: x(·), ẋ(·), ẍ(·) Constraints: – ẍ1 (t) = −10 cos(t) – ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) 0 9.8, 10.2 – x(0) ∈ , ẋ(0) = −0.2, 0.2 10 Domains: [x](·), [ẋ](·), [ẍ](·) Domains (tubes) are initialized to [−∞, ∞] ∀t. [email protected] TOMS 2017 23 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: CSP The following CSP will be used for state estimation: Variables: x(·), ẋ(·), ẍ(·) Constraints: – ẍ1 (t) ∈ −10 cos(t) + [−0.001, 0.001] – ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) 0 9.8, 10.2 – x(0) ∈ , ẋ(0) = −0.2, 0.2 10 Domains: [x](·), [ẋ](·), [ẍ](·) Domains (tubes) are initialized to [−∞, ∞] ∀t. [email protected] TOMS 2017 23 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: computations Other kind of constraints are easily added, such as periodic constraints: x2 (t) = x2 (t + π) Variables: x(·), ẋ(·), ẍ(·) Constraints: – ẍ1 (t) ∈ −10 cos(t) + [−0.001, 0.001] – ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) 9.8, 10.2 0 – x(0) ∈ , ẋ(0) = −0.2, 0.2 10 Domains: [x](·), [ẋ](·), [ẍ](·) x2 5 0 −5 −10 0 10 x1 Figure: Set-membership state estimation of a Lissajous robot [email protected] TOMS 2017 24 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: computations Other kind of constraints are easily added, such as periodic constraints: x2 (t) = x2 (t + π) Variables: x(·), ẋ(·), ẍ(·) Constraints: – ẍ1 (t) ∈ −10 cos(t) + [−0.001, 0.001] – ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) – x2 (t) = x2 (t + π) 9.8, 10.2 0 – x(0) ∈ , ẋ(0) = −0.2, 0.2 10 Domains: [x](·), [ẋ](·), [ẍ](·) x2 5 0 −5 −10 0 10 x1 Figure: Set-membership state estimation of a Lissajous robot [email protected] TOMS 2017 24 / 35 A Reliable Way To Compute Robot Trajectories Simulation of Mobile Robots Lissajous example: computations Other kind of constraints are easily added, such as periodic constraints: x2 (t) = x2 (t + π) Variables: x(·), ẋ(·), ẍ(·) Constraints: – ẍ1 (t) ∈ −10 cos(t) + [−0.001, 0.001] – ẍ2 (t) = −0.4 · ẋ1 (t) · ẍ1 (t) – x2 (t) = x2 (t + π) 9.8, 10.2 0 – x(0) ∈ , ẋ(0) = −0.2, 0.2 10 Domains: [x](·), [ẋ](·), [ẍ](·) x2 5 0 −5 −10 0 10 x1 Figure: Set-membership state estimation of a Lissajous robot [email protected] TOMS 2017 24 / 35 A Reliable Way To Compute Robot Trajectories Section 5 Application on Real Data-Sets [email protected] TOMS 2017 25 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets State estimation of a real underwater robot Figure: Daurade AUV managed by DGA Techniques Navales Brest and the Service Hydrographique et Océanographique de la Marine, during an experiment in the Rade de Brest, October 2015. [email protected] TOMS 2017 26 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets State estimation of a real underwater robot Figure: Daurade AUV managed by DGA Techniques Navales Brest and the Service Hydrographique et Océanographique de la Marine, during an experiment in the Rade de Brest, October 2015. [email protected] TOMS 2017 26 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets State estimation of a real underwater robot Classical kinematic model of an underwater robot: ṗ = R(ψ, θ, ϕ) · vr v̇r = ar − ω r ∧ vr Where: I R0 is the absolute inertial coordinate system I R1 is robot’s own coordinate system I (ψ, θ, ϕ) and R(ψ, θ, ϕ) are Euler angles and matrix I p = (px , py , pz ) gives the center of the robot in R0 I vr is the speed vector in R1 I ar is the acceleration vector in R1 I ω r = (ωx , ωy , ωz ) is the rotation vector of the robot relative to R0 expressed in R1 [email protected] TOMS 2017 27 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets State estimation of a real underwater robot Classical kinematic model of an underwater robot: ṗ = R(ψ, θ, ϕ) · vr v̇r = ar − ω r ∧ vr Sensed values: Speed vector vr , acceleration vector ar , Euler angles (ψ, θ, ϕ) Corresponding tubes: I feeded with sensor data: [vr ](·), [ar ](·), [ψ](·), [θ](·), [ϕ](·) I to be computed: [p](·) [email protected] TOMS 2017 27 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets State estimation of a real underwater robot Daurade’s tubes: [p1 ] [ṗ1 ] t t I [ṗ1 ](·) – velocity along x in R0 tube’s thickness coming from measurements remains constant I [p1 ](·) – position along x in R0 tube becomes thicker depicting cumulative errors due to the dead-reckoning method and [ṗ1 ](·) non-zero thickness [email protected] TOMS 2017 28 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets 1. Dead-reckoning p2 500 400 300 200 100 0 -600 -500 -400 -300 -200 -100 0 100 p1 Figure: Mission map: Daurade exploring a 25 hectares seabed area. [email protected] TOMS 2017 29 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets 2. Observations (USBL measurements) p2 500 400 300 200 100 0 -600 -500 -400 -300 -200 -100 0 100 p1 Figure: Mission map: Daurade exploring a 25 hectares seabed area. [email protected] TOMS 2017 30 / 35 A Reliable Way To Compute Robot Trajectories Application on Real Data-Sets 2. Observations (USBL measurements) -280 -260 -240 20 250 230 240 220 230 210 220 200 210 190 200 180 190 170 180 160 170 150 160 140 40 60 Figure: Zoom on the two state observations: these are bounded positioning measurements obtained at t1 = 14 min and t2 = 32 min. [email protected] TOMS 2017 31 / 35 A Reliable Way To Compute Robot Trajectories Conclusion Tubes and related contractors provide a simple and efficient constraint-based method for the computation of uncertain, non-linear and dynamical systems. [email protected] TOMS 2017 32 / 35 A Reliable Way To Compute Robot Trajectories Conclusion Tubes and related contractors provide a simple and efficient constraint-based method for the computation of uncertain, non-linear and dynamical systems. Advantages: I I I I simple problem description by constraints definition competitive method for robotics applications easily applicable on data-sets reliable results [email protected] TOMS 2017 32 / 35 A Reliable Way To Compute Robot Trajectories Conclusion Tubes and related contractors provide a simple and efficient constraint-based method for the computation of uncertain, non-linear and dynamical systems. Advantages: I I I I simple problem description by constraints definition competitive method for robotics applications easily applicable on data-sets reliable results Drawbacks: I I I envelope of solutions only pessimism added by implementation computation time? [email protected] TOMS 2017 32 / 35 A Reliable Way To Compute Robot Trajectories Conclusion An open-source C++/python tube library will be soon available. [email protected] [x] x∗ (t) δ tf t0 [email protected] t TOMS 2017 33 / 35 A Reliable Way To Compute Robot Trajectories Support: DGA Direction Générale de l’Armement Tools: IBEX library used for interval arithmetic, contractor programming VIBES used for rendering [email protected] TOMS 2017 34 / 35 A Reliable Way To Compute Robot Trajectories References: [Mackworth1977] A. K. Mackworth, Consistency in networks of relations, Artificial Intelligence, 8(1):99–118, 1977. [Chabert2009] G. Chabert, L. Jaulin, Contractor Programming, Artificial Intelligence, 173:1079–1100, 2009. [LeBars2012] F. Le Bars, J. Sliwka, O. Reynet, L. Jaulin, State estimation with fleeting data, Automatica, 48(2):381–387, 2012. [Bethencourt2014] A. Bethencourt, L. Jaulin, Solving non-linear constraint satisfaction problems involving time-dependant functions, Mathematics in Computer Science, 8(3), 2014. [Aubry2013] C. Aubry, R. Desmare, L. Jaulin, Loop detection of mobile robots using interval analysis, Automatica, 2013. [Rohou2017] S. Rohou, L. Jaulin, L. Mihaylova, F. Le Bars, S. M. Veres, Guaranteed Computation of Robot Trajectories, Robotics and Autonomous Systems, to be published. [email protected] TOMS 2017 35 / 35 A Reliable Way To Compute Robot Trajectories Section 8 Appendix [email protected] TOMS 2017 1/5 A Reliable Way To Compute Robot Trajectories Appendix Tubes: implementation The computer representation of a tube encloses [x− (·), x+ (·)] inside an interval of step functions [x− (·), x+ (·)] such that: [x] ∀t ∈ R, x− (t) 6 x− (t) 6 x+ (t) 6 x+ (t) x∗ (t) δ tf t0 t Figure: tube implementation with a set of boxes – this outer representation adds pessimism but enables guaranteed and simple computations [email protected] TOMS 2017 2/5 A Reliable Way To Compute Robot Trajectories Appendix Integral of tubes Definition: the integral of a tube [x](·) = [x− , x+ ] is an interval: Z b Z [x](τ )dτ = a b Z b Z b x(τ )dτ | x ∈ [x] = x− (τ )dτ , x+ (τ )dτ a a a [Aubry2013] [x] x− (t) Z b x− (τ )dτ a b a t Figure: blue area: lower bound of the tube’s integral [email protected] TOMS 2017 3/5 A Reliable Way To Compute Robot Trajectories Appendix Integral of tubes Definition: the integral of a tube [x](·) = [x− , x+ ] is an interval: Z b b Z [x](τ )dτ = a Z b Z b x(τ )dτ | x ∈ [x] = x− (τ )dτ , x+ (τ )dτ a a a [Aubry2013] [x] Z b x+ (τ )dτ x+ (t) a a b t Figure: orange area: upper bound of the tube’s integral [email protected] TOMS 2017 3/5 A Reliable Way To Compute Robot Trajectories Appendix Definition A contractor applied on a tube [a](·) aims at removing unfeasible trajectories according to a given constraint L: [Bethencourt2014] CL [a](·) −→ [b](·) [email protected] TOMS 2017 4/5 A Reliable Way To Compute Robot Trajectories Appendix Definition A contractor applied on a tube [a](·) aims at removing unfeasible trajectories according to a given constraint L: [Bethencourt2014] CL [a](·) −→ [b](·) The output of the contractor CL is the tube [b](·) such that: ∀t, [b](t) ⊆ [a](t) L a(·) =⇒ a(·) ∈ [b](·) a(·) ∈ [a](·) [email protected] (contraction) (completeness) TOMS 2017 4/5 A Reliable Way To Compute Robot Trajectories Appendix Storyboard of a forward/backward tube contraction ẋ 4 x k=0 k=1 k=2 k=3 k=4 4 δ 3 3 2 2 1 1 0 1 2 3 4 5 t Figure: Derivative tube [ẋ](·) used to contract [x](·) initialized to [−∞, ∞]∀t [email protected] 0 1 2 3 4 5 t Figure: First step of forward integration contractor: first slice k0 is contracted from [−∞, ∞] to [0, 2] TOMS 2017 5/5 A Reliable Way To Compute Robot Trajectories Appendix Storyboard of a forward/backward tube contraction ẋ 4 x k=0 k=1 k=2 k=3 k=4 4 δ 3 3 2 2 1 1 0 1 2 3 4 5 t Figure: Derivative tube [ẋ](·) used to contract [x](·) initialized to [−∞, ∞]∀t [email protected] 0 1 2 3 4 5 t Figure: End of forward contractions. The minimal envelope of solutions compliant with [ẋ](·) is pictured in blue. Slices representation – outer approximation – is depicted in gray TOMS 2017 5/5 A Reliable Way To Compute Robot Trajectories Appendix Storyboard of a forward/backward tube contraction ẋ 4 x k=0 k=1 k=2 k=3 k=4 4 δ 3 3 2 2 1 1 0 1 2 3 4 5 t Figure: Derivative tube [ẋ](·) used to contract [x](·) initialized to [−∞, ∞]∀t [email protected] 0 1 2 3 4 5 t Figure: First step of backward integration contractor, with the last condition x(5) = 4. A reduced envelope, pictured in dark blue, is computed from t = 5 to t = 0 TOMS 2017 5/5 A Reliable Way To Compute Robot Trajectories Appendix Storyboard of a forward/backward tube contraction ẋ 4 x k=0 k=1 k=2 k=3 k=4 4 δ 3 3 2 2 1 1 0 1 2 3 4 5 t Figure: Derivative tube [ẋ](·) used to contract [x](·) initialized to [−∞, ∞]∀t [email protected] 0 1 2 3 4 5 t Figure: End of backward processing TOMS 2017 5/5 A Reliable Way To Compute Robot Trajectories Appendix Storyboard of a forward/backward tube contraction ẋ 4 x k=0 k=1 k=2 k=3 k=4 4 δ 3 3 2 2 1 1 0 1 2 3 4 5 t Figure: Derivative tube [ẋ](·) used to contract [x](·) initialized to [−∞, ∞]∀t [email protected] 0 1 2 3 4 5 t Figure: Tube [x](·) is contracted to optimally enclose the thin envelope pictured in dark blue TOMS 2017 5/5
© Copyright 2026 Paperzz