Inverse Perspective Mapping
[Fusion]

This module does inverse perspective mapping of one or more cameras. It also has an extension to perform LAIPM, laser assisted inverse perspective mapping. More...

Collaboration diagram for Inverse Perspective Mapping:

Data Structures

struct  TYPE_ipm_expert_params
 This is the ipm output image caracteristics. More...
struct  TYPE_camerakinematics_params
 This is used to caracterize each camera's kinematic parameters. More...
struct  ipm_data_message
 This data has the birdview plus the laser scans, if being used. More...
struct  undistortparams_label
struct  kinematicsparams_label
struct  birdviewparams_label
struct  TYPE_shm
struct  TYPE_Camcontroller
class  lar_timer
struct  TYPE_calibration
struct  ipm_query_data_message
 This is an ipm data query message, This is used to ask for an fused data to a server module. More...
struct  ipm_heartbeat_message
 This is an image heartbeat message. When a server module as has new fused data available, it publishes a heartbeat message. More...
struct  ipm_query_shminfo_message
 Used to query the server for shared memory id and other features. More...
struct  ipm_server_shminfo_message
 Used to repply to a query for shm information. More...

Modules

 Base of Inverse Perspective Mapping
 

This module has the base class for the inverse perspective mapping.


Files

file  ipm_interface.cpp
 

interface functions are defined here.


file  ipm_interface.h
 

interface.h file for this module. Defines public funtions prototypes this module's interface library makes available to other modules.


file  ipm_messages.h
 

messages.h file for this module. Defines messages this module publishes or serves to others.


file  ipm_publish.cpp
 

The publisher for this module This is outdated. Use server instead.


file  ipm_publish.h
 

The header for the publisher for this module This is outdated. Use server instead.


file  ipm_queryexample.cpp
 

An example on how to query ipm data from a server.


file  ipm_server.cpp
 

The server.


file  ipm_server.h
 

The header file for the server.


file  ipm_server_functions.cpp
 

Auxiliary functions for the server.


file  ipm_subscribeexample.cpp
 

An example on how to subscribe a message.


Defines

#define _MAXNUM_LASERPTS_   1080
#define IPM_RESET_OCCURRED_NAME   "ipm_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 IPM_RESET_COMMAND_NAME   "ipm_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 IPM_PUBLISH_DATA_MESSAGE_NAME   "ipm_publish_data"
 Name of the message to be published to the IPC.
#define IPM_PUBLISH_DATA_MESSAGE_FMT   "{int,int,int,int,<char:4>,int, <int:6>, <int:6>,double,double,double,string}"
#define IPM_SERVER_DATA_MESSAGE_NAME   "ipm_server_data"
 Name of the message to be server to the IPC.
#define IPM_SERVER_DATA_MESSAGE_FMT   IPM_PUBLISH_DATA_MESSAGE_FMT
 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 IPM_QUERY_DATA_MESSAGE_NAME   "ipm_query_data"
#define IPM_QUERY_DATA_MESSAGE_FMT   "{int,double,string}"
#define IPM_HEARTBEAT_MESSAGE_NAME   "ipm_heartbeat"
#define IPM_HEARTBEAT_MESSAGE_FMT   "{int,double,string}"
#define IPM_QUERY_SHMINFO_MESSAGE_NAME   "ipm_query_shminfo"
#define IPM_QUERY_SHMINFO_MESSAGE_FMT   "{int,double,string}"
#define IPM_SERVER_SHMINFO_MESSAGE_NAME   "ipm_server_shminfo"
#define IPM_SERVER_SHMINFO_MESSAGE_FMT   "{int,int,double,string}"
#define IPM_SERVER_DATA_MODULE_NAME   "ipm_server_data_module"
#define _LISTSIZE_   10
#define _PTU_PAN_CORRECTION   -3
#define _PTU_TILT_CORRECTION   1
#define _LISTSIZE_   10
#define _PTU_PAN_CORRECTION   0
#define _DEFAULT_PTU_TILT_CORRECTION_   -1
#define _NUM_CAMERAS_   2
#define _DEBUG_IPM_SERVER_   TRUE

Typedefs

