CloudTwin  ROS2 Humble
Digital twin for path and trajectory optimisation
Public Member Functions | Public Attributes | Private Member Functions | List of all members
random_obstacle_spawner.RandomObstacleSpawner Class Reference
+ Inheritance diagram for random_obstacle_spawner.RandomObstacleSpawner:

Public Member Functions

def __init__ (self)
 
None cleanup (self)
 

Public Attributes

 arrival_tolerance
 
 cleaned_up
 
 controlled_emergency_speed
 
 current_robot_position
 
 delete_client
 
 emergency_cycle
 
 emergency_cycle_active
 
 emergency_duration
 
 emergency_loop
 
 emergency_repeat_interval
 
 emergency_start_time
 
 fallback_robot_position
 
 gazebo_service_timeout
 
 gazebo_state_timeout
 
 gazebo_state_update_rate
 
 human_radius
 
 last_update
 
 map
 
 map_frame
 
 map_yaml
 
 marker_pub
 
 min_people_distance
 
 min_robot_distance
 
 min_wall_distance
 
 movement_started
 
 movement_timer
 
 moving_people_distance
 
 next_emergency_time
 
 next_gazebo_state_update
 
 next_spawn_index
 
 pending_spawns
 
 people
 
 people_pub
 
 robot_frame
 
 robot_tf_timeout
 
 scenario
 
 set_state_client
 
 simulation_start
 
 spawn_client
 
 spawn_response_timeout
 
 spawn_timeout_timer
 
 startup_started
 
 startup_timer
 
 steady_clock
 
 tf_buffer
 
 tf_listener
 
 update_rate
 

Private Member Functions

None _clear_people_markers (self)
 
float _clock_seconds (self)
 
None _complete_reached_waypoints (self, RandomHuman human, float elapsed)
 
def _controlled_patrol_route (self, RandomHuman human)
 
def _controlled_route (self, RandomHuman human)
 
None _declare_parameters (self)
 
bool _emergency_in_progress (self)
 
None _finish_emergency_cycle_if_ready (self, float elapsed)
 
None _generate_controlled_emergency_people (self)
 
None _generate_controlled_patrol_people (self)
 
None _generate_people (self)
 
bool _holding_emergency_position (self, RandomHuman human)
 
Optional[Point2D] _lookup_robot_position (self)
 
float _moving_people_clearance (self)
 
None _on_spawn_done (self, RandomHuman human, future)
 
None _on_state_done (self, RandomHuman human, int request_id, future)
 
bool _outside_robot_keepout (self, Point2D point)
 
bool _position_clear (self, RandomHuman human, Point2D point, list[RandomHuman] active, dict[str, Point2D] accepted)
 
None _prepare_controlled_emergency_state (self, RandomHuman human, float elapsed)
 
None _prepare_human_state (self, RandomHuman human, float elapsed)
 
Point2D _propose_position (self, RandomHuman human, float dt)
 
None _publish_people (self, list[RandomHuman] people)
 
None _publish_people_markers (self, list[RandomHuman] people)
 
None _read_parameters (self)
 
list[Point2D] _robot_exclusion_points (self)
 
float _route_path_length (self, route)
 
Point2D _route_position_at (self, route, float elapsed)
 
list[Point2D] _sample_route_points (self, Point2D start, tuple[Point2D,...] waypoints)
 
float _sampled_routes_distance (self, list[Point2D] first, list[Point2D] second)
 
Point2D _select_motion (self, RandomHuman human, Point2D proposed, list[RandomHuman] active, dict[str, Point2D] accepted)
 
None _send_state (self, RandomHuman human, float now)
 
None _spawn_next_person (self)
 
None _spawn_people (self)
 
None _spawn_timeout_elapsed (self)
 
None _start_movement (self)
 
None _startup_tick (self)
 
None _trigger_emergency (self, float elapsed)
 
None _update (self)
 
None _validate_controlled_emergency_routes (self)
 
None _validate_controlled_patrol_routes (self, routes)
 
None _validate_dense_route_segment (self, str route_name, Point2D start, Point2D end)
 
None _validate_parameters (self)
 
None _validate_point_spacing (self, list[Point2D] points, float min_distance, str label)
 
None _validate_route_robot_keepout (self, str route_name, list[Point2D] samples)
 
None _validate_route_segments (self, str route_name, Point2D start, tuple[Point2D,...] waypoints)
 
