Revision: 7609
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7609&view=rev
Author:   gbiggs
Date:     2009-05-01 07:40:22 +0000 (Fri, 01 May 2009)

Log Message:
-----------
Applied patch #2778486

Modified Paths:
--------------
    code/player/trunk/server/drivers/ranger/hokuyo_aist.cc
    code/player/trunk/utils/pmap/CMakeLists.txt

Modified: code/player/trunk/server/drivers/ranger/hokuyo_aist.cc
===================================================================
--- code/player/trunk/server/drivers/ranger/hokuyo_aist.cc      2009-05-01 
07:10:59 UTC (rev 7608)
+++ code/player/trunk/server/drivers/ranger/hokuyo_aist.cc      2009-05-01 
07:40:22 UTC (rev 7609)
@@ -101,6 +101,10 @@
  - high_sensitivity (integer)
    - Default: 0
    - Set to non-zero to enable high sensitivity mode on models that support it.
+ - min_dist (float, metres)
+   - Default: 0m
+   - Minimum possible distance. Below that means there is an error (a scratch 
on the laser for
+     instance). The reading is then adjusted to the average of the neighboring 
valid beams.
 
  @par Example
 
@@ -127,6 +131,7 @@
 const int DEFAULT_SPEED_LEVEL = 0;
 const int DEFAULT_SENSITIVITY = 0;
 const int DEFAULT_GET_INTENSITIES = 0;
+const double DEFAULT_MIN_DIST = 0.0;
 
 
////////////////////////////////////////////////////////////////////////////////////////////////////
 // Driver object
@@ -151,6 +156,7 @@
                bool _verbose, _powerOnStartup, _getIntensities, 
_ignoreUnknowns;
                double _minAngle, _maxAngle;
                IntProperty _baudRate, _speedLevel, _highSensitivity;
+               DoubleProperty _minDist;
                std::string _portOpts;
                // Geometry
                player_ranger_geom_t _geom;
@@ -174,12 +180,14 @@
        _baudRate ("baud_rate", DEFAULT_BAUDRATE, false),
        _speedLevel ("speed_level", DEFAULT_SPEED_LEVEL, false),
        _highSensitivity ("high_sensitivity", DEFAULT_SENSITIVITY, false),
+       _minDist ("min_dist", DEFAULT_MIN_DIST, false),
        _ranges (NULL), _intensities (NULL)
 {
        // Get the baudrate, speed and sensitivity
        RegisterProperty ("baud_rate", &_baudRate, cf, section);
        RegisterProperty ("speed_level", &_speedLevel, cf, section);
        RegisterProperty ("high_sensitivity", &_highSensitivity, cf, section);
+       RegisterProperty ("min_dist", &_minDist, cf, section);
 
        // Get config
        _getIntensities = cf->ReadBool (section, "get_intensities", false);
@@ -492,10 +500,18 @@
                        return false;
                }
 
+               double lastValidValue = _minDist;
                for (unsigned int ii = 0; ii < _data.Length (); ii++)
                {
                        _ranges[ii] = _data[ii] / 1000.0f;
                        _intensities[ii] = _data.Intensities ()[ii];
+                       if (_minDist > 0)
+                       {
+                               if (_ranges[ii] < _minDist)
+                                       _ranges[ii] = lastValidValue;
+                               else
+                                       lastValidValue = _ranges[ii];
+                       }
                }
 
                rangeData.ranges = _ranges;
@@ -523,8 +539,18 @@
                        return false;
                }
 
+               double lastValidValue = _minDist;
                for (unsigned int ii = 0; ii < _data.Length (); ii++)
+               {
                        _ranges[ii] = _data[ii] / 1000.0f;
+                       if (_minDist > 0)
+                       {
+                               if (_ranges[ii] < _minDist)
+                                       _ranges[ii] = lastValidValue;
+                               else
+                                       lastValidValue = _ranges[ii];
+                       }
+               }
                rangeData.ranges = _ranges;
                rangeData.ranges_count = _data.Length ();
                Publish (device_addr, PLAYER_MSGTYPE_DATA, 
PLAYER_RANGER_DATA_RANGE,

Modified: code/player/trunk/utils/pmap/CMakeLists.txt
===================================================================
--- code/player/trunk/utils/pmap/CMakeLists.txt 2009-05-01 07:10:59 UTC (rev 
7608)
+++ code/player/trunk/utils/pmap/CMakeLists.txt 2009-05-01 07:40:22 UTC (rev 
7609)
@@ -9,7 +9,8 @@
         pkg_check_modules (GSL_PKG gsl)
 
         IF (GSL_PKG_FOUND)
-            LIST_TO_STRING (GSL_CFLAGS "${GSL_PKG_CFLAGS}")
+            LIST_TO_STRING (GSL_CFLAGS "${GSL_PKG_CFLAGS_OTHER}")
+            LIST_TO_STRING (GSL_LDFLAGS "${GSL_PKG_LDFLAGS_OTHER}")
             LINK_DIRECTORIES (${GSL_PKG_LIBRARY_DIRS})
 
             INCLUDE (FindOpenGL)
@@ -25,7 +26,8 @@
             SET (lododriverSrcs lodo_driver.cc)
 
             INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs
-                                 ${CMAKE_CURRENT_BINARY_DIR})
+                                 ${CMAKE_CURRENT_BINARY_DIR}
+                                 ${GSL_PKG_INCLUDE_DIRS})
             IF (GLUT_FOUND)
                 INCLUDE_DIRECTORIES (${GLUT_INCLUDE_DIR})
             ENDIF (GLUT_FOUND)
@@ -43,6 +45,7 @@
             ENDIF (GLUT_FOUND)
             SET_SOURCE_FILES_PROPERTIES (${pmapSrcs} PROPERTIES
                 COMPILE_FLAGS "${GSL_CFLAGS} --fast-math")
+            SET_TARGET_PROPERTIES (pmap PROPERTIES LINK_FLAGS "${GSL_LDFLAGS}")
             TARGET_LINK_LIBRARIES (pmap ${GSL_PKG_LIBRARIES})
 
             PLAYER_ADD_LIBRARY (lodo ${lodoSrcs})
@@ -52,6 +55,7 @@
             ENDIF (GLUT_FOUND)
             SET_SOURCE_FILES_PROPERTIES (${lodoSrcs} PROPERTIES
                 COMPILE_FLAGS "${GSL_CFLAGS} --fast-math")
+            SET_TARGET_PROPERTIES (lodo PROPERTIES LINK_FLAGS "${GSL_LDFLAGS}")
             TARGET_LINK_LIBRARIES (lodo ${GSL_PKG_LIBRARIES})
 
             PLAYER_ADD_LIBRARY (lododriver ${lododriverSrcs})


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to