|
Bratmobile
|
Implements a Braitenberg vehicle: only simulates one Task at a time. More...
#include <configurator.h>


Public Member Functions | |
| ReactiveConfigurator (Task _task) | |
Public Member Functions inherited from Configurator | |
| Configurator (Task _task) | |
| virtual void | init (Task _task=Task()) |
| Initialises configurator. More... | |
| virtual bool | Spawner () |
| Calls functions to explore the state space and extract a plan. More... | |
| int | getIteration () |
| void | addIteration (int i=1) |
| void | assignDisturbanceToTask (const Disturbance &d, Task &t) |
| void | dummy_vertex (vertexDescriptor src) |
| simResult | simulate (Task t, b2World &w) |
| Simulates this task, includes creating the robot object. More... | |
| void | estimate_current_vertex () |
| void | printPlan (std::vector< vertexDescriptor > *p=NULL) |
| std::pair< edgeDescriptor, bool > | addVertex (const vertexDescriptor &src, vertexDescriptor &v1, Edge edge=Edge(), bool topDown=0) |
| Add state to the cognitive map and set next state Task direction and options. More... | |
| void | start () |
| void | stop () |
| void | registerInterface (LIDAR_In *, Motor_Out *) |
| virtual void | change_task () |
| changes tasks executing on the robot | |
| void | update_graph (TransitionSystem &g, const TrackingResult &tr) |
| float | approximate_angle (float angle, Direction d, simResult::resultType outcome) |
| Approximating angle to divisors of pi/2. More... | |
| virtual void | adjust_goal_expectation () |
| Uses tracking information to adjust the position of the goal relative to the robot. | |
| std::pair< bool, Direction > | getOppositeDirection (Direction d) |
| void | adjust_simulated_task (const vertexDescriptor &v, Task &t) |
| If Task. More... | |
| void | register_controller (Controller *controller) |
| Controller * | get_controller () |
| void | register_tracker (Tracker *_tracker) |
| registers and initialises the tracker to the goal | |
| Tracker * | get_tracker () const |
| Motor_Out * | get_motor_interface () |
| LIDAR_In * | get_lidar_interface () |
| void | register_planner (Planner *_p) |
| void | setSimulationStep (float f) |
| void | register_logger (Logger *l) |
| void | register_goalChanger (GoalChanger *gc) |
| virtual Robot | makeRobot (b2World &world, const b2Transform &start) |
| Makes the robot object in the world with the given start position and task. More... | |
| bool | areInterfacesSetUp (Configurator *c=NULL) |
| void | assignBodyFeatures (Task &t, const BodyFeatures &bf) |
| Assigns body features to the disturbance of a task (NOTE: affordance and validity of the disturbance will remain the same) More... | |
| void | assignDimensions (Task &t, float halfLength, float halfWidth) |
| Assigns dimensions to the disturbance of a task (NOTE: pose, affordance and validity of the disturbance will remain the same) More... | |
| void | register_worldBuilder (WorldBuilder *wb) |
| b2Transform | get_start (const Task *const t) |
| Direction | get_direction (const Task *const t) |
Protected Member Functions | |
| void | explore_plan (b2World &) override |
| Explores and plan. | |
| float | remainingSimulationTime (const Task *const t) override |
Additional Inherited Members | |
Static Public Member Functions inherited from Configurator | |
| static void | run (Configurator *) |
| Spawns tasks, creates plans, tracks task and controls real-world task switching option to run in thread. Thread can be used if planning time might exceed 200ms (LIDAR sampling rate) but doesn't have to be. | |
| static void | MulT (const b2Transform &B, Task &task) |
| Matrix multiply by transpose. | |
| static void | InvMul (const b2Transform &B, Task &task) |
| Matrix multiply by transpose. | |
| static void | InvMul_ (const b2Transform &B, Task &task) |
| Matrix multiply by transpose. | |
| static void | Mul (const b2Transform &B, Task &task) |
| Matrix multiplication. | |
Protected Attributes inherited from Configurator | |
| int | iteration =0 |
| int | simulatedTasks =0 |
| Task | currentTask |
| Controller * | task_controller =NULL |
| Tracker * | tracker =NULL |
| LIDAR_In * | ci =NULL |
| Motor_Out * | control =NULL |
| Planner * | planner =NULL |
| Logger * | logger =NULL |
| bool | running =0 |
| std::thread * | LIDAR_thread =NULL |
| float | simulationStep =2*std::max(ROBOT_HALFLENGTH, ROBOT_HALFWIDTH) |
| std::chrono::high_resolution_clock::time_point | previousTimeScan |
| GoalChanger * | goal_changer =NULL |
| std::vector< vertexDescriptor > | m_plan |
| std::vector< vertexDescriptor > | current_vertices |
| Task | controlGoal |
| CoordinateContainer | data2fp |
| TransitionSystem | transitionSystem =TransitionSystem(1) |
| WorldBuilder * | worldBuilder =new WorldBuilder() |
| vertexDescriptor | currentVertex =MOVING_VERTEX |
| edgeDescriptor | movingEdge =edgeDescriptor() |
| edgeDescriptor | currentEdge =movingEdge |
Implements a Braitenberg vehicle: only simulates one Task at a time.