diff --git a/Dockerfile.dev b/Dockerfile.dev
index cc264dc872e..62e03139457 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -10,6 +10,12 @@ ENV DISPLAY=:1
ARG TARGETARCH
ENV TARGETARCH=${TARGETARCH}
+RUN if [ -z TARGETARCH] then \
+ echo "****************************** ERROR ******************************"; \
+ echo "No target architecture was given. TARGETARCH is a required argument."; \
+ exit 1; \
+ fi
+
# Update the package list and install necessary packages, including the missing ones
RUN apt-get update && \
apt-get install -y \
@@ -68,6 +74,14 @@ RUN git clone https://github.com/robotics-erlangen/framework.git /root/framework
cmake .. && \
make simulator-cli
+# Clone, build ER-Force's autoref
+RUN git clone https://github.com/robotics-erlangen/autoref.git /root/autoref && \
+ cd /root/autoref && \
+ git submodule update --init && \
+ mkdir build && cd build && \
+ cmake .. && \
+ make
+
# Use bash to source the ROS2 setup file and run make perf
RUN bash -c "source /opt/ros/humble/setup.bash && \
cd /root/robocup-software && \
diff --git a/soccer/src/soccer/ui/main_window.cpp b/soccer/src/soccer/ui/main_window.cpp
index 3b2a59a9d36..39dac69563d 100644
--- a/soccer/src/soccer/ui/main_window.cpp
+++ b/soccer/src/soccer/ui/main_window.cpp
@@ -1158,6 +1158,14 @@ void MainWindow::on_fastYellow_clicked() {
send_quick_command(PlayState::ready_free_kick(!context_->blue_team));
}
+void MainWindow::on_fastPenaltyBlue_clicked() {
+ send_quick_command(PlayState::ready_penalty(context_->blue_team));
+}
+
+void MainWindow::on_fastPenaltyYellow_clicked() {
+ send_quick_command(PlayState::ready_penalty(!context_->blue_team));
+}
+
bool MainWindow::live() { return !_playbackRate; }
void MainWindow::updateDebugLayers(const LogFrame& frame) {
// Check if any debug layers have been added
diff --git a/soccer/src/soccer/ui/main_window.hpp b/soccer/src/soccer/ui/main_window.hpp
index cb708dd6111..61cf24a6c40 100644
--- a/soccer/src/soccer/ui/main_window.hpp
+++ b/soccer/src/soccer/ui/main_window.hpp
@@ -163,6 +163,8 @@ private Q_SLOTS:
void on_fastKickoffYellow_clicked();
void on_fastBlue_clicked();
void on_fastYellow_clicked();
+ void on_fastPenaltyBlue_clicked();
+ void on_fastPenaltyYellow_clicked();
// Robot Position Dropdowns and Reset Buttons
void on_robotPosition_0_currentIndexChanged(int value);
diff --git a/soccer/src/soccer/ui/qt/MainWindow.ui b/soccer/src/soccer/ui/qt/MainWindow.ui
index 7f63b4c2db3..8b1a3a22d86 100644
--- a/soccer/src/soccer/ui/qt/MainWindow.ui
+++ b/soccer/src/soccer/ui/qt/MainWindow.ui
@@ -263,6 +263,47 @@
+ -
+
+
-
+
+
+
+ :/icons/penalty_blue.svg:/icons/penalty_blue.svg
+
+
+
+ 24
+ 24
+
+
+
+ true
+
+
+
+ -
+
+
+
+
+
+
+ :/icons/penalty_yellow.svg:/icons/penalty_yellow.svg
+
+
+
+ 24
+ 24
+
+
+
+ true
+
+
+
+
+
-
-
@@ -1813,7 +1854,6 @@
-
Joystick
@@ -1975,7 +2015,7 @@
671
-
+
11
@@ -2058,7 +2098,6 @@
-
-
@@ -2129,7 +2168,6 @@
-
-
@@ -2200,7 +2238,6 @@
-
-
@@ -2271,7 +2308,6 @@
-
-
@@ -2342,7 +2378,6 @@
-
-
@@ -2413,7 +2448,6 @@
-
-
@@ -2484,7 +2518,6 @@
-
-
@@ -2555,7 +2588,6 @@
-
-
@@ -2626,7 +2658,6 @@
-
-
@@ -2697,7 +2728,6 @@
-
-
@@ -2768,7 +2798,6 @@
-
-
@@ -2839,7 +2868,6 @@
-
-
@@ -2910,7 +2938,6 @@
-
-
@@ -2981,7 +3008,6 @@
-
-
@@ -3052,7 +3078,6 @@
-
-
@@ -3123,7 +3148,6 @@
-
@@ -3140,7 +3164,7 @@
0
0
1331
- 24
+ 25