Skip to content
Open
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
2 changes: 1 addition & 1 deletion .devcontainer/linux/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "px4_roscon_25_linux",
"name": "px4_roscon_workshop_linux",
"image": "dronecode/roscon-25-workshop:latest",
"forwardPorts": [8765],
"remoteEnv": {
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/nogui/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "px4_roscon_25_nogui",
"name": "px4_roscon_workshop_nogui",
"image": "dronecode/roscon-25-workshop:latest",
"forwardPorts": [8765, 18570],
"customizations": {
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/nvidia/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "px4_roscon_25_nvidia",
"name": "px4_roscon_workshop_nvidia",
"image": "dronecode/roscon-25-workshop:latest",
"forwardPorts": [8765],
"containerEnv": {
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ The goal is to compare these two approaches, highlighting their differences and

For detailed instructions and exercises, refer to the following guides in this repository:

- [Offboard Demo](px4_roscon_25/offboard_demo/README.md)
- [Custom Mode Demo](px4_roscon_25/custom_mode_demo/README.md)
- [Offboard Demo](px4_roscon_workshop/offboard_demo/README.md)
- [Custom Mode Demo](px4_roscon_workshop/custom_mode_demo/README.md)

### Perception & Applications

Expand All @@ -72,10 +72,10 @@ In this section, we explore **three practical examples** of perception and contr

For more detailed instructions and exercises, refer to the following demos:

- [ArUco Marker Detection](px4_roscon_25/aruco_tracker/README.md)
- [Teleoperation](px4_roscon_25/teleop/README.md)
- [Precision Landing](px4_roscon_25/precision_land/README.md)
- [Precision Landing with Executor](px4_roscon_25/precision_land_executor/README.md)
- [ArUco Marker Detection](px4_roscon_workshop/aruco_tracker/README.md)
- [Teleoperation](px4_roscon_workshop/teleop/README.md)
- [Precision Landing](px4_roscon_workshop/precision_land/README.md)
- [Precision Landing with Executor](px4_roscon_workshop/precision_land_executor/README.md)

### Q&A, Resources & Hardware Show-and-Tell

Expand Down
4 changes: 2 additions & 2 deletions docs/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ This is all you need to do to start the GZ + PX4 simulation, you can now takeoff
With the simulation up an running, it is time to bridge ROS 2 with Gazebo and PX4.

The following sections will demo the essential steps in this process.
However, when trying the exercises you can leverage the [common launchfile](../px4_roscon_25/px4_roscon_25/README.md) which automatically sets up the required bridges.
However, when trying the exercises you can leverage the [common launchfile](../px4_roscon_workshop/px4_roscon_workshop/README.md) which automatically sets up the required bridges.

1. **Clock bridging.** We want to leverage the GZ clock and use it to time all our ROS 2 node.
This is accomplished by first creating an unidirectional bridge between the gz `/clock` topic and the ROS 2 one and then by commanding all ROS 2 to use the newly created `/clock` ROS 2 topic as time reference.
Expand Down Expand Up @@ -326,7 +326,7 @@ accelerometer_integral_dt: 4000

### Foxglove visualization

You can use the [px4_tf](../px4_roscon_25/px4_tf/README.md) packages, in conjunction with `foxglove_bridge` to visualize in 3D the drone `base_link`.
You can use the [px4_tf](../px4_roscon_workshop/px4_tf/README.md) packages, in conjunction with `foxglove_bridge` to visualize in 3D the drone `base_link`.

The `px4_tf_publisher` node subscribes to PX4 `/fmu/out/vehicle_odometry` topic and publishes a derived transform for the `odom` frame to the `base_link` frame.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ When the simulation is running you can see the GZ topics:
gz topic -l
```

You can now launch the [common](../px4_roscon_25/README.md) launchfile
You can now launch the [common](../px4_roscon_workshop/README.md) launchfile

```sh
ros2 launch px4_roscon_25 common.launch.py
ros2 launch px4_roscon_workshop common.launch.py
```

and then the ArUco tracker launchfile.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ The demo executes the following autonomous sequence:
## Usage

1. Start the simulation, PX4 and QGC as described in the [setup guide](../../docs/setup.md).
2. Start the additional ROS 2 node through the [common launchfile](../px4_roscon_25/README.md)
2. Start the additional ROS 2 node through the [common launchfile](../px4_roscon_workshop/README.md)

```sh
ros2 launch px4_roscon_25 common.launch.py
ros2 launch px4_roscon_workshop common.launch.py
```

3. Run `custom_mode_demo.launch.py` from inside the docker container
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ The Offboard Demo implements a state-based flight controller that executes the f
## Usage

1. Start the simulation, PX4 and QGC as described in the [setup guide](../../docs/setup.md).
2. Start the additional ROS 2 node through the [common launchfile](../px4_roscon_25/README.md).
2. Start the additional ROS 2 node through the [common launchfile](../px4_roscon_workshop/README.md).

```sh
ros2 launch px4_roscon_25 common.launch.py
ros2 launch px4_roscon_workshop common.launch.py
```

3. Run `offboard_demo.launch.py` from inside the docker container
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ The current waypoints require a velocity limit, you can set it in QGC.
1. Launch the common launchfile

```sh
ros2 launch px4_roscon_25 common.launch.py
ros2 launch px4_roscon_workshop common.launch.py
```

2. Start the ArUco tracker node:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.8)
project(px4_roscon_25)
project(px4_roscon_workshop)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ This package contains a launchfile to simplify the simulations startup.
To use it, run

```sh
ros2 launch px4_roscon_25 common.launch.py
ros2 launch px4_roscon_workshop common.launch.py
```

The launchfile will
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

def generate_launch_description():

pkg_share = FindPackageShare('px4_roscon_25').find('px4_roscon_25')
pkg_share = FindPackageShare('px4_roscon_workshop').find('px4_roscon_workshop')

clock_bridge_config_file = os.path.join(pkg_share,"cfg","clock_bridge.yaml")

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>px4_roscon_25</name>
<name>px4_roscon_workshop</name>
<version>0.0.1</version>
<description>Utility package to facilitate communication between PX4 and ROS 2</description>
<maintainer email="ubuntu@todo.todo">ubuntu</maintainer>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,31 @@
<visual name="base_link_visual">
<origin xyz="0 0 .025" rpy="0 0 3.141592654"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/NXP-HGD-CF.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/NXP-HGD-CF.dae" />
</geometry>
</visual>
<visual name="5010_motor_base_0">
<origin xyz="0.174 0.174 .032" rpy="0 0 -.45"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Base.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Base.dae" />
</geometry>
</visual>
<visual name="5010_motor_base_1">
<origin xyz="-0.174 0.174 .032" rpy="0 0 -.45"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Base.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Base.dae" />
</geometry>
</visual>
<visual name="5010_motor_base_2">
<origin xyz="0.174 -0.174 .032" rpy="0 0 -.45"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Base.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Base.dae" />
</geometry>
</visual>
<visual name="5010_motor_base_3">
<origin xyz="-0.174 -0.174 .032" rpy="0 0 -.45"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Base.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Base.dae" />
</geometry>
</visual>
</link>
Expand All @@ -37,14 +37,14 @@
<visual name="rotor_0_visual">
<origin xyz="-0.022 -0.14638461538461536 -0.016" rpy="0 0 0"/>
<geometry>
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_25/meshes/1345_prop_ccw.stl" />
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_workshop/meshes/1345_prop_ccw.stl" />
</geometry>
</visual>
-->
<visual name="rotor_0_visual_motor_bell">
<origin xyz="0 0 -.032" rpy="0 0 0"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Bell.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Bell.dae" />
</geometry>
</visual>
</link>
Expand All @@ -58,14 +58,14 @@
<visual name="rotor_0_visual">
<origin xyz="-0.022 -0.14638461538461536 -0.016" rpy="0 0 0"/>
<geometry>
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_25/meshes/1345_prop_ccw.stl" />
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_workshop/meshes/1345_prop_ccw.stl" />
</geometry>
</visual>
-->
<visual name="rotor_0_visual_motor_bell">
<origin xyz="0 0 -.032" rpy="0 0 0"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Bell.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Bell.dae" />
</geometry>
</visual>
</link>
Expand All @@ -79,14 +79,14 @@
<visual name="rotor_0_visual">
<origin xyz="-0.022 -0.14638461538461536 -0.016" rpy="0 0 0"/>
<geometry>
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_25/meshes/1345_prop_ccw.stl" />
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_workshop/meshes/1345_prop_ccw.stl" />
</geometry>
</visual>
-->
<visual name="rotor_0_visual_motor_bell">
<origin xyz="0 0 -.032" rpy="0 0 0"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Bell.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Bell.dae" />
</geometry>
</visual>
</link>
Expand All @@ -100,14 +100,14 @@
<visual name="rotor_0_visual">
<origin xyz="-0.022 -0.14638461538461536 -0.016" rpy="0 0 0"/>
<geometry>
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_25/meshes/1345_prop_ccw.stl" />
<mesh scale="0.8461538461538461 0.8461538461538461 0.8461538461538461" filename="package://px4_roscon_workshop/meshes/1345_prop_ccw.stl" />
</geometry>
</visual>
-->
<visual name="rotor_0_visual_motor_bell">
<origin xyz="0 0 -.032" rpy="0 0 0"/>
<geometry>
<mesh filename="package://px4_roscon_25/meshes/5010Bell.dae" />
<mesh filename="package://px4_roscon_workshop/meshes/5010Bell.dae" />
</geometry>
</visual>
</link>
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ When the simulation is running you can see the GZ topics:
gz topic -l
```

You can now launch the [common](../px4_roscon_25/README.md) launchfile
You can now launch the [common](../px4_roscon_workshop/README.md) launchfile

```sh
ros2 launch px4_roscon_25 common.launch.py
ros2 launch px4_roscon_workshop common.launch.py
```

and finally the `teleop` launchfile and the _keyboard_monitor_ node.
Expand All @@ -44,7 +44,7 @@ ros2 run teleop_twist_rpyt_keyboard teleop_twist_rpyt_keyboard
```

Just like in the Custom Mode demo, the teleop one requires you to manually activate it and arm the drone!
Make sure you launch the maze in Foxglove, more details see [Foxglove Instructions](../px4_roscon_25/README.md)
Make sure you launch the maze in Foxglove, more details see [Foxglove Instructions](../px4_roscon_workshop/README.md)

Your output should look like this:
![foxglove example](../../docs/assets/foxglove_teleop.png)
Expand Down
File renamed without changes.
File renamed without changes.