]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
Clear white spaces and so.
authorMichal Vokac <vokac.m@gmail.com>
Thu, 8 Dec 2011 14:35:04 +0000 (15:35 +0100)
committerMichal Vokac <vokac.m@gmail.com>
Thu, 8 Dec 2011 14:35:04 +0000 (15:35 +0100)
src/pathplan/map.c
src/pathplan/map.h
src/pathplan/path_planner.c
src/robofsm/fsmmove.cc
src/robofsm/motion-control.cc

index 790a5a68976e42f4e83fcef481c46dcd72a0cb6b..6add05f09704eebf50ca5a2dfc83d66c7cf86d63 100644 (file)
@@ -1,8 +1,8 @@
 /**
  * @file       map.c
- * @brief      Useful functions related map 
+ * @brief      Useful functions related map
  * @author     Jose Maria Martin Laguna <jmmartin@etud.insa-toulouse.fr>
- * 
+ *
  * This file contains functions to manage map.
  * The map should be accessed only by this library.
  *
@@ -23,7 +23,7 @@ int shmap_id;
 /** @addtogroup maplib */
 /**
  * @{
- * 
+ *
  */
 
 
@@ -31,7 +31,7 @@ int shmap_id;
  * @name Shared Memory Map related functions
  * @{
  */
-/** 
+/**
  * @brief Init Shared Map memory
  *
  * @param init_flag 1 to init the map memory and set all cells with
@@ -45,13 +45,13 @@ struct map *ShmapInit(int init_flag){
        const int shmap_size = sizeof(struct map);
        if (map == NULL){
                // Allocate memory to shared map
-               shmap_id = shmget (SHM_MAP_KEY , shmap_size, IPC_CREAT | S_IRUSR | S_IWUSR);    // Removed  flag IPC_EXCL 
-       
+               shmap_id = shmget (SHM_MAP_KEY , shmap_size, IPC_CREAT | S_IRUSR | S_IWUSR);    // Removed  flag IPC_EXCL
+
                if (shmap_id == -1) {
                        perror("shmget");
                        exit(1);
                }
-       
+
                /* Attach the shared memory segment.  */
                map = (struct map *) shmat (shmap_id, 0, 0);
                if ((int)map == -1) {
@@ -59,17 +59,17 @@ struct map *ShmapInit(int init_flag){
                        perror("shmat");
                        exit(1);
                }
-       
+
                /* Initialize Map Memory */
                if (init_flag) ShmapAllFreeSpace();
-       
+
                //printf("Map initialized\n");
        }
        return map;
 
 }
 
