Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions .github/workflows/sphinx-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Strip "docs/" prefixes from README
run: sed -i 's|docs/||g' README.md

- name: Set up Python
uses: actions/setup-python@v5
with:
Expand All @@ -27,16 +30,19 @@ jobs:

- name: Install dependencies for Python client docs
working-directory: ./client/python/projectairsim/docs
run: |
pip install -r requirements.txt
run: pip install -r requirements.txt

- name: Build Python client docs
working-directory: ./client/python/projectairsim/docs
run: make html
run: |
rm -rf build
make html

- name: Build main docs
working-directory: ./docs
run: make html
run: |
rm -rf build
make html

- name: Copy Python client docs into main docs
run: |
Expand Down
48 changes: 0 additions & 48 deletions build_docs.bat

This file was deleted.

21 changes: 0 additions & 21 deletions build_docs.sh

This file was deleted.

33 changes: 0 additions & 33 deletions build_docs_external.bat

This file was deleted.

31 changes: 0 additions & 31 deletions build_docs_external.sh

This file was deleted.

2 changes: 1 addition & 1 deletion docs/command_line_switches.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Project AirSim supports the following command line switches. Since Project AirS
| <code>&#x2011;nosound</code> | Disable any sound output |
| <code>&#x2011;benchmark</code> | Enabled Unreal's benchmark mode that seems to remove any sleeps in between rendering/tick loops to run without limiting to any real-time execution rate FPS target (this mode needs further testing to confirm any side-effects and how it could be used properly) |
| <code>&#x2011;gltfDir=</code><i>dir/containing/tiles/</i> | If you'll be using a GIS scene, you can specify the directory to read the tiles from. Alternatively, if you're trying CesiumForUnreal you can provide the root tileset json file. |
| <code>&#x2011;clientauthpubkey=</code><i>public_key</i> | Specify a client authorization public key to require clients to present a client authorization token before being allowed to use the client API. Overrides the key set by the [PROJECTAIRSIM_CLIENT_AUTH_PUBKEY](#environment_variables) environment variable. |
| <code>&#x2011;clientauthpubkey=</code><i>public_key</i> | Specify a client authorization public key to require clients to present a client authorization token before being allowed to use the client API. Overrides the key set by the [PROJECTAIRSIM_CLIENT_AUTH_PUBKEY](#environment-variables) environment variable. |

The below simulation parameters can also be changed through the comand line:

