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 = driverThe 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
instanceNote
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
- 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 aVehicleBase
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
instanceNote
The setter is invoked by
vehicle.control = driver