GithubHelp home page GithubHelp logo

diegoavillegasg / amcl-to-localize-a-differential-robot Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 11.64 MB

Localization of a simulated differential robot in gazebo with the adaptive (or KLD-sampling) Monte Carlo localization ros package. This approach uses a particle filter to track the pose of a robot against a known map.

CMake 6.35% Python 6.96% C++ 49.08% Objective-C 0.15% C 37.45%
amcl

amcl-to-localize-a-differential-robot's Introduction

Where am I Project - Robotics Udacity ND

AMCL ROS package to localize a differential robot in Gazebo

A differential drive robot using adaptive Monte Carlo localization algorithm to localize itself in a map. In this case the amcl node is subcribed to laser and odometry data.

Dependencies

$ sudo apt-get install ros-kinetic-navigation

$ sudo apt-get install ros-kinetic-map-server

$ sudo apt-get install ros-kinetic-move-base

$ sudo apt-get install ros-kinetic-amcl

Try with your own World!

Follow this instructions to create a map from your own gazebo world

PGM map creator deps

$ sudo apt-get install libignition-math2-dev protobuf-compiler

Open a terminal to copy your world file into pgm_map_creator subfolder,

cp ~/your_world_file.world src/pgm_map_creator_world/

Edit this world file you just copied, adding a single line to insert the map creator plugin just befor closing the </world> tag:

<plugin filename="libcollision_map_creator.so" name="collision_map_creator"/>

run gzerver with your modified map file:

gzserver src/pgm_map_creator/world/<YOUR GAZEBO WORLD FILE>

Open another terminal to launch the request_publisher node

roslaunch pgm_map_creator request_publisher.launch

It will create a pgm map in the folder src/pgm_creator_map/maps/

Copy this file map.pgm into src/my_robot/maps/

Now, if you rename .pgm file, check the mymap.yaml file, placed in subfolder pgm_map_creator/maps, has the correct value for the image param.

Demo

Launch in a terminal, after build and source the environment variables: roslaunch my_robot world.launch

Open a new terminal, source the environment variables and type: roslaunch my_robot amcl.launch

Set a 2D Navigation Goal in RVIZ

Using teleop twist keyboard

Open a new terminal and type: rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Notice how the robot's position is quickly corrected, although its initial pose:

amcl-to-localize-a-differential-robot's People

Contributors

diegoavillegasg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.