Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abhijithganesh/abhiswarming

ROS-multi-drone
https://github.com/abhijithganesh/abhiswarming

ardupilot drones gazebo gazebo-classic iron mavproxy ros-iron ros-noetic ros2

Last synced: about 1 month ago
JSON representation

ROS-multi-drone

Awesome Lists containing this project

README

        

# Abhiswarming ROS package

> [!NOTE]
> Switch to ROS1 branch [here](https://github.com/abhijithGanesh/abhiswarming/tree/ros1)

## Index
1. [Requirements](#requirements)
2. [Special Instructions](#special-instructions)
- [Add ROSDEP dependencies](#add-rosdep-dependencies)
- [Micro-XRCE-DDS-Gen](#micro-xrce-dds-gen)
- [ArduPilot Installation](#ardupilot-installation)
- [Ardupilot](#ardupilot)
- [Ardupilot Plugin](#ardupilot-plugin)
- [Special Python3 Link](#special-python3-link)
- [ROS2 Check](#ros2-check)
- [MAV Proxy](#mav-proxy)

## Requirements

To use the Abhiswarming ROS package, ensure you have the following software installed:

1. **MicroXRCE**
2. **ArduPilot**
3. **Gazebo8**
4. **MAVProxy**
5. **ROS2 - Iron**

These components are essential for proper functionality. Additionally, clone the following repository into your workspace directory:

```sh
git clone https://github.com/micro-ROS/micro-ROS-Agent.git ~/workspace_dir
```

Before proceeding, run `colcon build`.

## Special Instructions

### Add ROSDEP dependencies

```sh
cd ~/ros2_ws
source /opt/ros/humble/setup.bash
sudo apt update
rosdep update
rosdep install --from-paths src --ignore-src -r
```

### Micro-XRCE-DDS-Gen

**Warning: Ensure JAVA is installed**
MicroXRCE requires Java to function properly.

```sh
git clone --recurse-submodules https://github.com/ardupilot/Micro-XRCE-DDS-Gen.git
cd Micro-XRCE-DDS-Gen
./gradlew assemble
```

### ArduPilot Installation

#### Ardupilot

Navigate to the home directory:

```sh
cd ~
sudo apt install git
git clone https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git checkout Copter-3.6
git submodule update --init --recursive
```

Install required dependencies:

```sh
sudo apt install python-matplotlib python-serial python-wxgtk3.0 python-wxtools python-lxml python-scipy python-opencv ccache gawk python-pip python-pexpect
```

Install Python packages:

```sh
sudo pip install future pymavlink MAVProxy
```

Append the following lines to the end of either `~/.bashrc` or `~/.zshrc`:

```sh
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH
```

#### Ardupilot Plugin

1. Install required dependencies:

```sh
sudo apt install libgz-sim8-dev rapidjson-dev
```

2. Set up Gazebo workspace:

```sh
mkdir -p gz_ws/src && cd gz_ws/src
git clone https://github.com/ArduPilot/ardupilot_gazebo
```

3. Build ArduPilot Gazebo plugin:

```sh
export GZ_VERSION=harmonic
cd ardupilot_gazebo
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
```

### Special Python3 Link

To ensure ArduPilot functions correctly, create a symbolic link for `python`:

```sh
ln -s /usr/bin/python3 /usr/bin/python
```

This command creates a soft link named `python` pointing to `/usr/bin/python3`.

### ROS2 Check

```sh
source ~/ros2_ws/install/setup.bash
# See the node appear in the ROS graph
ros2 node list
# See which topics are exposed by the node
ros2 node info /ardupilot_dds
# Echo a topic published from ArduPilot
ros2 topic echo /ap/geopose/filtered
```

### MAV Proxy

```sh
mavproxy.py --console --map --aircraft test --master=:14550
```

Following these instructions will ensure the successful setup and operation of the Abhiswarming ROS package.