This repository consists of some basic methods and algorithms used in Mobile Robots field taught at Technische Universität Dortmund. In order to implement the algorithm on Robotic applications in simulation, Robot Operating System(ROS) is used. The ROS environment is launched in Ubuntu 16.04. In particular, we use Stage and Gazebo simulator with the configuration of the Turtlebot robot in the Stage simulator. We also utilise Rviz as the standard ROS tool for visualization of data, for example scan data of a range finder. The Mathworks Robotics System Toolbox connects the ROS master and subscribes to ROS nodes.
- Ubuntu 16.04
- MATLAB
- Robot Opearing System
- Gazebo
- Stage
Gazebo is a multi-robot simulator for indoor and outdoor environments. Like Stage it is able to simulate multiple robots, sensors and objects. The main difference between Stage and Gazebo is that the later resides in a three-dimensional world and supports the simulation of rigid-body physics, namely robots that push things around, pick things up. Robots generally interact with the world in a plausible manner, for example a Turtlebot robot starts to spin if centrifugal forces on a curved trajectory exceed a threshold. RViz uses the tf transform system for transforming data from the coordinate frame it arrives in, into a global reference frame. There are two coordinate frames that are important to know about in the visualizer. The fixed frame is the reference frame used to denote the world frame. This is usually the map, or world, or something similar, but can also be, for example, your odometry frame. For correct results, the fixed frame should not be moving relative to the world. The target frame is the reference frame for the camera view. For example, if your target frame is the map, you see the robot driving around the map from the perspective of an outside observer. Rviz provides a number of different camera perspectives so called views to visualize the environment. A display in rviz is something that draws something in the 3D world such as a point cloud or the robot state. The Rviz User Guide explains the GUI and the functionalities that Rviz provides. The Robot frames in RViz is shown in the figure below:
The modules covered includes:
- Scan Matching
- Reactive Obstacle Avoidance
- Robot Homing
- Obstacle Avoidance
- Monte Carlo Localization