⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp.svn-base

📁 采用网格地图SLAM算法
💻 SVN-BASE
字号:
#include <qapplication.h>#include <qaction.h>#include "gui.h"#include "mapview.h"QApplication            * papp;MapGUI                  * wptr;#ifdef __cplusplusextern "C" {#endif#include <carmen/carmen.h>#include <carmen/logtools.h>#include "map2d.h"MAP2                       * global_map;MAP2                       * local_map;extern logtools_lasersens2_data_t * current_scan;extern logtools_rmove2_t          * current_movement;voidinitialize_maps( MapGUI * window, MAP2 * local_map, MAP2 * global_map ){  int                  size_x, size_y;  logtools_rpos2_t     npos = { 0.0, 0.0, 0.0 };    fprintf( stderr, "***************************************\n" );  fprintf( stderr, "*        MAPS\n" );  fprintf( stderr, "***************************************\n" );  if (settings.use_correction) {    size_x = (int) ceil((ADDITIONAL_X_SIZE+settings.local_map_max_range)/			settings.local_map_resolution);    size_y = (int) ceil((ADDITIONAL_Y_SIZE+settings.local_map_max_range)/			settings.local_map_resolution);    fprintf( stderr, "* INFO: create -local- map: %d x %d\n", 2*size_x, size_y );    initialize_map( local_map, 2*size_x, size_y, 60, size_y/2,		    settings.local_map_resolution, npos );    fprintf( stderr, "***************************************\n" );  }    if (settings.use_global_map) {    fprintf( stderr, "* INFO: create -global- map: %d x %d\n",	     settings.global_map_size_x, settings.global_map_size_y );    initialize_global_map( global_map,			   settings.global_map_size_x,			   settings.global_map_size_y,			   settings.global_map_start_x,			   settings.global_map_start_y,			   settings.global_map_resolution,			   settings.global_map_start_pos, 0 );    fprintf( stderr, "***************************************\n" );  }    if (settings.use_graphics) {    fprintf( stderr, "* INFO: set graphics -global- map size\n" );    fprintf( stderr, "***************************************\n" );    window->Map->setGlobalSize( global_map->mapsize.x, global_map->mapsize.y );    if (settings.use_correction) {      fprintf( stderr, "* INFO: set graphics -local- map size\n" );      fprintf( stderr, "***************************************\n" );      window->Map->setLocalSize( local_map->mapsize.x, local_map->mapsize.y );    }    fprintf( stderr, "* INFO: show maps\n" );    fprintf( stderr, "***************************************\n" );        if (settings.use_correction) {      window->LocalMapType->setEnabled( TRUE );    } else {      window->LocalMapType->setEnabled( FALSE );      window->LocalMapType->hide();    }        window->Map->maptype = GLOBAL_MAP;        window->show();    window->Map->updateMap();  }}intwindow_maptype( void ){  return(wptr->Map->maptype);}voidwindow_show_rays( void ){  wptr->Map->showRays();}voidapp_process_events( void ){  papp->processEvents();}voidpaint_robot( logtools_rpos2_t pos ){  wptr->Map->paintRobot( pos );}voidplot_robot( logtools_rpos2_t pos ){  wptr->Map->plotRobotPosition( pos );}voidupdate_map( void ){  wptr->Map->updateMap();}voidupdate_change_map( void ){  wptr->ChangeMapAction->setOn(change_map);}voidcenter_robot( void ){  wptr->Map->centerRobot();}#ifdef __cplusplus}#endifvoidprint_usage( void ){  fprintf( stderr,	   "usage: map2d [-ini <INI-FILE>] [-file <LOG-FILE>]\n" );}intmain( int argc, char *argv[] ){  QApplication            app( argc, argv );  MapGUI                  window;  int                     i;  MAP2                    lmap;  MAP2                    gmap;      int                     ini_file = FALSE;  char                    ini_filename[MAX_NAME_LENGTH];    set_default();  local_map        = &lmap;  global_map       = &gmap;  wptr             = &window;  papp             = &app;  settings.mode    = ONLINE;    if (argc>5) {    print_usage();    exit(1);  }    for (i=1; i<argc; i++) {    if (!strcmp(argv[i],"-ini") && (argc>i+1)) {      strncpy( ini_filename, argv[++i], MAX_NAME_LENGTH );      ini_file = TRUE;    } else if (!strcmp(argv[i],"-file") && (argc>i+1)) {      strncpy( settings.data_filename, argv[++i], MAX_NAME_LENGTH );      settings.mode = READ_FILE;    } else {      print_usage();      exit(1);    }  }    if (ini_file) {    read_ini_file( ini_filename );  }    check_settings();  fprintf( stderr, "INFO: global map max range:       %.1f\n",	   settings.global_map_max_range );  fprintf( stderr, "INFO: global map size:            %d %d\n",	   settings.global_map_size_x,	   settings.global_map_size_y );  fprintf( stderr, "INFO: global map start:           %d %d\n",	   settings.global_map_start_x,	   settings.global_map_start_y );  fprintf( stderr, "INFO: global map resolution:      %.1f\n",	   settings.global_map_resolution );    if (create_output_files() != 0) {    exit(1);  }  initialize_maps( &window, &lmap, &gmap );  switch(settings.mode) {  case READ_FILE:    run_data_file( settings, &lmap, &gmap );    break;  case ONLINE:    run_online( settings, &lmap, &gmap, argc, argv );    break;  }    close_output_files();    return(0);  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -