namosim package

Subpackages

Submodules

namosim.config module

namosim.data_models module

namosim.data_models.AgentBehaviorYamlConfig

alias of StilmanBehaviorConfigYamlModel

class namosim.data_models.AgentConfigXmlModel(*, agent_id: str, goals: List[GoalConfigModel] = [], behavior: NavigationOnlyBehaviorConfigModel | RRTAgentConfigModel | TeleopBehaviorConfigModel | StilmanBehaviorConfigModel | StilmanRRTStarBehaviorConfigModel)[source]

Bases: BaseXmlModel

agent_id: str
behavior: NavigationOnlyBehaviorConfigModel | RRTAgentConfigModel | TeleopBehaviorConfigModel | StilmanBehaviorConfigModel | StilmanRRTStarBehaviorConfigModel
goals: List[GoalConfigModel]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class namosim.data_models.AgentConfigYamlModel(*, id: str, initial_pose: List[float] | None = None, radius: float, behavior: StilmanBehaviorConfigYamlModel)[source]

Bases: BaseModel

behavior: StilmanBehaviorConfigYamlModel
id: str
initial_pose: List[float] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

radius: float
class namosim.data_models.BaseBehaviorConfigModel[source]

Bases: BaseXmlModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class namosim.data_models.BaseBehaviorConfigYamlModel[source]

Bases: BaseModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class namosim.data_models.BaseRLAgentConfigModel(*, mode: Literal['learn', 'execute'] = 'learn', checkpoint: str | None = None)[source]

Bases: BaseBehaviorConfigModel

checkpoint: str | None
mode: Literal['learn', 'execute']
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class namosim.data_models.GoalConfigModel(*, goal_id: str)[source]

Bases: BaseXmlModel

goal_id: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class namosim.data_models.GoalYamlModel(*, id: str, pose: List[float])[source]

Bases: BaseModel

id: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pose: List[float]
class namosim.data_models.MapYamlConfigModel(*, image: str, mode: str, resolution: float, origin: List[float], negate: int | bool, occupied_thresh: float, free_thresh: float)[source]

Bases: BaseModel

free_thresh: float
image: str
mode: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

negate: int | bool
occupied_thresh: float
origin: List[float]
resolution: float
class namosim.data_models.NamoConfigXmlModel(*, cell_size_cm: float, collision_margin_cm: float | None = None, random_seed: int = 10, generate_report: bool = True, agents: List[AgentConfigXmlModel] = [])[source]

Bases: BaseXmlModel

agents: List[AgentConfigXmlModel]
cell_size_cm: float
collision_margin_cm: float | None
generate_report: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

random_seed: int
class namosim.data_models.NamoConfigYamlModel(*, map_yaml: str, svg_file: str | None = None, agents: List[AgentConfigYamlModel] = [], collision_margin_cm: float | None = None, random_seed: int = 10, generate_report: bool = False)[source]

Bases: BaseModel

agents: List[AgentConfigYamlModel]
collision_margin_cm: float | None
generate_report: bool
map_yaml: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

random_seed: int
svg_file: str | None
class namosim.data_models.NavigationOnlyBehaviorConfigModel(*, type: Literal['navigation_only_behavior'])[source]

Bases: BaseBehaviorConfigModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: Literal['navigation_only_behavior']
class namosim.data_models.Pose2D(x, y, degrees)[source]

Bases: NamedTuple

degrees: float

Alias for field number 2

x: float

Alias for field number 0

y: float

Alias for field number 1

class namosim.data_models.RRTAgentConfigModel(*, type: Literal['rrt'], use_kd_tree: bool = True)[source]

Bases: BaseBehaviorConfigModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: Literal['rrt']
use_kd_tree: bool
class namosim.data_models.StilmanBehaviorConfigModel(*, type: Literal['stilman_2005_behavior'], parameters: StilmanBehaviorParametersModel)[source]

Bases: BaseBehaviorConfigModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

parameters: StilmanBehaviorParametersModel
type: Literal['stilman_2005_behavior']
class namosim.data_models.StilmanBehaviorConfigYamlModel(*, type: Literal['stilman_2005_behavior'] = 'stilman_2005_behavior', parameters: StilmanBehaviorParametersYamlModel = StilmanBehaviorParametersYamlModel(check_new_local_opening_before_global=True, activate_grids_logging=False, push_only=False, robot_rotation_unit_angle=15.0, manip_search_bound_percentage=0.1, use_social_cost=True, resolve_conflicts=True, resolve_deadlocks=True, deadlock_strategy='', drive_type='differential', grab_start_distance=None, grab_end_distance=None, conflict_horizon=40))[source]

Bases: BaseBehaviorConfigYamlModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

parameters: StilmanBehaviorParametersYamlModel
type: Literal['stilman_2005_behavior']
class namosim.data_models.StilmanBehaviorParametersModel(*, check_new_local_opening_before_global: bool = True, activate_grids_logging: bool = False, push_only: bool = False, robot_rotation_unit_angle: float = 15, manip_search_bound_percentage: float = 0.1, use_social_cost: bool = True, resolve_conflicts: bool = True, resolve_deadlocks: bool = True, deadlock_strategy: Literal['SOCIAL', 'DISTANCE', ''] = '', drive_type: Literal['holonomic', 'differential'] = 'differential', grab_start_distance: float | None = None, grab_end_distance: float | None = None, conflict_horizon: int = 40)[source]

Bases: BaseXmlModel

activate_grids_logging: bool
check_new_local_opening_before_global: bool
conflict_horizon: int
deadlock_strategy: Literal['SOCIAL', 'DISTANCE', '']
drive_type: Literal['holonomic', 'differential']
grab_end_distance: float | None
grab_start_distance: float | None
manip_search_bound_percentage: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

push_only: bool
resolve_conflicts: bool
resolve_deadlocks: bool
robot_rotation_unit_angle: float
use_social_cost: bool
class namosim.data_models.StilmanBehaviorParametersYamlModel(*, check_new_local_opening_before_global: bool = True, activate_grids_logging: bool = False, push_only: bool = False, robot_rotation_unit_angle: float = 15.0, manip_search_bound_percentage: float = 0.1, use_social_cost: bool = True, resolve_conflicts: bool = True, resolve_deadlocks: bool = True, deadlock_strategy: Literal['SOCIAL', 'DISTANCE', ''] = '', drive_type: Literal['holonomic', 'differential'] = 'differential', grab_start_distance: float | None = None, grab_end_distance: float | None = None, conflict_horizon: int = 40)[source]

Bases: BaseModel

activate_grids_logging: bool
check_new_local_opening_before_global: bool
conflict_horizon: int
deadlock_strategy: Literal['SOCIAL', 'DISTANCE', '']
drive_type: Literal['holonomic', 'differential']
grab_end_distance: float | None
grab_start_distance: float | None
manip_search_bound_percentage: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

push_only: bool
resolve_conflicts: bool
resolve_deadlocks: bool
robot_rotation_unit_angle: float
use_social_cost: bool
class namosim.data_models.StilmanRRTBehaviorConfigModel(*, type: Literal['stilman_rrt'], parameters: StilmanBehaviorParametersModel)[source]

Bases: BaseBehaviorConfigModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

parameters: StilmanBehaviorParametersModel
type: Literal['stilman_rrt']
class namosim.data_models.StilmanRRTStarBehaviorConfigModel(*, type: Literal['stilman_rrt_star_behavior'], parameters: StilmanBehaviorParametersModel)[source]

Bases: BaseBehaviorConfigModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

parameters: StilmanBehaviorParametersModel
type: Literal['stilman_rrt_star_behavior']
class namosim.data_models.TeleopBehaviorConfigModel(*, type: Literal['teleop_behavior'])[source]

Bases: BaseBehaviorConfigModel

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: Literal['teleop_behavior']
namosim.data_models.namo_config_from_yaml(file_path: str) NamoConfigYamlModel[source]

namosim.exceptions module

exception namosim.exceptions.CustomTimeoutError[source]

Bases: Exception

namosim.exceptions.raise_timeout(signum: int, frame: Any)[source]
namosim.exceptions.timeout(seconds: int)[source]

A context manager that raises a CustomTimeoutError if its context block fails to complete execution within the provided number of seconds.

namosim.input module

class namosim.input.Input[source]

Bases: object

clear()[source]
handle_key_press(key: str | None)[source]
handle_key_release(key: str | None)[source]

namosim.log module

namosim.main module

namosim.report module

namosim.scenario_generation module

namosim.simulator module

namosim.svg_styles module

class namosim.svg_styles.AgentStyle(shape: str = 'fill:#0000ff;stroke-width:3.0;', orientation: str = 'fill:#00ffff;stroke:none;')[source]

Bases: object

Module contents