GithubHelp home page GithubHelp logo

openslam_gmapping's People

Contributors

alessandro-barbieri avatar k-okada avatar mikeferguson avatar seanyen avatar tobias-fischer avatar wjwwood avatar wyckster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openslam_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 - delta
sqart(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.

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 .........

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.