Code Monkey home page Code Monkey logo

where_am_i's Introduction

Where_Am_I

License: MIT Linux Atom CodeFactor Issues Issues

Localisation project for Udacity's Robotics Software Engineer Nanodegree program where I use EMCL algortihm to localise my custom robot inside the Gazebo World!

AMCL algorithm working

Environment

👉 Ubuntu 16.04 LTS
👉 ROS Kinetic Kame
👉 Gazebo 7.8.1
👉 rviz 1.12.17
👉 C++ 11
👉 ROS AMCL, Navigation, Move Base and Map Server Kinetic packages.

Compiling and Running

Dependencies

You might need to install the following packages:

$ 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
$ sudo apt-get install libignition-math2-dev protobuf-compiler

Compiling

First, make sure you have sourced your ROS distro into the terminal environment

source /opt/ros/kinetic/setup.bash

Then, create a catkin workspace (skip this step if you already have one)

mkdir -p /home/workspace/catkin_ws/src/
cd /home/workspace/catkin_ws/src
catkin_init_workspace

Clone this repository inside the catkin_ws folder

git clone https://github.com/MichelleMouse/Where_Am_I.git .

Build the package and source the .bash setup into the environment

cd ..
catkin_make
source devel/setup.bash

You might need to clone the pgm_map_creator repository:

cd /home/workspace/catkin_ws/src/
git clone https://github.com/udacity/pgm_map_creator.git
cd ..
catkin_make

If you have any issues at compiling the project have a look at the tab Issues for possible solutions.

Running

Launch the simulation environment and RViz

roslaunch my_robot world.launch

Then, open a second terminal, source ROS and devel/setup.bash and run the amcl launch file

cd /home/workspace/catkin_ws/
source devel/setup.bash
roslaunch my_robot amcl.launch

To give the robot a goal position, you can take the following approaches:

  1. Send a 2D Nav Goal using rviz
  2. Run the node teleop_twist_keyboard in another terminal and use the keyboard to control the robot

where_am_i's People

Contributors

michellemouse avatar

Watchers

 avatar

where_am_i's Issues

Failed build: collision_map_creator.cc:35:23 and collision_map_creator.cc:91:55:

catkin_make fails with the following error messages:

[...]collision_map_creator.cc:35:23: error: ‘class gazebo::physics::World’ has no member named ‘GetName’; did you mean ‘Name’?  
node->Init(world->GetName());   
^~~~~~~   
[...]collision_map_creator.cc:91:55: error: ‘class gazebo::physics::World’ has no member named ‘GetPhysicsEngine’; did you mean SetPhysicsEnabled’?   
gazebo::physics::PhysicsEnginePtr engine = world->GetPhysicsEngine();   
^~~~~~~~~~~~~~~~  

Refers to the cloned repository to create the PGM Map needed to localise the robot.

pgm_map_creator catkin_make error make:4: *** missing separator. Stop.

Currently getting the following error message while building the project in a new environment:

pgm_map_creator/msgs/CMakeFiles/collision_map_creator_msgs.dir/depend.make:4: *** missing separator.  Stop.
CMakeFiles/Makefile2:1474: recipe for target 'pgm_map_creator/msgs/CMakeFiles/collision_map_creator_msgs.dir/all' failed
make[1]: *** [pgm_map_creator/msgs/CMakeFiles/collision_map_creator_msgs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 20%] Built target ball_chaser_generate_messages_cpp
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j2 -l2" failed

Environment:
Ubuntu 16.04
ROS Kinetic
Gazebo 7

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.