Laser obstacles
From Rsewiki
RANSAC based obstacle detection that prioritises lines
All obstacles are converted to points, lines or convex polygons. The obstacles are saved in the obstacle database 'obst' that is a resource created by the plug-in module ulmspassable.so.0.
Author: Christian Andersen
(for svn version 1100)
Configuration variables
- maxToLineDist=0.05 (r/w) max distance to line for members
- minPointsInLine=8 (r/w) Minimum number of measurements in a line
- maxLineIterations=25 (r/w) Max number of iterations to allign line to members
- maxSamples=100 (r/w) Number of samples to determine best supported line
- splitDist=0.15 (r/w) distance to split long line into two (or more)
- minSplitCnt=2 (r/w) if a line is grouped by 'splitDist', then each group must have at least this number of supporting point (set to 0 to disable).
- enableSplit=1 (r/w Enable split, i.e. reduce line to group with most measurements
- lineEatDist=0.03 (r/w) after line generation, regard measurements this close to the line as false measurements
- ignoreIfFixed=0 (r/w) ignore produced obstacles that overlap mapped fixed obstacles
- debugDumpScanOn=0 (rw) at this scan-number will the debugDump flag be set true
- debugDumpScanOff=0 (rw) at this scan-number will the debugDump flag be set false
- noObst=0.33 0.17 -0.2 -0.17 (rw) Area where obstacles are ignored (below robot) front-left (x,y) and back-right (x,y) in robot coordinates
Result/status variables
- scan=0 (r) latest scan number processed
Functions calls
none
Functions commands (for both SMR and SMRCTL resource)
From the on-line help
device=N Use scanner device N (else default) fake=F Fake data from this device - F=1..4 any Use any scan (ignore already used flag) make Make obstacles from scan obst Send findings to obstacle resource silent Do not send obstacles to client list list newest ransac lines help This message
Configuration example
Configuration used for indoor smr use.
module load="./aulobst.so.0" var lobst.minSplitCnt=2 ; splitDist defines minimum opening var lobst.splitDist=0.15 var lobst.maxLineIterations=25 var lobst.maxSamples=100 var lobst.noobst="0.33 0.17 -0.2 -0.17 var lineEatDist=0.03