Update of /cvsroot/playerstage/code/player/server/drivers/position/vfh
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/server/drivers/position/vfh
Modified Files:
vfh.cc vfh_algorithm.cc vfh_algorithm.h
Log Message:
applied Toby's patch to replace fixed-size arrays
Index: vfh_algorithm.cc
===================================================================
RCS file:
/cvsroot/playerstage/code/player/server/drivers/position/vfh/vfh_algorithm.cc,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** vfh_algorithm.cc 20 Jan 2006 21:26:31 -0000 1.9
--- vfh_algorithm.cc 1 Nov 2007 22:16:22 -0000 1.10
***************
*** 404,408 ****
}
! int VFH_Algorithm::Update_VFH( double
laser_ranges[PLAYER_LASER_MAX_SAMPLES][2],
int current_speed,
float goal_direction,
--- 404,408 ----
}
! int VFH_Algorithm::Update_VFH( double (*laser_ranges)[2],
int current_speed,
float goal_direction,
***************
*** 858,862 ****
}
! int VFH_Algorithm::Calculate_Cells_Mag( double
laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed )
{
int x, y;
--- 858,862 ----
}
! int VFH_Algorithm::Calculate_Cells_Mag( double (*laser_ranges)[2], int speed
)
{
int x, y;
***************
*** 910,914 ****
}
! int VFH_Algorithm::Build_Primary_Polar_Histogram( double
laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed )
{
int x, y;
--- 910,914 ----
}
! int VFH_Algorithm::Build_Primary_Polar_Histogram( double (*laser_ranges)[2],
int speed )
{
int x, y;
Index: vfh.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/position/vfh/vfh.cc,v
retrieving revision 1.80
retrieving revision 1.81
diff -C2 -d -r1.80 -r1.81
*** vfh.cc 18 Oct 2007 22:54:43 -0000 1.80
--- vfh.cc 1 Nov 2007 22:16:22 -0000 1.81
***************
*** 281,289 ****
player_devaddr_t sonar_addr;
int num_sonars;
! player_pose3d_t sonar_poses[PLAYER_SONAR_MAX_SAMPLES];
// Laser range and bearing values
int laser_count;
! double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2];
// Control velocity
--- 281,289 ----
player_devaddr_t sonar_addr;
int num_sonars;
! player_pose3d_t * sonar_poses;
// Laser range and bearing values
int laser_count;
! double (*laser_ranges)[2];
// Control velocity
***************
*** 436,444 ****
this->laser_count = 0;
! for(int i=0;i<PLAYER_LASER_MAX_SAMPLES;i++)
! {
! this->laser_ranges[i][0] = 0;
! this->laser_ranges[i][1] = 0;
! }
return 0;
}
--- 436,440 ----
this->laser_count = 0;
! this->laser_ranges = NULL;
return 0;
}
***************
*** 475,478 ****
--- 471,475 ----
cfg = (player_sonar_geom_t*)msg->GetPayload();
this->num_sonars = cfg->poses_count;
+ this->sonar_poses = new player_pose3d_t[num_sonars];
for(int i=0;i<this->num_sonars;i++)
{
***************
*** 483,491 ****
this->laser_count = 0;
! for(int i=0;i<PLAYER_LASER_MAX_SAMPLES;i++)
! {
! this->laser_ranges[i][0] = 0;
! this->laser_ranges[i][1] = 0;
! }
return 0;
}
--- 480,484 ----
this->laser_count = 0;
! this->laser_ranges = NULL;
return 0;
}
***************
*** 497,500 ****
--- 490,495 ----
{
this->laser->Unsubscribe(this->InQueue);
+ delete [] laser_ranges;
+ laser_ranges = NULL;
return 0;
}
***************
*** 505,508 ****
--- 500,507 ----
{
this->sonar->Unsubscribe(this->InQueue);
+ delete [] laser_ranges;
+ laser_ranges = NULL;
+ delete [] sonar_poses;
+ sonar_poses = NULL;
return 0;
}
***************
*** 542,549 ****
this->laser_count = 181;
! assert(this->laser_count <
! (int)sizeof(this->laser_ranges) /
(int)sizeof(this->laser_ranges[0]));
! for(i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++)
this->laser_ranges[i][0] = -1;
--- 541,548 ----
this->laser_count = 181;
! if (!laser_ranges)
! this->laser_ranges = new double[laser_count][2];
! for(i = 0; i < laser_count; i++)
this->laser_ranges[i][0] = -1;
***************
*** 560,564 ****
r = 1000000.0;
! for (i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++)
{
if (this->laser_ranges[i][0] != -1) {
--- 559,563 ----
r = 1000000.0;
! for (i = 0; i < laser_count; i++)
{
if (this->laser_ranges[i][0] != -1) {
***************
*** 582,589 ****
this->laser_count = count;
! assert(this->laser_count <
! (int)sizeof(this->laser_ranges) /
(int)sizeof(this->laser_ranges[0]));
!
! for(i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++)
this->laser_ranges[i][0] = -1;
--- 581,588 ----
this->laser_count = count;
! if (!laser_ranges)
! this->laser_ranges = new double[laser_count][2];
!
! for(i = 0; i < laser_count; i++)
this->laser_ranges[i][0] = -1;
***************
*** 610,614 ****
r = 1000000.0;
! for (i = 0; i < PLAYER_LASER_MAX_SAMPLES; i++)
{
if (this->laser_ranges[i][0] != -1) {
--- 609,613 ----
r = 1000000.0;
! for (i = 0; i < laser_count; i++)
{
if (this->laser_ranges[i][0] != -1) {
Index: vfh_algorithm.h
===================================================================
RCS file:
/cvsroot/playerstage/code/player/server/drivers/position/vfh/vfh_algorithm.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** vfh_algorithm.h 20 Jan 2006 21:26:31 -0000 1.6
--- vfh_algorithm.h 1 Nov 2007 22:16:22 -0000 1.7
***************
*** 59,63 ****
// - goal_distance_tolerance in mm.
//
! int Update_VFH( double laser_ranges[PLAYER_LASER_MAX_SAMPLES][2],
int current_speed,
float goal_direction,
--- 59,63 ----
// - goal_distance_tolerance in mm.
//
! int Update_VFH( double (*laser_ranges)[2],
int current_speed,
float goal_direction,
***************
*** 101,107 ****
// Returns 0 if something got inside the safety distance, else 1.
! int Calculate_Cells_Mag( double
laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed );
// Returns 0 if something got inside the safety distance, else 1.
! int Build_Primary_Polar_Histogram( double
laser_ranges[PLAYER_LASER_MAX_SAMPLES][2], int speed );
int Build_Binary_Polar_Histogram(int speed);
int Build_Masked_Polar_Histogram(int speed);
--- 101,107 ----
// Returns 0 if something got inside the safety distance, else 1.
! int Calculate_Cells_Mag( double (*laser_ranges)[2], int speed );
// Returns 0 if something got inside the safety distance, else 1.
! int Build_Primary_Polar_Histogram( double (*laser_ranges)[2], int speed );
int Build_Binary_Polar_Histogram(int speed);
int Build_Masked_Polar_Histogram(int speed);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit