RUSTY is a warhouse robot capable of perfoming various tasks for a warehouse.
roscd
cd ../src
git clone https://github.com/siddarth09/Rusty.git
cd ..
catkin_make
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
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
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
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:=
- 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>
Here rusty is used to pick and place virtual objects from one location to another.
roslaunch rusty HomeService.launch
or
./homeservice.sh
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.
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
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
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
-
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 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