openslam_gmapping's People
Forkers
amorellg clonzz redheli srd-sn dkargin imclab koenlek ysuga awesomeleo rahulsinghk998 dr-lingyunxu shaswat27 todivasudha satyeshmundra 130s dabarsch qh-huang vrabaud punithm iou16 raucha zengzhen avr92 lfmaster hitsz-qfy nickxiang0306 yhexie trigrass2 fnaser iefiac bowang rgkoo vbillys kykleung zhehe naoki-kameyama dkohei grapesonwang cristian-frincu eybee stormtiti alittleharry serhatkilicc 9578577 bluewhalerobot lukeqsun xuelianjie ak2792797 hchrobo yswhynot chenhancheng yangchj dimens66 zhh368 renweizhukov image-amazing hollisjoe mountainxiu allenh1 bponsler volcanoh bulwahn e1618 collector-m jixiaonanshine zhiqiang123 bluebird581 hkp119 xiaotianwork bailiqun vicgarfield zhafree raistlinsp mozammalchy k-okada stanfordasl tarunuday wangpeis pinto0309 casiarobot caoyifeng001 ottffive shishiteng trainman419 leonsun0101 sweetquiet conanhung hyfine petertdd harsha336 leetaeklim zhengzh danieldugas chenming5828 lianxv-primer fraleca koichihik kd1900 mutou-2015 arkinrcopenslam_gmapping's Issues
gaussian distribution generator
In the file: openslam_gmapping/utils/stat.cpp
the generator uses drand48 as the seed is been set with srand, it should be srand48. The way it is, the seed is never set.
question about ScanMatcher::score
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^2sqrt(2) (freeDelta = sqrt(2))
i think r - deltasqart(2) can show the range of pfree ,but the equation above i don't know its mean.
Problem with installation
hi there,
I'm using ros hydro and after I install the package (using a catking ws and catkin_make, because rosmake doesn't find the package) and tried to run it, it does not apear to be installed. Should I use ros groovy instead? The way i'm doing it is wrong? Any suggestions?
Greatings
Slow memory leak in GMapping::GridSlamProcessor::processScan and GMapping::Array2D
I am running slam_gampping
to map an area and have noticed a small but increasing memory leak in openslam_gmapping
Valgrind output with sample of memory leak after running 5-10 minutes:
==402070==
==402070== 3,720 (744 direct, 2,976 indirect) bytes in 31 blocks are definitely lost in loss record 1,086 of 1,119
==402070== at 0x483C583: operator new[](unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==402070== by 0x102E4F7C: GMapping::Array2D<GMapping::autoptr<GMapping::Array2D<GMapping::PointAccumulator, false> >, false>::Array2D(int, int) (in /opt/robotics/incubed-ros-pkg/lib/libslam_gmapping_nodelet.so)
==402070== by 0x10349192: GMapping::HierarchicalArray2DGMapping::PointAccumulator::HierarchicalArray2D(GMapping::HierarchicalArray2DGMapping::PointAccumulator const&) (in /opt/ros/noetic/lib/libgridfastslam.so)
==402070== by 0x1034AA7B: void std::vector<GMapping::GridSlamProcessor::Particle, std::allocatorGMapping::GridSlamProcessor::Particle >::_M_realloc_insertGMapping::GridSlamProcessor::Particle(__gnu_cxx::normal_iterator<GMapping::GridSlamProcessor::Particle*, std::vector<GMapping::GridSlamProcessor::Particle, std::allocatorGMapping::GridSlamProcessor::Particle > >, GMapping::GridSlamProcessor::Particle&&) (in /opt/ros/noetic/lib/libgridfastslam.so)
==402070== by 0x10348023: GMapping::GridSlamProcessor::init(unsigned int, double, double, double, double, double, GMapping::orientedpoint<double, double>) (in /opt/ros/noetic/lib/libgridfastslam.so)
==402070== by 0x102CA945: SlamGMapping::initMapper(sensor_msgs::LaserScan<std::allocator > const&) (in /opt/robotics/incubed-ros-pkg/lib/libslam_gmapping_nodelet.so)
==402070== by 0x102CF888: SlamGMapping::laserCallback(boost::shared_ptr<sensor_msgs::LaserScan<std::allocator > const> const&) (in /opt/robotics/incubed-ros-pkg/lib/libslam_gmapping_nodelet.so)
==402070==
==402070== LEAK SUMMARY:
==402070== definitely lost: 2,376 bytes in 94 blocks
==402070== indirectly lost: 11,696 bytes in 277 blocks
==402070== possibly lost: 4,496 bytes in 15 blocks
==402070== still reachable: 12,037,790 bytes in 4,503 blocks
==402070== of which reachable via heuristic:
==402070== stdstring : 71 bytes in 1 blocks
==402070== newarray : 776 bytes in 1 blocks
==402070== suppressed: 0 bytes in 0 blocks
Valgrind summary output after 2+ hours:
==551222==
==551222== LEAK SUMMARY:
==551222== definitely lost: 141,136 bytes in 3,187 blocks
==551222== indirectly lost: 4,014,392 bytes in 6,925 blocks
==551222== possibly lost: 4,560 bytes in 15 blocks
==551222== still reachable: 11,984,536 bytes in 4,005 blocks
==551222== of which reachable via heuristic:
==551222== newarray : 776 bytes in 1 blocks
==551222== suppressed: 0 bytes in 0 blocks
I have tracked down the memory leaks as coming from GMapping::Array2d
and another in the lack of delete of GMapping::TNode::reading
there exit serious bug in funciton "inline double ScanMatcher::score" and inline unsigned int "ScanMatcher::likelihoodAndScore"
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<readings+m_laserBeams; r++, angle++){
IntPoint ipfree=map.world2map(pfree);
for (int xx=-m_kernelSize; xx<=m_kernelSize; xx++)
for (int yy=-m_kernelSize; yy<=m_kernelSize; yy++){
IntPoint pr=iphit+IntPoint(xx,yy);
IntPoint pf=pr+ipfree;
.......
//}
}
}
}
the line "IntPoint ipfree=map.world2map(pfree);" exist bug, it cannot calculate relative grid position.
IntPoint Map<Cell,Storage,isClass>::world2map(const Point& p) const
{
return IntPoint( (int)round((p.x-m_center.x)/m_delta)+m_sizeX2, (int)round((p.y-m_center.y)/m_delta)+m_sizeY2);
}
assume pfree = (0.1, 0.1), m_center=(0,0),m_delta = 0.05, m_sizeX2 = 200,m_sizeY2=200,then calculate ipfree=(202,202)
so in function "socre", the distance between pr and pf is about ipfree=(202,202),it isn't right,so do in the function "likelihoodAndScore".
Build gmapping node with openslam_gmapping wrapper
Hi there,
I'm trying to compile openslam_gmapping package to build ros node for gmapping, because i want to modify the code. I download it from (https://github.com/ros-perception/openslam_gmapping). And using catkin_make to compile this package. This runs successfully, but it does not generate any executable files but some share objects(libgridfastslam.so,libscanmatcher.so... in devel/lib).
I read the cmakelists.txt. it seems not command to add executable file.
"""
cmake_minimum_required(VERSION 2.8)
project(openslam_gmapping)
find_package(catkin)
catkin_package(
INCLUDE_DIRS include
LIBRARIES gridfastslam scanmatcher sensor_base sensor_range sensor_odometry utils
)
include_directories(include)
add_subdirectory(gridfastslam)
add_subdirectory(scanmatcher)
add_subdirectory(sensor)
add_subdirectory(utils)
install(DIRECTORY include/
DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN ".h"
PATTERN ".hxx"
PATTERN ".svn" EXCLUDE
)
"""
Do I need to modify cmakelists? I just want to build a gmapping node from source so i could using it just like 'rosrun gmapping slam_gmapping'. What Shoud I do? Is there any way to build gmapping ros node from source?
My environment:
ubuntu12.04-hydro.
I already source the setup.bash of my catkin workspace.
I just download the code and do catkin-make and there is no executable file in devel and i try to run 'rosrun openslam ', there is nothing in second argument when i using tab.
Please help me. Thanks.
question about git source and ros-kinetic-openslam
is there are same the source code? (in here git source & ros-kinetic-openslam )
I learn about openslam gmapping and check the operation (iteration) loop time both of them.
that's why there operation loop time is difference.
It would see something difference...
Now I checking about parameter setting... but I do not know yet what is there difference.
License reassigned from CC to BSD
In commit a91e670 the license was changed from CreativeCommons-by-nc-sa-2.0
https://github.com/ros-perception/openslam_gmapping/blob/master/package.xml#L6
to BSD
a91e670#diff-34ae68f4adad56c25c5bc05dcb64794eR8
Which seems like a mistake. Should this be reverted?
Potential bug in particlefilter.h
In particle filter.h there's the following code snippet:
openslam_gmapping/include/gmapping/particlefilter/particlefilter.h
Lines 140 to 142 in c716f01
But this
if
doesn't guard anything, thus the second line out++
is always executed regardless of the if. Am I missing something?bug in flags checking in map.h?
It seems that there might be a bug in map.h, as reported by @dpinol in ros-perception/slam_gmapping#10
ROS Melodic release
Is this planned?
This package blocks e.g. Turtlebot release turtlebot/turtlebot#272
Release openslam_gmapping into ROS Noetic?
Would you mind releasing openslam_gmapping
to ROS Noetic? It looks like all of its dependencies have been released, and recursively 14 repos need it.
I'm not sure how much work it will need. The Noetic Migration Guide or the guide about transitioning ROS packages to Python 3 may be useful.
Why is HierarchicalArray2D used?
As far as i am concerned, Array2D functions the same and can achieve better performance.
remove reference to old license
Please update all the headers
see gentoo/gentoo#20022
Why not change m_center in "resize()" function?
In include/gmapping/grid/map.h ,
m_center is updated in every constructor of Map class.
But m_center not changes in "resize"
(I just guess center should be changed after map resize)
Why??
Please tell me .........
ROS Lunar Release
Please release this package for Lunar!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.