Mobile robot drivers

These classes can drive a mobile robot around a workplace. Useful for testing localization algorithms.

Random Path

class roboticstoolbox.mobile.drivers.RandomPath(workspace, speed=1, dthresh=0.05, seed=0, headinggain=0.3, goalmarkerstyle=None)[source]

Bases: VehicleDriverBase

__init__(workspace, speed=1, dthresh=0.05, seed=0, headinggain=0.3, goalmarkerstyle=None)[source]

Driving agent for random path

Parameters
  • workspace (scalar, array_like(2), array_like(4)) – dimension of workspace, see spatialmath.base.exand_dims()

  • speed (float, optional) – forward speed, defaults to 1

  • dthresh (float, optional) – distance threshold, defaults to 0.05

Raises

ValueError – [description]

Returns a driver object that drives the attached vehicle to a sequence of random waypoints.

The driver is connected to the vehicle by:

Vehicle(control=driver)

or:

veh = Vehicle()
veh.control = driver

The waypoints are positioned inside a rectangular region defined by the vehicle that is specified by (see plotvol2):

workspace

x-range

y-range

A (scalar)

-A:A

-A:A

[A, B]

A:B

A:B

[A, B, C, D]

A:B

C:D

Note

  • It is possible in some cases for the vehicle to move outside the desired region, for instance if moving to a waypoint near the edge, the limited turning circle may cause the vehicle to temporarily move outside.

  • The vehicle chooses a new waypoint when it is closer than dthresh to the current waypoint.

  • Uses its own random number generator so as to not influence the performance of other randomized algorithms such as path planning.

Seealso

Bicycle Unicycle plotvol2()

property workspace

Size of robot driving workspace

Returns

workspace bounds [xmin, xmax, ymin, ymax]

Return type

ndarray(4)

Returns the bounds of the workspace as specified by constructor option workspace

init(ax=None)[source]

Initialize random path driving agent

Parameters

ax (Axes, optional) – axes in which to draw via points, defaults to None

Called at the start of a simulation run. Ensures that the random number generated is reseeded to ensure that the sequence of random waypoints is repeatable.

demand()[source]
Compute speed and heading for random waypoint

% % [SPEED,STEER] = R.demand() is the speed and steer angle to % drive the vehicle toward the next waypoint. When the vehicle is % within R.dtresh a new waypoint is chosen. % % See also Vehicle.

property vehicle

Set/get the vehicle under control

Getter

return VehicleBase instance

Setter

set VehicleBase instance

Note

The setter is invoked by vehicle.control = driver

Superclass

class roboticstoolbox.mobile.drivers.VehicleDriverBase[source]

Bases: ABC

Abstract Vehicle driver class

Abtract class that can drive a mobile robot.

Seealso

RandomPath

abstract demand()[source]

Compute speed and heading

Returns

speed and steering for VehicleBase

When an instance of a VehicleDriverBase class is attached as the control for an instance of a VehicleBase class, this method is called at each time step to provide the control input.

Has access to the vehicle and its state through the vehicle() property.

abstract init()[source]

Initialize driving agent

Called at the start of a simulation run. Used to initialize state including random number generator state.

property vehicle

Set/get the vehicle under control

Getter

return VehicleBase instance

Setter

set VehicleBase instance

Note

The setter is invoked by vehicle.control = driver