You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-69Lines changed: 25 additions & 69 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,22 +7,26 @@
7
7
8
8
SwarmGPT integrates large language models (LLMs) with safe swarm motion planning, providing an automated and novel approach to deployable drone swarm choreography. Users can automatically generate synchronized drone performances through natural language instructions. Emphasizing safety and creativity, the system combines the creative power of generative models with the effectiveness and safety of model-based planning algorithms. For more information, visit the [project website](https://utiasdsl.github.io/swarm_GPT/) or read our [paper](https://ieeexplore.ieee.org/document/11197931/).
9
9
10
-
-[Installation](#installation)
11
-
-[How to run SwarmGPT](#how-to-run-swarmgpt)
12
-
-[Deployment](#deployment)
13
-
-[Citing](#citing)
10
+
-[SwarmGPT](#swarmgpt)
11
+
-[Installation](#installation)
12
+
-[Prerequisites](#prerequisites)
13
+
-[Setting up SwarmGPT](#setting-up-swarmgpt)
14
+
-[How to run SwarmGPT](#how-to-run-swarmgpt)
15
+
-[Prerequisites](#prerequisites-1)
16
+
-[Launching the Interface](#launching-the-interface)
SwarmGPT uses [Pixi](https://pixi.sh) for dependency management and environment setup. Pixi provides a fast, reliable package manager that handles both conda and PyPI dependencies seamlessly.
22
26
23
27
### Prerequisites
24
28
25
-
- Linux x64 system (required for ROS Noetic support)
29
+
- Linux x64 system
26
30
-[Pixi package manager](https://pixi.sh) - see [installation instructions](https://pixi.sh/latest/installation/)
27
31
28
32
### Setting up SwarmGPT
@@ -31,60 +35,16 @@ Clone the repository and activate the environment:
31
35
```bash
32
36
git clone git@github.com:utiasDSL/swarmGPT.git
33
37
cd swarmGPT
34
-
pixi shell
38
+
pixi install
35
39
```
36
40
37
-
Note: You will see an error message, that `setup.sh` and `openai_api_key.sh` were not found. This is fine and fixed in the next steps.
38
-
39
-
This project is build on crazyswarm. Since the original (legacy) version is broken, please use our fork:
To test the crazyswarm installation, you can try to run the unit tests after reactivating the shell with `pixi shell`:
47
-
```bash
48
-
cd submodules/crazyswarm/ros_ws/src/crazyswarm/scripts
49
-
python -m pytest
50
-
```
51
-
Note: Those tests will fail after completion of the installation, since they require `numpy<2`.
52
-
53
-
Crazyswarm needs tracking information (for **deployment only**). At the Learning Systems Lab, we use a Vicon motion capture and therefore need this `vicon_bridge` package:
cd submodules/catkin_ws && catkin_make -DCMAKE_POLICY_VERSION_MINIMUM=3.5
57
-
exit# to force sourcing of setup.bash
58
-
```
59
-
You need to set the IP in `submodules/catkin_ws/src/vicon_bridge/launch/vicon.launch` (`datastream_hostport`) and in `submodules/crazyswarm/ros_ws/src/crazyswarm/launch/hover_swarm.launch` (`motion_capture_host_name`).
60
-
61
41
Lastly, we rely on the VLC media player to play the music. In case you don't have it installed, run:
62
42
```bash
63
43
sudo apt install vlc
64
44
```
45
+
Your setup is ready now.
65
46
66
-
Next we can install axswarm and swarmGPT, given an active environment, with:
Note: We are installing axswarm last to force `numpy>=2.0`, which is needed for some of our packages.
74
-
75
-
Your setup is ready now. If you are unsure if the installation was successful, you can run tests after exporting the API key (see below).
76
-
```bash
77
-
python -m pytest tests
78
-
```
79
-
80
-
The environment includes:
81
-
-**Python 3.11** with essential scientific computing packages
82
-
-**ROS Noetic Desktop** for robot communication and control
83
-
-**Build tools** (cmake, ninja, catkin_tools) for ROS workspace compilation
84
-
-**Development tools** (ruff for linting, uv for fast Python package management)
85
-
-**Point Cloud Library (PCL)** for 3D processing
86
-
87
-
### Documentation Environment
47
+
<!-- ### Documentation Environment
88
48
89
49
To work with documentation, use the docs environment:
90
50
@@ -94,32 +54,28 @@ pixi run -e docs docs-serve
94
54
95
55
# Build documentation
96
56
pixi run -e docs docs-build
97
-
```
57
+
```-->
98
58
## How to run SwarmGPT
99
59
100
60
### Prerequisites
101
61
102
-
Before running SwarmGPT, start your pixi shell with `pixi shell`. Then, ensure you have:
62
+
Before running SwarmGPT, ensure you have:
103
63
104
64
1.**OpenAI API Key**: Set your OpenAI API key as an environment variable:
105
65
```bash
106
66
export OPENAI_API_KEY="your-api-key-here"
107
67
```
108
-
For convinience, you can create a `key.sh`with the command above, which is automatically executed whenever you start you `pixi shell`.
68
+
For convinience, you can create a `openai_api_key.sh`script in the swarmGPT root directory containing the command above, which is automatically executed whenever you start you start your pixi environment.
109
69
110
-
2.**Crazyswarm Configuration**: Configure your drone swarm by editing the `crazyflies.yaml` file in your Crazyswarm installation. SwarmGPT automatically locates this file at:
0 commit comments