Move PX4 Guide source into /docs (#24490)

* Add vitepress tree

* Update existing workflows so they dont trigger on changes in the docs path

* Add nojekyll, package.json, LICENCE etc

* Add crowdin docs upload/download scripts

* Add docs flaw checker workflows

* Used docs prefix for docs workflows

* Crowdin obvious fixes

* ci: docs move to self hosted runner

runs on a beefy server for faster builds

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: don't run build action for docs or ci changes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: update runners

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* Add docs/en

* Add docs assets and scripts

* Fix up editlinks to point to PX4 sources

* Download just the translations that are supported

* Add translation sources for zh, uk, ko

* Update latest tranlsation and uorb graphs

* update vitepress to latest

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Hamish Willee
2025-03-13 16:08:27 +11:00
committed by GitHub
co-authored by Ramon Roche
parent 8e6d2ebe4a
commit 88d623bedb
5176 changed files with 558771 additions and 2 deletions
@@ -0,0 +1,59 @@
# BetaFPV Beta75X 2S Brushless Whoop
<Badge type="info" text="Discontinued" />
:::warning
This frame has been [discontinued](../flight_controller/autopilot_experimental.md) and is no longer commercially available.
:::
The [BetaFPV Beta75X](https://betafpv.com/products/beta75x-2s-whoop-quadcopter) is a very small quadrotor that can be flown indoors or outdoors, FPV or line-of-sight.
![BetaFPV Beta75X](../../assets/hardware/betafpv_beta75x.jpg)
## 购买渠道
The _Beta75X_ can be bought from a number of vendors, including:
- [GetFPV](https://www.getfpv.com/beta75x-2s-brushless-whoop-micro-quadcopter-xt30-frsky.html)
- [Amazon](https://www.amazon.com/BETAFPV-Beta75X-Brushless-Quadcopter-Smartaudio/dp/B07H86XSPW)
In addition you will need:
- An RC transmitter. _Beta75X_ can ship with a number of receivers. PX4 is compatible with all of them, but make sure to select the version that matches your transmitter.
- LiPo battery charger (vehicle ships with one battery, but you may want spares).
- FPV goggles if you want to fly FPV.
There are many compatible options, including these ones from [Fatshark](https://www.fatshark.com/product-page/dominator-v3).
::: info
FPV support is completely independent of PX4/flight controller.
:::
## Flashing PX4 Bootloader
The _Beta75X_ comes preinstalled with Betaflight.
Before loading PX4 firmware you must first install the PX4 bootloader.
Instructions for installing the bootloader can be found in the [Omnibus F4](../flight_controller/omnibus_f4_sd.md#bootloader) topic (this is the flight controller board on the _Beta75X_).
:::tip
You can always [reinstall Betaflight](../advanced_config/bootloader_update_from_betaflight.md#reinstall-betaflight) later if you want!
:::
## Installation/Configuration
Once the bootloader is installed, you should be able to connect the vehicle to _QGroundControl_ via a USB cable.
:::info
At time of writing _Omnibus F4_ is supported on the QGroundControl _Daily Build_, and prebuilt firmware is provided for the master branch only (stable releases are not yet available).
:::
To install and configure PX4:
- [Load PX4 Firmware](../config/firmware.md).
- [Set the Airframe](../config/airframe.md) to _BetaFPV Beta75X 2S Brushless Whoop_.
- Continue with [basic configuration](../config/index.md), including sensor calibration and radio setup.
## 视频
<lite-youtube videoid="_-O0kv0Qsh4" title="PX4 running on the BetaFPV Whoop"/>
+319
View File
@@ -0,0 +1,319 @@
# Crazyflie 2.0 (Discontinued)
<Badge type="info" text="Discontinued" />
:::warning
_Crazyflie 2.0_ has been [discontinued/superseded](../flight_controller/autopilot_experimental.md).
Try [Bitcraze Crazyflie 2.1](../complete_vehicles_mc/crazyflie21.md) instead!
:::
:::warning
- PX4 does not manufacture this (or any) autopilot.
Contact the [manufacturer](https://www.bitcraze.io/) for hardware support or compliance issues.
- PX4 support for this flight controller is [experimental](../flight_controller/autopilot_experimental.md).
:::
The Crazyflie line of micro quads was created by Bitcraze AB.
An overview of the Crazyflie 2.0 can be [found here](https://www.bitcraze.io/crazyflie-2/).
![Crazyflie2 Image](../../assets/flight_controller/crazyflie/crazyflie2_hero.png)
## 总览
:::info
The main hardware documentation is here: https://wiki.bitcraze.io/projects:crazyflie2:index
:::
- Main System-on-Chip: STM32F405RG
- CPU: 168 MHz ARM Cortex M4 with single-precision FPU
- RAM: 192 KB SRAM
- nRF51822 radio and power management MCU
- MPU9250 Accel / Gyro / Mag
- LPS25H barometer
## 购买渠道
- [Crazyflie 2.0](https://store.bitcraze.io/collections/kits/products/crazyflie-2-0).
- [Crazyradio PA 2.4 GHz USB dongle](https://store.bitcraze.io/collections/kits/products/crazyradio-pa): used for wireless communication between _QGroundControl_ and Crazyflie 2.0.
- [Breakout deck](https://store.bitcraze.io/collections/decks/products/breakout-deck): breakout expansion board for connecting new peripherals.
- [Flow deck](https://store.bitcraze.io/collections/decks/products/flow-deck): contains an optical flow sensor to measure movements of the ground and a distance sensor to measure the distance to the ground.
This will be useful for precise altitude and position control.
- [Z-ranger deck](https://store.bitcraze.io/collections/decks/products/z-ranger-deck) has the same distance sensor as the Flow deck to measure the distance to the ground.
This will be useful for precise altitude control.
- [SD-card deck](https://store.bitcraze.io/collections/decks/products/sd-card-deck): used for high speed onboard logging to a micro SD card.
- [Logitech Joystick](https://support.logi.com/hc/en-us/articles/360024326793--Getting-Started-Gamepad-F310).
## Flashing PX4
After setting up the PX4 development environment, follow these steps to install the PX4 Autopilot on the Crazyflie 2.0:
1. Download the source code of the PX4 Bootloader:
```sh
git clone https://github.com/PX4/Bootloader.git
```
2. Navigate into the top directory of the source code and compile it using:
```sh
make crazyflie_bl
```
3. Put the Crazyflie 2.0 into DFU mode by following these steps:
- Ensure it is initially unpowered.
- Hold down the reset button (see figure below...).
![Crazyflie2 Reset Button](../../assets/flight_controller/crazyflie/crazyflie_reset_button.jpg)
- Plug into computer's USB port.
- After a second, the blue LED should start blinking and after 5 seconds should start blinking faster.
- Release button.
4. Install _dfu-util_:
```sh
sudo apt-get update
sudo apt-get install dfu-util
```
5. Flash bootloader using _dfu-util_ and unplug Crazyflie 2.0 when done:
```sh
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie_bl/crazyflie_bl.bin
```
When powering on the Crazyflie 2.0 the yellow LED should blink.
6. Download the source code of the PX4 autopilot:
```sh
git clone https://github.com/PX4/PX4-Autopilot.git
```
7. Navigate into the top directory of the source code and compile it using:
```sh
make bitcraze_crazyflie_default upload
```
8. When prompted to plug in device, plug in Crazyflie 2.0.
The yellow LED should start blinking indicating bootloader mode.
Then the red LED should turn on indicating that the flashing process has started.
9. Wait for completion.
10. Done! Calibrate the sensors using [QGroundControl](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/sensors.html).
:::info
If QGroundControl does not connect with the vehicle, ensure that in [nuttx-config](https://github.com/PX4/PX4-Autopilot/blob/main/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig) for crazyflie `# CONFIG_DEV_LOWCONSOLE is not set` is replaced by `CONFIG_DEV_LOWCONSOLE=y`.
This should be done using _menuconfig_:
```sh
make bitcraze_crazyflie_default menuconfig
```
or _qconfig_ (Check _Low-level console support_ under _Serial Driver Support_ in GUI):
```sh
make bitcraze_crazyflie_default qconfig
```
:::
## Wireless Setup Instructions
The onboard nRF module allows connecting to the board via Bluetooth or through the proprietary 2.4GHz Nordic ESB protocol.
- A [Crazyradio PA](https://www.bitcraze.io/crazyradio-pa/) is recommended.
- To fly the Crazyflie 2.0 right away, the Crazyflie phone app is supported via Bluetooth.
Using the official Bitcraze **Crazyflie phone app**:
- Connect via Bluetooth.
- Change mode in settings to 1 or 2.
- Calibrate via QGroundControl.
Connecting via **MAVLink**:
- Use a Crazyradio PA alongside a compatible GCS.
- Download the _crazyflie-lib-python_ source code:
```sh
git clone https://github.com/bitcraze/crazyflie-lib-python.git
```
:::info
We will use [cfbridge.py](https://github.com/bitcraze/crazyflie-lib-python/blob/master/examples/cfbridge.py) to setup a wireless MAVlink communication link between Crazyflie 2.0 (flashed with PX4) and QGroundControl. _Cfbridge_ enables QGroundControl to communicate with the crazyradio PA.
The [C based cfbridge](https://github.com/dennisss/cfbridge) is currently experiencing data loss issues, which is why we have chosen to use **cfbridge.py**.
:::
- Make sure you have set the udev permissions to use the USB Radio. To do this, follow the steps listed [here](https://www.bitcraze.io/documentation/repository/crazyflie-lib-python/master/installation/usb_permissions/) and **restart** your computer.
- Connect a Crazyradio PA via USB.
- Build a [virtual environment (local python environment)](https://virtualenv.pypa.io/en/latest/) with package dependencies using the following method:
```sh
pip install tox --user
```
- Navigate to the crazyflie-lib-python folder and type:
```sh
make venv
```
- Activate the virtual environment:
```sh
source venv-cflib/bin/activate
```
- Install required dependencies:
```sh
pip install -r requirements.txt --user
```
To connect Crazyflie 2.0 with crazyradio, **launch cfbridge** by following these steps:
- Power off and power on Crazyflie 2.0 and wait for it to boot up.
- Connect a Crazyflie radio device via USB.
- Navigate to the crazyflie-lib-python folder.
- Activate the environment:
```sh
source venv-cflib/bin/activate
```
- Navigate to the examples folder:
```sh
cd examples
```
- Launch cfbridge:
```sh
python cfbridge.py
```
:::info
_Cfbridge_ by default tries to initiate the radio link communication on channel 80 and with crazyflie address 0xE7E7E7E7E7.
If you are using [multiple crazyflies and/or crazyradios](https://github.com/dennisss/cfbridge/blob/master/index.md#advanced-swarming) in the same room and want to use a different channel and/or address for each, first connect the crazyflie with QGroundControl via a USB cable and change the syslink parameters (channel, address) in QGroundControl.
Next, launch the cfbridge by giving the same channel and address as the first and second arguments respectively, e.g: `python cfbridge.py 90 0x0202020202`
:::
- Open QGroundControl.
- After using _cfbridge_, you can deactivate the virtualenv if you activated it by pressing `CTRL+z`.
Most of the time, launching _cfbridge_ again from the same terminal doesn't connect to crazyflie, this can be solved by closing the terminal and relaunching _cfbridge_ in a new terminal.
:::tip
If you change any driver in [crazyflie-lib-python](https://github.com/bitcraze/crazyflie-lib-python) or if launching _cfbridge_ in a new terminal does not find crazyflie, you can try navigating to the crazyflie-lib-python folder and run the script below to rebuild cflib.
```sh
make venv
```
:::
:::info
To use Joystick, set `COM_RC_IN_MODE` in QGroundControl to "Joystick/No RC Checks".
Calibrate the Joystick and set the Joystick message frequency in QGroundControl to any value between 5 to 14 Hz (10 Hz is recommended).
To be able to set the frequency, the advanced option should be enabled.
This is the rate at which Joystick commands are sent from QGroundControl to Crazyflie 2.0 (to do this, you will need to follow the instructions [here](https://github.com/mavlink/qgroundcontrol) to obtain the latest QGroundControl source code (master) and build it).
:::
![](../../assets/hardware/joystick-message-frequency.png)
## 硬件安装
Crazyflie 2.0 is able to fly with precise control in [Stabilized mode](../flight_modes_mc/manual_stabilized.md), [Altitude mode](../flight_modes_mc/altitude.md) and [Position mode](../flight_modes_mc/position.md).
- You will need the [Z-ranger deck](https://store.bitcraze.io/collections/decks/products/z-ranger-deck) to fly in _Altitude_ mode.
If you also want to fly in the _Position_ mode, it is recommended you buy the [Flow deck](https://store.bitcraze.io/collections/decks/products/flow-deck) which also has the integrated Z-ranger sensor.
- The onboard barometer is highly susceptible to any external wind disturbances including those created by Crazyflie's own propellers. Hence, we isolated the barometer with a piece of foam, and then mounted the distance sensor on top of it as shown below:
![Crazyflie barometer](../../assets/flight_controller/crazyflie/crazyflie_barometer.jpg)
![Crazyflie barometer foam](../../assets/flight_controller/crazyflie/crazyflie_baro_foam.jpg)
![Crazyflie optical flow](../../assets/flight_controller/crazyflie/crazyflie_opticalflow.jpg)
In order to log flight details, you can mount SD card deck on top of crazyflie as shown below:
![Crazyflie SDCard](../../assets/flight_controller/crazyflie/crazyflie_sdcard.jpg)
Then, you need to stick the battery on top of the SD card deck using a double sided tape:
![Crazyflie battery setup](../../assets/flight_controller/crazyflie/crazyflie_battery_setup.jpg)
## Altitude Control
Crazyflie is able to fly in _Altitude_ mode if you use a [Z-ranger deck](https://store.bitcraze.io/collections/decks/products/z-ranger-deck).
According to the datasheet, the maximum height (above ground) the range finder can sense is 2 m. However, when tested on dark surfaces this value decreases to 0.5 m. On a light floor, it goes up to max 1.3 m. This means you cannot hold altitudes above this value in _Altitude_ or _Position_ flight modes.
:::tip
If the Crazyflie 2.0 height drifts at mid-throttle command in _Altitude mode_ or _Position mode_, first try rebooting the vehicle. If this does not fix the problem, recalibrate the accel and mag (compass).\
:::
:::info
Since the onboard barometer is highly susceptible to wind disturbances created by the Crazyflie's own propellers, you cannot rely on it to hold altitude.
:::
## Position Control
With [Flow deck](https://store.bitcraze.io/collections/decks/products/flow-deck), you can fly Crazyflie 2.0 in _Position mode_.
Unlike [PX4FLOW](../sensor/px4flow.md), the flow deck does not house a gyro, hence the onboard gyro is used for flow fusion to find the local position estimates.
Moreover, the flow deck shares the same SPI bus as the SD card deck, therefore logging at high rate on SD card is not recommended when flying in _Position mode_.
## Using FrSky Taranis RC Transmitter as Joystick
If you already own a Taranis RC transmitter and want to use it as a controller, it can be configured as a USB Joystick:
- Create a new model in Taranis.
![Taranis - new model](../../assets/flight_controller/crazyflie/taranis_model.jpg)
- In _MODEL SETUP_ menu page, turn off both internal and external TX modules.
![Taranis - model setup](../../assets/flight_controller/crazyflie/taranis_model_setup.jpg)
- In _OUTPUTS_ menu page (also called “SERVOS” page in some Taranis transmitters), invert Throttle (CH1) and Aileron (CH3).
![Taranis - outputs](../../assets/flight_controller/crazyflie/taranis_outputs.jpg)
To use Taranis switches to arm/disarm and switch to different flight modes:
- In Taranis UI _MIXER_ menu page, you can assign the switches to any channel in the range channel 9-16 which map to the buttons 0-7 in the QGroundControl Joystick setup. For example, Taranis “SD” switch can be set to channel 9 in Taranis UI:
![Taranis switch setup](../../assets/flight_controller/crazyflie/taranis_switch_setup.jpg)
- Connect Taranis to PC with a USB cable and Open QGroundControl.
- In QGroundControl Joystick Setup, you can see the buttons turning yellow when you switch them on. For example, channel 9 in Taranis maps to button 0 in QGroundControl Joystick setup. You can assign any mode to this button e.g. _Altitude_ mode. Now when you lower the switch "SD", flight mode will change to _Altitude_.
![Joystick setup](../../assets/flight_controller/crazyflie/crazyflie_QGCjoystick_setup.png)
### ROS
To connect to Crazyflie 2.0 via MAVROS:
- Start up _cfbridge_ using the above instructions.
- Change the UDP port QGroundControl listens to:
- In QGroundControl, navigate to **Application Settings > General** and uncheck all the boxes under _Autoconnect to the following devices_.
- Add in **Comm Links** a link of type _UDP_, check the _Automatically Connect on Start_ option, change the _Listening Port_ to 14557, add Target Hosts: 127.0.0.1 and then press **OK**.
- Make sure you have [MAVROS](https://github.com/mavlink/mavros/tree/master/mavros#installation) installed.
- Start MAVROS with command:
```sh
roslaunch mavros px4.launch fcu_url:="udp://:14550@127.0.0.1:14551" gcs_url:="udp://@127.0.0.1:14557"
```
- Restart QGroundControl if it doesn't connect.
+306
View File
@@ -0,0 +1,306 @@
# Crazyflie 2.1
<LinkedBadge type="warning" text="Experimental" url="../flight_controller/autopilot_experimental.html"/>
:::warning
PX4 does not manufacture this (or any) autopilot.
Contact the [manufacturer](https://www.bitcraze.io/) for hardware support or compliance issues.
:::
:::warning
Crazyflie 2.1 is only able to fly in [Stabilized mode](../flight_modes_mc/manual_stabilized.md).
:::
The Crazyflie line of micro quads was created by Bitcraze AB.
An overview of the Crazyflie 2.1 can be [found here](https://www.bitcraze.io/products/crazyflie-2-1/).
![Crazyflie2 Image](../../assets/flight_controller/crazyflie21/crazyflie_2.1.jpg)
## 总览
:::info
The main hardware documentation is [here](https://wiki.bitcraze.io/projects:crazyflie2:index)
:::
- Main System-on-Chip: STM32F405RG
- CPU: 168 MHz ARM Cortex M4 with single-precision FPU
- RAM: 192 KB SRAM
- nRF51822 radio and power management MCU
- BMI088 3 axis accelerometer / gyroscope
- BMP388 high precision pressure sensor
- uUSB connector
- On-board LiPo charger with 100mA, 500mA and 980mA modes available
- Full speed USB device interface
- Partial USB OTG capability (USB OTG present but no 5V output)
- 8KB EEPROM
## 购买渠道
The vehicle can be purchased here: [Crazyflie 2.1](https://store.bitcraze.io/products/crazyflie-2-1) (store.bitcraze.io)
Useful peripheral hardware includes:
- [Crazyradio PA 2.4 GHz USB dongle](https://store.bitcraze.io/collections/kits/products/crazyradio-pa): Wireless communication between _QGroundControl_ and Crazyflie 2.0
- [Breakout deck](https://store.bitcraze.io/collections/decks/products/breakout-deck): Breakout expansion board for connecting new peripherals.
- [Flow deck v2](https://store.bitcraze.io/collections/decks/products/flow-deck-v2): Optical flow sensor and a distance sensor for altitude and position control.
- [Z-ranger deck v2](https://store.bitcraze.io/collections/decks/products/z-ranger-deck-v2): Distance sensor for altitude control (same sensor as the Flow deck).
- [Multi-ranger deck](https://store.bitcraze.io/collections/decks/products/multi-ranger-deck) Multi-direction object detection
- [Buzzer deck](https://store.bitcraze.io/collections/decks/products/buzzer-deck) Audio feedback on system events, like low battery or charging completed.
- [Breakout deck](https://store.bitcraze.io/collections/decks/products/breakout-deck): Expansion board that gives you the ability to test new hardware easily without soldering.
- [SD-card deck](https://store.bitcraze.io/collections/decks/products/sd-card-deck): High speed onboard logging to a micro SD card
- [Logitech Joystick](https://support.logi.com/hc/en-us/articles/360024326793--Getting-Started-Gamepad-F310)
## Assemble Crazyflie 2.1
- [Bitcraze crazyflie 2.1 getting started](https://www.bitcraze.io/documentation/tutorials/getting-started-with-crazyflie-2-x/).
## Flashing PX4
:::info
These instructions have only been tested on Ubuntu.
:::
After setting up the PX4 development environment, follow these steps to install the PX4 Autopilot on the Crazyflie 2.1:
1. Download the source code of the PX4 Bootloader:
```sh
git clone https://github.com/PX4/Bootloader.git --recurse-submodules
```
2. Navigate into the top directory of the source code and compile it using:
```sh
make crazyflie21_bl
```
3. Put the Crazyflie 2.1 into DFU mode by following these steps:
- Ensure it is initially unpowered.
- Ensure battery is disconnected.
- Hold down the reset button (see figure below...).
![Crazyflie2 Reset Button](../../assets/flight_controller/crazyflie/crazyflie_reset_button.jpg)
- Plug into computer's USB port.
- After a second, the blue LED should start blinking and after 5 seconds should start blinking faster.
- Release button.
4. Install _dfu-util_:
```sh
sudo apt-get update
sudo apt-get install dfu-util
```
5. Flash bootloader using _dfu-util_ and unplug Crazyflie 2.1 when done:
```sh
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie21_bl/crazyflie21_bl.bin
```
When powering on the Crazyflie 2.1 the yellow LED should blink.
6. Download the source code of the PX4 autopilot:
```sh
git clone https://github.com/PX4/PX4-Autopilot.git
```
7. Navigate into the top directory of the source code and compile it using:
```sh
cd PX4-Autopilot/
make bitcraze_crazyflie21_default upload
```
8. When prompted to plug in device, plug in Crazyflie 2.1.
The yellow LED should start blinking indicating bootloader mode.
Then the red LED should turn on indicating that the flashing process has started.
9. Wait for completion.
10. Done! Calibrate the sensors using [QGroundControl](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/sensors.html).
## Flashing Original Bitcraze Firmware
1. Download the latest [Crazyflie 2.1 bootloader](https://github.com/bitcraze/crazyflie2-stm-bootloader/releases)
2. Put the Crazyflie 2.1 into DFU mode by following these steps:
- Ensure it is initially unpowered.
- Ensure battery is disconnected.
- Hold down the reset button.
- Plug into computer's USB port.
- After a second, the blue LED should start blinking and after 5 seconds should start blinking faster.
- Release button.
3. Flash bootloader using _dfu-util_ and unplug Crazyflie 2.1 when done:
```sh
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cf2loader-1.0.bin
```
When powering on the Crazyflie 2.1 the yellow LED should blink.
4. Install the latest Bitcraze Crazyflie 2.1 Firmware using [this](https://www.bitcraze.io/documentation/tutorials/getting-started-with-crazyflie-2-x/#update-fw) tutorial.
## Wireless Setup Instructions
The onboard nRF module allows connecting to the board via Bluetooth or through the proprietary 2.4GHz Nordic ESB protocol.
- A [Crazyradio PA](https://www.bitcraze.io/crazyradio-pa/) is recommended.
- To fly the Crazyflie 2.1 right away, the Crazyflie phone app is supported via Bluetooth.
Connecting via **MAVLink**:
- Use a Crazyradio PA alongside a compatible GCS.
- Download the _crazyflie-lib-python_ source code:
```sh
git clone https://github.com/bitcraze/crazyflie-lib-python.git
```
:::info
We will use [cfbridge.py](https://github.com/bitcraze/crazyflie-lib-python/blob/master/examples/cfbridge.py) to setup a wireless MAVlink communication link between Crazyflie 2.1 (flashed with PX4) and QGroundControl. _Cfbridge_ enables QGroundControl to communicate with the crazyradio PA.
The [C based cfbridge](https://github.com/dennisss/cfbridge) is currently experiencing data loss issues, which is why we have chosen to use **cfbridge.py**.
:::
- Make sure you have set the udev permissions to use the USB Radio. To do this, follow the steps listed [here](https://www.bitcraze.io/documentation/repository/crazyflie-lib-python/master/installation/usb_permissions/) and **restart** your computer.
- Connect a Crazyradio PA via USB.
- Build a [virtual environment (local python environment)](https://virtualenv.pypa.io/en/latest/) with package dependencies using the following method:
```sh
pip install tox --user
```
- Navigate to the crazyflie-lib-python folder and type:
```sh
make venv
```
- Activate the virtual environment:
```sh
source venv/bin/activate
```
- Install required dependencies:
```sh
pip install cflib
pip install -r requirements.txt
```
To connect Crazyflie 2.1 with crazyradio, **launch cfbridge** by following these steps:
- Power off and power on Crazyflie 2.1 and wait for it to boot up.
- Connect a Crazyflie radio device via USB.
- Navigate to the crazyflie-lib-python folder.
- Activate the environment:
```sh
source venv/bin/activate
```
- Navigate to the examples folder:
```sh
cd examples
```
- Launch cfbridge:
```sh
python cfbridge.py
```
::: info
_Cfbridge_ by default tries to initiate the radio link communication on channel 80 and with crazyflie address 0xE7E7E7E7E7.
If you are using [multiple crazyflies and/or crazyradios](https://github.com/dennisss/cfbridge/blob/master/index.md#advanced-swarming) in the same room and want to use a different channel and/or address for each, first connect the crazyflie with QGroundControl via a USB cable and change the syslink parameters (channel, address) in QGroundControl.
Next, launch the cfbridge by giving the same channel and address as the first and second arguments respectively, e.g: `python cfbridge.py 90 0x0202020202`
:::
- Open QGroundControl.
- After using _cfbridge_, you can deactivate the virtualenv if you activated it by pressing `CTRL+z`.
Most of the time, launching _cfbridge_ again from the same terminal doesn't connect to crazyflie, this can be solved by closing the terminal and relaunching _cfbridge_ in a new terminal.
:::tip
If you change any driver in [crazyflie-lib-python](https://github.com/bitcraze/crazyflie-lib-python) or if launching _cfbridge_ in a new terminal does not find crazyflie, you can try navigating to the crazyflie-lib-python folder and run the script below to rebuild cflib.
```sh
make venv
```
:::
:::info
The Joystick menu in QGC, only appears after you connect the controller to the PC (for example a Playstation 3 controller).
![QGC joystick menu](../../assets/flight_controller/crazyflie21/joystick_menu_qgc.png)
:::
## 硬件安装
Crazyflie 2.1 is only able to fly in [Stabilized mode](../flight_modes_mc/manual_stabilized.md).
In order to log flight details, you can mount SD card deck on top of crazyflie as shown below:
![Crazyflie SDCard](../../assets/flight_controller/crazyflie21/crazyflie21_sd.jpeg)
## Using FrSky Taranis RC Transmitter as Joystick
If you already own a Taranis RC transmitter and want to use it as a controller, it can be configured as a USB Joystick:
- Create a new model in Taranis.
![Taranis - new model](../../assets/flight_controller/crazyflie/taranis_model.jpg)
- In _MODEL SETUP_ menu page, turn off both internal and external TX modules.
![Taranis - model setup](../../assets/flight_controller/crazyflie/taranis_model_setup.jpg)
- In _OUTPUTS_ menu page (also called “SERVOS” page in some Taranis transmitters), invert Throttle (CH1) and Aileron (CH3).
![Taranis - outputs](../../assets/flight_controller/crazyflie/taranis_outputs.jpg)
To use Taranis switches to arm/disarm and switch to different flight modes:
- In Taranis UI _MIXER_ menu page, you can assign the switches to any channel in the range channel 9-16 which map to the buttons 0-7 in the QGroundControl Joystick setup. For example, Taranis “SD” switch can be set to channel 9 in Taranis UI:
![Taranis switch setup](../../assets/flight_controller/crazyflie/taranis_switch_setup.jpg)
- Connect Taranis to PC with a USB cable and Open QGroundControl.
- In QGroundControl Joystick Setup, you can see the buttons turning yellow when you switch them on. For example, channel 9 in Taranis maps to button 0 in QGroundControl Joystick setup. You can assign any mode to this button e.g. _Altitude_ mode. Now when you lower the switch "SD", flight mode will change to _Altitude_.
![Joystick setup](../../assets/flight_controller/crazyflie/crazyflie_QGCjoystick_setup.png)
### ROS
To connect to Crazyflie 2.1 via MAVROS:
- Start up _cfbridge_ using the above instructions.
- Change the UDP port QGroundControl listens to:
- In QGroundControl, navigate to **Application Settings > General** and uncheck all the boxes under _Autoconnect to the following devices_.
- Add in **Comm Links** a link of type _UDP_, check the _Automatically Connect on Start_ option, change the _Listening Port_ to 14557, add Target Hosts: 127.0.0.1 and then press **OK**.
- Make sure you have [MAVROS](https://github.com/mavlink/mavros/tree/master/mavros#installation) installed.
- Start MAVROS with command:
```sh
roslaunch mavros px4.launch fcu_url:="udp://:14550@127.0.0.1:14551" gcs_url:="udp://@127.0.0.1:14557"
```
- Restart QGroundControl if it doesn't connect.
## 飞行
<lite-youtube videoid="0qy7O3fVN2c" title="Crazyflie 2.1 - PX4 Firmware (stabilized mode)"/>
@@ -0,0 +1,50 @@
# Holybro Kopis 2
The [Holybro Kopis 2](https://holybro.com/products/kopis2-hdv-free-shipping) is a ready-to-fly race quad for flying FPV or line-of-sight.
![Kopis 2](../../assets/hardware/holybro_kopis2.jpg)
## 购买渠道
The _Kopis 2_ can be bought from a number of vendors, including:
- [Holybro](https://holybro.com/products/kopis2-hdv-free-shipping) <!-- item code 30069, 30070 -->
- [GetFPV](https://www.getfpv.com/holybro-kopis-2-6s-fpv-racing-drone-pnp.html)
In addition you will need:
- An RC transmitter. The _Kopis 2_ can ship with an FrSky receiver or no receiver at all.
- LiPo battery and charger.
- FPV goggles if you want to fly FPV.
There are many compatible options, including these ones from [Fatshark](https://www.fatshark.com/product-page/dominator-v3).
You can also use DJI FPV goggles if you have the HDV version of the Kopis 2.
::: info
FPV support is completely independent of PX4/flight controller.
:::
## Flashing PX4 Bootloader
The _Kopis 2_ comes preinstalled with Betaflight.
Before loading PX4 firmware you must first install the PX4 bootloader.
Instructions for installing the bootloader can be found in the [Kakute F7](../flight_controller/kakutef7.md#bootloader) topic (this is the flight controller board on the _Kopis 2_).
:::tip
You can always [reinstall Betaflight](../advanced_config/bootloader_update_from_betaflight.md#reinstall-betaflight) later if you want!
:::
## Installation/Configuration
Once the bootloader is installed, you should be able to connect the vehicle to _QGroundControl_ via a USB cable.
:::info
At time of writing _Kopis 2_ is supported on the QGroundControl _Daily Build_, and prebuilt firmware is provided for the master branch only (stable releases are not yet available).
:::
To install and configure PX4:
- [Load PX4 Firmware](../config/firmware.md).
- [Set the Airframe](../config/airframe.md) to _Holybro Kopis 2_.
- Continue with [basic configuration](../config/index.md), including sensor calibration and radio setup.
+51
View File
@@ -0,0 +1,51 @@
# Complete Vehicles (Multicopter)
This section contains information about fully assembled ready to fly (RTF) or near-RTF vehicles that either run PX4 by default or can/may be usable with PX4.
:::info
This is a small subset of vehicles that can run PX4.
You can find others on [px4.io](https://px4.io/ecosystem/commercial-systems/) and in the [Airframes Reference](../airframes/airframe_reference.md).
:::
## Drone Development Kits/Reference Platforms
This section lists drone kits that are intended as platforms for further development.
They may come either fully assembled or in parts.
- [ModalAI VOXL 2 Starling PX4 Development Drone](../complete_vehicles_mc/modalai_starling.md) - SLAM development drone supercharged by VOXL 2 and PX4.
- [PX4 Vision DevKit](../complete_vehicles_mc/px4_vision_kit.md) - Multicopter used for PX4 computer vision development
## PX4 Preinstalled
This section lists vehicles that are sold fully assembled and ready to fly (RTF), with PX4 installed.
- [Teal One](https://tealdrones.com/teal-one/)
- [ModalAI Starling](../complete_vehicles_mc/modalai_starling.md)
- [ModalAI Sentinel](https://www.modalai.com/sentinel)
- [MindRacer 210](../complete_vehicles_mc/mindracer210.md)
- [NanoMind 110](../complete_vehicles_mc/nanomind110.md)
## PX4 Compatible
This section lists vehicles where you can update the software to run PX4.
- [Holybro Kopis 2](../complete_vehicles_mc/holybro_kopis2.md)
- [Bitcraze Crazyflie 2.1](../complete_vehicles_mc/crazyflie21.md)
- [BetaFPV Beta75X 2S Brushless Whoop](../complete_vehicles_mc/betafpv_beta75x.md) (discontinued)
## 定制 PX4
This section contains consumer vehicles that run a _custom_ version of PX4 (supported by their vendors).
These may or may not be updatable to run "vanilla" PX4.
- [Yuneec Typhoon H Plus](https://us.yuneec.com/typhoon-h-plus/)
- [Yuneec Mantis Q](https://px4.io/portfolio/yuneec-mantis-q/)
- [Yuneec H520](https://px4.io/portfolio/yuneec-h520-hexacopter/)
- [AeroSense Aerobo (AS-MC02-P)](https://px4.io/portfolio/aerosense-aerobo/)
## See Also
- [Kits (MC)](../frames_multicopter/kits.md)
- [DIY Builds](../frames_multicopter/diy_builds.md)
- [Complete Vehicles (VTOL)](../complete_vehicles_vtol/index.md)
- [Complete Vehicles (Fixed-Wing)](../complete_vehicles_fw/index.md)
@@ -0,0 +1,9 @@
# Intel Aero Ready to Fly Drone
<Badge type="info" text="Discontinued" />
:::warning
This flight controller has been [discontinued](../flight_controller/autopilot_experimental.md) and is no longer commercially available.
PX4 v1.11 is the last release that supports this platform ([see here for legacy docs](https://docs.px4.io/v1.12/en/complete_vehicles/intel_aero.html)).
:::
@@ -0,0 +1,32 @@
## MindRacer 210
![MindRacer 210](../../assets/hardware/hardware-mindracer210.png)
### 概要
A ready-to-fly racing beast running full PX4/MindPX stack. Can reach maximum 10:1 thrust-to-weight ratio!
MR210 uses MindRacer as flight controller. MR210 is a fully modularized, stackable RTF racing drone. The soldering-free SEP/WEP sockets allow pilots to quickly replace broken parts without the needs for soldering iron. Pilots can further easily customize the build by adding-to or replacing stacking parts to make a more powerful drone.
### Highlights
1. True 'X', 4mm thick, 210mm diagonal carbon fiber frame.
2. Stackable SEP/WEP sockets for soldering-free ESC connection and parts replacement.
3. 30A/4S/OneShot enabled BLHeli ESC.
4. 5V universal voltage supply for all avionics including camera and VTX.
5. DroneCode<sup>&reg;</sup> standard compliant JST GH connectors.
6. Have options for PPM/S.Bus/Specktrum DSM receiver
### User Guide
:::info
The user guide is [here](http://mindpx.net/assets/accessories/MR210usermanual_pdf.pdf).
:::
### Where to buy
MindRacer 210 is available at [AirMind Store](https://airmind.mindpx.net/node/78). You can also find MindRacer at Amazon<sup>&reg;</sup> or eBay<sup>&reg;</sup>.
### 技术支持
Please visit http://www.mindpx.org for more information. Or you can send email to [support@mindpx.net](mailto:support@mindpx.net) for any inquiries or help.
@@ -0,0 +1,6 @@
# MindRacer BNF & RTF
MindRacer BNF (Bind-n-Fly) & RTF (Ready-to-Fly) includes two models currently:
- [MindRacer 210](../complete_vehicles_mc/mindracer210.md)
- [NanoMind 110](../complete_vehicles_mc/nanomind110.md)
@@ -0,0 +1,123 @@
# VOXL 2 Starling PX4 Development Drone
The [Starling](https://modalai.com/starling) is a SLAM development drone supercharged by [VOXL 2](../flight_controller/modalai_voxl_2.md) and PX4 with SWAP-optimized sensors and payloads optimized for indoor and outdoor autonomous navigation.
Powered by Blue UAS Framework autopilot, VOXL 2, the Starling weighs only 275g and boasts an impressive 30 minutes of autonomous indoor flight time.
![Overview](../../assets/hardware/complete_vehicles/modalai_starling/starling_front_hero.jpg)
The VOXL 2 Starling is a PX4 development drone that houses a [VOXL 2](../flight_controller/modalai_voxl_2.md) companion computer and PX4 flight controller, image sensors, GPS, and connectivity modem and is ready-to-fly out-of-the-box.
The Starling features ModalAI’s [open SDK](https://docs.modalai.com/voxl-developer-bootcamp/) that has pre-configured autonomy models for computer vision assisted flight.
This development drone is meant to help you get to market faster and accelerate your application development and prototyping.
This guide explains the minimal additional setup required to get the UAV ready to fly. It also covers a hardware overview, first flight, setting up WiFi, and more.
:::info
For complete and regularly updated documentation, please visit <https://docs.modalai.com/starling-v2>.
:::
:::info
If you are new to VOXL, be sure to familiarize yourself with the core features of VOXL hardware and software by reviewing the [VOXL Bootcamp](https://docs.modalai.com/voxl-developer-bootcamp/).
:::
## 购买渠道
[modalai.com/starling](https://modalai.com/starling)
## Hardware Overview
![Hardware Overview](../../assets/hardware/complete_vehicles/modalai_starling/mrb_d0005_4_v2_c6_m22__callouts_a.jpg)
| Callout | 描述 | MPN |
| ------- | -------------------------------------------------------- | ---------------- |
| A | VOXL 2 | MDK-M0054-1 |
| B | VOXL 4-in-1 ESC | MDK-M0117-1 |
| C | Barometer Shield Cap | M10000533 |
| D | ToF Image Sensor (PMD) | MDK-M0040 |
| E | Tracking Image Sensor (OV7251) | M0014 |
| F | Hires Image Sensor (IMX214) | M0025-2 |
| G | AC600 WiFi Dongle | AWUS036EACS |
| H | GNSS GPS Module & Compass | M10-5883 |
| I | 915MHz ELRS Receiver | BetaFPV Nano RX |
| J | USB C Connector on VOXL 2 (not shown) | |
| K | VOXL Power Module | MCCA-M0041-5-B-T |
| L | 4726FM Propellor | M10000302 |
| M | Motor 1504 | |
| N | XT30 Power Connector | |
## Datasheet
### 产品规格
| Component | 技术规范 |
| --------------- | ----------------------------------------------------------------- |
| 飞控 | VOXL2 |
| Take-off Weight | 275g (172g without battery) |
| Diagonal Size | 211mm |
| Flight Time | > 30 minutes |
| 电机 | 1504 |
| Propellers | 120mm |
| 框架 | 3mm Carbon Fiber |
| ESC | ModalAI VOXL 4-in-1 ESC V2 |
| GPS | UBlox M10 |
| RC Receiver | 915mhz ELRS |
| Power Module | ModalAI Power Module v3 - 5V/6A |
| Battery | Sony VTC6 3000mah 2S, or any 2S 18650 battery with XT30 connector |
| 高度 | 83mm |
| Width | 187mm (Props folded) |
| Length | 142mm (Props folded) |
### Hardware Wiring Diagram
![Hardware Overview](../../assets/hardware/complete_vehicles/modalai_starling/d0005_compute_wiring_d.jpg)
## Tutorials
### ELRS Set Up
Binding your ELRS (ExpressLRS) receiver to a transmitter is a crucial step in preparing your VOXL 2 based PX4 Autonomy Developer Kit by ModalAI for flight.
This process ensures a secure and responsive connection between your drone and its control system.
Follow this guide to bind your ELRS receiver to your transmitter.
#### Setting up the Receiver
1. **Power On the Receiver**: Once your drone is powered on, you'll notice the ELRS receiver's blue LED flashing.
This is an indication that the receiver is on but has not yet established a connection with a transmitter.
![Starling Receiver](../../assets/hardware/complete_vehicles/modalai_starling/starling-photo.png)
2. **Enter Binding Mode**: To initiate binding, open a terminal and execute the `adb shell` and `voxl-elrs -bind` commands.
You'll observe the receiver's LED switch to a flashing in a heartbeat pattern, signaling that it is now in binding mode.
![Boot Screenshot](../../assets/hardware/complete_vehicles/modalai_starling/screenshot-boot.png)
#### Setting up the Transmitter
1. **Access the Menu**: On your Commando 8 radio transmitter included in the kit, press the left mode button to open the menu system.
![Press Menu on RC](../../assets/hardware/complete_vehicles/modalai_starling/radio-1.png)
2. **Navigate to ExpressLRS**: Use the right button to select the first menu entry, which should be "ExpressLRS."
3. **Find the Bind Option**: With the "ExpressLRS" option selected, scroll down to the bottom of the menu to locate the "Bind" section. This can be done by pressing the right button downwards until you reach the "Bind" option.
![Press Binding on RC](../../assets/hardware/complete_vehicles/modalai_starling/radio-2.png)
4. **Initiate Binding**: Select "Bind" to put the transmitter into binding mode. You will know the process has been successful when the transmitter emits a beep, indicating a successful bind.
#### Completing the Binding Process
Once the transmitter is set to bind mode, the ELRS receiver on the drone will change its LED from flashing to a steady light, signifying a successful connection between the receiver and the transmitter.
- **Power Cycle**: After the binding process is complete, it's essential to power cycle the VOXL 2 before attempting to fly.
This means turning off the VOXL 2 and then turning it back on.
This step ensures that all settings are properly applied and that the system recognizes the newly established connection.
You should now have a successfully bound ELRS receiver to your transmitter, ready for use with the PX4 Autonomy Kit by ModalAI.
A secure connection is vital for the reliable operation of your drone, so always confirm the binding status before flight.
### 视频
- [VOXL 2 Starling Hardware Overview](https://youtu.be/M9OiMpbEYOg)
- [VOXL 2 Starling First Flight Tutorial](https://youtu.be/Cpbbye3Z6co)
- [VOXL 2 Starling ELRS Set Up](https://youtu.be/7OwGS-kcFVg)
@@ -0,0 +1,33 @@
## NanoMind 110
![nanomind 11](../../assets/hardware/hardware-nanomind110.png)
### 概要
Nano size (110mm diagonal) ready-to-fly quad copter for indoor flight/racing.
NanoMind uses MindRacer as flight controller, which runs full PX4/MindPX flight stack.
### Highlights
1. 36g empty weight, with maximum 80g take-off Weight, heavy lifter.
2. 6~7 minutes flight time.
3. built-in options for PPM/S.Bus/Specktrum DSM receiver.
4. Soldering-free, fully stackable structure with SEP/WEP sockets for easy stacking and functional expansion.
### User Guide
:::info
The user guide is [here](http://mindpx.net/assets/accessories/NanoMind_110_user_manual.pdf).
:::
### Flight video
<lite-youtube videoid="bLtKa--Buic" title="NanoMind with external compass flying EKF2 estimator"/>
### Where to buy
NanoMind 110 is available at [AirMind<sup>&reg;</sup> Store](https://airmind.mindpx.net/node/92). You can also find MindRacer at Amazon<sup>&reg;</sup> or eBay<sup>&reg;</sup>.
### 技术支持
Please visit http://www.mindpx.org for more information. Or you can send email to [support@mindpx.net](mailto:support@mindpx.net) for any inquiries or help.
@@ -0,0 +1,423 @@
# PX4 Vision Autonomy Development Kit
The [_PX4 Vision Autonomy Development Kit_](https://holybro.com/collections/multicopter-kit/PX4-Vision) is a robust and inexpensive kit for enabling computer vision development on autonomous vehicles.
![Overview](../../assets/hardware/px4_vision_devkit/px4_vision_v1.5_front.png)
The kit contains a near-ready-to-fly carbon-fibre quadcopter equipped with a _Pixhawk 4_ or _Pixhawk 6C_ (on V1.5) flight controller, a _UP Core_ companion computer (4GB memory & 64GB eMMC), and a Occipital _Structure Core_ depth camera sensor.
The guide explains the minimal additional setup required to get the vehicle ready to fly (installing an RC system and battery). It also covers the first flight, and how to get started with modifying the computer vision code.
:::warning
PX4 no longer supports the avoidance software described in this document:
- [PX4/PX4-Avoidance](https://github.com/PX4/PX4-Avoidance) is archived
- [Path Planning Interface](../computer_vision/path_planning_interface.md), along with obstacle avoidance in missions, and safe landing.
A USB stick is included in the kit with an example of an obstacle avoidance feature implementation based on this software.
This example is intended as a reference only and serves to demonstrate the capabilities of the platform.
:::
:::tip
This kit is still highly recommended for developing and testing vision solutions (that don't rely on the legacy integrations).
:::
## 购买渠道
- [PX4 Vision Dev Kit v1.5](https://holybro.com/collections/multicopter-kit/products/px4-vision-dev-kit-v1-5)
- [PX4 Vision Dev Kit v1 (Discontinued)](https://holybro.com/collections/multicopter-kit/products/px4-vision)
## Px4 Vision Guide Content
- [Warnings & Notifications](#warnings-and-notifications)
- [What is Inside](#what-is-inside)
- [What Else Do You Need](#what-else-do-you-need)
- [First-time Setup](#first-time-setup)
- [Fly the Drone with avoidance](#fly-the-drone-with-avoidance)
- [Development using the Kit](#development-using-the-kit)
- [PX4 Vision Carrier Board Pinouts](#px4-vision-carrier-board-pinouts)
- [Other Development Resources](#other-development-resources)
- [How to get Technical Support](#how-to-get-technical-support)
## Warnings and Notifications
1. The kit is intended for computer vision projects that use a forward-facing camera (it does not have downward or rear-facing depth cameras).
Consequently it can't be used (without modification) for testing features that require a downward-facing camera.
2. Obstacle avoidance in missions can only be tested when GPS is available (missions use GPS coordinates).
Collision prevention can be tested in position mode provided there is a good position lock from either GPS or optical flow.
3. The port labeled `USB1` may jam the GPS if used with a _USB3_ peripheral (disable GPS-dependent functionality including missions).
This is why the boot image is supplied on a _USB2.0_ memory stick.
4. PX4 Vision v1 with ECN 010 or above (carrier board RC05 and up), the _UP Core_ can be powered by either the DC plug or with battery.
![RC Number](../../assets/hardware/px4_vision_devkit/rc.png) ![ECN Number](../../assets/hardware/px4_vision_devkit/serial_number_update.jpg)
5. All PX4 Vision v1.5 _UP Core_ can be powered by either the DC plug or with battery.
:::warning
For PX4 Vision v1 with ECN below 010/carrier board below RC04, the _UP Core_ should only be powered using the battery (do not remove the _UP Core power_ socket safety cover). This does not apply to PX4 Vision v1.5
![Warning - do not connect power port](../../assets/hardware/px4_vision_devkit/warning_power_port_update.png)
:::
## What is Inside
:::info
Difference between the PX4 Vision V1 and V1.5 can be found [here](https://docs.holybro.com/drone-development-kit/px4-vision-dev-kit-v1.5/v1-and-v1.5-difference)
:::
![PV4 Vision v1.5](../../assets/hardware/px4_vision_devkit/px4_vision_v1.5_whats_inside.jpg)
What's inside the PX4 Vision V1 can be found here in the [PX4 v1.13 Docs here](https://docs.px4.io/v1.13/en/complete_vehicles/px4_vision_kit.html#what-is-inside).
The PX4 Vision DevKit contains following components:
- Core Components:
- 1x Pixhawk 4 or Pixhawk 6C (for v1.5) flight controller
- 1x PMW3901 optical flow sensor
- 1x TOF Infrared distance sensor (PSK‐CM8JL65‐CC5)
- 1x Structure Core depth camera
- 160 deg wide vision camera
- Stereo infrared cameras
- Onboard IMU
- Powerful NU3000 Multi-core depth Processor
- 1x _UP Core_ computer (4GB memory & 64GB eMMC with Ubuntu and PX4 avoidance)
- Intel® Atom™ x5-z8350 (up to 1.92 GHz)
- Compatible OS: Microsoft Windows 10 full version, Linux (ubilinux, Ubuntu, Yocto), Android
- FTDI UART connected to flight controller
- `USB1`: USB3.0 A port used for booting PX4 avoidance environment from a USB2.0 stick (connecting a USB3.0 peripheral may jam GPS).
- `USB2`: USB2.0 port on a JST-GH connector. Can be used for second camera, LTE, etc. (or keyboard/mouse during development).
- `USB3`: USB2.0 JST-GH port connected to depth camera
- `HDMI`: HDMI out
- SD card slot
- WiFi 802.11 b/g/n @ 2.4 GHz (attached to external antenna #1). Allows computer to access home WiFi network for Internet access/updates.
- Mechanical Specification:
- Frame: Full 5mm 3k carbon fiber twill
- Motors: T-MOTOR KV1750
- ESC: BEHEli-S 20A ESC
- GPS: M8N GPS module
- Power module: Holybro PM07
- Wheelbase: 286mm
- Weight: 854 grams without battery or props
- Telemetry: ESP8266 connected to flight controller (attached to external antenna #2). Enables wireless connection to the ground station.
- A USB2.0 stick with pre-flashed software that bundles:
- Ubuntu 18.04 LTS
- ROS Melodic
- Occipital Structure Core ROS driver
- MAVROS
- [PX4 Avoidance](https://github.com/PX4/PX4-Avoidance)
- Assorted cables, 8x propellers, 2x battery straps (installed) and other accessories (these can be used to attach additional peripherals).
## What Else Do You Need
The kit contains all the essential drone hardware except a battery and a radio control system, which must be purchased separately:
- Battery:
- 4S LiPo with XT60 female connector
- Less than 115mm long (to fit between power connector and GPS mast)
- Radio control system
- Any [PX4-compatible RC System](../getting_started/rc_transmitter_receiver.md) can be used.
- An _FrSky Taranis_ transmitter with R-XSR receiver is one of the more popular setups.
- An H2.0 Hex Key (to unscrew the top plate so that an RC receiver can be connected)
In addition, users will need ground station hardware/software:
- Laptop or tablet running [QGroundControl](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html) (QGC).
## First-time Setup
1. Attach a [compatible RC receiver](../getting_started/rc_transmitter_receiver.md#connecting-receivers) to the vehicle (not supplied with kit):
- Remove/unscrew the top plate (where the battery goes) using an H2.0 hex key tool.
- [Connect the receiver to the flight controller](../assembly/quick_start_pixhawk4.md#radio-control).
- Re-attach the top plate.
- Mount the RC receiver on the _UP Core_ carrier board plate at the back of the vehicle (use zipties or double-sided tape).
- Ensure the antennas are clear of any obstructions and electrically isolated from the frame (e.g. secure them under the carrier board or to the vehicle arms or legs).
2. [Bind](../getting_started/rc_transmitter_receiver.md#binding) the RC ground and air units (if not already done).
The binding procedure depends on the specific radio system used (read the receiver manual).
3. Raise the GPS mast to the vertical position and screw the cover onto the holder on the base plate. (Not required for v1.5)
![Raise GPS mast](../../assets/hardware/px4_vision_devkit/raise_gps_mast.jpg)
4. Insert the pre-imaged USB2.0 stick from the kit into the _UP Core_ port labeled `USB1` (highlighted below).
![UP Core: USB1 Port ](../../assets/hardware/px4_vision_devkit/upcore_port_usb1.png)
5. Power the vehicle with a fully charged battery.
::: info
Ensure propellers are removed before connecting the battery.
:::
6. Connect the ground station to the vehicle WiFi network (after a few seconds) using the following default credentials:
- **SSID:** pixhawk4
- **Password:** pixhawk4
:::tip
WiFi network SSID, password, and other credentials may be changed after connecting (if desired), by using a web browser to open the URL: `http://192.168.4.1`.
The baud rate must not be changed from 921600.
:::
7. Start _QGroundControl_ on the ground station.
8. [Configure/calibrate](../config/index.md) the vehicle:
::: info
The vehicle should arrive pre-calibrated (e.g. with firmware, airframe, battery, and sensors all setup).
You will however need to calibrate the radio system (that you just connected) and it is often worth re-doing the compass calibration.
:::
- [Calibrate the Radio System](../config/radio.md)
- [Calibrate the Compass](../config/compass.md)
9. (Optional) Configure a [Flight Mode selector switch](../config/flight_mode.md) on the remote controller.
::: info
Modes can also be changed using _QGroundControl_
:::
We recommend RC controller switches are define for:
- [Position Mode](../flight_modes_mc/position.md) - a safe manual flight mode that can be used to test collision prevention.
- [Mission Mode](../flight_modes_mc/mission.md) - run missions and test obstacle avoidance.
- [Return Mode](../flight_modes_mc/return.md) - return vehicle safely to its launch point and land.
10. Attach the propellers with the rotations as shown:
![Motor Order Diagram](../../assets/hardware/px4_vision_devkit/motor_order_diagram.png)
- The propellers directions can be determined from the labels: _6045_ (normal, counter-clockwise) and _6045_**R** (reversed, clockwise).
![Propeller identification](../../assets/hardware/px4_vision_devkit/propeller_directions.jpg)
- Screw down firmly using the provided propellor nuts:
![Propeller nuts](../../assets/hardware/px4_vision_devkit/propeller_nuts.png)
## Fly the Drone with Avoidance
When the vehicle setup described above is complete:
1. Connect the battery to power the vehicle.
2. Wait until the boot sequence completes and the avoidance system has started (the vehicle will reject arming commands during boot).
:::tip
The boot/startup process takes around 1 minute from the supplied USB stick (or 30 seconds from [internal memory](#install_image_mission_computer)).
:::
3. Check that the avoidance system has started properly:
- The _QGroundControl_ notification log displays the message: **Avoidance system connected**.
![QGC Log showing avoidance system has started](../../assets/hardware/px4_vision_devkit/qgc_console_vision_system_started.jpg)
- A red laser is visible on the front of the _Structure Core_ camera.
4. Wait for the GPS LED to turn green.
This means that the vehicle has a GPS fix and is ready to fly!
5. Connect the ground station to the vehicle WiFi network.
6. Find a safe outdoor location for flying, ideally with a tree or some other convenient obstacle for testing PX4 Vision.
7. To test [collision prevention](../computer_vision/collision_prevention.md), enable [Position Mode](../flight_modes_mc/position.md) and fly manually towards an obstacle.
The vehicle should slow down and then stop within 6m of the obstacle (the distance can be [changed](../advanced_config/parameters.md) using the [CP_DIST](../advanced_config/parameter_reference.md#CP_DIST) parameter).
8. To test obstacle avoidance, create a mission where the path is blocked by an obstacle.
Then switch to [Mission Mode](../flight_modes_mc/mission.md) to run the mission, and observe the vehicle moving around the obstacle and then returning to the planned course.
## Development using the Kit
The following sections explain how to use the kit as an environment for developing computer vision software.
### PX4 Avoidance Overview
:::warning
This feature is no [longer supported by PX4](../computer_vision/path_planning_interface.md).
:::
The _PX4 Avoidance_ system consists of computer vision software running on a companion computer (with attached depth camera) that provides obstacle and/or route information to the PX4 flight stack running on a _flight controller_.
Documentation about the companion computer vision/planning software can be found on github here: [PX4/PX4-Avoidance](https://github.com/PX4/PX4-Avoidance).
The project provides a number of different planner implementations (packaged as ROS nodes):
- The PX4 Vision Kit runs the _localplanner_ by default and this is the recommended starting point for your own software.
- The _globalplanner_ has not been tested with this kit.
- The _landing planner_ requires a downward facing camera, and cannot used without first modifying the camera mounting.
PX4 and the companion computer exchange data over [MAVLink](https://mavlink.io/en/) using these interfaces:
- [Path Planning Interface](../computer_vision/path_planning_interface.md) - API for implementing avoidance features in automatic modes.
- [Collision Prevention Interface](../computer_vision/collision_prevention.md) - API for vehicle based avoidance in manual position mode based on an obstacle map (currently used for collision prevention).
<a id="install_image_mission_computer"></a>
### Installing the image on the Companion Computer
You can install the image on the _UP Core_ and boot from internal memory (instead of the USB stick).
This is recommended because booting from internal memory is much faster, frees up a USB port, and may well provide more memory than your USB stick.
:::info
Booting from internal memory takes around 30 seconds while booting from the supplied USB2 stick boots in about a minute (other cards may take several times longer).
:::
To flash the USB image to the _UP Core_:
1. Insert the pre-flashed USB drive into the _UP Core_ port labeled `USB1`.
2. [Login to the companion computer](#login_mission_computer) (as described above).
3. Open a terminal and run the following command to copy the image onto internal memory (eMMC).
The terminal will prompt for a number of responses during the flashing process.
```sh
cd ~/catkin_ws/src/px4vision_ros/tools
sudo ./flash_emmc.sh
```
::: info
All information saved in the _UP Core_ computer will be removed when executing this script.
:::
4. Pull out the USB stick.
5. Restart the vehicle.
The _UP Core_ computer will now boot from internal memory (eMMC).
### Boot the Companion Computer
First insert the provided USB2.0 stick into the _UP Core_ port labeled `USB1`, and then power the vehicle using a 4S battery.
The avoidance system should start within about 1 minute (though this does depend on the USB stick supplied).
:::tip
[Fly the Drone with Avoidance](#fly-the-drone-with-avoidance) additionally explains how to verify that the avoidance system is active.
:::
If you've already [installed the image on the companion computer](#install_image_mission_computer) you can just power the vehicle (i.e. no USB stick is needed).
The avoidance system should be up and running within around 30 seconds.
Once started the companion computer can be used both as a computer vision development environment and for running the software.
<a id="login_mission_computer"></a>
### Login to the Companion Computer
To login to the companion computer:
1. Connect a keyboard and mouse to the _UP Core_ via port `USB2`:
![UP Core: USB2](../../assets/hardware/px4_vision_devkit/upcore_port_usb2.png)
- Use the USB-JST cable from the kit to get a USB A connector
![USB to JST cable](../../assets/hardware/px4_vision_devkit/usb_jst_cable.jpg)
- A USB hub can be attached to the cable if the keyboard and mouse have separate connectors.
2. Connect a monitor to the _UP Core_ HDMI port.
![UP Core: HDMI port](../../assets/hardware/px4_vision_devkit/upcore_port_hdmi.png)
The Ubuntu login screen should then appear on the monitor.
3. Login to the _UP Core_ using the credentials:
- **Username:** px4vision
- **Password:** px4vision
### Developing/Extending PX4 Avoidance
The PX4 Vision's _UP Core_ computer provides a complete and fully configured environment for extending PX4 Avoidance software (and more generally, for developing new computer vision algorithms using ROS 2).
You should develop and test your software on the vehicle, sync it to your own git repository, and share any fixes and improvements with the wider PX4 community on the github [PX4/PX4-Avoidance](https://github.com/PX4/PX4-Avoidance) repo.
The catkin workspace is at `~/catkin_ws`, and is preconfigured for running the PX4 avoidance local planner.
The launch-from-boot file (`avoidance.launch`) is in the `px4vision_ros` package (modify this file to change what planner is launched).
The avoidance package is started on boot.
To integrate a different planner, this needs to be disabled.
1. Disable the avoidance process using the following command:
```sh
systemctl stop avoidance.service
```
You can simply reboot the machine to restart the service.
Other useful commands are:
```sh
# restart service
systemctl start avoidance.service
# disable service (stop service and do not restart after boot)
systemctl disable avoidance.service
# enable service (start service and enable restart after boot)
systemctl enable avoidance.service
```
2. The source code of the obstacle avoidance package can be found in https://github.com/PX4/PX4-Avoidance which is located in `~/catkin_ws/src/avoidance`.
3. Make changes to the code! To get the latest code of avoidance pull the code from the avoidance repo:
```sh
git pull origin
git checkout origin/master
```
4. Build the package
```sh
catkin build local_planner
```
The ROS workspace is placed in `~/catkin_ws`.
For reference on developing in ROS and using the catkin workspace, see the [ROS catkin tutorials](http://wiki.ros.org/catkin/Tutorials).
### Developing PX4 Firmware
You can modify PX4 itself, and [install it as custom firmware](../config/firmware.md#custom):
- You will need to connect _QGroundControl_ to the kit's _Pixhawk_ **via USB** in order to update firmware.
- Select the _PX4 Vision DevKit_ airframe after loading new firmware:
![Airframe Selection - PX4 Vision DevKit](../../assets/hardware/px4_vision_devkit/qgc_airframe_px4_vision_devkit_platform.jpg)
## PX4 Vision Carrier Board Pinouts
Information for the PX4 Vision 1.15 can be found at [https://docs.holybro.com](https://docs.holybro.com/drone-development-kit/px4-vision-dev-kit-v1.5).
The carrier board pinouts and other information are in the [downloads section](https://docs.holybro.com/drone-development-kit/px4-vision-dev-kit-v1.5/downloads).
## Other Development Resources
- [_UP Core_ Wiki](https://github.com/up-board/up-community/wiki/Ubuntu) - _Up Core_ companion computer technical information
- [Occipital Developer Forum](https://structure.io/developers) - _Structure Core_ camera information
- [Pixhawk 4 Overview](../flight_controller/pixhawk4.md)
- [Pixhawk 6C Overview](../flight_controller/pixhawk6c.md)
## How to get Technical Support
For hardware issues, please contact Holybro at: [productservice@holybro.com](mailto:productservice@holybro.com).
For software issues, use the following community support channels:
- [Holybro PX4 Vision Wikifactory](https://wikifactory.com/+holybro/px4-vision)
- [PX4 Support channels](../contribute/support.md)