24#ifndef _PLUGINS_COLLI_COLLI_THREAD_H_
25#define _PLUGINS_COLLI_COLLI_THREAD_H_
27#include "common/types.h"
29#include <aspect/blackboard.h>
30#include <aspect/clock.h>
31#include <aspect/configurable.h>
32#include <aspect/logging.h>
34#include <core/threading/thread.h>
35#include <utils/math/angle.h>
36#include <utils/math/types.h>
37#include <utils/time/clock.h>
44class Laser360Interface;
45class NavigatorInterface;
47class LaserOccupancyGrid;
51class BaseMotorInstruct;
54class ColliVisualizationThread;
108 ColliVisualizationThread *vis_thread_;
126 bool cfg_write_spam_debug_;
127 bool cfg_emergency_stop_enabled_;
128 float cfg_emergency_threshold_distance_;
129 float cfg_emergency_threshold_velocity_;
130 float cfg_emergency_velocity_max_;
141 float occ_grid_height_, occ_grid_width_;
142 int occ_grid_cell_height_, occ_grid_cell_width_;
144 bool cfg_obstacle_inc_;
150 float cfg_min_drive_dist_;
152 cfg_min_long_dist_drive_;
154 cfg_min_long_dist_prepos_;
155 float cfg_min_rot_dist_;
161 float cfg_max_velocity_;
163 std::string cfg_frame_base_;
164 std::string cfg_frame_laser_;
166 std::string cfg_iface_motor_;
167 std::string cfg_iface_laser_;
168 std::string cfg_iface_colli_;
170 cfg_iface_read_timeout_;
173 bool laser_to_base_valid_;
175 float distance_to_next_target_;
181 void colli_execute_();
187 void open_interfaces();
190 void initialize_modules();
193 void interfaces_read();
196 bool interface_data_valid();
199 void update_colli_state();
202 void update_modules();
Thread that performs the navigation and collision avoidance algorithms.
ColliThread()
Constructor.
virtual void init()
Initialize the thread.
void colli_relgoto(float x, float y, float ori, fawkes::NavigatorInterface *iface)
Sends a goto-command, using relative coordinates.
void colli_stop()
Sends a stop-command.
virtual void finalize()
Finalize the thread.
void colli_goto(float x, float y, float ori, fawkes::NavigatorInterface *iface)
Sends a goto-command, using global coordinates.
virtual ~ColliThread()
Destructor.
virtual void loop()
Code to execute in the thread.
bool is_final() const
Checks if the colli is final.
virtual void set_vis_thread(ColliVisualizationThread *vis_thread)
Set the visualization thread.
The Basic of a Motorinstructor.
Thread aspect to access to BlackBoard.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Laser360Interface Fawkes BlackBoard Interface.
This OccGrid is derived by the Occupancy Grid originally from Andreas Strack, but modified for speed ...
Thread aspect to log output.
MotorInterface Fawkes BlackBoard Interface.
Mutex mutual exclusion lock.
NavigatorInterface Fawkes BlackBoard Interface.
This class selects the correct drive mode and calls the appopriate drive component.
Thread class encapsulation of pthreads.
Fawkes library namespace.
colli_motor_instruct_mode_t
Colli motor_instuct modes.
colli_escape_mode_t
Colli Escape modes.
colli_state_t
Colli States.
Cartesian coordinates (2D).
Colli data, refering to current movement.
Storing Translation and rotation.
Point with cartesian coordinates as signed integers.