Git Product home page Git Product logo

ekf_slam's Introduction

Welcome to ekf_slam

Please note that development for this this project is on going, and the use of it is free, but please do not hold us responsible for any damage or injuries that may occur.

A description of directories and their contents can be found in DIRECTORIES.md within the root directory.

Parts

Here is the list of parts we are using for our project.

You can use parts other than the ones listed above but obviously the code will need to be changed accordingly.

Licensing

ekf_slam is licensed using GPLv3 from v3.0.5 onwards. For more information on what this means for you, please see LICENSE.

Installation

This project is being written for the use of a Beaglebone Black running Ubuntu 16.04 LTS (available at https://rcn-ee.net/) and ROS kinetic. Make sure to install ROS kinetic according to the installation instructions on http://www.ros.org/ before downloading and installing this package. To install the package, clone or download this repository into the top level source directory of your ROS workspace.

The project requires 2 libraries in order to be able to build: libxbee3 and BlackLib. These libraries are included in the lib directory as gitmodules. To install libxbee3, follow the installation instructions found in its README. For BlackLib, I have added a CMakeLists.txt to the version used in this project so it will build the necessary objects. The gitmodule I included should be for the version with CMakeLists.txt included but I am still learning Git so check to make sure the file is present. If it is not there, it can be found in the master branch of the BlackLib repository forked to my account.

Here are links to both repositories that I have forked for this project:

NOTE: Since the Eigen library is included in ROS (since Electric), the Eigen library is not included as a submodule in this repository. The CMakeLists.txt adds the library from ROS instead.

Building

In order to build the package, it is advised to use the combination of cmake and catkin tools provided with ROS kinetic. In the root directory of your ROS workspace, use this command to build all ROS packages:

$ catkin_make

Or, for just the ekf_slam package:

$ catkin_make --pkg ekf_slam

Obviously this will only work in a Linux distribution supported by ROS kinetic and has it installed.

Usage

Currently this package is written as a standalone node. To run the node, use this command in the root directory of your ROS workspace:

$ roslaunch ekf_slam node.launch

Although there are no current plans to convert this node to a ROS package for use on other platforms, it is possible that this may be done after the completion of this project.

Interfaces

Right now the package is written in a way so you must add changes to main.cpp and recompile in order to make changes to the program. However, due to the way ROS works, it is possible to add control of the operation of the package from another language over a network (such as MATLAB using the Robotics System Toolbox). If (and when) these interfaces are created, the source for the executable will be added to the Interfaces directory of this repository. A new launch file for the associated executable will also most likely be added to the launch directory.

ekf_slam's People

Contributors

khevrdejs avatar thesmallhill avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Forkers

tiandaji

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.