Platforms

class stonesoup.platform.base.Platform(movement_controller: Movable = None, sensors: MutableSequence[Sensor] = None)[source]

Bases: Base

A platform that can carry a number of different sensors.

The location of platform mounted sensors will be maintained relative to the sensor position. Platforms move within a 2 or 3 dimensional rectangular cartesian space.

A simple platform is considered to always be aligned with its principle velocity. It does not take into account issues such as bank angle or body deformation (e.g. flex).

Movement is controlled by the Platform’s Platform.movement_controller, and access to attributes of the Platform is proxied to the movement controller, to allow the Platform to report it’s own position, orientation etc.

If a movement_controller argument is not supplied to the constructor, the Platform will try to construct one using unused arguments passed to the Platform’s constructor.

Note

This class is abstract and not intended to be instantiated. To get the behaviour of this class use a subclass which gives movement behaviours. Currently these are FixedPlatform and MovingPlatform

Parameters
  • movement_controller (Movable, optional) – Movable object to control the Platform’s movement. Default is None, but it can be constructed transparently by passing Movable’s constructor parameters to the Platform constructor.

  • sensors (MutableSequence[Sensor], optional) – A list of N mounted sensors. Defaults to an empty list

movement_controller: Movable

Movable object to control the Platform’s movement. Default is None, but it can be constructed transparently by passing Movable’s constructor parameters to the Platform constructor.

sensors: MutableSequence[Sensor]

A list of N mounted sensors. Defaults to an empty list

add_sensor(sensor: Sensor) None[source]

Add a sensor to the platform

Parameters

sensor (BaseSensor) – The sensor object to add

remove_sensor(sensor: Sensor) None[source]

Remove a sensor from the platform

Parameters

sensor (BaseSensor) – The sensor object to remove

pop_sensor(index: int = - 1)[source]

Remove and return a sensor from the platform by index. If no index is specified, remove and return the last sensor in self.sensors

Parameters

index (int) – The index of the sensor to remove. Defaults to the last item in the list.

class stonesoup.platform.base.FixedPlatform(movement_controller: Movable = None, sensors: MutableSequence[Sensor] = None)[source]

Bases: Platform

Parameters
  • movement_controller (Movable, optional) – Movable object to control the Platform’s movement. Default is None, but it can be constructed transparently by passing Movable’s constructor parameters to the Platform constructor.

  • sensors (MutableSequence[Sensor], optional) – A list of N mounted sensors. Defaults to an empty list

class stonesoup.platform.base.MovingPlatform(movement_controller: Movable = None, sensors: MutableSequence[Sensor] = None)[source]

Bases: Platform

Parameters
  • movement_controller (Movable, optional) – Movable object to control the Platform’s movement. Default is None, but it can be constructed transparently by passing Movable’s constructor parameters to the Platform constructor.

  • sensors (MutableSequence[Sensor], optional) – A list of N mounted sensors. Defaults to an empty list

class stonesoup.platform.base.MultiTransitionMovingPlatform(movement_controller: Movable = None, sensors: MutableSequence[Sensor] = None)[source]

Bases: Platform

Parameters
  • movement_controller (Movable, optional) – Movable object to control the Platform’s movement. Default is None, but it can be constructed transparently by passing Movable’s constructor parameters to the Platform constructor.

  • sensors (MutableSequence[Sensor], optional) – A list of N mounted sensors. Defaults to an empty list