Update of /cvsroot/playerstage/code/player/utils/playerv
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15536
Modified Files:
Tag: release-2-0-patches
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.19.2.1
diff -C2 -d -r1.19 -r1.19.2.1
*** mainwnd.c 25 Jan 2006 23:38:33 -0000 1.19
--- mainwnd.c 31 Jan 2007 22:06:15 -0000 1.19.2.1
***************
*** 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.2.4.1
diff -C2 -d -r1.2 -r1.2.4.1
*** dev_position2d.c 16 Oct 2005 02:06:47 -0000 1.2
--- dev_position2d.c 31 Jan 2007 22:06:15 -0000 1.2.4.1
***************
*** 68,71 ****
--- 68,72 ----
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 ****
--- 194,200 ----
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 ****
--- 412,506 ----
}
+ // 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.44.4.1
retrieving revision 1.44.4.2
diff -C2 -d -r1.44.4.1 -r1.44.4.2
*** playerv.h 7 Jun 2006 16:12:57 -0000 1.44.4.1
--- playerv.h 31 Jan 2007 22:06:15 -0000 1.44.4.2
***************
*** 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;
***************
*** 751,755 ****
rtk_menu_t *menu;
rtk_menuitem_t *subscribe_item;
!
// Figures
rtk_fig_t *fig;
--- 754,758 ----
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.3.4.1
diff -C2 -d -r1.3 -r1.3.4.1
*** dev_map.c 17 Oct 2005 04:54:32 -0000 1.3
--- dev_map.c 31 Jan 2007 22:06:15 -0000 1.3.4.1
***************
*** 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