This module trackes planar obstacles using range images and kalman filering. More...
![]() |
Data Structures | |
struct | t_model |
This structure contains the motion model used by kalman filter. More... | |
struct | t_kmodel |
struct | t_cluster |
This structure all cluster information. More... | |
struct | t_data |
This structure has all points coordinates. More... | |
struct | t_data_acc |
This structure is a vector of t_data structures, serves as a data accumulator. More... | |
struct | t_config |
This structure contains global configurations parameters. More... | |
struct | t_flag |
This structure contains global flags parameters. More... | |
struct | t_match |
This will be removed. More... | |
struct | t_line |
This structure contains a single line properties. More... | |
struct | t_object |
This structure contains object information. More... | |
struct | t_track |
This structure contains object track information. More... | |
struct | t_acc |
struct | t_object_list |
** More... | |
struct | t_object_acc |
Accumulator for objects. More... | |
struct | t_circle |
Simple circle data. More... | |
struct | t_entity |
Still not used, intended to be the last stage of information on the environment. More... | |
struct | TYPE_potkf_public_params |
This is a test message, Here you insert the description of the entity, in this case the struct. More... | |
struct | TYPE_Obstacle |
This structure contains a single obstacle. More... | |
struct | potkf_data_message |
This is a test message, Here you insert the description of the entity, in this case the struct. More... | |
Files | |
file | potkf_auxiliar.h |
Auxiliar functions header. | |
file | potkf_auxiliar.h |
Auxiliar functions header. | |
file | potkf_common.h |
Main header file containg all typedefs. | |
file | potkf_draw.cpp |
Draw functions. | |
file | potkf_draw.h |
Draw functions header. | |
file | potkf_extra.cpp |
Misc extra functions. | |
file | potkf_extra.h |
Misc extra functions header. | |
file | potkf_filter.cpp |
Custom signal filters. | |
file | potkf_filter.h |
Custom filters header. | |
file | potkf_kalman.cpp |
Custom kalman estimation functions. | |
file | potkf_kalman.h |
Kalman functions header. | |
file | potkf_object_treatment.cpp |
Object manipulation functions. | |
file | potkf_object_treatment.h |
Object manipulation header. | |
file | potkf_print.cpp |
Print data functions. | |
file | potkf_print.h |
Header for the print data funcionts. | |
file | potkf_tracking.cpp |
Tracking related functions. | |
file | potkf_tracking.h |
Tracking related functions header. | |
Defines | |
#define | TRESHOLD 1 |
#define | null NULL |
#define | _MAX_TRACK_LENGHT_ 500 |
#define | tic tictoc(1) |
#define | toc tictoc(0) |
#define | TIC 1 |
#define | TOC 0 |
#define | _MAX_LASER_OBSTACLES_ 100 |
#define | POTKF_RESET_OCCURRED_NAME "potkf_reset_occurred" |
Control message to pass to the process control module. Always capitals finishes with _RESET_OCCURRED_NAME and the value is small letters the same without the suffix name. | |
#define | POTKF_RESET_COMMAND_NAME "potkf_reset_command" |
Control message to pass to the process control module. Always capitals finishes with _RESET_COMMAND_NAME and the value is small letters the same without the suffix name. | |
#define | POTKF_DATA_MESSAGE_NAME "potkf_data" |
Name of the message passed to IPC. Always capitals finishes with _MESSAGE_NAME and the value is small letters the same without the suffix. | |
#define | POTKF_DATA_MESSAGE_FMT "{int,<{int,int,double,double,[double:50],[double:50],double,double}:1>,double,string}" |
Format of the message passed to IPC. Always capitals finishes with _MESSAGE_FMT and the value is given similar to the one bellow. For more information view the IPC manual. | |
Typedefs | |
typedef carmen_default_message | potkf_reset_occurred_message |
typedef carmen_default_message | potkf_reset_command_message |
Functions | |
int | main (int argc, char **argv) |
void | copy_list_to_potkf_data_message (potkf_data_message *msg, t_object_list **list, int size) |
Copies data from t_object** to potkf_data_message. | |
void | shutdown_module (int x) |
makes a clean shutdown of the program | |
void | robot_status_handler (void) |
void | init_config (t_config *config) |
void | init_flags (t_flag *flags) |
void | init_data (t_data *data) |
void | init_data_acc (t_data_acc *data_acc, t_config *config, t_flag *) |
void | add_to_data_acc (t_data_acc *data_acc, t_data *data) |
void | get_data_from_acc (t_data_acc *data_acc, t_data *data, t_config *config) |
double | point2point_distance (double xi, double yi, double xf, double yf) |
double | point2point_algebric_distance (double xi, double yi, double xf, double yf) |
double | point2line_distance (double alpha, double ro, double x, double y) |
int | real2print (double x, t_config *config) |
void | get_data_from_ipm (t_data *data, ipm_data_message *sensordata, t_config *) |
Converts values from the laser to the basic data format. | |
void | get_data_uncliped (t_data *data, float *range_vector, int size, double angular_resolution, t_config *config) |
void | calc_cluster_props (t_cluster **clusters, int size, t_data *data, t_config *) |
double | dietmayer_threshold (double r, t_config *config) |
t_cluster ** | clustering (t_data *data, int *count, t_config *config, t_flag *flags) |
bool | clip_point (double r, double t, t_config *config) |
void | remove_small_clusters (t_cluster **clusters, int *size, int threshold) |
void | remove_border_points (t_cluster **clusters, int size, int npoints) |
void | remove_data_point (t_data *data, int p) |
t_object ** | clusters2objects (t_cluster **clusters, int size, t_data *data, t_config *config, t_flag *flag) |
void | smooth_clusters (t_cluster **clusters, int size, t_data *data, t_config *config) |
void | calc_object_props (t_object **objects, int size, t_config *config, t_flag *flags) |
void | point_match (t_match *match, t_data *oldd, t_data *newd, t_config *config, t_flag *flags) |
void | recursive_IEPF (t_object *object, t_data *data, int start, int end, t_config *config) |
void | recursive_line_fitting (t_object *object, t_cluster *cluster, t_data *data, t_config *config) |
void | free_lines (t_object **objects, int size) |
void | remove_data_acc_point (t_data_acc *data, int p) |
void | draw_robot_velocity (IplImage *img, double dir, double vel, CvScalar color) |
void | draw_velocity (IplImage *img, t_object_list **objects, int size, CvScalar color) |
void | drawarrow (int x0, int y0, double o, double lenght, IplImage *dst, CvScalar color, int thickness, int line_type, int shift) |
void | draw_objects_centers (IplImage *img, t_object **objects, int size, CvScalar color, t_config *, t_flag *) |
void | draw_objects_ids (IplImage *img, t_object **objects, int size, CvScalar color, t_config *config, t_flag *) |
void | draw_objects (IplImage *img, t_object **objects, int size, CvScalar color, t_config *, t_flag *) |
void | draw_end_lines (IplImage *img, t_cluster **clusters, int size, t_data *data, t_config *config) |
void | draw_clusters_npoints (IplImage *img, t_cluster **clusters, int size, t_data *data, t_config *config) |
void | draw_midle_circle (IplImage *img, t_config *config) |
void | draw_clusters_centers (IplImage *img, t_cluster **clusters, int size, t_config *config) |
void | draw_clusters_area (IplImage *img, t_cluster **clusters, int size, t_config *config, t_data *data) |
void | draw_clusters (IplImage *img, t_cluster **clusters, int size, t_data *data, t_config *) |
void | draw_raw_data (IplImage *img, t_data *data, CvScalar color, t_config *, t_flag *) |
void | draw_raw_data_acc (IplImage *img, t_data_acc *data_acc, CvScalar color, t_config *config, t_flag *) |
void | draw_point_match (IplImage *img, t_match *match, t_data *old_data, t_data *data, t_config *config) |
void | draw_objects_ppos (IplImage *img, t_object **objects, int size, t_config *config) |
int | timediff (struct timeval t1, struct timeval t2) |
void | draw_obstacles (IplImage *img, potkf_data_message *msg, unsigned char R, unsigned char G, unsigned char B, int linewidth) |
void | kkalman (t_object_list **objects, int size, t_config *, t_flag *, double robot_vx, double robot_vy) |
void | kinit_list (t_object_list *object) |
void | update_transition_matrix (t_object_list **list, int size, double dt) |
void | kalman_iteration (t_model *model) |
void | kalman (t_object **objects, int size, t_config *config, t_flag *flags) |
Main kalman tracking function, initialises estimation for all objects. | |
void | kinit_model (t_kmodel *model) |
void | add_to_err_acc (t_object_list *object) |
void | clean_objets (t_object **objects, int size) |
void | init_err_acc (t_object_list *object, t_config *config) |
t_object ** | move_to_old (t_object **objects, int size) |
void | copie_lines_to_list (t_object *object, t_object_list *list) |
void | kalman_tracking (IplImage *, t_object_list **list, t_object **object, int *list_size, int size, t_config *config, t_flag *, double) |
void | calc_egomotion_from_scan (t_object_list **list, int size, double *velocity_module, double *velocity_angle) |
void | remove_ego_motion (t_object_list **list, int size, double ego_velocity_module, double ego_velocity_angle) |
int | sort (const void *x, const void *y) |
void | object_nearest_neighbour_tracking (t_object **old_object, t_object **new_object, int old_size, int new_size, t_config *config, t_flag *flags) |
void | associate_models (t_object **objects, int size, t_object **old_objects, int old_size, t_config *config, t_flag *flags) |
Variables | |
char | ipm_heartbeat = 0 |
ipm_data_message * | sensordata = NULL |
c_videosaving * | video_s |
TYPE_executionflags | sflags |
potkf_data_message | msg |
IplImage * | img = NULL |
IplImage * | potkf = NULL |
CvFont | font |
t_cluster ** | clusters |
t_flag | flags |
Include the interface. | |
t_config | config |
t_data | data |
t_object ** | objects |
t_object_list ** | list |
t_data_acc | data_acc |
robot_status_message | robot_status |
double | robot_vx |
double | robot_vy |
int | IPM_WIDTH |
int | IPM_HEIGHT |
TYPE_ipm_expert_params | ipm_params |
IplImage * | img |
potkf_data_message | msg |
This module trackes planar obstacles using range images and kalman filering.
#define _MAX_LASER_OBSTACLES_ 100 |
#define _MAX_TRACK_LENGHT_ 500 |
#define null NULL |
#define POTKF_DATA_MESSAGE_FMT "{int,<{int,int,double,double,[double:50],[double:50],double,double}:1>,double,string}" |
Format of the message passed to IPC. Always capitals finishes with _MESSAGE_FMT and the value is given similar to the one bellow. For more information view the IPC manual.
#define POTKF_DATA_MESSAGE_NAME "potkf_data" |
Name of the message passed to IPC. Always capitals finishes with _MESSAGE_NAME and the value is small letters the same without the suffix.
#define POTKF_RESET_COMMAND_NAME "potkf_reset_command" |
Control message to pass to the process control module. Always capitals finishes with _RESET_COMMAND_NAME and the value is small letters the same without the suffix name.
#define POTKF_RESET_OCCURRED_NAME "potkf_reset_occurred" |
Control message to pass to the process control module. Always capitals finishes with _RESET_OCCURRED_NAME and the value is small letters the same without the suffix name.
#define TIC 1 |
#define tic tictoc(1) |
#define TOC 0 |
#define toc tictoc(0) |
#define TRESHOLD 1 |
typedef carmen_default_message potkf_reset_command_message |
typedef carmen_default_message potkf_reset_occurred_message |
void add_to_data_acc | ( | t_data_acc * | data_acc, | |
t_data * | data | |||
) |
void add_to_err_acc | ( | t_object_list * | object | ) |
References t_acc::max_number, t_acc::n_scans, t_acc::position, t_object_list::xerr_acc, and t_object_list::yerr_acc.
void associate_models | ( | t_object ** | objects, | |
int | size, | |||
t_object ** | old_objects, | |||
int | old_size, | |||
t_config * | config, | |||
t_flag * | flags | |||
) |
void calc_egomotion_from_scan | ( | t_object_list ** | list, | |
int | size, | |||
double * | velocity_module, | |||
double * | velocity_angle | |||
) |
void clean_objets | ( | t_object ** | objects, | |
int | size | |||
) |
bool clip_point | ( | double | r, | |
double | t, | |||
t_config * | config | |||
) |
t_object** clusters2objects | ( | t_cluster ** | clusters, | |
int | size, | |||
t_data * | data, | |||
t_config * | config, | |||
t_flag * | flag | |||
) |
void copie_lines_to_list | ( | t_object * | object, | |
t_object_list * | list | |||
) |
References _LAR_TEXT_RED_, t_object_list::id, t_object_list::n_points, printnc, t_object_list::x, and t_object_list::y.
void copy_list_to_potkf_data_message | ( | potkf_data_message * | msg, | |
t_object_list ** | list, | |||
int | size | |||
) |
Copies data from t_object** to potkf_data_message.
msg | destination | |
objects | source | |
size | number of objects |
double dietmayer_threshold | ( | double | r, | |
t_config * | config | |||
) |
void draw_clusters_area | ( | IplImage * | img, | |
t_cluster ** | clusters, | |||
int | size, | |||
t_config * | config, | |||
t_data * | data | |||
) |
void draw_clusters_npoints | ( | IplImage * | img, | |
t_cluster ** | clusters, | |||
int | size, | |||
t_data * | data, | |||
t_config * | config | |||
) |
void draw_end_lines | ( | IplImage * | img, | |
t_cluster ** | clusters, | |||
int | size, | |||
t_data * | data, | |||
t_config * | config | |||
) |
void draw_midle_circle | ( | IplImage * | img, | |
t_config * | config | |||
) |
void draw_objects | ( | IplImage * | img, | |
t_object ** | objects, | |||
int | size, | |||
CvScalar | color, | |||
t_config * | , | |||
t_flag * | ||||
) |
void draw_objects_centers | ( | IplImage * | img, | |
t_object ** | objects, | |||
int | size, | |||
CvScalar | color, | |||
t_config * | , | |||
t_flag * | ||||
) |
void draw_objects_ids | ( | IplImage * | img, | |
t_object ** | objects, | |||
int | size, | |||
CvScalar | color, | |||
t_config * | config, | |||
t_flag * | ||||
) |
void draw_obstacles | ( | IplImage * | img, | |
potkf_data_message * | msg | |||
) |
void draw_point_match | ( | IplImage * | img, | |
t_match * | match, | |||
t_data * | old_data, | |||
t_data * | data, | |||
t_config * | config | |||
) |
void draw_raw_data_acc | ( | IplImage * | img, | |
t_data_acc * | data_acc, | |||
CvScalar | color, | |||
t_config * | config, | |||
t_flag * | ||||
) |
void draw_robot_velocity | ( | IplImage * | img, | |
double | dir, | |||
double | vel, | |||
CvScalar | color | |||
) |
void draw_velocity | ( | IplImage * | img, | |
t_object_list ** | objects, | |||
int | size, | |||
CvScalar | color | |||
) |
void drawarrow | ( | int | x0, | |
int | y0, | |||
double | o, | |||
double | lenght, | |||
IplImage * | dst, | |||
CvScalar | color, | |||
int | thickness, | |||
int | line_type, | |||
int | shift | |||
) |
void free_lines | ( | t_object ** | objects, | |
int | size | |||
) |
void get_data_from_acc | ( | t_data_acc * | data_acc, | |
t_data * | data, | |||
t_config * | config | |||
) |
void get_data_from_ipm | ( | t_data * | data, | |
ipm_data_message * | sensordata, | |||
t_config * | ||||
) |
Converts values from the laser to the basic data format.
data | general data storage vector | |
range_vector | values from the laser | |
size | number of values from the laser | |
angular_resolution | of the laser | |
config | general config structure |
void get_data_uncliped | ( | t_data * | data, | |
float * | range_vector, | |||
int | size, | |||
double | angular_resolution, | |||
t_config * | config | |||
) |
void init_config | ( | t_config * | config | ) |
void init_data | ( | t_data * | data | ) |
void init_data_acc | ( | t_data_acc * | data_acc, | |
t_config * | config, | |||
t_flag * | ||||
) |
void init_err_acc | ( | t_object_list * | object, | |
t_config * | config | |||
) |
void init_flags | ( | t_flag * | flags | ) |
Main kalman tracking function, initialises estimation for all objects.
objects | superstructure containing object data and individual motion models | |
size | number of objects | |
config | general config structure | |
flag | general flags structure |
void kalman_iteration | ( | t_model * | model | ) |
void kalman_tracking | ( | IplImage * | , | |
t_object_list ** | list, | |||
t_object ** | object, | |||
int * | list_size, | |||
int | size, | |||
t_config * | config, | |||
t_flag * | , | |||
double | ||||
) |
void kinit_list | ( | t_object_list * | object | ) |
void kinit_model | ( | t_kmodel * | model | ) |
void kkalman | ( | t_object_list ** | objects, | |
int | size, | |||
t_config * | , | |||
t_flag * | , | |||
double | robot_vx, | |||
double | robot_vy | |||
) |
int main | ( | int | argc, | |
char ** | argv | |||
) |
References _LAR_TEXT_RED_, handler(), img, key(), potkf_subscribe_data(), printc, and shutdown_module().
void object_nearest_neighbour_tracking | ( | t_object ** | old_object, | |
t_object ** | new_object, | |||
int | old_size, | |||
int | new_size, | |||
t_config * | config, | |||
t_flag * | flags | |||
) |
double point2line_distance | ( | double | alpha, | |
double | ro, | |||
double | x, | |||
double | y | |||
) |
double point2point_algebric_distance | ( | double | xi, | |
double | yi, | |||
double | xf, | |||
double | yf | |||
) |
double point2point_distance | ( | double | xi, | |
double | yi, | |||
double | xf, | |||
double | yf | |||
) |
void point_match | ( | t_match * | match, | |
t_data * | oldd, | |||
t_data * | newd, | |||
t_config * | config, | |||
t_flag * | flags | |||
) |
int real2print | ( | double | x, | |
t_config * | config | |||
) |
This functions malloc a line to work with, each time it mallocs a line it increments the number of lines object data
void recursive_line_fitting | ( | t_object * | object, | |
t_cluster * | cluster, | |||
t_data * | data, | |||
t_config * | config | |||
) |
void remove_border_points | ( | t_cluster ** | clusters, | |
int | size, | |||
int | npoints | |||
) |
void remove_data_acc_point | ( | t_data_acc * | data, | |
int | p | |||
) |
void remove_data_point | ( | t_data * | data, | |
int | p | |||
) |
void remove_ego_motion | ( | t_object_list ** | list, | |
int | size, | |||
double | ego_velocity_module, | |||
double | ego_velocity_angle | |||
) |
void remove_small_clusters | ( | t_cluster ** | clusters, | |
int * | size, | |||
int | threshold | |||
) |
void robot_status_handler | ( | void | ) |
void shutdown_module | ( | int | sig | ) |
makes a clean shutdown of the program
makes a clean shutdown of the program.
Module shutdown function.
The main header file for egointerface module.
Safe shutdown.
Does a safe shutdown. Disconnects from IPC. Preform log closing operations and update log statistics.
Safe shutdown of module.
Make a clean exit.
Shuts down cm module with a clean exit.
Does a safe shutdown. Disconnects from IPC.
To do a safe ctrl +c exit.
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
The main header file for this module.
#ifndef _DES70_10_H_ #define _DES70_10_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> //#include <lar/readcommandlineparameters.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### typedef struct{ int baudrate; int sys_config; int cur_reg_gain_p; int cur_reg_gain_i; int max_cur_output; int speed_reg_gain_p; int speed_reg_gain_i; int internal_param1; int internal_param2; int internal_param3; int max_speed_error; int setting_unit_gain; int setting_unit_offset; int setting_unit_delay; int peak_current; int max_cont_current; int therm_const; int max_speed; int acceleration; int speed_constant; int enc_resolution; int pole_pair_number; int internal_param4; int rpm2qc_factor; int index_offset; int pwm_period; int max_duty_cycle; int cur_det_ph_u_offset; int cur_det_ph_v_offset; int ad_conv_offset; int can_module_id; int can_service_id; int can_rx_pdo_id; int can_tx_pdo_id; int can_bcr1; int can_bcr2; int can_op_mode; int can_rx_sdo_id; int can_tx_sdo_id; int can_rtr0_id; int can_rtr1_id; int can_config; int internal_param5; int error_proc; int max_speed_curr; int hall_angle_offs; }TYPE_des_sysparam; enum ENUM_DES_SYS_PARAMS { BAUDRATE = 0, SYS_CONFIG = 1, CUR_REG_GAIN_P = 2, CUR_REG_GAIN_I = 3, MAX_CUR_OUTPUT = 4, SPEED_REG_GAIN_P = 5, SPEED_REG_GAIN_I = 6, INTERNAL_PARAM1 = 7, INTERNAL_PARAM2 = 8, INTERNAL_PARAM3 = 9, MAX_SPEED_ERROR = 10, SETTING_UNIT_GAIN = 11, SETTING_UNIT_OFFSET = 12, SETTING_UNIT_DELAY = 13, PEAK_CURRENT = 14, MAX_CONT_CURRENT = 15, THERM_CONST = 16, MAX_SPEED = 17, ACCELERATION = 18, SPEED_CONSTANT = 19, ENC_RESOLUTION = 20, POLE_PAIR_NUMBER = 21, INTERNAL_PARAM4 = 22, RPM_2QC_FACTOR = 23, INDEX_OFFSET = 24, PWM_PERIOD = 25, MAX_DUTY_CYCLE = 26, CUR_DET_PH_U_OFFSET = 27, CUR_DET_PH_V_OFFSET = 28, AD_CONV_OFFSET = 29, CAN_MODULE_ID = 30, CAN_SERVICE_ID = 31, CAN_RX_PDO_ID = 32, CAN_TX_PDO_ID = 33, CAN_BCR1 = 34, CAN_BCR2 = 35, CAN_OP_MODE = 36, CAN_RX_SDO_ID = 37, CAN_TX_SDO_ID = 38, CAN_RTR0_ID = 39, CAN_RTR1_ID = 40, CAN_CONFIG = 41, INTERNAL_PARAM5 = 42, ERROR_PROC = 43, MAX_SPEED_CURR = 44, HALL_ANGLE_OFFS = 45 }; typedef struct{ int sys_op_status; int actual_mean_cur_d; int actual_mean_cur_q; int cur_setting_val; int rel_rot_pos_rev; int speed_setting_val; int actual_mean_speed_val; int abs_rotor_pos; int standard_error; int can_error; int actual_cur_q; int actual_speed_val; int error_hist1; int error_hist2; int enc_counter; int enc_counter_last_ind; int hall_sens_pat; }TYPE_DES_status_var; enum ENUM_DES_STATUS_VAR { SYS_OP_STATUS = 128, ACTUAL_MEAN_CUR_D = 129, ACTUAL_MEAN_CUR_Q = 130, CUR_SETTING_VAL = 131, REL_ROT_POS_REV = 132, SPEED_SETTING_VAL = 133, ACTUAL_MEAN_SPEED_VAL = 134, ABS_ROTOR_POS = 135, STANDARD_ERROR = 136, CAN_ERROR = 137, ACTUAL_CUR_Q = 138, ACTUAL_SPEED_VAL = 139, ERROR_HIST1 = 140, ERROR_HIST2 = 141, ENC_COUNTER = 142, ENC_COUNTER_LAST_IND = 143, HALL_SENS_PAT = 144, }; typedef struct{ unsigned char OpCode; unsigned char data[520]; int size; int crc; }TYPE_msg_frame; //#################################################################### // Prototypes: for private functions can be declared ################# // in des70_10.c or preferably in des70_10_functions.c ## //#################################################################### //------- des70_10_init.cpp ------- int InitDES_communication(char* com_device, int* port, int baud, TYPE_executionflags* flg); //------- des70_10_functions.cpp ------- int calc_crc_16(TYPE_msg_frame* msg); int write_msg_inbuf(const int port, unsigned char* data, int size); int check_msg_aceptance(const int port, float wait_time, unsigned char* msg); int send_OpCode(const int port, unsigned char tries, unsigned char OpCode, char flg); int send_data(const int port, TYPE_msg_frame* msg, char flg); int read_buffer(const int port, TYPE_msg_frame* msg, char flg); int send_msg_frame(const int port, TYPE_msg_frame* msg, char flg); int DES_ST_read_sys_status(const int port, int* sys_status, char flg); int DES_ST_read_error(const int port, int* errors, char flg); int DES_ST_clear_errors(const int port, char flg); int DES_ST_reset(const int port, char flg); int DES_ST_enable(const int port, int* newState, char flg); int DES_SPF_read_temp_param(const int port, int paramNb, int dataFormat, int* response, char flg); int DES_SPF_set_temp_param(const int port, int paramNb, int dataFormat, int* newValue, char flg); int DES_SPF_read_all_temp_param(const int port, TYPE_des_sysparam* sysparam, char flg); int DES_SF_set_velocity(const int port, int newVelocity, char flg); int DES_SF_set_current(const int port, int newCurrent, char flg); int DES_SF_stop_motion(const int port, char flg); int DES_MF_read_velocity_is_must(const int port, int vel_type, int* velocity, int* requested_vel, char flg); int InitDES(const int port, TYPE_des_sysparam* newSysParam, char flg); int stopDES(const int port, char flg); int DES_set_new_baud(int* port, int baud, char flg); #ifdef _DES70_10_FUNCTIONS_C_ #else #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc | |
x | the type of signal sent: SIGINT etc |
#ifndef _POWERMANAGER_H_ #define _POWERMANAGER_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/powermanager_interface.h> #define _SERIALPORT_ "/dev/ttyUSB0" //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in powermanager.c or preferably in powermanager_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_command_msg(void); void initialize_communications(void); int send_to_plc(unsigned char byte_value); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _POWERMANAGER_CPP_ /*or _POWERMANAGER_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### //mike confusion, uses a message structure to install parameters. message and parameters should not be different? TYPE_executionflags flags; //the command line parameters flags //creates a the default structure that will deal retrieve parameters. // explain fields (use a handler whenever a parameter changes) // var1 in this case is actually int PortHandle; powermanager_status_message status_msg; powermanager_command_message command_msg; #else extern TYPE_executionflags flags; extern powermanager_status_message status_msg; extern powermanager_command_message command_msg; extern int PortHandle; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc | |
x | the SIGNAL |
x | the SIGNAL |
x | the SIGNAL |
x | the SIGNAL |
#ifndef _XBEE_H_ #define _XBEE_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/xbee_interface.h> #include <strings.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in xbee.c or preferably in xbee_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); void initialize_xbee(void); void xbee_transmit_data(void); void xbee_receive_data(void); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _XBEE_CPP_ /*or _XBEE_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### //mike confusion, uses a message structure to install parameters. message and parameters should not be different? char *COM_DEVICE_XBEE; //will receive com device address double read_frequency; //will receive com device access frequency TYPE_executionflags flags; //the command line parameters flags xbee_rx_data_message rx_message; //this is a message structure xbee_tx_data_message tx_message; //this is a message structure TYPE_xbee_public_params params; //this is a parameters structure int device_handler_xbee; char* tx_string; //creates a the default structure that will deal with retrieved parameters. // explain fields (use a handler whenever a parameter changes) // the values in the field xbee_data_param_shared_var, from lar.ini, will be installed in var1 // the var type is an integer: CARMEN_PARAM_INT carmen_param_t xbee_local_parameters[] = { {(char*)"xbee", (char*)"frequency", CARMEN_PARAM_DOUBLE, &read_frequency, 1, NULL}, {(char*)"xbee", (char*)"comport", CARMEN_PARAM_STRING, &COM_DEVICE_XBEE, 0, NULL}}; //prepare param struct #else extern char *COM_DEVICE_XBEE; //will receive com device address extern double read_frequency; //will receive com device access frequency extern TYPE_executionflags flags; extern xbee_rx_data_message rx_message; extern xbee_tx_data_message tx_message; extern TYPE_xbee_public_params params; extern int device_handler_xbee; extern char* tx_string; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
Disconnects from ipc and releases video writer
x | Signal value. To shutdown signal must be SIGINT |
#ifndef _OT_H_ #define _OT_H_ #include <lar/lar.h> //#include "/home/atlas/lar/src/perception/planarobstacles/potkf_tese/potkf_interface.h" enum enum_state {SEARCHING,TRACKING,TARGET_LOST,INITIALISE}; typedef struct { enum_state state; unsigned int target_id; double current_angle,current_distance; double velocity_module,velocity_angle; double predicted_angle,predicted_distance; double size; int life_time; int occluded_time; int classification; }t_status; typedef struct { double start_angle; double end_angle; double start_range; double end_range; double min_size; double max_size; int min_life_time; int max_life_time; }t_search_area; int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); void potkf_handler(potkf_reduced_data_message*msg); bool search_for_new_target(potkf_reduced_data_message*potkf_msg,t_status*status,t_search_area*area); void init_search_area(t_search_area*area); bool get_new_target_information(potkf_reduced_data_message*potkf_msg,t_status*status); void foveationcontrol(t_status*status); void print_status(t_status*status); void foveationcontrol_home(void); #ifdef _OT_CPP_ bool potkf_heartbeat; TYPE_executionflags flags; //the command line parameters flags #else extern TYPE_executionflags flags; extern bool potkf_heartbeat; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _MODULETEMPLATE_H_ #define _MODULETEMPLATE_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/moduletemplate_interface.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in moduletemplate.c or preferably in moduletemplate_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(void); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _MODULETEMPLATE_CPP_ /*or _MODULETEMPLATE_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### //mike confusion, uses a message structure to install parameters. message and parameters should not be different? TYPE_executionflags flags; //the command line parameters flags moduletemplate_data_message msg; //this is a structure TYPE_moduletemplate_public_params params; //this is a structure //creates a the default structure that will deal with retrieved parameters. // explain fields (use a handler whenever a parameter changes) // the values in the field moduletemplate_data_param_shared_var, from lar.ini, will be installed in var1 // the var type is an integer: CARMEN_PARAM_INT carmen_param_t moduletemplate_local_parameters[] = { {(char*)"moduletemplate", (char*)"shared_var", CARMEN_PARAM_INT, &msg.var1, 1, _cast_to_carmen_param_change_handler_t_ handler_param_daemon} }; //prepare param struct #else extern TYPE_executionflags flags; extern moduletemplate_data_message msg; extern TYPE_moduletemplate_public_params params; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc | |
x | signal | |
x | the type of signal sent, SIGINT etcr | |
signal | signal recived |
x | the type of signal sent, SIGINT is the only one handled |
#ifndef _AGENTS_H_ #define _AGENTS_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### // #include <lar/agents_interface.h> #include <lar/agents_interface.h> #include <lar/agent_tracker_interface.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### typedef struct{ int xbee_address; double sleeptime; double kp; } TYPE_agents_local_params; //#################################################################### // Prototypes: for private functions can be declared ################# // in agents.c or preferably in agents_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); void handler_distance_data(char *a, char *b, char *c); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _AGENTS_CPP_ /*or _AGENTS_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### TYPE_executionflags flags; //the command line parameters flags agents_data_message agents_message; //this is a structure xbee_tx_data_message xbee_tx_message; //this is a structure TYPE_agents_local_params local_params; //this is a structure for parameters intallation agent_clearance_distance_data_message distance_data_msg; double linear_speed, reference_distance, error; #else extern TYPE_executionflags flags; extern agents_data_message agents_message; //this is a structure extern xbee_tx_data_message xbee_tx_message; //this is a structure extern TYPE_agents_local_params local_params; extern agent_clearance_distance_data_message distance_data_msg; extern double linear_speed, reference_distance, error; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _AGENT_BEHAVIOUR_H_ #define _AGENT_BEHAVIOUR_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/agent_behaviour_interface.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in agent_behaviour.c or preferably in agent_behaviour_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _AGENT_BEHAVIOUR_CPP_ /*or _AGENT_BEHAVIOUR_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### //mike confusion, uses a message structure to install parameters. message and parameters should not be different? TYPE_executionflags flags; //the command line parameters flags agent_behaviour_data_message msg; //this is a message structure agent_behaviour_virtual_sensors_data_message virtual_sensors_data_msg; //this is a message structure TYPE_agent_behaviour_public_params params; //this is a parameters structure agents_data_message agents_message; //creates a the default structure that will deal retrieve parameters. // explain fields (use a handler whenever a parameter changes) // var1 in this case is actually carmen_param_t agent_behaviour_params[] = { {(char*)"agents", (char*)"data_param_shared_var", CARMEN_PARAM_INT, &msg.var1, 1, handler_param_daemon} }; //prepare param struct #else extern TYPE_executionflags flags; extern agent_behaviour_data_message msg; extern agent_behaviour_virtual_sensors_data_message virtual_sensors_data_msg; extern TYPE_agent_behaviour_public_params params; extern agents_data_message agents_message; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _AGENT_CLEARANCE_H_ #define _AGENT_CLEARANCE_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/agent_clearance_interface.h> #include "/usr/local/include/cvblobs/BlobResult.h" //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### typedef struct{ double sleeptime; } TYPE_agent_clearance_local_params; //#################################################################### // Prototypes: for private functions can be declared ################# // in agent_clearance.c or preferably in agent_clearance_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); void handler_rx_msg_received(void); void arena_image_handler(camera_image_message *msg_firei); void heartbeat_handler_n0(carmen_heartbeat_message *); void get_image(IplImage *image); void flood_fill_fixed_threshold(void); void init_images(void); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _AGENT_CLEARANCE_CPP_ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### TYPE_executionflags flags; //the command line parameters flags agent_clearance_distance_data_message distance_message; //this is a message structure TYPE_agent_clearance_local_params local_parameters; //this is a parameters structure xbee_rx_data_message rx_message; camera_image_message image_message; int image_message_alloc; char firei_n0_image_message_heartbeat; int msecstowait; int height, width; double ts; IplImage* img; IplImage* gray; IplImage* adapt_thresholded; IplImage* fill_temp; IplImage* filled; IplImage* filled_final; IplImage* tmp; IplImage* image; IplImage* border; IplImage* lanemarkers; IplImage* tophat_image; IplImage* work_image; IplImage* hsv; IplImage* hue; IplImage* saturation; IplImage* value; IplImage* hf; IplImage* sf; IplImage* vf; //creates a the default structure that will deal retrieved parameters. carmen_param_t agent_clearance_params[] = { {(char*)"agents", (char*)"sleeptime", CARMEN_PARAM_DOUBLE, &local_parameters.sleeptime, 1, NULL}}; //declared the install struct #else extern TYPE_executionflags flags; extern agent_clearance_distance_data_message distance_message; //this is a message structure extern TYPE_agent_clearance_local_params local_parameters; extern xbee_rx_data_message rx_message; extern int height, width; extern char firei_n0_image_message_heartbeat; extern IplImage* img; extern IplImage* gray; extern IplImage* adapt_thresholded; extern IplImage* fill_temp; extern IplImage* filled; extern IplImage* filled_final; extern IplImage* tmp; extern IplImage* image; extern IplImage* border; extern IplImage* lanemarkers; extern IplImage* tophat_image; extern IplImage* work_image; extern IplImage* hsv; extern IplImage* hue; extern IplImage* saturation; extern IplImage* value; extern IplImage* hf; extern IplImage* sf; extern IplImage* vf; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _AGENT_TRACKER_H_ #define _AGENT_TRACKER_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/agent_tracker_interface.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in agent_tracker.c or preferably in agent_tracker_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _AGENT_TRACKER_CPP_ /*or _AGENT_TRACKER_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### //mike confusion, uses a message structure to install parameters. message and parameters should not be different? TYPE_executionflags flags; //the command line parameters flags agent_tracker_data_message msg; //this is a message structure agent_tracker_virtual_sensors_data_message virtual_sensors_data_msg; //this is a message structure TYPE_agent_tracker_public_params params; //this is a parameters structure agents_data_message agents_message; //creates a the default structure that will deal retrieve parameters. // explain fields (use a handler whenever a parameter changes) // var1 in this case is actually carmen_param_t agent_tracker_params[] = { {(char*)"agents", (char*)"data_param_shared_var", CARMEN_PARAM_INT, &msg.var1, 1, handler_param_daemon} }; //prepare param struct #else extern TYPE_executionflags flags; extern agent_tracker_data_message msg; extern agent_tracker_virtual_sensors_data_message virtual_sensors_data_msg; extern TYPE_agent_tracker_public_params params; extern agents_data_message agents_message; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _PDHFFC_H_ #define _PDHFFC_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/pdhffc_interface.h> #include "pdhffc_pid.h" #include "pdhffc_templatetracking.h" //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in pdhffc.c or preferably in pdhffc_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void draw_cross(IplImage *dst, int x, int y, int r, int g, int b); void draw_double_arrow(int x0, int y0, int x1, int y1, IplImage *dst, CvScalar color, int thickness, int line_type, int shift); void draw_blind_zone(IplImage *dst, int target_x, int target_y, int bz_x, int bz_y, int r, int g, int b); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _PDHFFC_CPP_ /*or _PDHFFC_C_, depends on the file type*/ TYPE_executionflags flags; //the command line parameters flags pdhffc_information_message msg; carmen_ptucontrol_command_message ptucommand; cTemplateTracking *TT; camera_params_t cam0_params; camera_params_t cam1_params; #else extern TYPE_executionflags flags; extern pdhffc_information_message msg; extern carmen_ptucontrol_command_message ptucommand; extern cTemplateTracking *TT; extern camera_params_t cam0_params; extern camera_params_t cam1_params; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent, SIGINT etcr | |
x | signal recieved |
#ifndef _TLHFCS_H_ #define _TLHFCS_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/tlhfcs_interface.h> #include <lar/tlcstm_messages.h> #include <lar/soundplayer_interface.h> #include "tlhfcs_init.h" //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### typedef struct { char *filename; CvHaarClassifierCascade* classifier; }TYPE_ligths_cascade; typedef struct { IplImage* img; char name[2500]; }TYPE_image; typedef struct{ int red[3]; int green[3]; int darkgreen[3]; int blue[3]; int darkblue[3]; int yellow[3]; int darkyellow[3]; int cyan[3]; int darkcyan[3]; int orange[3]; int magenta[3]; int darkmagenta[3]; int black[3]; }TYPE_color; typedef struct { TYPE_image ligths; TYPE_image gui_ligths; TYPE_image gray; TYPE_image s_filter; TYPE_image v_filter; TYPE_image sand_v_filter; TYPE_image red_filter; TYPE_image green_filter; TYPE_image yellow_filter; TYPE_image detected_signs; CvSize img_size; CvSize sign_in_size; }TYPE_ligths_imgs; typedef struct { int maxH; int minH; int maxS; int minS; int maxV; int minV; }TYPE_hsv_limits; typedef struct { double max_color_ratio; double max_black_ratio; int sign_min_size; int sign_max_size; double color_obj; double bavg_obj; double err; double avg_around_color_min; double avg_around_color_max; }TYPE_decision_limits; #define MAX_OBJ 30 typedef struct { TYPE_image srcRGB; TYPE_image gui_debug; TYPE_image possible_sign[MAX_OBJ]; TYPE_image mask_p_sign[MAX_OBJ]; TYPE_image vf[MAX_OBJ]; CvRect roi[MAX_OBJ]; double color_r[MAX_OBJ]; double black_r[MAX_OBJ]; double res[MAX_OBJ]; double cratio_weigth; double bavg_weigth; int num_total; int selected; int previous_tot; TYPE_ligths_cascade cascade; TYPE_decision_limits decision_limits; int threshold_lim; }TYPE_sign_analysis; typedef struct { double cratio_weigth; double bavg_weigth; TYPE_ligths_imgs imgs; TYPE_hsv_limits red_limits, green_limits, yellow_limits; TYPE_sign_analysis rc_analysis, gau_analysis, yal_analysis, yar_analysis, park_analysis; char use_angle; char heigth_updated; }TYPE_ligths_analysis; typedef struct { double cofidence; int x; int y; int width; int height; char name[80]; int sign; int* color_rec; int* color_str; double* color_r; double* black_r; }TYPE_detected_sign; //#################################################################### // Prototypes: for private functions can be declared ################# // in tlhfcs.c or preferably in tlhfcs_functions.c ## //#################################################################### //int main(int argc, char **argv); void shutdown_module(int x); //void handler_param_daemon(char *a, char *b, char *c); void heartbeat_handler_n0(carmen_heartbeat_message *heartbeat_msg); void heartbeat_handler_n1(carmen_heartbeat_message *heartbeat_msg); void heartbeat_handler_n2(carmen_heartbeat_message *heartbeat_msg); void heartbeat_handler_n3(carmen_heartbeat_message *heartbeat_msg); void handler_load_rc_haar_cascade(void); void handler_load_gau_haar_cascade(void); void handler_load_yal_haar_cascade(void); void handler_load_yar_haar_cascade(void); void handler_load_park_haar_cascade(void); void handler_sign_in_height_update(void); void handler_sign_size_update(void); void handler_bavg_weight_update(void); void handler_color_weight_update(void); void detect_and_draw_objects( int, CvScalar); void draw_cross(IplImage *src,int line,int column,int lenght, int *color); void draw_gui_sign_data(TYPE_sign_analysis* SA, IplImage* src, int* lx, int* ly, int img_height, CvFont* tmp_font, int* color_line, int* color_text, char* sign_name, int search); void detect_haar_signal(CvHaarClassifierCascade* classifier, TYPE_image* srcRGB,TYPE_sign_analysis* sign_analysis, TYPE_executionflags* flgs, int* color); void color_segmentation(TYPE_hsv_limits* hsv_limits, const IplImage* srcRGB, IplImage* vf, double* ratio, double* b_avg,char debug, char* name); void refresh_windows(void); void init_color_table(TYPE_color* ); void find_tl_sign(TYPE_sign_analysis* sign_analysis, TYPE_hsv_limits*, int* color, TYPE_executionflags* flgs, char* name); void get_image_from_camera3(void); void init_color_values(void); void get_image_from_camera3(void); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _TLHFCS_CPP_ /*or _TLHFCS_C_, depends on the file type*/ TYPE_detected_sign detected_sign; TYPE_color color_table; TYPE_executionflags flags; //the command line parameters flags tlcstm_data_message tl_msg; //TYPE_tlhfcs_public_params params; TYPE_ligths_analysis LA; camera_image_message c0; int c0_alloc=1; camera_image_message c1; int c1_alloc=1; camera_image_message c2; int c2_alloc=1; camera_image_message c3; int c3_alloc=1; char firei_n0_msg_heart_beat = 0; char firei_n1_msg_heart_beat = 0; char firei_n2_msg_heart_beat = 0; char firei_n3_msg_heart_beat = 0; soundplayer_command_message sound_msg; tlcstm_command_message command; char cascade_filename[1024]; double ts; int cycle_freq; c_videosaving* videosaving; c_timer timer; CvFont Font; CvFont Font1; IplImage* image_cam3 = cvCreateImage(LA.imgs.img_size, IPL_DEPTH_8U , 3); char str0[20]; int centerx,centery; carmen_param_t module_refresh_params[] = { {(char*)"freq", (char*)"tlhfcs", CARMEN_PARAM_INT, &cycle_freq, 1, NULL}, }; carmen_param_t colordetection_params[] = { {(char*)"cd", (char*)"red_H_max", CARMEN_PARAM_INT, &LA.red_limits.maxH, 1, NULL}, {(char*)"cd", (char*)"red_H_min", CARMEN_PARAM_INT, &LA.red_limits.minH, 1, NULL}, {(char*)"cd", (char*)"red_S_max", CARMEN_PARAM_INT, &LA.red_limits.maxS, 1, NULL}, {(char*)"cd", (char*)"red_S_min", CARMEN_PARAM_INT, &LA.red_limits.minS, 1, NULL}, {(char*)"cd", (char*)"red_V_max", CARMEN_PARAM_INT, &LA.red_limits.maxV, 1, NULL}, {(char*)"cd", (char*)"red_V_min", CARMEN_PARAM_INT, &LA.red_limits.minV, 1, NULL}, {(char*)"cd", (char*)"green_H_max", CARMEN_PARAM_INT, &LA.green_limits.maxH, 1, NULL}, {(char*)"cd", (char*)"green_H_min", CARMEN_PARAM_INT, &LA.green_limits.minH, 1, NULL}, {(char*)"cd", (char*)"green_S_max", CARMEN_PARAM_INT, &LA.green_limits.maxS, 1, NULL}, {(char*)"cd", (char*)"green_S_min", CARMEN_PARAM_INT, &LA.green_limits.minS, 1, NULL}, {(char*)"cd", (char*)"green_V_max", CARMEN_PARAM_INT, &LA.green_limits.maxV, 1, NULL}, {(char*)"cd", (char*)"green_V_min", CARMEN_PARAM_INT, &LA.green_limits.minV, 1, NULL}, {(char*)"cd", (char*)"yellow_H_max", CARMEN_PARAM_INT, &LA.yellow_limits.maxH, 1, NULL}, {(char*)"cd", (char*)"yellow_H_min", CARMEN_PARAM_INT, &LA.yellow_limits.minH, 1, NULL}, {(char*)"cd", (char*)"yellow_S_max", CARMEN_PARAM_INT, &LA.yellow_limits.maxS, 1, NULL}, {(char*)"cd", (char*)"yellow_S_min", CARMEN_PARAM_INT, &LA.yellow_limits.minS, 1, NULL}, {(char*)"cd", (char*)"yellow_V_max", CARMEN_PARAM_INT, &LA.yellow_limits.maxV, 1, NULL}, {(char*)"cd", (char*)"yellow_V_min", CARMEN_PARAM_INT, &LA.yellow_limits.minV, 1, NULL}, }; //prepare param struct carmen_param_t tlhfcs_camera_params[] = { {(char*)"camera3", (char*)"imagewidth", CARMEN_PARAM_INT, &LA.imgs.img_size.width, 1, NULL}, {(char*)"camera3", (char*)"imageheight", CARMEN_PARAM_INT, &LA.imgs.img_size.height, 1, NULL}, };//prepare param struct from the image that camera3 will give carmen_param_t tlhfcs_params[] = { {(char*)"tlhfcs", (char*)"sign_in_height", CARMEN_PARAM_INT, &LA.imgs.sign_in_size.height, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_in_height_update}, {(char*)"tlhfcs", (char*)"sign_min_size", CARMEN_PARAM_INT, &LA.rc_analysis.decision_limits.sign_min_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size_update}, {(char*)"tlhfcs", (char*)"sign_max_size", CARMEN_PARAM_INT, &LA.rc_analysis.decision_limits.sign_max_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size_update}, {(char*)"tlhfcs", (char*)"thresh_limit", CARMEN_PARAM_INT, &LA.rc_analysis.threshold_lim, 1, NULL}, {(char*)"tlhfcs", (char*)"cratio_weigth", CARMEN_PARAM_DOUBLE, &LA.cratio_weigth, 1, _cast_to_carmen_param_change_handler_t_ handler_color_weight_update}, {(char*)"tlhfcs", (char*)"bavg_weigth", CARMEN_PARAM_DOUBLE, &LA.bavg_weigth, 1, _cast_to_carmen_param_change_handler_t_ handler_bavg_weight_update}, //----------------------------------- //params for Red Cross //----------------------------------- {(char*)"tlhfcs", (char*)"rc_cascade_path", CARMEN_PARAM_STRING, &LA.rc_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_rc_haar_cascade}, {(char*)"tlhfcs", (char*)"rc_max_cratio", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.max_color_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"rc_max_bratio", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.max_black_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"rc_color_obj", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.color_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"rc_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.bavg_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"rc_err", CARMEN_PARAM_DOUBLE, &LA.rc_analysis.decision_limits.err, 1, NULL}, //----------------------------------- //params for Green Arrow Up //----------------------------------- {(char*)"tlhfcs", (char*)"gau_cascade_path", CARMEN_PARAM_STRING, &LA.gau_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_gau_haar_cascade}, {(char*)"tlhfcs", (char*)"gau_max_cratio", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.max_color_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"gau_max_bratio", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.max_black_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"gau_color_obj", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.color_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"gau_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.bavg_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"gau_err", CARMEN_PARAM_DOUBLE, &LA.gau_analysis.decision_limits.err, 1, NULL}, //----------------------------------- //params for Yellow Arrow Left //----------------------------------- {(char*)"tlhfcs", (char*)"yal_cascade_path", CARMEN_PARAM_STRING, &LA.yal_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_yal_haar_cascade}, {(char*)"tlhfcs", (char*)"yal_max_cratio", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.max_color_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"yal_max_bratio", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.max_black_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"yal_color_obj", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.color_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"yal_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.bavg_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"yal_err", CARMEN_PARAM_DOUBLE, &LA.yal_analysis.decision_limits.err, 1, NULL}, //----------------------------------- //params for Yellow Arrow Right //----------------------------------- {(char*)"tlhfcs", (char*)"yar_cascade_path", CARMEN_PARAM_STRING, &LA.yar_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_yar_haar_cascade}, {(char*)"tlhfcs", (char*)"yar_max_cratio", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.max_color_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"yar_max_bratio", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.max_black_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"yar_color_obj", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.color_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"yar_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.bavg_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"yar_err", CARMEN_PARAM_DOUBLE, &LA.yar_analysis.decision_limits.err, 1, NULL}, //----------------------------------- //params for Park //----------------------------------- {(char*)"tlhfcs", (char*)"park_cascade_path", CARMEN_PARAM_STRING, &LA.park_analysis.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_park_haar_cascade}, {(char*)"tlhfcs", (char*)"park_max_cratio", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.max_color_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"park_max_bratio", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.max_black_ratio, 1, NULL}, {(char*)"tlhfcs", (char*)"park_color_obj", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.color_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"park_bavg_obj", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.bavg_obj, 1, NULL}, {(char*)"tlhfcs", (char*)"park_err", CARMEN_PARAM_DOUBLE, &LA.park_analysis.decision_limits.err, 1, NULL}, };//prepare param struct for this module #else extern TYPE_executionflags flags; extern tlcstm_data_message tl_msg; extern TYPE_ligths_analysis LA; extern CvFont Font; extern CvFont Font1; extern TYPE_color color_table; extern TYPE_detected_sign detected_sign; extern char cascade_filename[1024]; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent, SIGINT etcr |
#ifndef _VSCSHFBA_H_ #define _VSCSHFBA_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/vscshfba_interface.h> #include <lar/tlcstm_messages.h> #include <lar/soundplayer_interface.h> #include <cvblobs/BlobResult.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### typedef struct { char *filename; CvHaarClassifierCascade* classifier; }TYPE_cascade; typedef struct { IplImage* img; char name[25]; }TYPE_image; typedef struct { IplImage* src; IplImage* gui; IplImage* hsv; IplImage* red_h; IplImage* red_s; IplImage* red_v; IplImage* red_h_bin; IplImage* red_h_bin2; IplImage* red_h_bin3; IplImage* red_s_bin; IplImage* red_v_bin; IplImage* red_mask; IplImage* white_h; IplImage* white_s; IplImage* white_v; IplImage* white_h_bin; IplImage* white_s_bin; IplImage* white_v_bin; IplImage* white_mask; IplImage* black_h; IplImage* black_s; IplImage* black_v; IplImage* black_h_bin; IplImage* black_s_bin; IplImage* black_v_bin; IplImage* black_mask; IplImage* blue_h; IplImage* blue_s; IplImage* blue_v; IplImage* blue_h_bin; IplImage* blue_s_bin; IplImage* blue_v_bin; IplImage* blue_mask; IplImage* tmp_h; IplImage* tmp_s; IplImage* tmp_v; CvSize imgs_size; CvSize look_sign_in_size; CvSize gui_size; int heigth_updated; int use_shm; }TYPE_imgs; typedef struct{ int red[3]; int green[3]; int darkgreen[3]; int blue[3]; int darkblue[3]; int yellow[3]; int darkyellow[3]; int cyan[3]; int darkcyan[3]; int orange[3]; int magenta[3]; int darkmagenta[3]; int black[3]; }TYPE_color; typedef struct { int num_hits; double tic; double main_color_ratio; double num_internal_spots; double confidence; double moments_ratio; int accepted; CvPoint center; CvRect region; IplImage* mask0; IplImage* mask1; IplImage* mask2; IplImage* tmp; }TYPE_sign_data; typedef struct { CvSeq* sign_seq; CvMemStorage* memstorage; CvSize tol_area; TYPE_cascade cascade; TYPE_sign_data selected_sign; int min_sign_size; int max_sign_size; int enclosing_size; int num_consecutive_hits; int aceptance_box; double color_obj; double color_err; double color_max; double moment_obj; double moment_err; double moment_max; double overall_confidence; char str[10][50]; char name[10]; }TYPE_sign_analysis; typedef struct { double num_hits; double color; double moment; }TYPE_weights; //#################################################################### // Prototypes: for private functions can be declared ################# // in vscshfba.c or preferably in vscshfba_functions.c ## //#################################################################### //void handler_load_M1_haar_cascade(void); void handler_load_W_N_cascade(void); void handler_load_W_D_cascade(void); void handler_load_M_B_cascade(void); void handler_load_M_L_cascade(void); void handler_load_I_60_cascade(void); void handler_load_I_H_cascade(void); void handler_sign_size(void); void shutdown_module(int x); void heartbeat_handler_n3(carmen_heartbeat_message *heartbeat_msg); void handler_sign_in_height_update(void); void init_color_table(TYPE_color* p); //file vscshfba_functions.cpp void detect_haar_signal(TYPE_sign_analysis* sign_analysis, IplImage* src, IplImage* dst, TYPE_executionflags* flgs, int* color_cross, int* color_box); void set_imageROIs(TYPE_imgs* imgs, CvRect* roi, char flg_set_roi); void check_mask_size(TYPE_sign_data* sign, CvSize* size); void draw_cross(IplImage *src,int line,int column,int lenght, int *color); void reset_imageROIs(TYPE_imgs* imgs); void check_haar_feature_tic(TYPE_sign_analysis* sign_analysis, double* num_cycles); void draw_gui_sign_data(IplImage* src, int* lx, int* ly, int img_height, CvFont* tmp_font, int* color_line, int* color_text, TYPE_sign_analysis* sign, int x_space); void set_cam_params(int x); void confirm_sign_tipology(TYPE_sign_analysis* sign_analysis, TYPE_imgs* imgs, TYPE_color_lim* color_lim, TYPE_weights* weights, TYPE_executionflags* flgs, int flg_ROIS); void show_masks(TYPE_sign_analysis* sign_analysis, TYPE_executionflags* flgs, int* start_x_pos, int* start_y_pos, int step); //functions prototype implemented in main file vscshfba.cpp int get_image_from_camera3(IplImage* dst, int* update_size, int* heart_beat, CvSize* cap_img_size); void set_cam_params(int x); #define AVG(a, b) (((a)+(b))/2) //#define MAX(a, b) ((a>b)? (a) : (b)) //#define MIN(a, b) ((a>b)? (b) : (a)) #define SET_RED_ROI 0b00000001 #define SET_WHITE_ROI 0b00000010 #define SET_BLACK_ROI 0b00000100 #define SET_BLUE_ROI 0b00001000 #define NUM_OF_CYCLES 10 //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _VSCSHFBA_CPP_ /*or _VSCSHFBA_C_, depends on the file type*/ //TYPE_detected_sign detected_sign; TYPE_cascade cascade; TYPE_color color_table; TYPE_acl_color_limits color_limits; TYPE_sign_analysis W_DA, W_NA; TYPE_sign_analysis I_60A, I_HA; TYPE_sign_analysis M_BA, M_LA; TYPE_sign_data* sign_check; TYPE_sign_data* accepted_sign; char sign_name_detected[50]; char searching[50]; CvMoments cent_moments; CBlobResult *blobs; double res; char cascade_filename[1024]; double cycle_freq; c_timer timer; CvFont Font; CvFont Font1; CvFont Font2; TYPE_imgs imgs; int updated_size; TYPE_weights weight; int firei_n3_msg_heart_beat = 0; double ts; camera_image_message c3; int c3_alloc=1; IplImage* image_cam3 = cvCreateImage(cvSize(320,240), IPL_DEPTH_8U , 3); soundplayer_command_message sound_msg; vscshfba_command_message command; vscshfba_data_message vscshfba_msg; TYPE_executionflags flags; //the command line parameters flags c_videosaving* videosaving; //write int gui image all info required int lx=0; int ly = 0; int step = 0; int wind_pos_x = 0; int wind_pos_y = 0; //char str0[40], str1[40]; IplConvKernel* morph_element; carmen_param_t module_refresh_params[] = { {(char*)"freq", (char*)"vscshfba", CARMEN_PARAM_DOUBLE, &cycle_freq, 1, NULL}, }; carmen_param_t acl_colordetection_params[] = { {(char*)"acl", (char*)"red_H_max", CARMEN_PARAM_DOUBLE, &color_limits.red.maxH, 1, NULL}, {(char*)"acl", (char*)"red_H_min", CARMEN_PARAM_DOUBLE, &color_limits.red.minH, 1, NULL}, {(char*)"acl", (char*)"red_S_max", CARMEN_PARAM_DOUBLE, &color_limits.red.maxS, 1, NULL}, {(char*)"acl", (char*)"red_S_min", CARMEN_PARAM_DOUBLE, &color_limits.red.minS, 1, NULL}, {(char*)"acl", (char*)"red_V_max", CARMEN_PARAM_DOUBLE, &color_limits.red.maxV, 1, NULL}, {(char*)"acl", (char*)"red_V_min", CARMEN_PARAM_DOUBLE, &color_limits.red.minV, 1, NULL}, {(char*)"acl", (char*)"white_H_max", CARMEN_PARAM_DOUBLE, &color_limits.white.maxH, 1, NULL}, {(char*)"acl", (char*)"white_H_min", CARMEN_PARAM_DOUBLE, &color_limits.white.minH, 1, NULL}, {(char*)"acl", (char*)"white_S_max", CARMEN_PARAM_DOUBLE, &color_limits.white.maxS, 1, NULL}, {(char*)"acl", (char*)"white_S_min", CARMEN_PARAM_DOUBLE, &color_limits.white.minS, 1, NULL}, {(char*)"acl", (char*)"white_V_max", CARMEN_PARAM_DOUBLE, &color_limits.white.maxV, 1, NULL}, {(char*)"acl", (char*)"white_V_min", CARMEN_PARAM_DOUBLE, &color_limits.white.minV, 1, NULL}, {(char*)"acl", (char*)"black_H_max", CARMEN_PARAM_DOUBLE, &color_limits.black.maxH, 1, NULL}, {(char*)"acl", (char*)"black_H_min", CARMEN_PARAM_DOUBLE, &color_limits.black.minH, 1, NULL}, {(char*)"acl", (char*)"black_S_max", CARMEN_PARAM_DOUBLE, &color_limits.black.maxS, 1, NULL}, {(char*)"acl", (char*)"black_S_min", CARMEN_PARAM_DOUBLE, &color_limits.black.minS, 1, NULL}, {(char*)"acl", (char*)"black_V_max", CARMEN_PARAM_DOUBLE, &color_limits.black.maxV, 1, NULL}, {(char*)"acl", (char*)"black_V_min", CARMEN_PARAM_DOUBLE, &color_limits.black.minV, 1, NULL}, {(char*)"acl", (char*)"blue_H_max", CARMEN_PARAM_DOUBLE, &color_limits.blue.maxH, 1, NULL}, {(char*)"acl", (char*)"blue_H_min", CARMEN_PARAM_DOUBLE, &color_limits.blue.minH, 1, NULL}, {(char*)"acl", (char*)"blue_S_max", CARMEN_PARAM_DOUBLE, &color_limits.blue.maxS, 1, NULL}, {(char*)"acl", (char*)"blue_S_min", CARMEN_PARAM_DOUBLE, &color_limits.blue.minS, 1, NULL}, {(char*)"acl", (char*)"blue_V_max", CARMEN_PARAM_DOUBLE, &color_limits.blue.maxV, 1, NULL}, {(char*)"acl", (char*)"blue_V_min", CARMEN_PARAM_DOUBLE, &color_limits.blue.minV, 1, NULL}, }; carmen_param_t vscshfba_camera_params[] = { {(char*)"camera1", (char*)"imagewidth", CARMEN_PARAM_INT, &imgs.imgs_size.width, 1, NULL}, {(char*)"camera1", (char*)"imageheight", CARMEN_PARAM_INT, &imgs.imgs_size.height, 1, NULL}, }; carmen_param_t vscshfba_params[] = { {(char*)"vscshfba", (char*)"sign_in_height", CARMEN_PARAM_INT, &updated_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_in_height_update}, {(char*)"vscshfba", (char*)"weight_color", CARMEN_PARAM_DOUBLE, &weight.color, 1, NULL}, {(char*)"vscshfba", (char*)"weight_moment", CARMEN_PARAM_DOUBLE, &weight.moment, 1, NULL}, {(char*)"vscshfba", (char*)"weight_num_hits", CARMEN_PARAM_DOUBLE, &weight.num_hits, 1, NULL}, //data for information recommended speed 60 {(char*)"vscshfba", (char*)"info_60_color_obj", CARMEN_PARAM_DOUBLE, &I_60A.color_obj, 1, NULL}, {(char*)"vscshfba", (char*)"info_60_color_max", CARMEN_PARAM_DOUBLE, &I_60A.color_max, 1, NULL}, {(char*)"vscshfba", (char*)"info_60_moment_obj", CARMEN_PARAM_DOUBLE, &I_60A.moment_obj, 1, NULL}, {(char*)"vscshfba", (char*)"info_60_moment_max", CARMEN_PARAM_DOUBLE, &I_60A.moment_max, 1, NULL}, {(char*)"vscshfba", (char*)"info_60_aceptance", CARMEN_PARAM_DOUBLE, &I_60A.overall_confidence, 1, NULL}, {(char*)"vscshfba", (char*)"info_60_cascade", CARMEN_PARAM_STRING, &I_60A.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_I_60_cascade}, //data for information hospital near {(char*)"vscshfba", (char*)"info_H_color_obj", CARMEN_PARAM_DOUBLE, &I_HA.color_obj, 1, NULL}, {(char*)"vscshfba", (char*)"info_H_color_max", CARMEN_PARAM_DOUBLE, &I_HA.color_max, 1, NULL}, {(char*)"vscshfba", (char*)"info_H_moment_obj", CARMEN_PARAM_DOUBLE, &I_HA.moment_obj, 1, NULL}, {(char*)"vscshfba", (char*)"info_H_moment_max", CARMEN_PARAM_DOUBLE, &I_HA.moment_max, 1, NULL}, {(char*)"vscshfba", (char*)"info_H_aceptance", CARMEN_PARAM_DOUBLE, &I_HA.overall_confidence, 1, NULL}, {(char*)"vscshfba", (char*)"info_H_cascade", CARMEN_PARAM_STRING, &I_HA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_I_H_cascade}, {(char*)"vscshfba", (char*)"mand_bus_color_obj", CARMEN_PARAM_DOUBLE, &M_BA.color_obj, 1, NULL}, {(char*)"vscshfba", (char*)"mand_bus_color_max", CARMEN_PARAM_DOUBLE, &M_BA.color_max, 1, NULL}, {(char*)"vscshfba", (char*)"mand_bus_moment_obj", CARMEN_PARAM_DOUBLE, &M_BA.moment_obj, 1, NULL}, {(char*)"vscshfba", (char*)"mand_bus_moment_max", CARMEN_PARAM_DOUBLE, &M_BA.moment_max, 1, NULL}, {(char*)"vscshfba", (char*)"mand_bus_aceptance", CARMEN_PARAM_DOUBLE, &M_BA.overall_confidence, 1, NULL}, {(char*)"vscshfba", (char*)"mand_bus_cascade", CARMEN_PARAM_STRING, &M_BA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_M_B_cascade}, {(char*)"vscshfba", (char*)"mand_lights_color_obj", CARMEN_PARAM_DOUBLE, &M_LA.color_obj, 1, NULL}, {(char*)"vscshfba", (char*)"mand_lights_color_max", CARMEN_PARAM_DOUBLE, &M_LA.color_max, 1, NULL}, {(char*)"vscshfba", (char*)"mand_lights_moment_obj", CARMEN_PARAM_DOUBLE, &M_LA.moment_obj, 1, NULL}, {(char*)"vscshfba", (char*)"mand_lights_moment_max", CARMEN_PARAM_DOUBLE, &M_LA.moment_max, 1, NULL}, {(char*)"vscshfba", (char*)"mand_lights_aceptance", CARMEN_PARAM_DOUBLE, &M_LA.overall_confidence, 1, NULL}, {(char*)"vscshfba", (char*)"mand_lights_cascade", CARMEN_PARAM_STRING, &M_LA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_M_L_cascade}, {(char*)"vscshfba", (char*)"warn_dip_color_obj", CARMEN_PARAM_DOUBLE, &W_DA.color_obj, 1, NULL}, {(char*)"vscshfba", (char*)"warn_dip_color_max", CARMEN_PARAM_DOUBLE, &W_DA.color_max, 1, NULL}, {(char*)"vscshfba", (char*)"warn_dip_moment_obj", CARMEN_PARAM_DOUBLE, &W_DA.moment_obj, 1, NULL}, {(char*)"vscshfba", (char*)"warn_dip_moment_max", CARMEN_PARAM_DOUBLE, &W_DA.moment_max, 1, NULL}, {(char*)"vscshfba", (char*)"warn_dip_aceptance", CARMEN_PARAM_DOUBLE, &W_DA.overall_confidence, 1, NULL}, {(char*)"vscshfba", (char*)"warn_dip_cascade", CARMEN_PARAM_STRING, &W_DA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_W_D_cascade}, {(char*)"vscshfba", (char*)"warn_narrow_color_obj", CARMEN_PARAM_DOUBLE, &W_NA.color_obj, 1, NULL}, {(char*)"vscshfba", (char*)"warn_narrow_color_max", CARMEN_PARAM_DOUBLE, &W_NA.color_max, 1, NULL}, {(char*)"vscshfba", (char*)"warn_narrow_moment_obj", CARMEN_PARAM_DOUBLE, &W_NA.moment_obj, 1, NULL}, {(char*)"vscshfba", (char*)"warn_narrow_moment_max", CARMEN_PARAM_DOUBLE, &W_NA.moment_max, 1, NULL}, {(char*)"vscshfba", (char*)"warn_narrow_aceptance", CARMEN_PARAM_DOUBLE, &W_NA.overall_confidence, 1, NULL}, {(char*)"vscshfba", (char*)"warn_narrow_cascade", CARMEN_PARAM_STRING, &W_NA.cascade.filename, 1, _cast_to_carmen_param_change_handler_t_ handler_load_W_N_cascade}, {(char*)"vscshfba", (char*)"sign_min_size", CARMEN_PARAM_INT, &W_NA.min_sign_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size}, {(char*)"vscshfba", (char*)"sign_max_size", CARMEN_PARAM_INT, &W_NA.max_sign_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size}, {(char*)"vscshfba", (char*)"enclosing_size", CARMEN_PARAM_INT, &W_NA.enclosing_size, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size}, {(char*)"vscshfba", (char*)"aceptance_box", CARMEN_PARAM_INT, &W_NA.aceptance_box, 1, _cast_to_carmen_param_change_handler_t_ handler_sign_size}, }; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent, SIGINT etcr | |
x | the SIGNAL |
x | the SIGNAL |
in,: | x the type of intercepted signal, SIGINT |
#ifndef _EGOMOTIONGPSIMU_H_ #define _EGOMOTIONGPSIMU_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/egomotiongpsimu_interface.h> #include<amlpp/amlpp.h> #include <gtk/gtk.h> using namespace amlpp; //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### // Class used to create the nonlinear observer objects class Observer { // the observer gains RealMatrix k11; RealMatrix k12; RealMatrix k21; RealMatrix k22; RealMatrix k31; RealMatrix k32; RealMatrix Gain; RealMatrix GainWGPS; RealMatrix GainWOGPS; // the observer states RealMatrix State; RealMatrix StateDot; RealMatrix Residual; // validity of the GPS measurement bool GPSisValid; //Transformation matrices RealMatrix R33_b2n; RealMatrix R33_n2b; RealMatrix T33_b2n; public: Observer(); ~Observer(){}; RealMatrix NlinObsStateUpdateV1(RealMatrix Measurements, Real Tb, Real deltaT); void NlinObsSetGain(); // set the Observer Gain void NlinObsChooseGainOnGPSValidity(bool GPSisValid); // Choose among applicable gains with and without GPS void NlinObsSetK(const char *ktype, double kval); // Set the individual Gain Matrices. void CalcRotationMatrix(double psi, double theta, double phi); // calculate the rotation matrix based on the Euler angles (Cardan Sequence) void NlinObsSetInitalCondition(RealMatrix Measurements); }; //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _EGOMOTIONGPSIMU_CPP_ //#################################################################### // Prototypes: for private functions can be declared ################# // in egomotiongpsimu.c or preferably in egomotiongpsimu_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void shutdown_module_noIPC(int x); void handler_param_daemon(char *a, char *b, char *c); void drawGPSpoints(IplImage*img, int x, int y); void drawEstimatedpoints(IplImage*img, int x, int y); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### TYPE_executionflags flags; //the command line parameters flags egomotiongpsimu_data_message msg; //this is a structure TYPE_egomotiongpsimu_public_params params; //this is a structure bool gprmc_update = FALSE; bool gpgga_update = FALSE; bool xsense_update = FALSE; bool GPSisValid = FALSE; //creates a the default structure that will deal with retrieved parameters. // explain fields (use a handler whenever a parameter changes) // the values in the field egomotiongpsimu_data_param_shared_var, from lar.ini, will be installed in var1 // the var type is an integer: CARMEN_PARAM_INT // carmen_param_t egomotiongpsimu_local_parameters[] = { // {(char*)"egomotiongpsimu", (char*)"shared_var", CARMEN_PARAM_INT, &msg.var1, 1, handler_param_daemon} // }; //prepare param struct #else extern TYPE_executionflags flags; extern egomotiongpsimu_data_message msg; extern TYPE_egomotiongpsimu_public_params params; extern void shutdown_module(int x); #ifdef _EGOMOTIONGPSIMU_FUNCTIONS_CPP_ Real g_arr[] = {0,0,-9.81}; // acceleration of gravity on a (North West Up) NWU reference frame RealMatrix g(g_arr,3,1); // put the array into a matrix for further calculations // #else // extern components egointerface; // extern void next_handler( GtkWidget *widget, gpointer data ); // extern void previous_handler( GtkWidget *widget,gpointer data ); // extern gboolean delete_event( GtkWidget *widget,GdkEvent *event,gpointer data ); // extern void destroy( GtkWidget *widget,gpointer data ); // extern void createWindow(); // extern void createButtons(); // extern void layoutWidgets(); // extern void show(); // extern void draw_brush (GtkWidget *widget, gdouble x, gdouble y); // extern gboolean expose_event( GtkWidget *widget, GdkEventExpose *event ); // extern gboolean configure_event( GtkWidget *widget, GdkEventConfigure *event ); // extern gboolean button_press_event( GtkWidget *widget, GdkEventButton *event ); // extern gboolean motion_notify_event( GtkWidget *widget, GdkEventMotion *event ); // extern void createDrawingArea(); #endif #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _LASERPROJECTIONONIMAGE_H_ #define _LASERPROJECTIONONIMAGE_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/laserprojectiononimage_interface.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in laserprojectiononimage.c or preferably in laserprojectiononimage_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); void project_pointcloud_to_image(xb3_3dpointcloud_message *pointcloud, int cam_number, double pan, double tilt, IplImage *dst, unsigned char r=255, unsigned char g=0,unsigned char b=0); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _LASERPROJECTIONONIMAGE_CPP_ /*or _LASERPROJECTIONONIMAGE_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### //mike confusion, uses a message structure to install parameters. message and parameters should not be different? TYPE_executionflags flags; //the command line parameters flags camera_image_message msg_flea2; IplImage* image; camera_image_message msg_flea2_c1; IplImage* image_c1; xb3_3dpointcloud_message pointcloud_msg_hokuyo; xb3_3dpointcloud_message pointcloud_msg_3dlaser; carmen_ptucontrol_status_message ptu_status; #else extern TYPE_executionflags flags; extern camera_image_message msg_flea2; extern IplImage* image; extern camera_image_message msg_flea2_c1; extern IplImage* image_c1; extern xb3_3dpointcloud_message pointcloud_msg_hokuyo; extern xb3_3dpointcloud_message pointcloud_msg_3dlaser; extern carmen_ptucontrol_status_message ptu_status; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc |
#ifndef _GPS_H_ #define _GPS_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ############################################## //#################################################################### //from gps-io.c #include <lar/gps_interface.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <math.h> #include <unistd.h> #include <termios.h> #include <fcntl.h> #include <sys/signal.h> #include <sys/types.h> #include <sys/time.h> #include <sys/ioctl.h> //from old gps.h #define MAX_NAME_LENGTH 256 #define MAX_COMMAND_LENGTH 256 #define EPSILON 0.0001 #define TIMEOUT -1 #define WRONG 0 #define OK 1 //from old gps-io.c #define DEFAULT_GPS_PORT "/dev/ttyUSB0" #define DEFAULT_GPS_BAUD 4800 #define DEFAULT_GPS_PARITY NO #define DEFAULT_GPS_DATABITS 8 #define DEFAULT_GPS_STOPBITS 1 #define DEFAULT_GPS_HWF 1 #define DEFAULT_GPS_SWF 0 #define BUFFER_LENGTH 512 //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################## //#################################################################### enum PARITY_TYPE { NO, EVEN, ODD }; typedef struct { char ttyport[MAX_NAME_LENGTH]; int baud; enum PARITY_TYPE parity; FILE * fp; int fd; int databits; int stopbits; int hwf; int swf; } SerialDevice; //#################################################################### // Prototypes: for private functions can be declared ################ // in gps.c or preferably in gps_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); int carmen_gps_parse_data( char * line, int num_chars ); void DEVICE_set_params( SerialDevice dev ); void DEVICE_set_baudrate( SerialDevice dev, int brate ); int DEVICE_connect_port( SerialDevice *dev ); int DEVICE_send( SerialDevice dev, unsigned char *cmd, int len ); int DECVICE_recieve( SerialDevice dev, unsigned char *cmd, int *len ); int DEVICE_read_data( SerialDevice dev ); int DEVICE_bytes_waiting( int sd ); void DEVICE_init_params( SerialDevice *p ); #ifdef _GPS_CPP_ /*or _GPS_C_, depends on the file type*/ //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### TYPE_executionflags flags; //the command line parameters flags char* comport; int baudrate; gps_gpgga_data_message gpgga_msg; //this is a structure gps_gprmc_data_message gprmc_msg; //this is a structure gps_gpgga_data_message *gps_extern_gpgga_ptr; //this are pointers to the structure gps_gprmc_data_message *gps_extern_gprmc_ptr; //this are pointers to the structure carmen_param_t gps_params[] = { {(char*)"gps", (char*)"comport", CARMEN_PARAM_STRING, &comport, 0, NULL}, {(char*)"gps", (char*)"baudrate", CARMEN_PARAM_INT, &baudrate, 0, NULL} }; //prepare param struct #else extern TYPE_executionflags flags; extern gps_gpgga_data_message gpgga_msg; //this is a structure extern gps_gprmc_data_message gprmc_msg; //this is a structure extern gps_gpgga_data_message * gps_extern_gpgga_ptr; extern gps_gprmc_data_message * gps_extern_gprmc_ptr; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent: SIGINT etc | |
interrupt | signal |
#ifndef _XSENS_H_ #define _XSENS_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/xsens_interface.h> #include <curses.h> #include "cmtdef.h" #include "xsens_time.h" #include "xsens_list.h" #include "cmtscan.h" #include "cmt3.h" #include "example_linux.h" // this macro tests for an error and exits the program with a message if there was one #define EXIT_ON_ERROR(res,comment) if (res != XRV_OK) { printw("Error %d occurred in " comment ": %s\n",res,xsensResultText(res)); exit(1); } using namespace xsens; //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### //#################################################################### // Prototypes: for private functions can be declared ################# // in xsens.c or preferably in xsens_functions.c ## //#################################################################### int main(int argc, char **argv); void shutdown_module(int x); void handler_param_daemon(char *a, char *b, char *c); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _XSENS_CPP_ /*or _XSENS_C_, depends on the file type*/ TYPE_executionflags flags; //the command line parameters flags xsens_data_message data_msg; // TYPE_xsens_public_params params; char *comport; Packet* packet; xsens::Cmt3 cmt3; //create an xsens structure carmen_param_t xsens_params[] = { {(char*)"xsens", (char*)"comport", CARMEN_PARAM_STRING, &comport, 0, NULL} // {(char*)"xsens", (char*)"comport", CARMEN_PARAM_STRING, &msg.comport, 0, NULL} }; //prepare param struct #else extern TYPE_executionflags flags; extern xsens_data_message msg; // extern TYPE_xsens_public_params params; extern char *comport; extern Packet* packet; extern xsens::Cmt3 cmt3; //create an xsens structure #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent, SIGINT etcr | |
x | the SIGNAL |
x | the SIGNAL |
#ifndef _ACL_H_ #define _ACL_H_ #define _DO_NOT_USE_OPENCV_ 0 #define _DO_NOT_USE_CARMEN_ 0 //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/acl_interface.h> //#################################################################### // Typedefs: required typedefs are declared here. All declared types # // should have TYPE_[the name] ############################### //#################################################################### #define MAX_PTS 4 #define MAX_REGIONS 10 #define NUM_FOR_AVG_CALC 25 typedef struct { double avg; double std; double minVal, maxVal; }TYPE_color_values; typedef struct { CvPoint pts[MAX_PTS]; int num_pts; char name[20]; TYPE_color_values h_values, v_values, s_values; IplImage* mask; IplImage* img_debug; CvMemStorage* mem_storage; CvSeq* hsv_lim_seq; }TYPE_region; typedef struct{ TYPE_region* region[MAX_REGIONS]; int num_regions; CvSize src_img_size; double times_std; double move_avg; IplImage* src; IplImage* gui; IplImage* hsv; IplImage* h; IplImage* s; IplImage* v; }TYPE_pts_mask; typedef struct { double h_min; double h_max; double s_min; double s_max; double v_min; double v_max; }TYPE_hsv_avg_std; //#################################################################### // Prototypes: for private functions can be declared ################# // in acl.c or preferably in acl_functions.c ## //#################################################################### void heartbeat_handler_n3(carmen_heartbeat_message *heartbeat_msg); int main(int argc, char **argv); void shutdown_module(int x); void set_mask(IplImage* src, TYPE_region* region, TYPE_executionflags* flg); void draw_bound(IplImage* src, TYPE_region* region); int load_pts(char *file_name, TYPE_pts_mask* mask); void get_values(char *str, TYPE_region* region, int start); void read_line(FILE* buffer,char *line); //#################################################################### // Global vars: They will be in the scope of modulename.c main's ##### // otherwise are declared extern ##################################### //#################################################################### #ifdef _ACL_CPP_ /*or _ACL_C_, depends on the file type*/ #define saturatemax(val,max) ((val)>(max) ?( max) :( val)) #define saturatemin(val,min) ((val)<(min) ?( min) :( val)) #define AVG(a,b) ((a+b)/2.0) TYPE_pts_mask pts_mask; TYPE_region* actual_region; CvPoint pts[MAX_PTS]; TYPE_acl_color_limits color_limits; TYPE_hsv_avg_std tmp_hsv_avg_std; CvFont Font; int num_pts=-1; char filename[1024]; FILE* file_data; camera_image_message c3; int c3_alloc=1; char firei_n3_msg_heart_beat = 0; c_timer timer; double ts; int cycle_freq; TYPE_executionflags flags; //the command line parameters flags acl_data_message msg; carmen_param_t module_refresh_params[] = { {(char*)"freq", (char*)"acl", CARMEN_PARAM_INT, &cycle_freq, 1, NULL}, }; carmen_param_t acl_camera_params[] = { {(char*)"camera3", (char*)"imagewidth", CARMEN_PARAM_INT, &pts_mask.src_img_size.width, 1, NULL}, {(char*)"camera3", (char*)"imageheight", CARMEN_PARAM_INT, &pts_mask.src_img_size.height, 1, NULL}, };//prepare param struct from the image that camera3 will give carmen_param_t acl_params[] = { {(char*)"acl", (char*)"times_std", CARMEN_PARAM_DOUBLE, &pts_mask.times_std, 1, NULL}, {(char*)"acl", (char*)"move_avg", CARMEN_PARAM_DOUBLE, &pts_mask.move_avg, 1, NULL}, }; //prepare param struct #else extern TYPE_executionflags flags; extern acl_data_message msg; #endif #endif
Does a safe shutdown. Disconnects from IPC. Other modules could deallocate memory, disconnect from hardware etc.
x | the type of signal sent, SIGINT etcr |
makes a clean shutdown of the program
Disconnects from ipc and releases video writer
x | Signal value. To shutdown signal must be SIGINT |
References _LAR_TEXT_RED_, and printc.
int sort | ( | const void * | x, | |
const void * | y | |||
) |
int timediff | ( | struct timeval | t1, | |
struct timeval | t2 | |||
) |
void update_transition_matrix | ( | t_object_list ** | list, | |
int | size, | |||
double | dt | |||
) |
Referenced by main().
Include the interface.
#ifndef _FOVEATIONCONTROL_INTERFACE_H_ #define _FOVEATIONCONTROL_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/foveationcontrol_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef TYPE_xbcameratmatrix_params TYPE_foveationcontrolmatrix_params; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int foveationcontrol_publish_pointto_xyz(foveationcontrol_pointto_xyz_message *msg); int foveationcontrol_subscribe_pointto_xyz(foveationcontrol_pointto_xyz_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); void param_daemon_install_foveationcontrolmatrix_params(TYPE_foveationcontrolmatrix_params *p, int subscribe_changes, int verbose); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
#ifndef _POWERMANAGER_INTERFACE_H_ #define _POWERMANAGER_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/powermanager_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef enum { Y0_LAS0 = 130, Y1_PTU, Y2_R1394_0, Y3_BUMBLEBEE, Y4_NA, Y5_NA, Y6_NA, Y7_NA, Y10_ROUTER, Y11_SWITCH, Y12_GPS, Y13_NA }ENUM_plc_outputs; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int powermanager_publish_status(powermanager_status_message *msg); int powermanager_subscribe_status(powermanager_status_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); int powermanager_turn_on(ENUM_plc_outputs output); int powermanager_turn_off(ENUM_plc_outputs output); int powermanager_reset(ENUM_plc_outputs output); int powermanager_subscribe_command(powermanager_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
#ifndef _XBEE_INTERFACE_H_ #define _XBEE_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/xbee_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct{ double sleeptime; char otherparam; } TYPE_xbee_public_params; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int xbee_publish_rx_data(xbee_rx_data_message *msg); int xbee_subscribe_rx_data(xbee_rx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); int xbee_publish_tx_data(xbee_tx_data_message *msg); int xbee_subscribe_tx_data(xbee_tx_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); void xbee_param_daemon_install_public_parameters(TYPE_xbee_public_params *p, int subscribe_changes, int verbose); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
#ifndef _MODULETEMPLATE_INTERFACE_H_ #define _MODULETEMPLATE_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/moduletemplate_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct{ double sleeptime; char otherparam; } TYPE_moduletemplate_public_params; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int moduletemplate_publish_data(moduletemplate_data_message *msg); int moduletemplate_subscribe_data(moduletemplate_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); void moduletemplate_param_daemon_install_public_parameters(TYPE_moduletemplate_public_params *p, int subscribe_changes, int verbose); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
Include the interface.
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
#ifndef _AGENT_BEHAVIOUR_INTERFACE_H_ #define _AGENT_BEHAVIOUR_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/agent_behaviour_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct{ double sleeptime; char otherparam; } TYPE_agent_behaviour_public_params; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int agent_behaviour_publish_data(agent_behaviour_data_message *msg); int agent_behaviour_subscribe_data(agent_behaviour_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); int agent_behaviour_publish_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg); int agent_behaviour_subscribe_virtual_sensors_data(agent_behaviour_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); void agent_behaviour_param_daemon_install_some_params(TYPE_agent_behaviour_public_params *p, int subscribe_changes, int verbose); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
#ifndef _AGENT_CLEARANCE_INTERFACE_H_ #define _AGENT_CLEARANCE_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/agent_clearance_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### // typedef struct{ // double sleeptime; /**< looptime is the best loop time of the module. It may be a slower time but if its faster it should carmen_ipc_sleep until this time passes.*/ // char otherparam; /**< some other param to be installed*/ // } TYPE_agent_clearance_public_params; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int agent_clearance_publish_distance_data(agent_clearance_distance_data_message *msg); int agent_clearance_subscribe_distance_data(agent_clearance_distance_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); //void agent_clearance_param_daemon_install_some_params(TYPE_agent_clearance_public_params *p, int subscribe_changes, int verbose); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
#ifndef _AGENT_TRACKER_INTERFACE_H_ #define _AGENT_TRACKER_INTERFACE_H_ //#################################################################### // Includes: no need to include headers from carmen modules carmen.h # // already does ##################################### //#################################################################### #include <lar/lar.h> #include <lar/agent_tracker_messages.h> //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct{ double sleeptime; char otherparam; } TYPE_agent_tracker_public_params; //#################################################################### // Prototypes: public functions can be declared here ################ //#################################################################### int agent_tracker_publish_data(agent_tracker_data_message *msg); int agent_tracker_subscribe_data(agent_tracker_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); int agent_tracker_publish_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg); int agent_tracker_subscribe_virtual_sensors_data(agent_tracker_virtual_sensors_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how); void agent_tracker_param_daemon_install_some_params(TYPE_agent_tracker_public_params *p, int subscribe_changes, int verbose); #endif
#ifndef _LAR_H_ #define _LAR_H_ #define PFLN {printf("DEBUG PRINT FILE %s LINE %d\n",__FILE__,__LINE__);} #define PLN {printf("DEBUG PRINT LINE %d\n",__LINE__);} #define PVV(a) {printf("DEBUG PRINT FILE %s LINE %d value = %d\n",__FILE__, __LINE__,(int)(a));} #define _cast_to_carmen_param_change_handler_t_ (void (*)(char*, char*,char*)) #define printc(a,b) {printf("%c[1;%d;48m", 0x1B, (b) +30);printf(a);printf("\33[0m");fflush(stdout);} #define printnc(a,b,c) {printf("%c[1;%d;48m", 0x1B, (c) +30);printf(a,b);printf("\33[0m");fflush(stdout);} #include <sys/ipc.h> //System includes to use shared mem #include <sys/shm.h> //System includes to use shared mem using namespace std; #include <iostream> #if (! _DO_NOT_USE_OPENCV_) /*opencv includes*/ #include <opencv/cv.h> #include <opencv/cxcore.h> #include <opencv/highgui.h> #include <opencv/cvaux.h> #endif #if (! _DO_NOT_USE_CARMEN_ ) /*carmen includes*/ #include <carmen/carmen.h> #endif //#################################################################### // Typedefs:Declare here structs that have interesting params for #### // other modules besides this one, but that will not be sent through # // messages. A function to install this struct with param daemon ##### // should be declared ################################################ //#################################################################### typedef struct { int send; double timestamp; char *host; }global_dummy_message; typedef struct { int shm_id; int shm_size; double timestamp; char *host; }global_shminfo_message; //#################################################################### // LAR includes: ############################################## //#################################################################### #include <lar/timer.h> #include <lar/pixelaccess.h> #include <lar/errorhandling.h> #include <lar/readcommandlineparameters.h> #include <lar/lensundistort.h> #include <lar/videosaving.h> #include <lar/imageprocessing.h> #include <lar/acl_interface.h> #include <lar/crc.h> #include <lar/moduletemplate_interface.h> #include <lar/xbee_interface.h> #include <lar/ptucontrol_interface.h> #include <lar/atlas2000_interface.h> #include <lar/atlasmv_interface.h> #include <lar/powermanager_interface.h> #include <lar/des70_10.h> #include <lar/soundplayer_interface.h> #include <lar/soundplayer_messages.h> #include <lar/processcontrol_interface.h> #include <lar/processcontrol_messages.h> #include <lar/gps_interface.h> #include <lar/xsens_interface.h> #include <lar/firei_interface.h> #include <lar/flea2_interface.h> #include <lar/xb3_interface.h> //this must be after the xb3_interface #include <lar/foveationcontrol_interface.h> #include <lar/hokuyo_utm_interface.h> #include <lar/laser3d_interface.h> #include <lar/ipm_interface.h> #include <lar/egomotiongpsimu_interface.h> //#include <lar/agent_tracker_interface.h> #include <lar/agent_clearance_interface.h> #include <lar/cdltm_interface.h> //#include <lar/lmssp_interface.h> #include <lar/rtbm_interface.h> #include <lar/potkf_interface.h> #include <lar/tlcstm_interface.h> #include <lar/cwtm_interface.h> #include <lar/tlhfcs_interface.h> #include <lar/pdtm_interface.h> #include <lar/cwpc_interface.h> #include <lar/vscshfba_interface.h> #include <lar/cm_interface.h> #include <lar/mptn2d_interface.h> #include <lar/agents_interface.h> #include <lar/roc_interface.h> #endif
Include global headers.
CvFont font |
IplImage* img |
IplImage* img = NULL |
char ipm_heartbeat = 0 |
int IPM_HEIGHT |
int IPM_WIDTH |
Referenced by clusters2objects(), and main().
IplImage* potkf = NULL |
double robot_vx |
double robot_vy |
ipm_data_message* sensordata = NULL |
Referenced by main().