Defines the control constraints data structure.
Data Structures | |
struct | dwSafetyForceFieldControl |
dwSafetyForceFieldControl Control parameters used in Safety Force Field. More... | |
struct | dwSafetyForceFieldControlConstraints |
dwSafetyForceFieldControlConstraints A collection of constraints, which is derived from Safety Force Field, on ego car control parameters: front wheel steering angle (in radian) and longitudinal acceleration (in meter per second squared). Any control parameters that meet the constraints are classified as safe. More... | |
struct | dwSafetyForceFieldMultiControlConstraints |
dwSafetyForceFieldMultiControlConstraints An array of Safety Force Field control constraints. More... | |
Macros | |
#define | DW_SAFETY_FORCE_FIELD_MAX_NUM_CONSTRAINTS 3 |
Enumerations | |
enum | dwSafetyForceFieldCombinationType { DW_SAFETY_FORCE_FIELD_COMBINATION_TYPE_UNION = 0, DW_SAFETY_FORCE_FIELD_COMBINATION_TYPE_VOTING = 1 } |
dwSafetyForceFieldCombinationType How control constraints are combined More... | |
enum | dwSafetyForceFieldConeType { DW_SAFETY_FORCE_FIELD_CONE_TYPE_WHOLE_SPACE = 0, DW_SAFETY_FORCE_FIELD_CONE_TYPE_HALF_SPACE = 1, DW_SAFETY_FORCE_FIELD_CONE_TYPE_SECOND_ORDER_CONE = 2, DW_SAFETY_FORCE_FIELD_CONE_TYPE_LINE = 3, DW_SAFETY_FORCE_FIELD_CONE_TYPE_RAY = 4, DW_SAFETY_FORCE_FIELD_CONE_TYPE_POINT = 5 } |
struct dwSafetyForceFieldControl |
struct dwSafetyForceFieldControlConstraints |
Data Fields | ||
---|---|---|
float32_t | end | Ending angle in radian; see the description of dwSafetyForceFieldConeType for details. |
dwSafetyForceFieldControl | safeControl | Control describing the safety procedure. It is also the origin of the convex cone. |
float32_t | start | Starting angle in radian; see the description of dwSafetyForceFieldConeType for details. |
dwSafetyForceFieldConeType | type | Type of the convex cone of control constraints. |
struct dwSafetyForceFieldMultiControlConstraints |
Data Fields | ||
---|---|---|
dwSafetyForceFieldCombinationType | combinationType | type of combination of control constraints |
dwSafetyForceFieldControlConstraints | constraints[DW_SAFETY_FORCE_FIELD_MAX_NUM_CONSTRAINTS] | array of Safety Force Field control constraints |
#define DW_SAFETY_FORCE_FIELD_MAX_NUM_CONSTRAINTS 3 |
Definition at line 166 of file ControlConstraints.h.
dwSafetyForceFieldCombinationType How control constraints are combined
Definition at line 161 of file ControlConstraints.h.
dwSafetyForceFieldConeType Type of the convex cone of Safety Force Field control constraints in 2D space
DW_SAFETY_FORCE_FIELD_CONE_TYPE_WHOLE_SPACE: the entire 2D space, which is represented by the unit circle
DW_SAFETY_FORCE_FIELD_CONE_TYPE_POINT: the unique finite cone containing only the origin, which is represented by empty set.
DW_SAFETY_FORCE_FIELD_CONE_TYPE_RAY: in the form {lambda v: lambda >= 0} given vector v in the 2D space, which is represented by one point in S^1
DW_SAFETY_FORCE_FIELD_CONE_TYPE_LINE: 1-dimensional linear subspace, which is represented by two antipodal points in S^1
DW_SAFETY_FORCE_FIELD_CONE_TYPE_HALF_SPACE: described by one linear inequality ax + by >= c. It is represented by a semi-circle.
DW_SAFETY_FORCE_FIELD_CONE_TYPE_SECOND_ORDER_CONE: the region between two boundary rays, and the angle between two rays is less than 180 degrees. It is represented by an arc in the S^1 for which the angle subtended is less than 180 degrees.
Each point in S^1 can be described by an angle (up to adding 2*PI), we take the branch that (1, 0) is 0 degrees, and the angle increases in counterclockwise direction. For example, (0, 1) is 90 degrees, (-1, -1) is 225 degrees, (1, -1) is 315 degrees. We permit the range [0, 3*PI), so that, for example (1, 1) can be 45 or 405 degrees.
For the types DW_SAFETY_FORCE_FIELD_CONE_TYPE_RAY, DW_SAFETY_FORCE_FIELD_CONE_TYPE_LINE, DW_SAFETY_FORCE_FIELD_CONE_TYPE_HALF_SPACE, DW_SAFETY_FORCE_FIELD_CONE_TYPE_SECOND_ORDER_CONE, based on their subsets in S^1, we can use two angles called starting angle (or start) and ending angle (or end) to describe them precisely.
DW_SAFETY_FORCE_FIELD_CONE_TYPE_RAY is represented by a point in S^1, we set start = end = its angle in [0, 2*PI).
DW_SAFETY_FORCE_FIELD_CONE_TYPE_LINE is represented by two antipodal points, then we get two angles in [0, 2*PI) differed by PI, start is the smaller angle while end is the larger one.
DW_SAFETY_FORCE_FIELD_CONE_TYPE_HALF_SPACE is represented by a semi-circle, if we traverse the semi-circle in counterclockwise direction, then start = angle at starting point in [0, 2*PI), and end = angle at ending point in [PI, 3*PI). Notice that end = start + PI.
Examples: {(x, y): x + y <= 0} start = 135 deg, end = 135 + 180 = 315 deg {(x, y): x + y >= 0} start = 315 deg, end = 315 + 180 = 495 deg
DW_SAFETY_FORCE_FIELD_CONE_TYPE_SECOND_ORDER_CONE is represented by an arc. Traversing the arc in counterclockwise direction, start = angle at starting point in [0, 2*PI), end = angle at ending point >= start.
Examples: {(x, y): x + y >= 0, y >= 0} start = 0 deg, end = 135 deg {(x, y): x + y >= 0, y <= 0} start = 315 deg, end = 360 deg {(x, y): x + y <= 0, y >= 0} start = 135 deg, end = 180 deg {(x, y): x + y <= 0, y <= 0} start = 180 deg, end = 315 deg
Definition at line 121 of file ControlConstraints.h.