irsim.lib.behavior.group_behavior_methods#
Classes#
Class-based ORCA group behavior with one-time initialization. |
|
Class-based Social Force Model group behavior. |
Functions#
|
Registered initializer returning a class-based handler for ORCA. |
|
Registered initializer returning a class-based ORCA handler for |
|
Registered initializer returning a class-based SFM handler for |
|
Registered initializer returning a class-based SFM handler for |
Module Contents#
- irsim.lib.behavior.group_behavior_methods.beh_omni_orca(members: list[irsim.world.object_base.ObjectBase], **kwargs: Any)[源代码]#
Registered initializer returning a class-based handler for ORCA.
- irsim.lib.behavior.group_behavior_methods.beh_diff_orca(members: list[irsim.world.object_base.ObjectBase], **kwargs: Any)[源代码]#
Registered initializer returning a class-based ORCA handler for differential-drive robots.
- class irsim.lib.behavior.group_behavior_methods.OrcaGroupBehavior(members: list[irsim.world.object_base.ObjectBase], neighborDist: float = 15.0, maxNeighbors: int = 10, timeHorizon: float = 20.0, timeHorizonObst: float = 10.0, safe_radius: float = 0.1, maxSpeed: float | None = None, **kwargs: Any)[源代码]#
Class-based ORCA group behavior with one-time initialization.
ORCA plans a collision-free holonomic velocity
(vx, vy)in the world frame for every member.omnimembers have it rotated into their body frame;diffmembers map it to a(linear, angular)command viavel_world2diff().
- irsim.lib.behavior.group_behavior_methods.beh_omni_sfm_group(members: list[irsim.world.object_base.ObjectBase], **kwargs: Any)[源代码]#
Registered initializer returning a class-based SFM handler for omnidirectional robots.
- irsim.lib.behavior.group_behavior_methods.beh_diff_sfm_group(members: list[irsim.world.object_base.ObjectBase], **kwargs: Any)[源代码]#
Registered initializer returning a class-based SFM handler for differential-drive robots.
- class irsim.lib.behavior.group_behavior_methods.SfmGroupBehavior(members: list[irsim.world.object_base.ObjectBase], vmax: float = 1.5, neighbor_threshold: float = 10.0, relaxation_time: float = 0.5, force_factor_desired: float = 1.0, force_factor_social: float = 2.1, force_factor_obstacle: float = 10.0, sigma_obstacle: float = 0.8, lambda_importance: float = 2.0, gamma: float = 0.35, n_angular: float = 2.0, n_velocity: float = 3.0, safety_radius: float = 0.0, social_groups: list[list[int]] | None = None, force_factor_coherence: float = 2.0, force_factor_group_repulsion: float = 1.0, group_repulsion_threshold: float | None = None, force_factor_gaze: float = 3.0, gaze_vision_angle: float = 90.0, target_roles: str = 'all', **kwargs: Any)[源代码]#
Class-based Social Force Model group behavior.
Same physics and parameter names as the per-object
sfmbehavior, evaluated for every member at once bySocialForceModelBatch. All members read one state snapshot, so the crowd does not depend on the order objects are stepped in, and the pairwise social force is NumPy array math instead of a Python loop per member.Objects outside the group still take part: linestring obstacles enter as walls, every other object as a circular neighbour that pushes members but is not moved by them.
target_rolesfilters those outside objects exactly as it does for the per-object behavior.social_groupsoptionally partitions the members into pedestrians walking together (Moussaid et al. 2010): those receive coherence, intra-group repulsion and gaze forces on top of the three base forces. Indices refer to the member order of the YAML group.A member without a goal has zero desired velocity: it stands still but still yields to neighbours.
omnimembers receive the planned world velocity rotated into their body frame;diffmembers get it mapped to(linear, angular)viavel_world2diff().- property sfm: irsim.lib.algorithm.social_force_model.SocialForceModelBatch#
The batch solver holding the tuned parameters.