Download the mrxt package from the download section. Make doubleclick on the package file or run:
sudo dpkg -i mrxt_1.1-1_i386.deb
The mrxt package depends on Qt4, OpenCV and Loki. They will be also installed if they are not present in the system.
MRXT allows you to run a simulated scenario with multiple mobile robots on it. In this sense, the main windows is divided in two parts. The left part corresponds to the simulated scenario where the real positions of the robots, the landmarks and the obstacles are displayed. The right part of the screen displays the maps that the team of robots is creating. The landmakrs positions are shown as green ellipses superposed over an occupancy grid map. The robot positions and covariance is illustrated by blue ellipses.
There are several properties that can be changed for the simulation:
- Number of robots in the team: Can be changed in the toolbar at the bottom of the main screen.
- Robots Settings: It is assumed a homogeneous team of robots. The properties of the camera, laser, odometry, maximum speed and shape of the robot can me changed in the menu "Edit:Robot Settings":
- Camera Settings: Stereo camera model used for locating the landmarks:
- Focal length: For both cameras.
- Base Line: Distance between cameras
- Max Distance: Landmarks will not be considered beyond this distance.
- Min Distance: Landmarks will not be considered closer than this distance.
- Width/Height: Size of the image
- Sigmac/Sigmar: Projection error in pixels for x and y axes (Calibration).
- Sigmad: Standard deviation of the disparity (Calibration).
- Camera x,y,z: Relative position of the right camera to the robot base coordinate frame.
- Laser Settings: Horizontal laser for obstacle detection.
- Num points: Number of points in the scan
- Min/Max angle: Minimum and maximum angle of the scan
- Max/Min distance: Maximum and minimum distance for obstacle detection.
- Sigma: Distance mean error.
- Laser x,y,z: Relative position of the laser with respect to robot base coordinate frame
- Odometry Settings: typical noise parameters alfa1, alfa2, alfa3, alfa4 for a rotation-translation-rotation model.
- Speed Settings: VMax, WMax, maximum linear and angular speed of the robots.
- Shape/Footprint: x,y coodinates of the robot footprint points.
- Simulation Settings: Can be changed in the menu "Edit: Configuration":
- Sample Time: This is the sample step for the simulation as well as for the SLAM. However, the simulation will work synchronally with the SLAM with a "process as fast as you can" model. This means that the simulation will run faster than real time at the beginning, since the SLAM is able to process the data very fast because the number of landmarks in the map is small, and it will be close to real time at the end of the simulation. This model allows us to get fast simulations.
- Initial Poses Random Generator: The "Random Poses" button in the toolbar is used to generate random positions for the robots. Generally, we want the robots to start exploring near each other in order to have a realistic configuration where their initial relative positions can be found at the begining. In this sense, the maximum and minimum distance between robots for the ramdom pose generator can be adjusted in the configuration window.
The simulation process can be controlled with the play and stop buttons of the toolbar. It is required a map previously loaded before starting a simulation. Once started the simulated time elapsed will be displayed in the toolbar and the created maps will be shown in the right part of the application. At any moment the simulation can be stopped with the stop button. Once the simulation is finished or stopped a pop-up windows will indicate the total time and the map error.
The simulation saves logs for each simulation. The logs of the last simulation can be saved using the "Simulation" menu in matlab format. The occupancy grid map can also be saved as an image. This is the full list of exports allowed:
- Landmarks Map: Matlab .m file with a matrix with a row for each landmark containing the x, y and z coordinates, 9 values corresponding to the covariance matrix of the position of the landmark and its id.
- Occupancy Map: jpg image
- SLAM log: Matlab .m file with a matrix with a row for each time step containing the step and the x, y and theta coordinates for each robot of the team according to the SLAM algorithm.
- Ground truth: Matlab .m file with the same format than the SLAM log but with the real ground truth positions in the simulator.
The application includes 2 example scenarios, that can be loaded with the "File: Open Scenario..." menu:
- Scenario 1: Contains 28 wall segments and 299 landmarks.
- Scenario 2: Contains 84 wall segments and 450 landmarks.
These two examples are copied to the "~/.mrxt/maps" the first time the program is executed.
Each scenario has 3 files associated:
- scene1.map file: This file is a text file that contains the robot, camera and laser parameters as well as the position of the walls, the landmarks and the default initial pose of the robots. It also specifies the omap file corresponding to this map that is used for the random pose generator. This is the file that has to be selected in the "Open Scenario" dialog.
- scene1.omap file: Binary file containing information of the occupancy gridmap for a given map. It is only used for the random pose generator since it needs to position the robots in free areas. It this file is missing the scenario will opened but the random pose generator will produce a failure in the application.
- scene1.jpg file: This is simply an illustration of the occupancy gridmap of the map. It is not used by mrxt. They can be used as a reference to compare the results of the occupancy grids generated by the exploration process.
Taking as a reference the "scene1.map" scenario file, more maps can be created. This file is composed by entries of the form Property = Value. Comments can be added with the # symbol. Next, we explain the properties used in this file
- NUMWALLS = (int): Number of walls in the map. For each wall it has to be a WALL#NUMBER property defined.
- WALL#NUMBER = (float x1) (float y1) (float x2) (float y2): Define a wall segment going from point (x1,y1) to (x2,y2).
- NUMFEATURES = (int): Number of landmarks in the map. For each landmark it has to be a FEAT#NUMBER property defined
- DESCRIPTORLENGTH = (int): Length of the descriptor vector that characterizes each feature/landmark.
- FEAT#NUMBER = (float x) (float y) (float z) [vector DESCRIPTOR]: The position and the descriptor vector (with size = DESCRIPTORLENGTH) of the landmark
- MAXNUMROBOTS = (int): This is the number of robots that can be used in the simulator. 5 robots is a good option. A R#NUMBER property has to be defined for each robot.
- R#NUMBER = (float x) (float y) (float theta): Initial default pose for the robot #NUMBER
The odometry, speed, camera, laser and footprint settings can be changed here of from the mrxt menus. They are explained in section The simulation environment.
NOTE: Since a omap file will not be available for new scenarios the random pose generator will not work for user made scenarios.
There are 7 exploration techniques included in MRXT:
- Nearest Frontier
- Hybrid Integrated
In order to understand the differents techniques, we recommend you to read the paper:
A Comparison of Path Planning Strategies for Autonomous Exploration and Mapping of Unknown Environments
Miguel Juliá and Arturo Gil and Oscar Reinoso
Autonomous Robots (2012)
Ed. Springer ISSN: 0929-5593 - Volume 33, Issue 4, pp 427-444
The exploration strategy can be selected in the menu "Exploration: Exploration Strategy". The menu "Exploration: Strategy Options" opens a dialog to change the
different settings of the selected technique.
All techniques have high level/deliberative options as well as optios for the low level controller or behaviour based reactive control.
There are 2 SLAM techniques included in MRXT:
- Landmark-based Multi-Robot Extended Kalman Filter (EKF)
- Landmark-based Multi-Robot FastSLAM 1.0 (RBPF)
It can be switched between these two options in the menu "Exploration: SLAM Algorithm" and in "Exploration: SLAM options" dialog.
For the FastSLAM or Rao-Blackwellized particle filter (RBPF) algorithm it can be selected the amount of particles. It can be chosen to be proportional to the number of robots.
Data association is performed using a nearest neighbour association using the descriptor distance or the mahalanobis distance. In any case, it can be established maximum thresholds for data association considering these parameters. For a perfect match it can be used a unique integer descriptor for each landmark and use a descriptor distance threshold minor than 1.
The good and poor localization parameters are used in order to configure a hysteresis model that is used by the SLAM integrated algorithms to decide when to return to previously explored areas to improve the certainty in the localization.
Finally, the are also options for he grid mapping. The grid mapping uses a counting reflection model. The resolution, size and origin of this map can be specified here.