Introduction to Mobile Robotics Wheeled Locomotion Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Diego Tipaldi, Luciano Spinello 1
Locomotion of Wheeled Robots Locomotion (Oxford Dict.): Power of motion from place to place § Differential drive (AmigoBot, Pioneer 2-DX) § Car drive (Ackerman steering) § Synchronous drive (B21) § XR4000 § Mecanum wheels roll x y y z motion we also allow wheels to rotate around the z axis 2
Instantaneous Center of Curvature ICC § For rolling motion to occur, each wheel has to move along its y-axis 3
Differential Drive y ICC [ x R sin , y R cos ] = − θ + θ ICC ω v l ω ( R + l / 2) = v r ω ( R − l / 2) = v l R = l ( v l + v r ) θ R x (x,y) 2 ( v r − v l ) ω = v r − v l v r l l /2 v = v r + v l 2 4
Differential Drive: Forward Kinematics ICC x ' cos( t ) sin( t ) 0 x ICC ICC ωδ − ωδ − ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ x x ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ y ' sin( t ) cos( t ) 0 y ICC ICC = ωδ ωδ − + y y ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ' 0 0 1 t ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ θ θ ωδ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ R t x ( t ) v ( t ' ) cos[ ( t ' )] dt ' = θ ∫ P(t+ δ t) 0 t y ( t ) v ( t ' ) sin[ ( t ' )] dt ' = θ ∫ 0 P(t) t ( t ) ( t ' ) dt ' θ = ∫ ω 0 5
Differential Drive: Forward Kinematics ICC x ' cos( t ) sin( t ) 0 x ICC ICC ωδ − ωδ − ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ x x ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ y ' sin( t ) cos( t ) 0 y ICC ICC = ωδ ωδ − + y y ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ' 0 0 1 t ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ θ θ ωδ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ R t 1 x ( t ) [ v ( t ' ) v ( t ' )] cos[ ( t ' )] dt ' P(t+ δ t) = + θ ∫ r l 2 0 t 1 y ( t ) [ v ( t ' ) v ( t ' )] sin[ ( t ' )] dt ' = ∫ + θ r l 2 0 t 1 P(t) ( t ) [ v ( t ' ) v ( t ' )] dt ' θ = ∫ − r l l 0 6
Ackermann Drive ICC [ x R sin , y R cos ] = − θ + θ d R = y tan ϕ ω ϕ ϕ ( R l / 2 ) v ω + = ICC v r l ( R l / 2 ) v ω − = l l ( v v ) + l r R = θ R d 2 ( v v ) x − (x,y) r l v v − r l ω = v r l l /2 7
Synchronous Drive y t x ( t ) v ( t ' ) cos[ ( t ' )] dt ' = θ ∫ 0 t y ( t ) v ( t ' ) sin[ ( t ' )] dt ' = θ ∫ v(t) θ 0 t x ( t ) ( t ' ) dt ' θ = ∫ ω ω ( ) t 0 8
t XR4000 Drive x ( t ) v ( t ' ) cos[ ( t ' )] dt ' = ∫ θ 0 y t y ( t ) v ( t ' ) sin[ ( t ' )] dt ' = ∫ θ 0 t ( t ) ( t ' ) dt ' θ = ∫ ω v i (t) 0 θ x ω i (t) ICC 9
XR4000 [courtesy by Oliver Brock & Oussama Khatib] 10
Mecanum Wheels v ( v v v v ) / 4 = + + + y 0 1 2 3 v ( v v v v ) / 4 = − + − x 0 1 2 3 v ( v v v v ) / 4 = + − − 0 1 2 3 θ v ( v v v v ) / 4 = − − + error 0 1 2 3 11
Example: Priamos (Karlsruhe) 12
Example 13
Example: KUKA youBot 14
Example: Segway Omni 15
Tracked Vehicles 16
Other Robots: OmniTread [courtesy by Johann Borenstein] 17
Other Robots: Humanoids 18
Non-Holonomic Constraints § Non-holonomic constraints limit the possible incremental movements within the configuration space of the robot. § Robots with differential drive or synchro- drive move on a circular trajectory and cannot move sideways. § XR-4000 or Mecanum-wheeled robots can move sideways (they have no non- holonomic constraints). 19
Holonomic vs. Non-Holonomic § Non-holonomic constraints reduce the control space with respect to the current configuration § E.g., moving sideways is impossible. § Holonomic constraints reduce the configuration space. § E.g., a car and a trailer (not all angles between car and trailer are possible) 20
Drives with Non-Holonomic Constraints § Synchro-drive § Differential drive § Ackermann drive 21
Drives without Non-Holonomic Constraints § XR4000 drive § Mecanum wheels 22
Dead Reckoning and Odometry § Estimating the motion based on the issued controls/wheel encoder readings § Integrated over time 23
Summary § Introduced different types of drives for wheeled robots § Math to describe the motion of the basic drives given the speed of the wheels § Non-holonomic Constraints § Odometry and dead reckoning 24
Recommend
More recommend