siddarth09 / Rusty

Rusty is autonomous mobile robot, used in warehouse automation and home service application for pick and drop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rusty

RUSTY is a warhouse robot capable of perfoming various tasks for a warehouse.

rusty v7

Installation

roscd
cd ../src
git clone https://github.com/siddarth09/Rusty.git
cd ..
catkin_make

KALMAN FILTER

This folder contains basic understanding of the kalman filter for 1-Dimensiona and multidimensional filters.

The kalman filter is basically used to localise a robot in its environment by given sensor measurements. STEPS INVOLVED:

  • Measurement update
  • State transition update or motion update

3D mapping:

Real time apperaence based mapping or RTAB-map is used to 3D map the environnment by using a laser scanner and a depth camera attached to the bot This mapping is one type of Graph-based SLAM which involves two mechanisms

  • Front end: sensor update, Odometry update and loop closure
  • Back end: Graph Optimization, 2D or 3D map generation

IMPORTANT TERMINOLOGY:- 1.Loop closure: Process of finding a match between the current and previously listed location. It uses visual bag of words and updates iteratively by checking and filtering through extraction of features in the map

LINK FOR THE RTAB-MAP DB file

SLAM

Simultaneous localization and mapping (SLAM) is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an agent's location within it. Here we are using RTAB-mapping, gmapping, Karto-slam packages to map the given environment for navigation purposes

To run Gmapping package

roslaunch rusty gmapping.launch

To run Karto-SLAM package

roslaunch rusty karto_slam.launch

NAVIGATION STACK (SIMULATION)

The navigation stack is updated with DWA planner algorithm which uses Djikastra's algorithm to find the shortest optimal path.

To use the navigation stack

roslaunch rusty navigation.launch 

-Fine tune the parameters per use case -Also to use the custom map file, you can specify the map_file:=

Different world available:

  • House-world, consits of a big map for the robot to be used a home service robot to pick and place objects
  • Office-world, small area for the robot to transverse itself in narrow spaces
  • Godown-world
roslaunch rusty gazbeo.launch world_name:= <path-to-your-desired-world>

USE CASES

CASE 1: HOME SERVICE ROBOT

Here rusty is used to pick and place virtual objects from one location to another.

roslaunch rusty HomeService.launch 

or

./homeservice.sh

RUSTY-robot

Rusty,is a "picking assist AMR", the robots travel to pick locations, where operators deliver goods based on the robot’s needs. We are currently in R&D and mainly using it for delivery of documents, beverages for us from the canteen at our college.

WhatsApp Image 2022-05-06 at 7 25 30 PM

Important Launch files for using rusty or impelment rusty software on your custom bot

ROBOT STARTUP

The Robot has to be connected to the motor driver. We are using L298N H-bridge motor driver, with 12v 500 RPM motors. The robot also uses RPLiDAR A1 connected the pi. Do refer rplidar-ros.

To run the LiDAR and motors

 roslaunch rusty_firmware motor_run.launch 
  
  • SLAM

The following launch file will start HECTOR SLAM node

roslaunch rusty rusty_slam.launch

NOTE:

Here rusty uses laser odometery, generated by undocumented part of hector slam. The hector slam package provides a parameter used to publish odometry of the robot

LOCALIZATION AND NAVIGATION using ROS packages

  • Localization

Here we are using odometry by the laser scanner through hector slam. We are using AMCL or adaptive monte carlo localisation, for localisation.

 roslaunch rusty robot_localize.launch
  • Navigation

    The navigation stack using laser odometry, uses dijkastra's algorithm to create shortest path algorithm.

    To run the navigation stack

  roslaunch rusty navigation.launch 

NOTE:

The Hector slam package can be used for implemnting in smaller areas and can use navigation for the same.

CARTOGRAPHER

cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations. This project provides Cartographer’s ROS integration. We have added the installation link for the cartographer node.

IMPORTANT: Please create another workspace to compile cartographer, it can be used later by sourceing the workspace in the bashrc file

To run the cartographer package:

  source ~/catkin_ws/install_isolated/setup.bash
  roslaunch rusty cartographer_slam.launch

After saving the map, you can add your map to navigation launch file and run the navigation

About

Rusty is autonomous mobile robot, used in warehouse automation and home service application for pick and drop

License:MIT License


Languages

Language:CMake 50.2%Language:Python 32.9%Language:C++ 11.7%Language:Lua 3.6%Language:Shell 1.5%