typedef carmen_default_message ipm_reset_occurred_message
typedef carmen_default_message ipm_reset_command_message
typedef global_dummy_message ipm_query_data_message
typedef global_dummy_message ipm_heartbeat_message
typedef global_dummy_message ipm_query_shminfo_message
typedef global_shminfo_message ipm_server_shminfo_message

Functions

void ipm_subscribe_data (ipm_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how)
void ipm_publish_data (ipm_data_message *msg)
void ipm_publish_heartbeat (void)
void ipm_subscribe_heartbeat (ipm_heartbeat_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how)
int ipm_get_ipl_from_ipm_data_message (ipm_data_message *sensordata, IplImage **pimg)
int ipm_query_data (double timetowait, ipm_data_message **sensordata)
int ipm_query_shminfo (double, int *shmid, int *shmsize)
int ipm_convert_point_to_birdview_frame (int srcx, int srcy, int *dstx, int *dsty)
int ipm_convert_point_to_robot_frame (int srcx, int srcy, int *dstx, int *dsty)
void param_daemon_install_ipm_expert_params (TYPE_ipm_expert_params *p, int subscribe_changes)
void param_daemon_install_camerakinematics_params (TYPE_camerakinematics_params *p, int camera_num, int subscribe_changes, int verbose)
int param_daemon_set_ipm_uselaser (int val)
void carmen_ipm_reset (void)
static void query_sensordata_handler (MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData __attribute__((unused)))
void ptucontrol_status_handler (MSG_INSTANCE msgRef, BYTE_ARRAY callData __attribute__((unused)), void *clientData __attribute__((unused)))
void shutdown_module (int x)
 Module shutdown function.
void interpolate_panandtilt (double targettimestamp, double *ipan, double *itilt)
void heartbeat_handler (carmen_heartbeat_message *heartbeat_msg)
 TO BE REMOVED.
int main (int argc, char **argv)
void check_command (int argc, char **argv)
int stretch_image_masked (IplImage *src, IplImage *dst, double low, double high, IplImage *mask)
void ptucontrol_status_handler (MSG_INSTANCE msgRef __attribute__((unused)), BYTE_ARRAY callData __attribute__((unused)), void *clientData __attribute__((unused)))
void query_shminfo_handler (MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData)
void camera0_heartbeat_handler (void)
void camera1_heartbeat_handler (void)
void hokuyo_heartbeat_handler (void)

Variables

char flip
char firsttime
static IplImage * ubcamera_nroad_image_0
static IplImage * ubcamera_nroad_image_1
IplImage * imgRGB = NULL
IplImage * fimg = NULL
IplImage * fimgRGB = NULL
IplImage * ifimg = NULL
IplImage * ifimgRGB = NULL
IplImage * ifimgRGB_withlasermask = NULL
IplImage * gui_ifimg = NULL
IplImage * laser_mask_img = NULL
IplImage * lasermask_tmp = NULL
IplImage * pimage
class_base_ipm base_ipm
char ubcamera_nroad_image_message_heartbeat = FALSE
char ubcamera_nroad_image_message_imageaquired = FALSE
char hokuyo_message_heartbeat = FALSE
char hokuyo_message_laseraquired = FALSE
char flag_querying = FALSE
static double timestamp_0
static double timestamp_1
carmen_laser_laser_message laser_msg
struct undistortparams_label undistortparams [2]
struct kinematicsparams_label kinematicsparams [2]
struct birdviewparams_label birdviewparams
carmen_ptucontrol_status_message ptu_status
static ipm_query_data_message query_msg
static ipm_data_message response_msg
TYPE_executionflags flags
 Include the interface.
double listpan [_LISTSIZE_]
double listtilt [_LISTSIZE_]
double listtimestamp [_LISTSIZE_]
double newptupan
double newptutilt
static char uselaser = 0
static int connectivity_tmp = 4
static int new_mask_val_tmp = 255
static int flags_tmp = connectivity_tmp + (new_mask_val_tmp << 8)
carmen_param_t camera_undistort_params_0 []
carmen_param_t camera_undistort_params_1 []
carmen_param_t camera_kinematics_params_0 []
carmen_param_t camera_kinematics_params_1 []
carmen_param_t camera_birdview_params []
int firsttime_road = 1
int firsttime_overlap = 1
char debugflag
static IplImage * ipm_image
ipm_data_messagesensordata
char ipm_heartbeat = 0
double TILT = -50
IplImage * ubcamera_nroad_image_0
IplImage * ubcamera_nroad_image_1
IplImage * image_overlaped
IplImage * imgRGB
IplImage * fimg
IplImage * fimgRGB
IplImage * ifimg
IplImage * ifimgRGB
IplImage * ifimgRGB_withlasermask
IplImage * gui_ifimg
IplImage * laser_mask_img
IplImage * lasermask_tmp
IplImage * pimage
TYPE_calibration calibration
carmen_ptucontrol_status_message ptu_status
TYPE_executionflags flg
char camera0_image_message_heartbeat
char camera1_image_message_heartbeat
char hokuyo_message_heartbeat
char hokuyo_message_laseraquired
char flag_querying
ipm_query_data_message query_msg
ipm_data_message response_msg
double timestamp_0
double timestamp_1
double listpan [_LISTSIZE_]
double listtilt [_LISTSIZE_]
double listtimestamp [_LISTSIZE_]
TYPE_shm shm
TYPE_executionflags flags
 Include the interface.
static IplImage * ipm_image
int firsttime_road = 1
int firsttime_overlap = 1
ipm_data_message sensordata

Detailed Description

This module does inverse perspective mapping of one or more cameras. It also has an extension to perform LAIPM, laser assisted inverse perspective mapping.


Define Documentation

#define _DEBUG_IPM_SERVER_   TRUE
#define _DEFAULT_PTU_TILT_CORRECTION_   -1
#define _LISTSIZE_   10
#define _LISTSIZE_   10
#define _MAXNUM_LASERPTS_   1080
#define _NUM_CAMERAS_   2
#define _PTU_PAN_CORRECTION   0
#define _PTU_PAN_CORRECTION   -3
#define _PTU_TILT_CORRECTION   1
#define IPM_HEARTBEAT_MESSAGE_FMT   "{int,double,string}"

Referenced by register_ipc_messages().

#define IPM_HEARTBEAT_MESSAGE_NAME   "ipm_heartbeat"
#define IPM_PUBLISH_DATA_MESSAGE_FMT   "{int,int,int,int,<char:4>,int, <int:6>, <int:6>,double,double,double,string}"

Referenced by ipm_subscribe_data().

#define IPM_PUBLISH_DATA_MESSAGE_NAME   "ipm_publish_data"

Name of the message to be published to the IPC.

Referenced by ipm_subscribe_data().

#define IPM_QUERY_DATA_MESSAGE_FMT   "{int,double,string}"
#define IPM_QUERY_DATA_MESSAGE_NAME   "ipm_query_data"

Referenced by main().

#define IPM_QUERY_SHMINFO_MESSAGE_FMT   "{int,double,string}"
#define IPM_QUERY_SHMINFO_MESSAGE_NAME   "ipm_query_shminfo"
#define IPM_RESET_COMMAND_NAME   "ipm_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 IPM_RESET_OCCURRED_NAME   "ipm_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 IPM_SERVER_DATA_MESSAGE_FMT   IPM_PUBLISH_DATA_MESSAGE_FMT

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.

Referenced by subscribe_ipm_initial_data().

#define IPM_SERVER_DATA_MESSAGE_NAME   "ipm_server_data"

Name of the message to be server to the IPC.

Referenced by heartbeat_handler(), and query_sensordata_handler().

#define IPM_SERVER_DATA_MODULE_NAME   "ipm_server_data_module"
#define IPM_SERVER_SHMINFO_MESSAGE_FMT   "{int,int,double,string}"
#define IPM_SERVER_SHMINFO_MESSAGE_NAME   "ipm_server_shminfo"

Typedef Documentation

typedef carmen_default_message ipm_reset_command_message
typedef carmen_default_message ipm_reset_occurred_message

Function Documentation