Expand Down
12 changes: 6 additions & 6 deletions docs/config_robot.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Project AirSim currently comes with some base configurations for quadrotor drone
"physics-type": "unreal-physics"
```

**[Unreal physics](internal/physics/unreal_physics.md)** uses the **[PhysX](https://developer.nvidia.com/gameworks-physx-overview)** engine that's built-in to Unreal. PhysX can calculate motion for multi-jointed robots with constraints on each joint, as well as rigid body dynamics for aerial drone flight.
**[Unreal physics](tbd)** uses the **[PhysX](https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Introduction.html)** engine that's built-in to Unreal. PhysX can calculate motion for multi-jointed robots with constraints on each joint, as well as rigid body dynamics for aerial drone flight.

*Note: The simulation will automatically detect when any actor in the scene is configured to use Unreal Physics, and this will link the physics calculation step to Unreal's rendering step, so the [sim clock setting](config_scene.md#steppable-clock) for `step-ns` may need to be much slower (20 ms = ~50 FPS) to maintain reasonable simulation advancement rate.*

Expand Down Expand Up @@ -415,7 +415,7 @@ For PX4 in WSL2, the value for `local-host-ip` can be found by running the comma
| SITL Configuration | `control-port` | `control-port-remote` | `control-ip-address` | Notes |
| ------------------ | -------------- | --------------------- | -------------------- | ----- |
| Same computer | Usually `14540` | (Unassigned) | `127.0.0.1` |
| Different computer | (Ignored) | Usually `14580` | IP address of PX4 host | Use [MAVLink Router](https://docs.px4.io/master/en/simulation/#running-simulation-on-a-remote-server) running on the PX4 host. |
| Different computer | (Ignored) | Usually `14580` | IP address of PX4 host | Use [MAVLink Router](https://docs.px4.io/main/en/simulation/#running-simulation-on-a-remote-server) running on the PX4 host. |
| PX4 in WSL2 | Usually `14540` | (Unassigned) | `remote` | In WSL2, set environment variable `PX4_SIM_HOST_ADDR` to Project AirSim host IP address. MAVLink Router is not used.

When running PX4 on the same computer or in WSL2, PX4 connects to Project AirSim at UDP/IP port `control-port`. When running PX4 remotely, Project AirSim connects to PX4 at the UDP/IP port `control-port-remote`.
Expand Down Expand Up @@ -468,10 +468,10 @@ The order and number of the actuator `id` tags depends on the airframe:

| Project AirSim Airframe | Actuator Order |
| -------- | -------------- |
| `quadrotor-x` | [Quadrotor-X order](https://docs.px4.io/master/en/airframes/airframe_reference.html#quadrotor-x) (front right, rear left, front left, rear right) |
| `hexarotor-x` | [Hexarotor-X order](https://docs.px4.io/master/en/airframes/airframe_reference.html#hexarotor-x) (front right, rear left, front left, rear right) |
| `vtol-quad-x-tailsitter` | \*[VTOL Quad Tailsitter order](https://docs.px4.io/master/en/airframes/airframe_reference.html#vtol-quad-tailsitter) (front right, rear left, front left, rear right, unused output port, elevon left, elevon right)
| `vtol-quad-tiltrotor` | \*[VTOL Tiltrotor order](https://docs.px4.io/master/en/airframes/airframe_reference.html#vtol-tiltrotor) (rotor outboard left, rotor inboard left, rotor inboard right, rotor outboard right, tilt outboard left, tilt inboard left, tilt inboard right, tilt outboard right, aileron left, aileron right, elevator, rudder)
| `quadrotor-x` | [Quadrotor-X order](https://docs.px4.io/main/en/airframes/airframe_reference.html#quadrotor-x) (front right, rear left, front left, rear right) |
| `hexarotor-x` | [Hexarotor-X order](https://docs.px4.io/main/en/airframes/airframe_reference.html#hexarotor-x) (front right, rear left, front left, rear right) |
| `vtol-quad-x-tailsitter` | \*[VTOL Quad Tailsitter order](https://docs.px4.io/main/en/airframes/airframe_reference.html#vtol-quad-tailsitter) (front right, rear left, front left, rear right, unused output port, elevon left, elevon right)
| `vtol-quad-tiltrotor` | \*[VTOL Tiltrotor order](https://docs.px4.io/main/en/airframes/airframe_reference.html#vtol-tiltrotor) (rotor outboard left, rotor inboard left, rotor inboard right, rotor outboard right, tilt outboard left, tilt inboard left, tilt inboard right, tilt outboard right, aileron left, aileron right, elevator, rudder)

\**Note: The PX4 documentation does not currently show the correct order.*

Expand Down
8 changes: 4 additions & 4 deletions docs/controllers/px4/px4_hitl.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ You must have one of the supported devices listed above. For manual flight simul
1. Make sure your RC receiver and RC transmitter are bound to each other.
2. Connect the receiver (the vehicle-based radio unit) to the PX4 flight controller's RC port.

Refer to your RC manual and [PX4 docs](https://docs.px4.io/en/getting_started/rc_transmitter_receiver.html) for more information.
Refer to your RC manual and [PX4 docs](https://docs.px4.io/main/en/getting_started/rc_transmitter_receiver.html) for more information.

2. Do not plug the PX4 flight controller device into your computer yet.
3. Download and install [QGroundControl](http://qgroundcontrol.com/).
4. Launch *QGroundControl* and go to the Vehicle Firmware Setup panel (click on the Ground Control logo, select the "Vehicle Setup" tool, then "Firmware" tab.)
5. Connect the PX4 flight controller device to a USB port on your computer.
6. *QGroundControl* should detect the PX4 hardware and offer to setup the firmware on the device. Select the "PX4 Pro Stable Release vx.xx.x" flight stack.
See also the [initial firmware setup video](https://docs.px4.io/master/en/config/).
See also the [initial firmware setup video](https://docs.px4.io/main/en/config/).
7. In *QGroundControl*, configure your PX4 flight controller device for HIL simulation by selecting under "Simulation (Copter)" the "HIL Quadrocopter X" airframe, then click "Apply and Restart" at the top. After the PX4 device reboots and *QGroundControl* reconnects to it, verify that "HIL Quadrocopter X" is still selected.

For manual flight simulation, perform these additional steps:
Expand All @@ -43,7 +43,7 @@ For manual flight simulation, perform these additional steps:
Roll and pitch sensitivity | mid-3 mark
Altitude and position control sensitivity | mid-2 mark

11. In the [robot configuration file](/config_robot.md), specify PX4 for your vehicle controller like this:
11. In the [robot configuration file](../../config_robot.md), specify PX4 for your vehicle controller like this:
```jsonc
{
...
Expand Down Expand Up @@ -76,7 +76,7 @@ You'll need to replace the "serial-port" entry's value of "serial device name" w

After completing the above setup you should now be able to use *QGroundControl* to fly the vehicle in Project AirSim. If an RC transmitter and receiver are connected and configured through the additional setup steps for manual flight simulation, you can manually fly using the RC transmitter. With manual flight you don't need *QGroundControl* after the initial setup. You can usually arm the vehicle by lowering and bringing the two sticks of the RC transmitter together down and inwards. Typically the Stabilized flight mode (instead of Manual) gives a better experience for beginners. For more information see the [PX4 Basic Flying Guide](https://docs.px4.io/master/en/flying/basic_flying.html).

You can also control the drone with a Python script using [the Python APIs](/apis.md).
You can also control the drone with a Python script using [the Python APIs](../../api.md).

---

Expand Down
2 changes: 1 addition & 1 deletion docs/controllers/px4/px4_lockstep.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# PX4 Lockstep Mode

Recent versions of PX4 support a new [lockstep feature](https://docs.px4.io/master/en/simulation/#lockstep-simulation) when communicating with a simulator over TCP. `Lockstep` decouples the internal clocks of PX4 and the simulator from real-time and synchronizes them to each other so that both internal clocks advance together. This allows PX4 to behave normally even during unusually long delays in simulator updates.
Recent versions of PX4 support a new [lockstep feature](https://docs.px4.io/main/en/simulation/#lockstep-simulation) when communicating with a simulator over TCP. `Lockstep` decouples the internal clocks of PX4 and the simulator from real-time and synchronizes them to each other so that both internal clocks advance together. This allows PX4 to behave normally even during unusually long delays in simulator updates.

It is recommended that when you are running a `lockstep`-enabled version of PX4 in SITL mode that you specify the controller settings within the robot configuration of Project AirSim to set `lock-step` to `true` and set `use-tcp` to `true`.

Expand Down
2 changes: 1 addition & 1 deletion docs/controllers/px4/px4_multi_vehicle.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ However, the provided script does not let us view the PX4 console. If you want t

You can add more than two vehicles but you will need to make sure you adjust the TCP port for each (ie: vehicle 3's port would be `4562` and so on..) and adjust the spawn point.

4. Now run your client script loading the simulation scene and Project AirSim should connect to PX4 SITL instances via TCP. If you are running the instances with the [PX4 console visible](px4_multi_vehicle.md#Starting-sitl-instances-with-px4-console), you should see a bunch of messages from each PX4 SITL window. Specifically, the following messages tell you that AirSim is connected properly and GPS fusion is stable:
4. Now run your client script loading the simulation scene and Project AirSim should connect to PX4 SITL instances via TCP. If you are running the instances with the [PX4 console visible](px4_multi_vehicle.md), you should see a bunch of messages from each PX4 SITL window. Specifically, the following messages tell you that AirSim is connected properly and GPS fusion is stable:

INFO [simulator] Simulator connected on UDP port 14560
INFO [mavlink] partner IP: 127.0.0.1
Expand Down
Loading