Mobile Robot Control 2024 Ultron:Solution 2
Methodology
1. Artificial Potential Field
2. Dynamic Window Approach
The Dynamic Window Approach (DWA) algorithm simulates motion trajectories in velocity space [math]\displaystyle{ (v, \omega) }[/math] for a certain period of time. It evaluates these trajectories using an evaluation function and selects the optimal trajectory corresponding to [math]\displaystyle{ (v, \omega) }[/math] to drive the robot's motion.
Consider velocities which have to be
- Possible: velocities are limited by robot’s dynamics
[math]\displaystyle{ V_s = \{(v, \omega) \mid v \in [v_{\min}, v_{\max}] \land \omega \in [\omega_{\min}, \omega_{\max}]\} }[/math]
- Admissible: robot can stop before reaching the closest obstacle
[math]\displaystyle{ V_a = \{(v, \omega) \mid v \leq \sqrt{2 d(v, \omega) \dot{v_b}} \land \omega \leq \sqrt{2 d(v, \omega) \dot{\omega_b}}\} }[/math]
- Reachable: velocity and acceleration constraints (dynamic window)
[math]\displaystyle{ V_d = \{(v, \omega) \mid v \in [v_a - \dot{v} t, v_a + \dot{v} t] \land \omega \in [\omega_a - \dot{\omega} t, \omega_a + \dot{\omega} t]\} }[/math]
Intersection of possible, admissible and reachable velocities provides the search space: [math]\displaystyle{ V_r = V_s \cap V_a \cap V_d }[/math] <syntaxhighlight lang="matlab"> for j = 1:len([math]\displaystyle{ v_{\text{range}} }[/math])
for k = 1:len([math]\displaystyle{ \omega_{\text{range}} }[/math]) for i = 0:N x(i + 1) = x(i) + [math]\displaystyle{ \Delta t \cdot v_{\text{range}}(j) \cdot \cos(\theta(i)) }[/math] y(i + 1) = y(i) + [math]\displaystyle{ \Delta t \cdot v_{\text{range}}(j) \cdot \sin(\theta(i)) }[/math] θ(i + 1) = θ(i) + [math]\displaystyle{ \Delta t \cdot \omega_{\text{range}}(k) }[/math] end end
end </syntaxhighlight>
Then the evaluation function is introduced to score the trajectories and select the optimal trajectory.