Two-wheeled differential drive#
The kinematics of a large class of wheeled ground robots that have two independent motors driving the left and right wheel or track trains. Velocities are restricted have the same orientation \(\theta\) as the robot, i.e.
where \(\vec e(\alpha)\) is the unit vector in direction \(\alpha\). Equivalently, velocities in the relative frame have null lateral components.
This kinematics works on velocities specified relative to the agent. It constrains the lateral speed to be null, while privileging to preserve angular speed. Constraints on linear and angular speed are coupled and defined by the maximal wheel speed.
See also
Read Two-wheeled kinematics to know more about how feasible velocities are computed.
Example#
The video has been recorded using
$ navground_py record_video 2wdiff.yaml 2wdiff.mp4 --factor 1 --grid 1 --area -3 -1 3 1
with the following configuration
steps: 300
time_step: 0.0333
scenario:
groups:
- type: thymio
color: darkcyan
number: 1
radius: 0.25
control_period: 0.1
orientation: 1
kinematics:
type: 2WDiff
max_speed: 1
max_angular_speed: 3.14
wheel_axis: 0.5
behavior:
type: Dummy
heading: target_point
task:
type: Waypoints
waypoints: [[2, 0], [-2, 0]]
loop: true
tolerance: 0.5