Skip to content

Commit

Permalink
Refer to website in installation guide
Browse files Browse the repository at this point in the history
  • Loading branch information
robin-mueller committed Sep 22, 2024
1 parent a0b0878 commit e410fa1
Showing 1 changed file with 5 additions and 38 deletions.
43 changes: 5 additions & 38 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ This repo offers a **VS Code workspace template for developing software extensio

The repository is inspired by the [VS Code ROS 2 workspace template](https://github.com/athackst/vscode_ros2_workspace) and tries to integrate common PX4 workflows to facilitate the troublesome development process of real-time ROS2 applications.

## System Requirements and Installation
Use this template and create your workspace/repository by either pressing the button *Use this template* in the top right corner on GitHub or simply downloading the zip file. You should only clone this repo if you plan to make contributions.

## System Requirements and Setup

Required OS is [Ubuntu 22.04 (Jammy Jellyfish)](https://www.releases.ubuntu.com/22.04/). There are a few tweaks you should apply to your Ubuntu system, to provide a stable development and simulation environment:

Expand All @@ -21,43 +23,8 @@ Required OS is [Ubuntu 22.04 (Jammy Jellyfish)](https://www.releases.ubuntu.com/

To automatically install all programs for developing with PX4 and ROS2, run `setup.sh`. The default install location is `~/Desktop`. If either the PX4 workspace, QGroundControl or Groot2 have already been cloned/downloaded to a different location than the default one, the respective variables in [env.sh](env.sh) need to be updated for the terminal environment and the automation tasks in VS Code to work properly. The setup script will only install the components that have not been found.

### Manual installation
Alternatively, follow this step-by-step guide to create the workspace manually. **Make sure to execute the following steps in the given order**.

1. Use this template and create your workspace/repository by either pressing the button *Use this template* in the top right corner on GitHub or simply downloading the zip file. You should only clone this repo if you plan to make contributions.

1. Install [ROS 2 (Humble Hawksbill)](https://docs.ros.org/en/humble/Installation.html) `base` and `dev-tools`.

1. Clone [PX4 Autopilot](https://github.com/PX4/PX4-Autopilot) following the steps below:
```sh
# Clone the source code at specific revision to guarantee compatibility
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

# Checkout specific version/branch and update submodules
PX4_VERSION="v1.15.0"
(cd ./PX4-Autopilot && git checkout $PX4_VERSION && make submodulesclean)

# Install PX4 Autopilot dependencies on current system
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
```

If you ever find yourself switching revisions, you have to follow the steps below:

```sh
cd ./PX4-Autopilot
make clean
make distclean
git checkout v1.15.0 # Switch version/tag/revision here
make submodulesclean # Make sure to update the submodules
```

1. Export the simulation worlds from `world` to the corresponding directory in the isntalled PX4 workspace by executing `world/export.sh`. This script will make any `.sdf` file the containing directory available for simulation.

1. Download [QGroundControl](https://github.com/mavlink/qgroundcontrol/releases) and follow the [installation guide](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html#ubuntu). The [PX4-ROS2 Interface Library](https://docs.px4.io/main/en/ros2/px4_ros2_interface_lib.html#px4-ros-2-interface-library) suggests to use daily builds to make the most recent features available, but any version from 4.3.0 will do just fine.

1. After the workspace is created, run `dep.sh` for installing the dependencies of the ROS 2 environment.

1. **Optional:** Download [Groot2 Behavior Tree IDE](https://www.behaviortree.dev/groot) which is used for behavior modeling by the [PX4 Behavior-based Control Library](https://github.com/robin-mueller/px4-behavior).
## Integrate with AutoAPMS
This workspace template is strongly connected with the [AutoAPMS package](https://github.com/robin-mueller/auto-apms) and offers the recommended development setup. Please visit [the installation guide](https://robin-mueller.github.io/auto-apms-guide/installation) for learning how to install optional and required dependencies associated with this package and customize setting up the workspace.

## Build

Expand Down

0 comments on commit e410fa1

Please sign in to comment.