-/** 
+/**
  * @brief Free Shared Map memory
  */
 void ShmapFree(void){
@@ -80,7 +80,7 @@ void ShmapFree(void){
        shmctl (shmap_id, IPC_RMID, 0);
 }
 
-/** 
+/**
  * @brief Deatach Shared Map memory
  */
 void ShmapDt(void){
@@ -88,7 +88,7 @@ void ShmapDt(void){
        shmdt (map);
 
 }
-/** 
+/**
  * @brief Check if Shared Map memory is init
  * @return     Pointer to the map or NULL if not initialized.
  */
@@ -176,9 +176,9 @@ int ShmapIsFreePoint(double x_m, double y_m)
  * @brief Creates an obstacle in the map with a square shape
  * @param xs   Coordonate X (in m) of the central point
  * @param ys   Coordonate Y (in m) of the central point
- * @param r    Radius (in m) 
+ * @param r    Radius (in m)
  * @param cell Type of obstacle.
- * 
+ *
  */
 int ShmapSetCircleFlag(double xs, double ys, double r, map_cell_flag_t set_flags, map_cell_flag_t clear_flags)
 {
@@ -187,7 +187,7 @@ int ShmapSetCircleFlag(double xs, double ys, double r, map_cell_flag_t set_flags
        // define a circumscribe square - just to shorten cyclic pass through the playground
         //ShmapPoint2Cell(xs-r, ys-r, &i1, &j1, &valid);
         //ShmapPoint2Cell(xs+r, ys+r, &i2, &j2, &valid);
-       
+
        i1 = 0;
        i2 = MAP_WIDTH;
        j1 = 0;
@@ -215,7 +215,7 @@ int ShmapSetCircleFlag(double xs, double ys, double r, map_cell_flag_t set_flags
  * @param x2   Coordonate X (in m) of the second point
  * @param y2   Coordonate Y (in m) of the second point
  * @param cell Type of obstacle.
- * 
+ *
  */
 int ShmapSetRectangleFlag(double x1, double y1, double x2, double y2, map_cell_flag_t set_flags, map_cell_flag_t clear_flags)
 {
@@ -228,13 +228,13 @@ int ShmapSetRectangleFlag(double x1, double y1, double x2, double y2, map_cell_f
                 i2 = i1;
                 i1 = i;
         }
-       
+
         if (j1 > j2) {
                 j = j2;
                 j2 = j1;
                 j1 = j;
         }
-       
+
        //DBG("Drawing a rectangle between points (%d, %d) and (%d,%d)\n", init_i,init_j,limit_i,limit_j);
        for(i=i1; i<=i2; i++) {
                for(j=j1; j<=j2; j++) {
@@ -267,7 +267,7 @@ void ShmapPoint2Cell(double x, double y, int *ix, int *iy, bool *valid){
        int xx, yy;
         xx = (int)floor(x/MAP_CELL_SIZE_M);
         yy = MAP_HEIGHT-1-(int)floor(y/MAP_CELL_SIZE_M);
-       
+
        if (valid != NULL) {
                *valid = ( ( xx < MAP_WIDTH ) && (yy < MAP_HEIGHT) && ( xx >= 0 ) && ( yy >= 0) );
        }
@@ -286,7 +286,7 @@ void ShmapPoint2Cell(double x, double y, int *ix, int *iy, bool *valid){
 */
 int ShmapCell2Point(int ix, int iy, double *x, double *y)
 {
-        if ( (ix >= 0) && (ix <= MAP_WIDTH-1)) { 
+        if ( (ix >= 0) && (ix <= MAP_WIDTH-1)) {
                 if (x) *x = (ix+0.5)*MAP_CELL_SIZE_M;
         }
        else return -1;
index 21edaa1aad77203d0ea0f0995a9457cd1cbe5b7a..c97d58f5496af858190438ae130c7ecf371808ec 100644 (file)
@@ -12,7 +12,7 @@
      interprocess comunication methods.
  * - Discrete Space (@ref discrete_map): the real space is divided
      into cells of variable size. Each cell has its own properties.
- * 
+ *
  * @section shmap Shared Memory Map
 
  * There are two important methods to access the shared map. Before
  * @warning If the program exit without a ShmapFree(), the memory will
  * stay in Linux SHM. You can verify it with command "ipcs -m". For
  * further details, read shm documentation.
- * 
+ *
  * @section the_map The map
  * @subsection real_map        The real space
- * 
+ *
  * The map size is (#MAP_PLAYGROUND_WIDTH_MM
  * x #MAP_PLAYGROUND_HEIGHT_MM). This space discretization is
  * explained in section @ref discrete_map .
- * 
+ *
  * @code
  *                             0                                       MAP_PLAYGROUND_WIDTH_MM
  * MAP_PLAYGROUND_HEIGHT_MM    +---------------------------------------+
@@ -63,7 +63,7 @@
  * There are only a coordonates difference between points and
  * cells. Cell which cordonates [0,0] represents all the points
  * contained in a square sited up left corner.
- * 
+ *
  * @code
  *                             X 0   1   2   3   4   5   6   7   8   MAP_WIDTH-1
  *                           Y +---+---+---+---+---+---+---+---+---+---+
  *                             +---+---+---+---+---+---+---+---+---+---+
  *                             MAP_HEIGHT-1
  * @endcode
- * 
+ *
  * @note Matrix convention is usally (row, column). In this program
  * the convention will be (column, row) in order to keep real
  * coordonates relation. C language stockes matrix in rows, so a cell
  * coordonate (x,y) will be in a C matrix [y][x].
- * 
+ *
  * @section map_content Map Content
  * Each cell/point of the map (::MapCell) contains two types of information:
  * - Value (::MapCellValue) : It determins the type of cell. It is the
      information used by A* algorithm.
  * - Flag (::MapCellFlag) : It is extra information.
- * 
+ *
  * @subsection cell_values     Map Values
- * 
+ *
  * This information is of the type ::MapCellValue.The value that the
  * map contains can be:
  * - #MAP_WALL: Wall of the map. A fixed obstacle.
       sensors found an obstacle. It can be view as a moving obstacle.
  * - #MAP_NEW_OBSTACLE_CSPACE: Configuration Space of the obstacle .
  * - #MAP_FREE: Free space.
- * 
+ *
  * One special type is #MAP_NOT_IN_MAP. It is a error code return when
  * we try to acces to a space wich is not in the map. (i.e. the
  * request cell/point exceeds map dimensions.)
  * @note The configuration space is a special obstacle type that
  * depends on the geometry of the robot. For more information, read
  * a book about robotics.
- * 
+ *
  * @subsection cell_flags      Cell Flags
- * The possible cell flags are: 
- * - #MAP_FLAG_NO_FLAG 
- * - #MAP_FLAG_WALL 
- * - #MAP_FLAG_PATH 
- * - #MAP_FLAG_START 
- * - #MAP_FLAG_GOAL 
+ * The possible cell flags are:
+ * - #MAP_FLAG_NO_FLAG
+ * - #MAP_FLAG_WALL
+ * - #MAP_FLAG_PATH
+ * - #MAP_FLAG_START
+ * - #MAP_FLAG_GOAL
 
  * One special type is #MAP_FLAG_ERROR. It is a error code return when
  * we try to acces to a space wich is not in the map. (i.e. the
  * request cell/point exceeds map dimensions.)
 
  * @subsection map_func Accessing to map information
- * 
+ *
  * FIXME: Obsolete: ShmapGetPointValue(), ShmapSetPointValue(),
  * ShmapSetPointValue(), ShmapSetCellValue() do not exist
  *
  * To read and write cell values, use functions ShmapGetCellValue()
  * and ShmapSetCellValue(). If you want to acces directly to points,
  * you can also use ShmapGetPointValue() and ShmapSetPointValue().
- * 
+ *
  * There are similar functions to get and set flags:
  * ShmapGetCellFlag() and ShmapSetCellFlag(), ShmapGetPointValue() and
  * ShmapSetPointFlag().
- * 
+ *
  * It can be possible also to edit more than a point at the same time
  * with function ShmapSetRectangleType().
- * 
+ *
  * If you want to know if a cell is free see ShmapIsFreeCell() and
  * ShmapIsFreePoint().
- * 
+ *
  * ShmapUpdateTmpObstacles() is a specific function created for
  * Eurobot Project.  Please, see an example in testmap.c file
- * 
+ *
  * @example testmap.c
  * Example how to use Shmap library.
  */
  * @name Cell Flags
  * @{
  */
-#define MAP_FLAG_WALL                  1 /**< Known wall */
-#define MAP_FLAG_PATH                  2
-#define MAP_FLAG_START                         4
-#define MAP_FLAG_GOAL                  8
-#define MAP_FLAG_DET_OBST              16 /**< Set when an obstacle is detected, cleard on every "map forget cycle" */
-#define MAP_FLAG_SIMULATED_WALL        32 /**< Used by robomon to simulate obstacles */
-#define MAP_FLAG_IGNORE_OBST           64 /**< If obstacle is detected here, ignore it */
-
-/** "Safety margin" around obstacle - used only during A* planning and
- * not during runtime obstacle avoidance. */
-#define MAP_FLAG_PLAN_MARGIN           128
+#define MAP_FLAG_WALL                   1       /**< Known wall */
+#define MAP_FLAG_PATH                   2
+#define MAP_FLAG_START                  4
+#define MAP_FLAG_GOAL                   8
+#define MAP_FLAG_DET_OBST               16      /**< Set when an obstacle is detected, cleard on every "map forget cycle" */
+#define MAP_FLAG_SIMULATED_WALL         32      /**< Used by robomon to simulate obstacles */
+#define MAP_FLAG_IGNORE_OBST            64      /**< If obstacle is detected here, ignore it */
+#define MAP_FLAG_PLAN_MARGIN            128     /**< Safety margin around obstacle,
+                                                  * do not plan path here,
+                                                  * motion controler is not allowed to enter this area */
 
 /** @}*/
 /** @name Shared Memory macros */
 /**@{*/
-#define SHM_MAP_KEY    555             /**< Key use to share the memory SHM*/ 
+#define SHM_MAP_KEY    555             /**< Key use to share the memory SHM*/
 /**@}*/
 
 /**@}*/
 
 #ifdef __cplusplus
 extern "C" {
-#endif 
+#endif
 
 typedef unsigned int map_cell_detobst_t;
 typedef unsigned int map_cell_flag_t;
@@ -208,17 +207,17 @@ typedef struct map_cell {
     map_cell_detobst_t detected_obstacle; /**< 0 = no obstacle, 255 = new obstacle */
 } MapCell;
 
-#define MAP_NEW_OBSTACLE 255
-#define MAP_NO_OBSTACLE 0
+#define MAP_NEW_OBSTACLE        255
+#define MAP_NO_OBSTACLE         0
 
 struct map {
        MapCell cells[MAP_HEIGHT][MAP_WIDTH];
-       
+
 }; /**< The main structure.*/
 
 /** See ShmapCellAtPoint(). */
 extern struct map_cell ShmapNoCell;
-       
+
 void ShmapAllFreeSpace(void);
 struct map *ShmapInit(int init_flag);
 void ShmapFree(void);
@@ -231,7 +230,7 @@ int ShmapCell2Point(int ix, int iy, double *x, double *y);
 
 /**
  * Gives information about a cell
- * 
+ *
  * @param      x       Coordinate of a cell
  * @param      y       Coordinate of a cell
  * @return             1 if cell is in map, 0 otherwise
@@ -266,7 +265,7 @@ int ShmapSetCircleFlag(double xs, double ys, double r, map_cell_flag_t set_flags
 
 #ifdef __cplusplus
 }
-#endif 
+#endif
 
 #endif //__MAP_H_
 
index 56f37e95049092c1fab5d7af49cfc6fe873fdff7..3409ec0dc3a6e14e05a82471e83e28591a5cede1 100644 (file)
@@ -18,15 +18,15 @@ static void add_safety_margin()
     struct map *map = ShmapIsMapInit();
     const struct { int x; int y; } neigh[] = { { 0, 1}, { 1, 1}, { 1, 0}, {-1, 1},
                                               {-1, 0}, {-1,-1}, { 0,-1}, { 1,-1}};
-    
+
     for (yy=0;yy<MAP_HEIGHT;yy++) {
         for (xx=0;xx<MAP_WIDTH;xx++) {
             // check obstacles around this cell to determine safety zone flag
             map->cells[yy][xx].flags &= ~MAP_FLAG_PLAN_MARGIN;  // delete margin status
             for (ii=0; ii< sizeof(neigh)/sizeof(neigh[0]); ii++)
             {
-                if (ShmapIsCellInMap(xx+neigh[ii].x, yy+neigh[ii].y) 
-                    && (((map->cells[yy+neigh[ii].y][xx+neigh[ii].x]).flags & MAP_FLAG_DET_OBST) 
+                if (ShmapIsCellInMap(xx+neigh[ii].x, yy+neigh[ii].y)
+                    && (((map->cells[yy+neigh[ii].y][xx+neigh[ii].x]).flags & MAP_FLAG_DET_OBST)
                         || (map->cells[yy+neigh[ii].y][xx+neigh[ii].x]).detected_obstacle > 0 ))
                 {
                     // creates safety status
@@ -40,7 +40,7 @@ static void add_safety_margin()
 }
 
 
-/** 
+/**
  * Returns the number of points of the path on success or an error code.
  * @param      xstart_real     X coordinate in meters
  * @param      ystart_real     Y coordinate in meters
@@ -55,7 +55,7 @@ static void add_safety_margin()
  * It takes parameters of start and goal points. It returns the number
  * of points of the trajectory and the caller must specify pointers to
  * path and angle.
- * 
+ *
  * The result of the algorithm is stored in a list of ::PathPoint,
  * terminated by NULL, containing the points of the path. This memory
  * is allocated dynamicaly and its address will be returned as
@@ -63,7 +63,7 @@ static void add_safety_margin()
  * argument. After use the path, memory should be free with
  * freePathMemory(). A pointer of the final angle must be also passed
  * as argument.
- * 
+ *
  * The map memory must be init with ShmapInit() before calling
  * path_planner(). Do not forget to free this map memory with
  * ShmapFree().
@@ -77,7 +77,7 @@ int path_planner(double xstart_real,double ystart_real, double xgoal_real, doubl
         PathPoint *original_path;
        PathPoint * tmp;
         static pthread_mutex_t plan_mutex = PTHREAD_MUTEX_INITIALIZER;
-       
+
        // Init the map
        if (! ShmapIsMapInit()) {
                DBG("ERROR: shared map memory is not init.\n");
@@ -93,7 +93,7 @@ int path_planner(double xstart_real,double ystart_real, double xgoal_real, doubl
        }
 
         pthread_mutex_lock(&plan_mutex);
-       
+
        // Call to A* algorithm
        nbpoints = aAlgorithm(xstart_real,ystart_real, xgoal_real, ygoal_real, &astar_path);
        if (nbpoints < 0) {
@@ -118,11 +118,11 @@ int path_planner(double xstart_real,double ystart_real, double xgoal_real, doubl
         tmp--;
         tmp->x = xgoal_real;
         tmp->y = ygoal_real;
-        
-        
+
+
 
        // DBG("Simplifing the path\n");
-       // Calc a simplest path 
+       // Calc a simplest path
        (*simple_path) = (PathPoint *) malloc(sizeof(PathPoint));
        count = path_simplifier(original_path, nbpoints, *simple_path, angle);
        // Do not send the first point
@@ -130,7 +130,7 @@ int path_planner(double xstart_real,double ystart_real, double xgoal_real, doubl
        (*simple_path)= (*simple_path)->next;
        free(tmp);
        free(original_path);
-       
+
        // All is OK
         ret = 1;
 out:
index ac940177bf64e62b68cf1609f273e6ded668af72..6c1e9687a6ee56a7851afbdd4018f49be3737c51 100644 (file)
@@ -89,7 +89,7 @@ static bool obstackle_in_front_if_turn(Trajectory *t)
  */
 static enum target_status new_goal(struct move_target *move_target, double start_in_future)
 {
-       enum target_status ret; 
+       enum target_status ret;
        double angle;
        PathPoint * path = NULL;
        PathPoint * tmp_point = NULL;
@@ -102,7 +102,7 @@ static enum target_status new_goal(struct move_target *move_target, double start
        // Where to start trajectory planning?
        get_future_pos(start_in_future, future_traj_point, time_ts);
        Point start(future_traj_point.x, future_traj_point.y);
-       
+
        Trajectory *t = new Trajectory(move_target->tc, backward);
 
        if (move_target->heading.operation == TOP_ARRIVE_FROM) {
@@ -117,7 +117,7 @@ static enum target_status new_goal(struct move_target *move_target, double start
                                ret = TARGET_ERROR; break;
                        case PP_ERROR_GOAL_IS_OBSTACLE:
                        case PP_ERROR_GOAL_NOT_REACHABLE:
-                               ret = TARGET_INACC; break; 
+                               ret = TARGET_INACC; break;
                        default:
                                ret = TARGET_OK; break;
                }
@@ -156,7 +156,7 @@ static enum target_status new_goal(struct move_target *move_target, double start
                delete(t);
                ret = TARGET_ERROR;
        }
-        
+
        return ret;
 }
 
@@ -166,7 +166,7 @@ static enum target_status new_goal(struct move_target *move_target, double start
  * movehelper.cc. In case of error it sends the proper event to MAIN
  * FSM.
  *
- * @return TARGET_OK on succes, TARGET_ERROR on error. 
+ * @return TARGET_OK on succes, TARGET_ERROR on error.
  */
 static enum target_status new_trajectory(Trajectory *t)
 {
@@ -195,12 +195,12 @@ static enum target_status new_trajectory(Trajectory *t)
        }
 }
 
-/** 
+/**
  * Handles new target signal from main FSM
- * 
- * @param target 
- * 
- * @return 
+ *
+ * @param target
+ *
+ * @return
  */
 static enum target_status new_target(struct move_target *target)
 {
@@ -220,11 +220,11 @@ static enum target_status new_target(struct move_target *target)
        return ret;
 }
 
-/** 
+/**
  * Recalculates trajectory to previous move target specified by
  * new_target()
  *
- * @return 
+ * @return
  */
 enum target_status
 recalculate_trajectory(void)
@@ -232,14 +232,14 @@ recalculate_trajectory(void)
        /* TODO: Different start for planning than esitmated position */
        enum target_status ret;
        current_target.use_planning = true;
-       ret = new_goal(&current_target, TRGEN_DELAY);   
-       switch (ret) {                                          
+       ret = new_goal(&current_target, TRGEN_DELAY);
+       switch (ret) {
        case TARGET_OK:
-               break;                                  
-       case TARGET_ERROR:                              
-               ul_logerr("Target error on recalculation_in_progress\n");               
-               break;                                  
-       case TARGET_INACC:                      
+               break;
+       case TARGET_ERROR:
+               ul_logerr("Target error on recalculation_in_progress\n");
+               break;
+       case TARGET_INACC:
                break;
        }
 
@@ -318,7 +318,7 @@ FSM_STATE(movement)
                                // We can go to the target:
                                case TARGET_OK:    break;
                                // Target inaccessible because of an obstacle
-                               case TARGET_INACC: FSM_TRANSITION(wait_and_try_again); break; 
+                               case TARGET_INACC: FSM_TRANSITION(wait_and_try_again); break;
                                // Fatal error during planning
                                case TARGET_ERROR: FSM_SIGNAL(MAIN, EV_MOTION_DONE, NULL);
                                                   ul_logerr("Target error\n");
@@ -382,7 +382,7 @@ FSM_STATE(close_to_target)
                case EV_EXIT:
                        stop();
                        break;
-               case EV_OBSTACLE: 
+               case EV_OBSTACLE:
                case EV_RETURN:
                case EV_TRAJECTORY_DONE:
                case EV_NEW_TARGET:
index 427b3916ab8963370db8bee90de00a1975042257..5b78a0f9533cbf408200a042801ce65c62e904d5 100644 (file)
@@ -2,10 +2,10 @@
  * @file   motion-control.cc
  * @author Michal Sojka <sojkam1@fel.cvut.cz>, Petr Beneš
  * @date   Fri Mar 20 10:36:59 2009
- * 
- * @brief  
- * 
- * 
+ *
+ * @brief
+ *
+ *
  */
 
 //#define MOTION_DEBUG
@@ -89,7 +89,7 @@ static struct timeval tv_start; /**< Absolute time, when trajectory started. */
 static Trajectory *actual_trajectory;
 static pthread_mutex_t actual_trajectory_lock;
 
-// Trajectory recalculation 
+// Trajectory recalculation
 sem_t recalculation_not_running;
 sem_t measurement_received;
 
@@ -287,10 +287,10 @@ void *thread_trajectory_follower(void *arg)
                perror("Warning: Cannot set RT priority for thread_prio_traj_follower()");
 
        clock_gettime(CLOCK_REALTIME, &next);
-       
+
        while (1) {
                ret = sem_timedwait(&measurement_received, &next);
-               
+
                if (ret == -1 && errno == ETIMEDOUT) {
                        next_period(&next, MOTION_PERIOD_NS);
                        if (measurement_ok) {
@@ -298,7 +298,7 @@ void *thread_trajectory_follower(void *arg)
                                        fprintf(stderr, "problem: measurement timeout!!!!!!!!!!!");
                                }
                                measurement_ok--;
-                       }               
+                       }
                } else {
                        next_period(&next, MEASURE_TIMEOUT_NS);
                        if (measurement_ok < 2) {
@@ -330,7 +330,7 @@ void go(Trajectory *t, double append_time)
                old = actual_trajectory;
                gettimeofday(&tv_start, NULL);
                actual_trajectory = t;
-#ifdef MOTION_LOG              
+#ifdef MOTION_LOG
                t->logTraj(tv_start.tv_sec + 1e-6*tv_start.tv_usec);
 #endif
                if (old)
@@ -346,7 +346,7 @@ void go(Trajectory *t, double append_time)
 {
        pthread_mutex_lock(&switch_to_trajectory_lock);
        switch_to_trajectory = t;
-       switch_time = time;    
+       switch_time = time;
        pthread_mutex_unlock(&switch_to_trajectory_lock);
 
        struct timeval tv;
@@ -366,10 +366,10 @@ void stop()
        sem_post(&measurement_received);
 }
 
-/** 
+/**
  * Initializes motion controller.
- * 
- * 
+ *
+ *
  * @return Zero on success, non-zero otherwise.
  */
 int motion_control_init()
@@ -409,7 +409,7 @@ void motion_control_done()
 
        robot.orte.motion_speed.right = 0;
        robot.orte.motion_speed.left = 0;
-       ORTEPublicationSend(robot.orte.publication_motion_speed);                       
+       ORTEPublicationSend(robot.orte.publication_motion_speed);
 }