It seems that if the field of view of the sicklaser is
set to greater than 300 degrees in the .world file, an
attempt to use vfh crashes Stage with a Segmentation
Fault. Not sure if this is a Stage specific thing or
player as well.
I can verify that this is a bug still present in CVS.
There's some dodgy indexing in VFH::GetLaser() that
implicitly assumes a 180-degree FOV. Anything greater than
180 results in invalid writes off the end (well, the
beginning) of the VFH::laser_ranges array. I'll look into
fixing it at some point...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ive added some conversion code to interpolate laser data on
arrival for the VFH driver. The concept of a 180 degree scan
with 0.5 degree resolution is hard coded into the VFH
algorithm in many horrible ways. This fix should prevent the
memory faults, but effectively compresses the scans into a
180 degree FOV so may not give the optimum performance.
A proper fix will probably require a complete rework of the
VFH driver.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Logged In: YES
user_id=211013
I can verify that this is a bug still present in CVS.
There's some dodgy indexing in VFH::GetLaser() that
implicitly assumes a 180-degree FOV. Anything greater than
180 results in invalid writes off the end (well, the
beginning) of the VFH::laser_ranges array. I'll look into
fixing it at some point...
Logged In: YES
user_id=974361
Ive added some conversion code to interpolate laser data on
arrival for the VFH driver. The concept of a 180 degree scan
with 0.5 degree resolution is hard coded into the VFH
algorithm in many horrible ways. This fix should prevent the
memory faults, but effectively compresses the scans into a
180 degree FOV so may not give the optimum performance.
A proper fix will probably require a complete rework of the
VFH driver.