differential

Differential steering (also skid-steering)

This driver takes two interface_position1d sources and considers them the two motors of a differential steer machine, providing in turn a interface_position2d for control of such machine.

Compile-time dependencies
  • none
Requires
  • interface_position1d
    • Two, with "left" and "right" keys
    • Velocity commands (x, 0, ω) are transformed and delivered to these interfaces.
    • Position commands not supported.
Provides
  • interface_position2d
    • The differential steer interface obtained coupling the two position1d interfaces.
Configuration file options
  • axis_length (float [length] default 25cm)
    • Distance between wheels at its pivot point.
  • period (float [s] default 0.05)
    • Period used for integration of odometry, since we have unsyncronized sources for each wheel.
Example
# Example with the differential LEGO driver with two actuators.
# Standard configured brick with B and C motors in use.

unit_length "m"
unit_angle  "radians"

# The NXT driver
driver
(
  name "differential"
  provides [ "B:::position1d:0" "C:::position1d:1" ]
)

# The differential driver that provides simplified position2d management
driver
(
  name "differential"
  requires [ "left:::position1d:0" "right:::position1d:1" ]
  provides [ "position2d:0" ]

  axis_length 0.25
)
Author
Alejandro R. Mosteo