Giter VIP home page Giter VIP logo

adler-1994 / gmcl Goto Github PK

View Code? Open in Web Editor NEW
44.0 4.0 8.0 176 KB

gmcl, which stands for general monte carlo localization,is a probabilistic-based localization technique for mobile robots in 2D-known map. It integrates the adaptive monte carlo localization - amcl - approach with 3 particle filter algorithms (Optimal, Intelligent,Self-adaptive) to improve the performance of amcl while working in real time........Main node structure and amcl-algorithms’s code was derived, with thanks, from Brian Gerkey's amcl package.

License: GNU Lesser General Public License v2.1

CMake 1.01% Python 2.85% C 39.36% C++ 56.77%

gmcl's People

Contributors

adler-1994 avatar

Stargazers

Joshua J. Damanik avatar Lê Huy Hiếu avatar Yi Xie avatar Tomoya Itsuka avatar Yang avatar  avatar Min Hyeok avatar LotfiZZ avatar  avatar JinSeong Park avatar  avatar Yoon, Seungje avatar wangfei avatar Syahmi Zulkepli avatar  avatar  avatar  avatar Xu Yang avatar Sai Nikhil Rao Gona avatar Salih Marangoz avatar Yuxiang Guan avatar amjack avatar  avatar Thomas Ung avatar Michael Ma avatar  avatar  avatar  avatar Muhua ZHANG avatar  avatar  avatar  avatar Miguel A. Vega Torres avatar  avatar  avatar  avatar Sariel Wong avatar  avatar zhouzuhong avatar Aditya Bidwai avatar Matthijs van der Burgh avatar Tomato1107 avatar WangNing avatar Ting Chang avatar

Watchers

 avatar zhouzuhong avatar WangNing avatar  avatar

gmcl's Issues

Some questions about the paper

Hi, I am very interested in your work.
Here are some questions I want to ask, thanks for your help !!

(1) In your paper, I saw the parameters called "energy_map_resolution_x" and "energy_map_resolution_y".

What are their meanings?
In my thought, I think it's the range from the center of the sensor. In this range, the filter will calculate the SER.
Is my thought right?

(2) In your experiment(1), you decide the specific position for the robot. Then use different methods to calculate the RMSE.
How did you set the specific position of the robot? And how did you calculate the RMSE at every point?

Sorry to bother you. Thanks for your reading and hard work!!
Have a nice day ~~

gmcl node crashes when after increase the update rate

I was using gmcl to localize my robot to replace the amcl, it works fine in the beginning, and it feels much better than amcl, however, when I decrease the parameter: update_min_d to be 0.001, and update_min_a to be 0.001( for I wish the pose to converge quickly) as I did to my amcl parameters, it crashes when I run the amcl_omni.launch, after multiple times of updating, I tried the combination of those algorithms but it all just got the same crashes, and also, I've set all the odom_alphax parameters 10 times lower. P.S. I was using a differential robot with two lidar, I cannot use the motion model of diff because my robot will move backward, and when it did moving backward in a low speed, the gmcl( so does amcl) doesn't update, only the omni model works in slow speed and fast speed. So what is the problem of this crashes? I really wish to use this new techneq to improve my robot's localization ability and relocalization ability. Thanks

Some question about:modified intelligent particle filter

First of all, thank you for open source gmcl, I have a little doubt about the IPF part:

The pose cross mutation formula in the source code seems to be inconsistent with the one given in the paper?

sample_l->pose.v[0] = pf->crossover_alpha*(2*sample_h->pose.v[0] - sample_l->pose.v[0])

image

Simplifying the formula does not seem to correspond, I don’t know if there is a problem with my understanding, and I look forward to your reply! @adler-1994 :)

ROS2 version

Hi

Do you have any ROS2 gmcl version? I would like to try it out.

Best,
Samuel

takeing too much time when loading a big map

Hi again, your algorithm is a very nice one in global localization, our company needs it for our forklift's localization. Recently, our robot is working in a big factory, and it needs to change map since it runs within two floors, one of them is a small map, which doesn't make a problem, but the other one is a big map, it is around 125m x 125m, using 0.05 resolution, we had scanned a map with size around 2500 x 2500 pixels, when robot change map from the small map to the big map, it takes around 20 seconds to make the tf starts to publish, I'm wondering if there is any way to make it load a map faster or this process faster so that my robot doesn't stay still for too long, thanks a lot.
P.S. our robot is using a I5-6400 CPU and 8GB RAM and 128GB SSD, the gmcl launch file is in the attachment.
robot_localization.txt

Node dies after receiving Map

Hello, thank you for providing an alternative to the amcl.

I really want to try it compared to the amcl, since I have a lot of trouble in more complex environments.
Sadly, I cannot get the GMCL to start. Since I use my own Map Server I used the use_map_topic param. The node also seems to get the Map.
[ INFO] [1655197709.379978395]: Subscribed to map topic. [ INFO] [1655197713.441459081]: Received a 608 X 384 map @ 0.050 m/pix
But after that it crashes. For testing I removed line 963 in the gmcl_node.cpp
freeMapDependentMemory();. This allowed me to at least start the node.
But I did not had time to test the functionality yet.

Thank you for taking your time reading that.

No tests

The outcome looks great but there are no tests which is making it difficult for new people to use this package

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.