# Software Setup

## System Recommendations

It is recommended that you attempt to perform this installation on a device that is running Ubuntu 18.04 (Bionic Beaver). In all likelihood, any operating system capable of running ROS Melodic should work, but it should be noted that this software was tested on Ubuntu 18.04. If you do not have Ubuntu installed, you may also be able to install this into a Docker container and run the repository's programs in a reduced capacity. However, please note that you will miss out on the visualization tools unless you configure the X-Server correctly for the Docker container.

{% hint style="danger" %}
Before proceeding on to the next section, make sure that you have ROS Melodic installed on your system. Please also ensure that you have a catkin workspace properly configured. This section will NOT explain how to configure those tools.
{% endhint %}

## Cloning Dependencies

At the time of this edit, the multi-agent-mapping package currently is tested with `explore_lite` and `multirobot_map_merge`. Unfortunately, the melodic versions of these packages are not available through an apt repository, but they are available on Github. Therefore, to install these packages, simply clone them into your catkin workspace and run the `rosdep` and `catkin_make` to build them.

```bash
# Make sure you are in the source directory of your catkin workspace.
git clone https://github.com/hrnr/m-explore/tree/melodic-devel
rosdep install explore_lite
rosdep install multirobot_map_merge
cd ..
catkin_make
```

{% hint style="info" %}
&#x20;Both packages will be cloned into the same folder. Do not attempt to rearrange the directory by moving them outside of the `m-explore` directory. You should be able to run these commands with this configuration, and leaving it this way makes it easier to pull any future changes.
{% endhint %}

## Installing the Test Repository

Now that the `m-explore` packages are installed into your catkin workspace, the next step is to install the test repository, `multi-robot-mapping`. This repository does not author any new steps, but help provide a uniform testbed for your work. This process is very similar to that used to install the `m-explore` packages.

```bash
# Make sure you are in the source directory of your catkin workspace.
git clone https://github.com/JDaniel29/Autonomous-Ci-Multi-Agent-Mapping
rosdep install multi-agent-mapping
cd ..
catkin_make
```

### Test Installation

If you want to test that your setup is correct, or see a preview of the testing environment, simply launch the `multi-agent-mapping.launch` file using `roslaunch` and wait for Gazebo to open. The goal is for Gazebo to open with the `turtlebot_house` environment, as well as with three functioning turtlebots. You can use the `rqt-graph` tool to confirm this functionality also.

```bash
# In Terminal A
roslaunch multi-agent-mapping multi-agent-mapping.launch

# In Terminal B
rqt_graph
```

![Your graph should look like this!](/files/-MDMuoDkcfU4u86dkbH3)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://clemson-autonomous-systems.gitbook.io/clemson-university-autonomous-systems/multi-agent-development/turtlebot-multi-agent-slam/software-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
