Coder Social home page Coder Social logo

carpet_localisation_ros's Introduction

Carpet Localisation ROS

A ROS package for running carpet localisation on a ROS enabled robot.

Includes gazebo simulation of a representative carpet world for testing.

For an overview of the broader project, see the wiki.

roomba on carpet

Figure: Roomba in target localisation enviroment. Localisation is achieved with reference to a map of the carpet color pattern throughout the office.

Build

Build process is tested on ROS Noetic / Ubuntu Focal.

create_robot is also built from source, as the gazebo simulation uses create_description, and this is not currently released in Noetic.

# apt deps:
sudo apt install python3-vcstool python3-catkin-tools

# clone sources:
mkdir -p catkin_ws/src && cd catkin_ws/src
curl https://raw.githubusercontent.com/tim-fan/carpet_localisation_ros/main/workspace.repos | vcs import

# install rosdeps:
rosdep install --from-paths carpet_localisation/ create_robot/create_description/ map_to_odom_publisher/ rviz_textured_quads/ --ignore-src --rosdistro noetic

# disable buiding packages which fail on noetic:
touch create_robot/create_bringup/CATKIN_IGNORE
touch create_robot/create_driver/CATKIN_IGNORE

# build:
cd ..
catkin config --extend /opt/ros/noetic/
catkin build

Usage

Simulation:

To launch the simulated carpet world:

source devel/setup.bash
roslaunch carpet_localisation carpet_simulation.launch

You should see a gazebo world like the following:

carpet world

If you have an xbox-style controller connected, you will be able to drive the simulated carpet robot around the environment.

Now launch localisation:

roslaunch carpet_localisation carpet_world_localisation.launch

And visualisation:

roslaunch carpet_localisation rviz.launch

RViz will show a localisation dashboard, showing the carpet camera feed, images with classification results, and current particle filter state: carpet world in rviz

TODO

  • find a better way of determining current pose from particle cloud (mean of oldest 20%?)
  • expose particle filter config params (n_particles, noise params, update thresholds)
  • dynamic reconfigure support
  • parameter optimisation (w.r.t accuracy to ground truth in gazebo)

carpet_localisation_ros's People

Contributors

tim-fan avatar

Stargazers

 avatar

Watchers

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