diff --git a/conf/airframes/tudelft/bebop_course_orangeavoid.xml b/conf/airframes/tudelft/bebop_course_orangeavoid.xml
index 6992816a24..6ec08a8daf 100644
--- a/conf/airframes/tudelft/bebop_course_orangeavoid.xml
+++ b/conf/airframes/tudelft/bebop_course_orangeavoid.xml
@@ -33,7 +33,7 @@
-
+
@@ -44,7 +44,7 @@
-
+
@@ -81,7 +81,7 @@
-
+
@@ -227,7 +227,7 @@
-
+
diff --git a/conf/control_panel_example.xml b/conf/control_panel_example.xml
index f8e485840c..8b456683f7 100644
--- a/conf/control_panel_example.xml
+++ b/conf/control_panel_example.xml
@@ -17,7 +17,7 @@
-
+
diff --git a/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo.xml b/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo.xml
index ade6c19142..1f76af7c8a 100644
--- a/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo.xml
+++ b/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo.xml
@@ -1,20 +1,25 @@
+
+
#include "modules/datalink/datalink.h"
#include "modules/energy/electrical.h"
#include "modules/radio_control/radio_control.h"
#include "modules/ahrs/ahrs.h"
#define NPS_GAZEBO_WORLD "cyberzoo_orange_poles.world"
-
+
+
+
-
+
+
@@ -24,13 +29,18 @@
+
+
+
+
+
@@ -38,6 +48,8 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125,9 +165,16 @@
+
+
+
+
+
+
+
diff --git a/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo_guided.xml b/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo_guided.xml
index 349d084fb1..8f70d971e3 100644
--- a/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo_guided.xml
+++ b/conf/flight_plans/tudelft/course_orangeavoid_cyberzoo_guided.xml
@@ -1,6 +1,7 @@
+
-
+
#include "modules/datalink/datalink.h"
#include "modules/energy/electrical.h"
@@ -21,25 +22,30 @@ inline void setGuided(void){
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -47,6 +53,8 @@ inline void setGuided(void){
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -126,10 +161,13 @@ inline void setGuided(void){
+
+
+
@@ -137,9 +175,16 @@ inline void setGuided(void){
+
+
+
+
+
+
+
diff --git a/conf/modules/orange_avoider.xml b/conf/modules/orange_avoider.xml
index 8c5d213cef..b323c5f25b 100644
--- a/conf/modules/orange_avoider.xml
+++ b/conf/modules/orange_avoider.xml
@@ -11,7 +11,7 @@ The avoidance strategy is to simply count the total number of orange pixels. Whe
The color filter settings are set using the cv_detect_color_object. This module can run multiple filters simultaneously
so you have to define which filter to use with the ORANGE_AVOIDER_VISUAL_DETECTION_ID setting.
-
+
diff --git a/conf/userconf/tudelft/course_conf.xml b/conf/userconf/tudelft/course_conf.xml
index 5881e3c682..a5cc89c2da 100644
--- a/conf/userconf/tudelft/course_conf.xml
+++ b/conf/userconf/tudelft/course_conf.xml
@@ -7,7 +7,7 @@
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/tudelft/course_orangeavoid_cyberzoo.xml"
settings="settings/rotorcraft_basic.xml"
- settings_modules="modules/ahrs_int_cmpl_quat.xml modules/bebop_cam.xml modules/cv_detect_color_object.xml modules/electrical.xml modules/gps.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/nav_rotorcraft.xml modules/orange_avoider.xml modules/stabilization_indi_simple.xml modules/video_capture.xml modules/video_rtp_stream.xml"
+ settings_modules="modules/ahrs_float_mlkf.xml modules/bebop_cam.xml modules/cv_detect_color_object.xml modules/electrical.xml modules/gps.xml modules/guidance_pid_rotorcraft.xml modules/guidance_rotorcraft.xml modules/imu_common.xml modules/ins_extended.xml modules/nav_rotorcraft.xml modules/orange_avoider.xml modules/stabilization_indi_simple.xml modules/video_capture.xml modules/video_rtp_stream.xml"
gui_color="white"
/>
-
-
-
-
-
-
-
-
+
+
@@ -41,8 +35,8 @@
-
-
+
+
diff --git a/sw/tools/install.py b/sw/tools/install.py
index 08020f0785..6788188068 100755
--- a/sw/tools/install.py
+++ b/sw/tools/install.py
@@ -46,9 +46,12 @@ class InstallWindow(QWidget):
def cmd_dev(self):
self.execute('sudo -E apt-get -f -y install paparazzi-dev')
+ self.execute('sudo -E apt-get -f -y install python-is-python3')
# Missing
if distro_version <= 20.04:
self.execute('sudo -E apt-get install -y python3-lxml python3-numpy')
+ elif distro_version >= 24.04:
+ self.execute('sudo -E apt-get install -y liblablgtk2-ocaml-dev')
def cmd_arm(self):
self.execute('sudo -E apt-get -f -y install paparazzi-dev')
@@ -71,11 +74,24 @@ class InstallWindow(QWidget):
self.execute('sudo -E apt-get -f -y install dfu-util')
self.execute('sudo -E cp conf/system/udev/rules/*.rules /etc/udev/rules.d/ && sudo -E udevadm control --reload-rules')
+ def cmd_gazebo_classic(self):
+ if distro_version <= 22.04:
+ self.execute('sudo -E apt-get update')
+ self.execute('sudo -E apt-get -f -y install lsb-release wget gnupg')
+ self.execute('sudo sh -c \'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list\'')
+ self.execute('wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -')
+ self.execute('sudo apt update')
+ self.execute('sudo -E apt-get -f -y install gazebo11 libgazebo11-dev')
+ self.execute('git submodule init && git submodule sync && git submodule update ./sw/ext/tudelft_gazebo_models')
+
def cmd_gazebo(self):
- if distro_version > 20.04:
- self.execute('sudo -E apt-get -f -y install gazebo libgazebo-dev')
- else:
- self.execute('sudo -E apt-get -f -y install gazebo9 libgazebo9-dev')
+ if distro_version >= 22.04:
+ self.execute('sudo -E apt-get update')
+ self.execute('sudo -E apt-get -f -y install curl lsb-release gnupg')
+ self.execute('sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg')
+ self.execute('echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] https://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null')
+ self.execute('sudo apt update')
+ self.execute('sudo -E apt-get -f -y install gz-harmonic')
self.execute('git submodule init && git submodule sync && git submodule update ./sw/ext/tudelft_gazebo_models')
@@ -152,13 +168,19 @@ class InstallWindow(QWidget):
button6.clicked.connect(self.cmd_mcu)
btn_layout.addWidget(button6)
- if distro_version <= 20.04:
- button7 = QPushButton('7) Gazebo9')
- else:
- button7 = QPushButton('7) Gazebo11')
- button7.clicked.connect(self.cmd_gazebo)
+ button7 = QPushButton('7a) Gazebo11 Classic')
+ if distro_version > 22.04:
+ button7.setDisabled(True)
+ button7.clicked.connect(self.cmd_gazebo_classic)
btn_layout.addWidget(button7)
+ button7b = QPushButton('7b) Gazebo Harmonic')
+ if distro_version >= 22.04:
+ button7b.clicked.connect(self.cmd_gazebo)
+ else:
+ button7b.setDisabled(True)
+ btn_layout.addWidget(button7b)
+
button8 = QPushButton('8) Bebop Opencv')
button8.clicked.connect(self.cmd_bebopcv)
if distro_version > 20.04: