openslam_gmapping
openslam_gmapping copied to clipboard
Remove limit of number of laser scans (`LASER_MAXBEAMS`) to support high resolution laser scan devices. ### Related Issue - ros-perception/slam_gmapping#70
The free cell is calculated somewhere off the map. Since unvisited cells return -1 which is lower than the fullness threshold it wasn't dramatically influencing the scoring. Moreover in icpStep...
These few commits ported gmapping GUI tools (gfs_simplegui, gfs_nogui, gfs_logplayer, gfs2img) to Qt-5 and re-enabled log tools (log_plot, log_test, rdk2carmen, scanstudio2carmen). It has been tested on Ubuntu 14.04 with Qt-5.2.1
I profiled the gmapping process and found that the scan matching particle filter is very time consuming. It easily forces even more modern CPU cores to 100% load on larger...
With glibc-2.26, openslam_gmapping failed to compile with: ``` | [...]/gridfastslam/gfsreader.cpp: In member function 'virtual void GMapping::GFSReader::RawOdometryRecord::read(std::istream&)': | [...]/gridfastslam/gfsreader.cpp:79:3: error: no match for 'operator==' (operand types are 'std::istream {aka std::basic_istream}' and...
Ubuntu 16.04, ROS Kinetic. gmapping kept crashing when I published high resolution laser scans, it took me a while to figure out why. The cause of the crash was especially...
From http://answers.ros.org/question/10294/how-to-suppress-the-annoying-gmapping-messages-related-to-laser-scans/, there was a request for a PR for writing debug messages to the `ROS_DEBUG*` macros instead of `cerr`. The messages are ennoying because they cannot be turned off...
in this function ,to caculate pfree,there are `double freeDelta=map.getDelta()*m_freeCellRatio;`and `pfree.x+=(*r-map.getDelta()*freeDelta)*cos(lp.theta+*angle); pfree.y+=(*r-map.getDelta()*freeDelta)*sin(lp.theta+*angle);`; obviously r - delta^2*sqrt(2) (freeDelta = sqrt(2)) i think r - delta*sqart(2) can show the range of pfree ,but...
``` inline double ScanMatcher::score(const ScanMatcherMap& map, const OrientedPoint& p, const double* readings) const{ ....... double freeDelta=map.getDelta()*m_freeCellRatio; for (const double* r=readings+m_initialBeamsSkip; r
In particle filter.h there's the following code snippet: https://github.com/ros-perception/openslam_gmapping/blob/c716f0192131029b31a49554f8c11353d29819a5/include/gmapping/particlefilter/particlefilter.h#L140-L142 But this `if` doesn't guard anything, thus the second line `out++` is always executed regardless of the if. Am I missing...