void camera0_heartbeat_handler ( void   ) 
void camera1_heartbeat_handler ( void   ) 
void carmen_ipm_reset ( void   ) 
void check_command ( int  argc,
char **  argv 
)

References debugflag, i, and TRUE.

void heartbeat_handler ( carmen_heartbeat_message *  heartbeat_msg  ) 

TO BE REMOVED.

All the processing is done when the data is recieved, so this function has all the work.

Returns:
void

References debugflag, ipm_heartbeat, and IPM_SERVER_DATA_MESSAGE_NAME.

void hokuyo_heartbeat_handler ( void   ) 
void interpolate_panandtilt ( double  targettimestamp,
double *  ipan,
double *  itilt 
)

References _LISTSIZE_, listpan, listtilt, listtimestamp, and t.

int ipm_convert_point_to_birdview_frame ( int  srcx,
int  srcy,
int *  dstx,
int *  dsty 
)
int ipm_convert_point_to_robot_frame ( int  srcx,
int  srcy,
int *  dstx,
int *  dsty 
)
int ipm_get_ipl_from_ipm_data_message ( ipm_data_message sensordata,
IplImage **  pimg 
)

Referenced by main().

Here is the caller graph for this function:

void ipm_publish_data ( ipm_data_message msg  ) 
void ipm_publish_heartbeat ( void   ) 
int ipm_query_data ( double  timetowait,
ipm_data_message **  sensordata 
)

Referenced by main().

Here is the caller graph for this function:

int ipm_query_shminfo ( double  ,
int *  shmid,
int *  shmsize 
)
void ipm_subscribe_data ( ipm_data_message msg,
carmen_handler_t  handler,
carmen_subscribe_t  subscribe_how 
)
void ipm_subscribe_heartbeat ( ipm_heartbeat_message msg,
carmen_handler_t  handler,
carmen_subscribe_t  subscribe_how 
)

Referenced by main().

Here is the caller graph for this function:

int main ( int  argc,
char **  argv 
)

install all required parameters from .ini file

Printing Startup message

now set the initial kinematic and intrinsic parameters for each input camera

Cameras parameters controller

M_PI/180

References ipm_get_ipl_from_ipm_data_message(), ipm_image, readcommandlineparameters(), and shutdown_module().

Here is the call graph for this function:

void param_daemon_install_camerakinematics_params ( TYPE_camerakinematics_params p,
int  camera_num,
int  subscribe_changes,
int  verbose 
)
void param_daemon_install_ipm_expert_params ( TYPE_ipm_expert_params p,
int  subscribe_changes 
)

Referenced by main(), and subscribe_ipm_initial_data().

Here is the caller graph for this function:

int param_daemon_set_ipm_uselaser ( int  val  ) 

Referenced by state_management().

Here is the caller graph for this function:

void ptucontrol_status_handler ( MSG_INSTANCE msgRef   __attribute__(unused),
BYTE_ARRAY callData   __attribute__(unused),
void *clientData   __attribute__(unused) 
)
void ptucontrol_status_handler ( MSG_INSTANCE  msgRef,
BYTE_ARRAY callData   __attribute__(unused),
void *clientData   __attribute__(unused) 
)
void query_sensordata_handler ( MSG_INSTANCE  msgRef,
BYTE_ARRAY  callData,
void *clientData   __attribute__(unused) 
) [static]
void query_shminfo_handler ( MSG_INSTANCE  msgRef,
BYTE_ARRAY  callData,
void *  clientData 
)
void shutdown_module ( int  x  ) 

Module shutdown function.

makes a clean shutdown of the program

int stretch_image_masked ( IplImage *  src,
IplImage *  dst,
double  low,
double  high,
IplImage *  mask 
)

References GetPixel_8UC1(), i, and SetPixel_8UC1().

Here is the call graph for this function:


Variable Documentation

carmen_param_t camera_birdview_params[]
Initial value:
 {
    {(char*)"ipm", (char*)"PPM", CARMEN_PARAM_DOUBLE, &birdviewparams.PPM, 0, NULL},
    {(char*)"ipm", (char*)"width", CARMEN_PARAM_INT, &birdviewparams.width, 0, NULL},
    {(char*)"ipm", (char*)"height", CARMEN_PARAM_INT, &birdviewparams.height, 0, NULL},
    {(char*)"ipm", (char*)"uselaser", CARMEN_PARAM_ONOFF, &uselaser, 1, NULL}}
carmen_param_t camera_kinematics_params_0[]
Initial value:
 {
    {(char*)"cameraleft", (char*)"Q1", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].Q1, 0, NULL},
    {(char*)"cameraleft", (char*)"Q2", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].Q2, 0, NULL},
    {(char*)"cameraleft", (char*)"Q5", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].Q5, 0, NULL},
    {(char*)"cameraleft", (char*)"Q6", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].Q6, 0, NULL},
    {(char*)"cameraleft", (char*)"L1", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].L1, 0, NULL},
    {(char*)"cameraleft", (char*)"L2", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].L2, 0, NULL},
    {(char*)"cameraleft", (char*)"L3", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].L3, 0, NULL},
    {(char*)"cameraleft", (char*)"L5", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].L5, 0, NULL},
    {(char*)"cameraleft", (char*)"L6", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].L6, 0, NULL},
    {(char*)"cameraleft", (char*)"D4", CARMEN_PARAM_DOUBLE, &kinematicsparams[0].D4, 0, NULL}}
carmen_param_t camera_kinematics_params_1[]
Initial value:
 {
    {(char*)"cameraright", (char*)"Q1", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].Q1, 0, NULL},
    {(char*)"cameraright", (char*)"Q2", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].Q2, 0, NULL},
    {(char*)"cameraright", (char*)"Q5", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].Q5, 0, NULL},
    {(char*)"cameraright", (char*)"Q6", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].Q6, 0, NULL},
    {(char*)"cameraright", (char*)"L1", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].L1, 0, NULL},
    {(char*)"cameraright", (char*)"L2", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].L2, 0, NULL},
    {(char*)"cameraright", (char*)"L3", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].L3, 0, NULL},
    {(char*)"cameraright", (char*)"L5", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].L5, 0, NULL},
    {(char*)"cameraright", (char*)"L6", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].L6, 0, NULL},
    {(char*)"cameraright", (char*)"D4", CARMEN_PARAM_DOUBLE, &kinematicsparams[1].D4, 0, NULL}}
