Update of /cvsroot/playerstage/code/player/utils/playerv
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16670

Modified Files:
        dev_map.c dev_position2d.c mainwnd.c playerv.h 
Log Message:
applied patch 1620764

Index: mainwnd.c
===================================================================
RCS file: /cvsroot/playerstage/code/player/utils/playerv/mainwnd.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** mainwnd.c   25 Jan 2006 23:38:33 -0000      1.19
--- mainwnd.c   31 Jan 2007 22:09:57 -0000      1.20
***************
*** 80,84 ****
    wnd->view_item_2f = rtk_menuitem_create(wnd->view_menu, "Grid 2 feet", 1);
    wnd->view_item_ego = rtk_menuitem_create(wnd->view_menu, "Frame 
egocentric", 1); 
-   
    // Create device menu
    wnd->device_menu = rtk_menu_create(wnd->canvas, "Devices");
--- 80,83 ----
***************
*** 99,105 ****
    
    rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
!   rtk_fig_grid(wnd->grid_fig, 0, 0, 50, 50, 0.2);
    rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
!   rtk_fig_grid(wnd->grid_fig, 0, 0, 50, 50, 1);
        
    return wnd;
--- 98,104 ----
    
    rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
!   rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 1);
    rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
!   rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 10);
        
    return wnd;
***************
*** 167,173 ****
      {
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 50, 50, 0.2);
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 50, 50, 1);
        rtk_menuitem_check(wnd->view_item_10m, 0);
        rtk_menuitem_check(wnd->view_item_2f, 0);
--- 166,172 ----
      {
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 1);
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 10);
        rtk_menuitem_check(wnd->view_item_10m, 0);
        rtk_menuitem_check(wnd->view_item_2f, 0);
***************
*** 182,188 ****
      {
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
-       rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 2);
-       rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
        rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 10);
        rtk_menuitem_check(wnd->view_item_1m, 0);
        rtk_menuitem_check(wnd->view_item_2f, 0);
--- 181,187 ----
      {
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
        rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 10);
+       rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
+       rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 100);
        rtk_menuitem_check(wnd->view_item_1m, 0);
        rtk_menuitem_check(wnd->view_item_2f, 0);
***************
*** 197,208 ****
      {
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 50, 50, 4 * 0.0254);
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 50, 50, 2 * 12 * 0.0254);
        rtk_menuitem_check(wnd->view_item_10m, 0);
        rtk_menuitem_check(wnd->view_item_1m, 0);
      }
    }
- 
    // Render the canvas
    rtk_canvas_render(wnd->canvas);
--- 196,206 ----
      {
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MINOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 4 * 0.0254);
        rtk_fig_color_rgb32(wnd->grid_fig, COLOR_GRID_MAJOR);
!       rtk_fig_grid(wnd->grid_fig, 0, 0, 500, 500, 2 * 12 * 0.0254);
        rtk_menuitem_check(wnd->view_item_10m, 0);
        rtk_menuitem_check(wnd->view_item_1m, 0);
      }
    }
    // Render the canvas
    rtk_canvas_render(wnd->canvas);

Index: dev_position2d.c
===================================================================
RCS file: /cvsroot/playerstage/code/player/utils/playerv/dev_position2d.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** dev_position2d.c    16 Oct 2005 02:06:47 -0000      1.2
--- dev_position2d.c    31 Jan 2007 22:09:57 -0000      1.3
***************
*** 41,44 ****
--- 41,47 ----
  void position2d_servo_pos(position2d_t *self);
  
+ // Servo the robot (car control)
+ void position2d_servo_car(position2d_t *self);
+ 
  // Servo the robot (velocity control)
  void position2d_servo_vel(position2d_t *self);
***************
*** 68,71 ****
--- 71,75 ----
    self->command_item = rtk_menuitem_create(self->menu, "Command", 1);
    self->pose_mode_item = rtk_menuitem_create(self->menu, "Position mode", 1);
+   self->car_mode_item = rtk_menuitem_create(self->menu, "Car mode", 1); 
    self->enable_item = rtk_menuitem_create(self->menu, "Enable", 0);
    self->disable_item = rtk_menuitem_create(self->menu, "Disable", 0);
***************
*** 193,196 ****
--- 197,203 ----
    if (rtk_menuitem_ischecked(self->pose_mode_item))
      position2d_servo_pos(self);
+   else if (rtk_menuitem_ischecked(self->car_mode_item)) {
+     position2d_servo_car(self);
+   }
    else
      position2d_servo_vel(self);
***************
*** 408,412 ****
--- 415,509 ----
  }
  
