hbp_nrp_cle.cle.ClosedLoopEngine module¶
Implementation of the closed loop engine.
- 
class ClosedLoopEngine(robot_control_adapter, robot_comm_adapter, brain_control_adapter, brain_comm_adapter, transfer_function_manager, external_module_manager, dt)[source]¶
- Bases: - hbp_nrp_cle.cle.DeterministicClosedLoopEngine.DeterministicClosedLoopEngine- Implementation of the closed loop engine that runs Transfer Functions (TF), brain simulation (B) and world simulation (W) concurrently for best effort performance - World simulation is run in parallel in a separate process; Transfer Functions and brain simulation are run as python Threads. - Notes about synchronization: TF, B and W start at cle.clock == 0 The difference between clocks is within one CLE timestep: i.e. abs(TF_t - B_t) < timestep , abs(TF_t - W_t) < timestep - e.g. rospy.get_time() in a Transfer Function will not return, very likely, the same t which the TF has been called with (the t parameter). What is guaranteed is that the time difference stays within one CLE timestep. In fact, the components are waited on for step completion at the end of a simulated step (run_step method) and their relative intra-step speed depends on their respective workload and scheduling.