carmen_param_t camera_undistort_params_0[]
Initial value:
 {
    {(char*)"cameraleft", (char*)"doundistort", CARMEN_PARAM_ONOFF, &undistortparams[0].doundistort, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_FX", CARMEN_PARAM_DOUBLE, &undistortparams[0].FX, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_FY", CARMEN_PARAM_DOUBLE, &undistortparams[0].FY, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_CX", CARMEN_PARAM_DOUBLE, &undistortparams[0].CX, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_CY", CARMEN_PARAM_DOUBLE, &undistortparams[0].CY, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_D1", CARMEN_PARAM_DOUBLE, &undistortparams[0].D1, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_D2", CARMEN_PARAM_DOUBLE, &undistortparams[0].D2, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_D3", CARMEN_PARAM_DOUBLE, &undistortparams[0].D3, 0, NULL},
    {(char*)"cameraleft", (char*)"lens_D4", CARMEN_PARAM_DOUBLE, &undistortparams[0].D4, 0, NULL}}
carmen_param_t camera_undistort_params_1[]
Initial value:
 {
    {(char*)"cameraright", (char*)"doundistort", CARMEN_PARAM_ONOFF, &undistortparams[1].doundistort, 0, NULL},
    {(char*)"cameraright", (char*)"lens_FX", CARMEN_PARAM_DOUBLE, &undistortparams[1].FX, 0, NULL},
    {(char*)"cameraright", (char*)"lens_FY", CARMEN_PARAM_DOUBLE, &undistortparams[1].FY, 0, NULL},
    {(char*)"cameraright", (char*)"lens_CX", CARMEN_PARAM_DOUBLE, &undistortparams[1].CX, 0, NULL},
    {(char*)"cameraright", (char*)"lens_CY", CARMEN_PARAM_DOUBLE, &undistortparams[1].CY, 0, NULL},
    {(char*)"cameraright", (char*)"lens_D1", CARMEN_PARAM_DOUBLE, &undistortparams[1].D1, 0, NULL},
    {(char*)"cameraright", (char*)"lens_D2", CARMEN_PARAM_DOUBLE, &undistortparams[1].D2, 0, NULL},
    {(char*)"cameraright", (char*)"lens_D3", CARMEN_PARAM_DOUBLE, &undistortparams[1].D3, 0, NULL},
    {(char*)"cameraright", (char*)"lens_D4", CARMEN_PARAM_DOUBLE, &undistortparams[1].D4, 0, NULL}}
int connectivity_tmp = 4 [static]
char debugflag

Referenced by check_command(), and heartbeat_handler().

IplImage* fimg
IplImage* fimg = NULL
IplImage* fimgRGB
IplImage* fimgRGB = NULL
char firsttime
int firsttime_road = 1
int firsttime_road = 1
char flag_querying = FALSE

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.

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//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_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//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_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

Include the interface.

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.

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//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_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

#ifndef _TLHFCS_INTERFACE_H_
#define _TLHFCS_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/tlhfcs_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################
// * @brief This is a test message, Here you insert the description of the entity, in this case the struct.
// */
//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_tlhfcs_public_params;

//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

//int tlhfcs_publish_information(tlhfcs_information_message *msg);
//int tlhfcs_subscribe_information(tlhfcs_information_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
//void tlhfcs_param_daemon_install_some_params(TYPE_tlhfcs_public_params *p, int subscribe_changes, int verbose);

#endif

Include the interface.

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

#ifndef _VSCSHFBA_INTERFACE_H_
#define _VSCSHFBA_INTERFACE_H_

//####################################################################
// Includes: no need to include headers from carmen modules carmen.h #
// already does                     #####################################
//####################################################################

#include <lar/lar.h>
#include <lar/vscshfba_messages.h>
#include <lar/imageprocessing.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 ################################################
//####################################################################


//####################################################################
// Prototypes:  public functions can be declared here  ################
//####################################################################

int vscshfba_subscribe_data(vscshfba_data_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
int vscshfba_publish_data(vscshfba_data_message *msg);
void vscshfba_subscribe_command_message(vscshfba_command_message *msg, carmen_handler_t handler, carmen_subscribe_t subscribe_how);
void vscshfba_publish_command_message(vscshfba_command_message *msg);

#endif

Include the interface.

int flags_tmp = connectivity_tmp + (new_mask_val_tmp << 8) [static]
char flip
IplImage* gui_ifimg
IplImage* gui_ifimg = NULL
IplImage* ifimg
IplImage* ifimg = NULL
IplImage* ifimgRGB
IplImage* ifimgRGB = NULL
IplImage* ifimgRGB_withlasermask = NULL
IplImage * image_overlaped
IplImage* imgRGB
IplImage* imgRGB = NULL
char ipm_heartbeat = 0
IplImage* ipm_image [static]
IplImage* ipm_image [static]
IplImage* laser_mask_img
IplImage* laser_mask_img = NULL
carmen_laser_laser_message laser_msg
IplImage* lasermask_tmp
IplImage* lasermask_tmp = NULL
double listpan[_LISTSIZE_]
double listpan[_LISTSIZE_]
double listtilt[_LISTSIZE_]
double listtilt[_LISTSIZE_]
double listtimestamp[_LISTSIZE_]
double listtimestamp[_LISTSIZE_]
int new_mask_val_tmp = 255 [static]
double newptupan
double newptutilt
IplImage* pimage

Referenced by query_image_handler().

IplImage* pimage

Referenced by query_image_handler().

Referenced by main().

Referenced by main(), and query_shminfo_handler().

double TILT = -50
double timestamp_0
double timestamp_0 [static]
double timestamp_1
double timestamp_1 [static]
IplImage* ubcamera_nroad_image_0 [static]
IplImage * ubcamera_nroad_image_1 [static]
char uselaser = 0 [static]
Generated on Wed Jun 2 12:43:26 2010 for LAR Atlas by  doxygen 1.6.3