+ // Servo the robot (car control)
+ void position2d_servo_car(position2d_t *self)
+ {
+   double d;
+   double rx, ry, ra;
+   double kr, ka;
+   double vr, va;
+   double min_vr, max_vr;
+   double min_va, max_va;
  
+   // Only servo if we are subscribed and have enabled commands.
+   if (self->proxy->info.subscribed &&
+       rtk_menuitem_ischecked(self->command_item))    
+   {
+     rtk_fig_show(self->control_fig, 1);
+     rtk_fig_show(self->path_fig, 1);
+   }
+   else
+   {
+     rtk_fig_show(self->control_fig, 0);
+     rtk_fig_show(self->path_fig, 0);
+     return;
+   }
+ 
+   // Good for P2DX
+   min_vr = -0.10;
+   max_vr = 0.50;
+   min_va = -M_PI/4;
+   max_va = +M_PI/4;
+   kr = max_vr / 1.00;
+   ka = max_va / 1.00;
+ 
+   /*
+   // Good for P2AT
+   min_vr = -2.00;
+   max_vr = +2.00;
+   min_va = -2 * M_PI;
+   max_va = +2 * M_PI;
+   kr = max_vr / 2.00;
+   ka = max_va / 2.00;
+   */
+ 
+   if (rtk_fig_mouse_selected(self->control_fig))
+   {
+     // Get goal pose in robot cs
+     rtk_fig_get_origin(self->control_fig, &rx, &ry, &ra);
+   }
+   else
+   { 
+     // Reset the goal figure
+     rx = ry = ra = 0;
+     rtk_fig_origin(self->control_fig, rx, ry, ra);
+   }
+ 
+   vr = kr * rx;
+   va = ka * ry;
+ 
+   if (vr < 0)
+     va *= -1;
+   
+   // Bound the speed
+   if (vr > max_vr)
+     vr = max_vr;
+   if (vr < min_vr)
+     vr = min_vr;
+   if (va > max_va)
+     va = max_va;
+   if (va < min_va)
+     va = min_va;
+     
+   //printf("%f %f\n", vr, va);
+       
+   // Set the new speed
+   //playerc_position2d_set_cmd_vel(self->proxy, vr, 0, va, 1);
+   playerc_position2d_set_cmd_car(self->proxy,vr,va);
+   // Draw in the path
+   d = 0.30;
+   rtk_fig_clear(self->path_fig);
+   rtk_fig_color_rgb32(self->path_fig, COLOR_POSITION_CONTROL);
+   if (rx >= 0)
+   {
+     rtk_fig_line(self->path_fig, 0, 0, d, 0);
+     rtk_fig_line(self->path_fig, d, 0, rx, ry);
+   }
+   else
+   {
+     rtk_fig_line(self->path_fig, 0, 0, -d, 0);
+     rtk_fig_line(self->path_fig, -d, 0, rx, ry);
+   }
+   return;
+ }
  
  

Index: playerv.h
===================================================================
RCS file: /cvsroot/playerstage/code/player/utils/playerv/playerv.h,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** playerv.h   3 Jan 2007 19:13:21 -0000       1.47
--- playerv.h   31 Jan 2007 22:09:57 -0000      1.48
***************
*** 35,40 ****
  #include "error.h"
  #include "opt.h"
  
! 
  
  /***************************************************************************
--- 35,43 ----
  #include "error.h"
  #include "opt.h"
+ /***************************************************************************
+  * Default colors
+  ***************************************************************************/
  
! #define MAP_UPDATE_TIME 1.0
  
  /***************************************************************************
***************
*** 115,119 ****
    rtk_menuitem_t *view_item_2f;
    rtk_menuitem_t *view_item_ego;
- 
    // Menu containing the device list
    rtk_menu_t *device_menu;
--- 118,121 ----
***************
*** 268,271 ****
--- 270,274 ----
    rtk_menuitem_t *command_item;
    rtk_menuitem_t *pose_mode_item;
+   rtk_menuitem_t *car_mode_item;
    rtk_menuitem_t *enable_item, *disable_item;
    rtk_menuitem_t *frame_item;
***************
*** 753,757 ****
    rtk_menu_t *menu;
    rtk_menuitem_t *subscribe_item;
! 
    // Figures
    rtk_fig_t *fig;
--- 756,760 ----
    rtk_menu_t *menu;
    rtk_menuitem_t *subscribe_item;
!   rtk_menuitem_t *continuous_item;
    // Figures
    rtk_fig_t *fig;

Index: dev_map.c
===================================================================
RCS file: /cvsroot/playerstage/code/player/utils/playerv/dev_map.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** dev_map.c   17 Oct 2005 04:54:32 -0000      1.3
--- dev_map.c   31 Jan 2007 22:09:57 -0000      1.4
***************
*** 57,61 ****
    map->menu = rtk_menu_create_sub(mainwnd->device_menu, label);
    map->subscribe_item = rtk_menuitem_create(map->menu, "Subscribe", 1);
! 
    // Set the initial menu state
    rtk_menuitem_check(map->subscribe_item, subscribe);
--- 57,61 ----
    map->menu = rtk_menu_create_sub(mainwnd->device_menu, label);
    map->subscribe_item = rtk_menuitem_create(map->menu, "Subscribe", 1);
!   map->continuous_item = rtk_menuitem_create(map->menu, "continuous update", 
1);
    // Set the initial menu state
    rtk_menuitem_check(map->subscribe_item, subscribe);
***************
*** 109,117 ****
    if (map->proxy->info.subscribed)
    {
!     // Draw in the map scan if it has been changed.
!     if (map->proxy->info.datatime != map->datatime)
      {
!       //map_draw(map);
!       map->datatime = map->proxy->info.datatime;
      }
    }
--- 109,130 ----
    if (map->proxy->info.subscribed)
    {
!     if(rtk_menuitem_ischecked(map->continuous_item))
      {
!                       static struct timeval old_time = {0,0};
!                       struct timeval time;
!                       double time_diff = 0.0;
!                       gettimeofday(&time, NULL);
!                       // i don't use (map->proxy->info.datatime != 
map->datatime))
!                       // because some drivers return strange datatimes
!                       // and the map may change to often for the current map 
format
!                       // in playerv.h you can adjust MAP_UPDATE_TIME (default 
1 sec)
!                       time_diff = (double)(time.tv_sec - old_time.tv_sec) +
!                               (double)(time.tv_usec - 
old_time.tv_usec)/1000000;
!                       if (time_diff > MAP_UPDATE_TIME)
!                       {
!                               playerc_map_get_map(map->proxy);
!                               map_draw(map);
!                               old_time = time;
!                       }
      }
    }


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to