An intuitive and customizable cross-platform ground control station for remote vehicles of all types. Click here for a demo!
See our documentation 📖
Cockpit is typically installed as an Electron application or BlueOS Extension, but for development purposes it is valuable to run it locally.
To start, clone the repository and its submodules. The submodules are required components for Cockpit to be able to run:
git clone --recurse-submodules [email protected]:bluerobotics/cockpit.git
Next, install bun. Following their documented instructions is strongly recommended - we have received reports that installing bun
from alternatives like Snap did not work properly.
With bun
installed, you can enter the repository folder and follow the steps below:
bun install
and then run the server locally with:
bun run dev --host
Then you should see a prompt with the local IP and port that can be accessed through a browser, such as localhost:5173
.
Cockpit is currently a frontend-only application. That means it relies on data offered by other backend solutions, which are not built-in.
If you have a BlueOS instance running, there's no need to install any backend, as BlueOS already provides everything.
If that's not your case and you want to install the necessary backends, follow the instructions below:
- Install a MAVLink router. We recommend mavp2p or MAVLink Router.
- Run the MAVLink router, connecting it to your vehicle or SITL instance.
- Install mavlink2rest.
- Run
mavlink2rest
, pointing it to the endpoint provided by the MAVLink router. Remember to serve the API over the 6040 port by running it with--server 0.0.0.0:6040
. - [Optional] If you want to work with video streaming, install Mavlink Camera Manager.
Follow the instructions provided here to connect Cockpit to your vehicle.
If you're running a BlueOS instance, just put the IP address of it in "Global vehicle address" and click the "apply" button.
If you're serving mavlink2rest
in the same machine as Cockpit, activate the checkmark for "Mavlink2Rest connection" and use ws://127.0.0.1:6040/v1/ws/mavlink
there (if you're running a mavlink2rest version before 0.11.15, omit the /v1
in the URL).
If you're serving mavlink-camera-manager
in the same machine as Cockpit, activate the checkmark for "WebRTC connection" and use ws://127.0.0.1:6020
there.
Cockpit provides a simulation environments in a docker compose file. There is an environment provided for ArduSub, ArduCopter, ArduRover and ArduPlane. The compose file uses docker compose profiles to allow you to choose which vehicle you want to simulate. The available profiles are ardusub
, arducopter
, ardurover
and arduplane
. You can run a simulation environment by running the following command:
docker-compose -f sim.yml --profile ardusub up
Assuming you have run the bun run dev --host
command, you can access the simulation environment by opening the browser and accessing localhost:5173
.