None _validate_sampled_route_spacing (self, list[tuple[object, list[Point2D]]] sampled_routes)
 
None _validate_shared_track_timing (self, routes)
 

Detailed Description

Generate and move collision-aware controlled humans on an occupancy map.

Constructor & Destructor Documentation

◆ __init__()

def random_obstacle_spawner.RandomObstacleSpawner.__init__ (   self)

Member Function Documentation

◆ _clear_people_markers()

None random_obstacle_spawner.RandomObstacleSpawner._clear_people_markers (   self)
private

◆ _clock_seconds()

float random_obstacle_spawner.RandomObstacleSpawner._clock_seconds (   self)
private

◆ _complete_reached_waypoints()

None random_obstacle_spawner.RandomObstacleSpawner._complete_reached_waypoints (   self,
RandomHuman  human,
float   elapsed 
)
private

◆ _controlled_patrol_route()

def random_obstacle_spawner.RandomObstacleSpawner._controlled_patrol_route (   self,
RandomHuman  human 
)
private

◆ _controlled_route()

def random_obstacle_spawner.RandomObstacleSpawner._controlled_route (   self,
RandomHuman  human 
)
private

◆ _declare_parameters()

None random_obstacle_spawner.RandomObstacleSpawner._declare_parameters (   self)
private

◆ _emergency_in_progress()

bool random_obstacle_spawner.RandomObstacleSpawner._emergency_in_progress (   self)
private

◆ _finish_emergency_cycle_if_ready()

None random_obstacle_spawner.RandomObstacleSpawner._finish_emergency_cycle_if_ready (   self,
float  elapsed 
)
private
Schedule a new emergency after gathering, waiting and dispersal.

◆ _generate_controlled_emergency_people()

None random_obstacle_spawner.RandomObstacleSpawner._generate_controlled_emergency_people (   self)
private

◆ _generate_controlled_patrol_people()

None random_obstacle_spawner.RandomObstacleSpawner._generate_controlled_patrol_people (   self)
private

◆ _generate_people()

None random_obstacle_spawner.RandomObstacleSpawner._generate_people (   self)
private

◆ _holding_emergency_position()

bool random_obstacle_spawner.RandomObstacleSpawner._holding_emergency_position (   self,
RandomHuman  human 
)
private

◆ _lookup_robot_position()

Optional[Point2D] random_obstacle_spawner.RandomObstacleSpawner._lookup_robot_position (   self)
private

◆ _moving_people_clearance()

float random_obstacle_spawner.RandomObstacleSpawner._moving_people_clearance (   self)
private

◆ _on_spawn_done()

None random_obstacle_spawner.RandomObstacleSpawner._on_spawn_done (   self,
RandomHuman  human,
  future 
)
private

◆ _on_state_done()

None random_obstacle_spawner.RandomObstacleSpawner._on_state_done (   self,
RandomHuman  human,
int  request_id,
  future 
)
private

◆ _outside_robot_keepout()

bool random_obstacle_spawner.RandomObstacleSpawner._outside_robot_keepout (   self,
Point2D  point 
)
private

◆ _position_clear()

bool random_obstacle_spawner.RandomObstacleSpawner._position_clear (   self,
RandomHuman  human,
Point2D  point,
list[RandomHuman active,
dict[str, Point2D]  accepted 
)
private

◆ _prepare_controlled_emergency_state()

None random_obstacle_spawner.RandomObstacleSpawner._prepare_controlled_emergency_state (   self,
RandomHuman  human,
float   elapsed 
)
private

◆ _prepare_human_state()

None random_obstacle_spawner.RandomObstacleSpawner._prepare_human_state (   self,
RandomHuman  human,
float  elapsed 
)
private

◆ _propose_position()

Point2D random_obstacle_spawner.RandomObstacleSpawner._propose_position (   self,
RandomHuman  human,
float  dt 
)
private

◆ _publish_people()

None random_obstacle_spawner.RandomObstacleSpawner._publish_people (   self,
list[RandomHuman people 
)
private

◆ _publish_people_markers()

None random_obstacle_spawner.RandomObstacleSpawner._publish_people_markers (   self,
list[RandomHuman people 
)
private
Publish one flat circle per human for the RViz top-down view.

◆ _read_parameters()

None random_obstacle_spawner.RandomObstacleSpawner._read_parameters (   self)
private

◆ _robot_exclusion_points()

list[Point2D] random_obstacle_spawner.RandomObstacleSpawner._robot_exclusion_points (   self)
private

◆ _route_path_length()

float random_obstacle_spawner.RandomObstacleSpawner._route_path_length (   self,
  route 
)
private

◆ _route_position_at()

Point2D random_obstacle_spawner.RandomObstacleSpawner._route_position_at (   self,
  route,
float  elapsed 
)
private

◆ _sample_route_points()

list[Point2D] random_obstacle_spawner.RandomObstacleSpawner._sample_route_points (   self,
Point2D  start,
tuple[Point2D, ...]   waypoints 
)
private

◆ _sampled_routes_distance()

float random_obstacle_spawner.RandomObstacleSpawner._sampled_routes_distance (   self,
list[Point2D]  first,
list[Point2D]   second 
)
private

◆ _select_motion()

Point2D random_obstacle_spawner.RandomObstacleSpawner._select_motion (   self,
RandomHuman  human,
Point2D  proposed,
list[RandomHuman active,
dict[str, Point2D]  accepted 
)
private

◆ _send_state()

None random_obstacle_spawner.RandomObstacleSpawner._send_state (   self,
RandomHuman  human,
float  now 
)
private

◆ _spawn_next_person()

None random_obstacle_spawner.RandomObstacleSpawner._spawn_next_person (   self)
private

◆ _spawn_people()

None random_obstacle_spawner.RandomObstacleSpawner._spawn_people (   self)
private

◆ _spawn_timeout_elapsed()

None random_obstacle_spawner.RandomObstacleSpawner._spawn_timeout_elapsed (   self)
private

◆ _start_movement()

None random_obstacle_spawner.RandomObstacleSpawner._start_movement (   self)
private

◆ _startup_tick()

None random_obstacle_spawner.RandomObstacleSpawner._startup_tick (   self)
private

◆ _trigger_emergency()

None random_obstacle_spawner.RandomObstacleSpawner._trigger_emergency (   self,
float  elapsed 
)
private

◆ _update()

None random_obstacle_spawner.RandomObstacleSpawner._update (   self)
private

◆ _validate_controlled_emergency_routes()

None random_obstacle_spawner.RandomObstacleSpawner._validate_controlled_emergency_routes (   self)
private

◆ _validate_controlled_patrol_routes()

None random_obstacle_spawner.RandomObstacleSpawner._validate_controlled_patrol_routes (   self,
  routes 
)
private

◆ _validate_dense_route_segment()

None random_obstacle_spawner.RandomObstacleSpawner._validate_dense_route_segment (   self,
str  route_name,
Point2D  start,
Point2D   end 
)
private

◆ _validate_parameters()

None random_obstacle_spawner.RandomObstacleSpawner._validate_parameters (   self)
private

◆ _validate_point_spacing()

None random_obstacle_spawner.RandomObstacleSpawner._validate_point_spacing (   self,
list[Point2D]  points,
float  min_distance,
str   label 
)
private

◆ _validate_route_robot_keepout()

None random_obstacle_spawner.RandomObstacleSpawner._validate_route_robot_keepout (   self,
str  route_name,
list[Point2D]   samples 
)
private

◆ _validate_route_segments()

None random_obstacle_spawner.RandomObstacleSpawner._validate_route_segments (   self,
str  route_name,
Point2D  start,
tuple[Point2D, ...]   waypoints 
)
private

◆ _validate_sampled_route_spacing()

None random_obstacle_spawner.RandomObstacleSpawner._validate_sampled_route_spacing (   self,
list[tuple[object, list[Point2D]]]   sampled_routes 
)
private

◆ _validate_shared_track_timing()

None random_obstacle_spawner.RandomObstacleSpawner._validate_shared_track_timing (   self,
  routes 
)
private

◆ cleanup()

None random_obstacle_spawner.RandomObstacleSpawner.cleanup (   self)
Stop movement and delete every model successfully spawned by this node.

Member Data Documentation

◆ arrival_tolerance

random_obstacle_spawner.RandomObstacleSpawner.arrival_tolerance

◆ cleaned_up

random_obstacle_spawner.RandomObstacleSpawner.cleaned_up

◆ controlled_emergency_speed

random_obstacle_spawner.RandomObstacleSpawner.controlled_emergency_speed

◆ current_robot_position

random_obstacle_spawner.RandomObstacleSpawner.current_robot_position

◆ delete_client

random_obstacle_spawner.RandomObstacleSpawner.delete_client

◆ emergency_cycle

random_obstacle_spawner.RandomObstacleSpawner.emergency_cycle

◆ emergency_cycle_active

random_obstacle_spawner.RandomObstacleSpawner.emergency_cycle_active

◆ emergency_duration

random_obstacle_spawner.RandomObstacleSpawner.emergency_duration

◆ emergency_loop

random_obstacle_spawner.RandomObstacleSpawner.emergency_loop

◆ emergency_repeat_interval

random_obstacle_spawner.RandomObstacleSpawner.emergency_repeat_interval

◆ emergency_start_time

random_obstacle_spawner.RandomObstacleSpawner.emergency_start_time

◆ fallback_robot_position

random_obstacle_spawner.RandomObstacleSpawner.fallback_robot_position

◆ gazebo_service_timeout

random_obstacle_spawner.RandomObstacleSpawner.gazebo_service_timeout

◆ gazebo_state_timeout

random_obstacle_spawner.RandomObstacleSpawner.gazebo_state_timeout

◆ gazebo_state_update_rate

random_obstacle_spawner.RandomObstacleSpawner.gazebo_state_update_rate

◆ human_radius

random_obstacle_spawner.RandomObstacleSpawner.human_radius

◆ last_update

random_obstacle_spawner.RandomObstacleSpawner.last_update

◆ map

random_obstacle_spawner.RandomObstacleSpawner.map

◆ map_frame

random_obstacle_spawner.RandomObstacleSpawner.map_frame

◆ map_yaml

random_obstacle_spawner.RandomObstacleSpawner.map_yaml

◆ marker_pub

random_obstacle_spawner.RandomObstacleSpawner.marker_pub

◆ min_people_distance

random_obstacle_spawner.RandomObstacleSpawner.min_people_distance

◆ min_robot_distance

random_obstacle_spawner.RandomObstacleSpawner.min_robot_distance

◆ min_wall_distance

random_obstacle_spawner.RandomObstacleSpawner.min_wall_distance

◆ movement_started

random_obstacle_spawner.RandomObstacleSpawner.movement_started

◆ movement_timer

random_obstacle_spawner.RandomObstacleSpawner.movement_timer

◆ moving_people_distance

random_obstacle_spawner.RandomObstacleSpawner.moving_people_distance

◆ next_emergency_time

random_obstacle_spawner.RandomObstacleSpawner.next_emergency_time

◆ next_gazebo_state_update

random_obstacle_spawner.RandomObstacleSpawner.next_gazebo_state_update

◆ next_spawn_index

random_obstacle_spawner.RandomObstacleSpawner.next_spawn_index

◆ pending_spawns

random_obstacle_spawner.RandomObstacleSpawner.pending_spawns

◆ people

random_obstacle_spawner.RandomObstacleSpawner.people

◆ people_pub

random_obstacle_spawner.RandomObstacleSpawner.people_pub

◆ robot_frame

random_obstacle_spawner.RandomObstacleSpawner.robot_frame

◆ robot_tf_timeout

random_obstacle_spawner.RandomObstacleSpawner.robot_tf_timeout

◆ scenario

random_obstacle_spawner.RandomObstacleSpawner.scenario

◆ set_state_client

random_obstacle_spawner.RandomObstacleSpawner.set_state_client

◆ simulation_start

random_obstacle_spawner.RandomObstacleSpawner.simulation_start

◆ spawn_client

random_obstacle_spawner.RandomObstacleSpawner.spawn_client

◆ spawn_response_timeout

random_obstacle_spawner.RandomObstacleSpawner.spawn_response_timeout

◆ spawn_timeout_timer

random_obstacle_spawner.RandomObstacleSpawner.spawn_timeout_timer

◆ startup_started

random_obstacle_spawner.RandomObstacleSpawner.startup_started

◆ startup_timer

random_obstacle_spawner.RandomObstacleSpawner.startup_timer

◆ steady_clock

random_obstacle_spawner.RandomObstacleSpawner.steady_clock

◆ tf_buffer

random_obstacle_spawner.RandomObstacleSpawner.tf_buffer

◆ tf_listener

random_obstacle_spawner.RandomObstacleSpawner.tf_listener

◆ update_rate

random_obstacle_spawner.RandomObstacleSpawner.update_rate

The documentation for this class was generated from the following file: