From 33c8f828b000b3580262deaeefee38641d042290 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 11 Aug 2023 22:02:08 +0200
Subject: [PATCH 01/74] Cleanup motion

---
 bitbots_animation_server/launch/test.launch   |  10 +-
 bitbots_dynamic_kick/launch/test.launch       |  24 +-
 bitbots_dynamic_kick/launch/viz.launch        |  15 +-
 .../test/rostests/test_kick_runs.launch       |  15 -
 .../test/rostests/test_kick_runs.py           |  53 --
 bitbots_dynup/launch/test.launch              |  12 +-
 .../test/rostests/test_dynup_runs.launch      |  12 -
 .../test/rostests/test_dynup_runs.py          |  48 --
 bitbots_hcm/bitbots_hcm/fall_classifier.py    |   5 +-
 .../bitbots_hcm/humanoid_control_module.py    |  76 +-
 bitbots_hcm/launch/test.launch                |   6 +-
 bitbots_hcm/package.xml                       |   7 +-
 bitbots_head_mover/CMakeLists.txt             |  87 ++
 bitbots_head_mover/config/head_config.yml     | 234 ++++++
 bitbots_head_mover/launch/head_mover.launch   |  10 +
 .../launch/head_mover_standalone.launch       |  19 +
 bitbots_head_mover/launch/test.launch         |  61 ++
 bitbots_head_mover/package.xml                |  39 +
 bitbots_head_mover/src/move_head.cpp          | 788 ++++++++++++++++++
 .../config/odometry_config_default.yaml       |   7 +
 bitbots_quintic_walk/launch/test.launch       |  19 +-
 .../test/rostests/test_walk.launch            |  11 -
 .../test/rostests/test_walk.py                | 179 ----
 .../test/rostests/test_walk_runs.launch       |  12 -
 .../test/rostests/test_walk_runs.py           |  24 -
 bitbots_rl_motion/launch/test.launch          |  17 +-
 26 files changed, 1369 insertions(+), 421 deletions(-)
 delete mode 100644 bitbots_dynamic_kick/test/rostests/test_kick_runs.launch
 delete mode 100755 bitbots_dynamic_kick/test/rostests/test_kick_runs.py
 delete mode 100644 bitbots_dynup/test/rostests/test_dynup_runs.launch
 delete mode 100755 bitbots_dynup/test/rostests/test_dynup_runs.py
 create mode 100644 bitbots_head_mover/CMakeLists.txt
 create mode 100644 bitbots_head_mover/config/head_config.yml
 create mode 100644 bitbots_head_mover/launch/head_mover.launch
 create mode 100644 bitbots_head_mover/launch/head_mover_standalone.launch
 create mode 100644 bitbots_head_mover/launch/test.launch
 create mode 100644 bitbots_head_mover/package.xml
 create mode 100644 bitbots_head_mover/src/move_head.cpp
 create mode 100644 bitbots_odometry/config/odometry_config_default.yaml
 delete mode 100644 bitbots_quintic_walk/test/rostests/test_walk.launch
 delete mode 100755 bitbots_quintic_walk/test/rostests/test_walk.py
 delete mode 100644 bitbots_quintic_walk/test/rostests/test_walk_runs.launch
 delete mode 100755 bitbots_quintic_walk/test/rostests/test_walk_runs.py

diff --git a/bitbots_animation_server/launch/test.launch b/bitbots_animation_server/launch/test.launch
index 831b0e4e9..b58faa1b6 100644
--- a/bitbots_animation_server/launch/test.launch
+++ b/bitbots_animation_server/launch/test.launch
@@ -7,9 +7,9 @@
     <include file="$(find-pkg-share bitbots_ros_control)/launch/ros_control.launch" />
   </group>
 
-  <group>
-    <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" />
-  </group>
-    <node pkg="bitbots_animation_server" exec="animation_node" output="screen" launch-prefix="$(var taskset)"/>
-    <node name="animation_hcm_bridge" pkg="bitbots_animation_server" exec="animation_hcm_bridge.py"  output="screen" launch-prefix="$(var taskset)"/>
+  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" />
+  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" />
+
+  <node pkg="bitbots_animation_server" exec="animation_node" output="screen" launch-prefix="$(var taskset)"/>
+  <node name="animation_hcm_bridge" pkg="bitbots_animation_server" exec="animation_hcm_bridge.py"  output="screen" launch-prefix="$(var taskset)"/>
 </launch>
\ No newline at end of file
diff --git a/bitbots_dynamic_kick/launch/test.launch b/bitbots_dynamic_kick/launch/test.launch
index 8bb2a48c4..13f1d8621 100644
--- a/bitbots_dynamic_kick/launch/test.launch
+++ b/bitbots_dynamic_kick/launch/test.launch
@@ -6,14 +6,30 @@
     <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
     <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-    <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" >
+    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
+    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <!-- launch the base footprint -->
+    <node pkg="humanoid_base_footprint" exec="base_footprint" output="screen">
+      <param name="support_state_topics" value="[walk_support_state, dynamic_kick_support_state]"/>
+      <param name="use_sim_time" value="$(var sim)"/>
+    </node>
+
+    <!-- launch the odometry -->
+    <include file="$(find-pkg-share bitbots_odometry)/launch/odometry.launch">
+      <arg name="sim" value="$(var sim)"/>
+    </include>
+
+
     <group unless="$(var sim)">
         <group unless="$(var viz)">
             <include file="$(find-pkg-share bitbots_ros_control)/launch/ros_control.launch" />
-            <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen" launch-prefix="$(var taskset)"> -->
+            <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen" launch-prefix="$(var taskset)">
                 <remap from="/kick_motor_goals" to="/DynamixelController/command"/>
                 <param from="$(find-pkg-share bitbots_dynamic_kick)/config/kick_config.yaml" />
             </node>
@@ -21,14 +37,14 @@
     </group>
 
     <group if="$(var sim)">
-        <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen" launch-prefix="$(var taskset)"> -->
+        <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen" launch-prefix="$(var taskset)">
             <remap from="/kick_motor_goals" to="/DynamixelController/command"/>
             <param from="$(find-pkg-share bitbots_dynamic_kick)/config/kick_sim_config.yaml" />
         </node>
     </group>
 
     <group if="$(var viz)">
-        <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen" launch-prefix="$(var taskset)"> -->
+        <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen" launch-prefix="$(var taskset)">
             <param from="$(find-pkg-share bitbots_dynamic_kick)/config/kick_sim_config.yaml" />
         </node>
         <node pkg="bitbots_utils" exec="motor_goals_viz_helper.py" output="screen" args="--kick" />
diff --git a/bitbots_dynamic_kick/launch/viz.launch b/bitbots_dynamic_kick/launch/viz.launch
index 4bdc594e9..bab163ae9 100644
--- a/bitbots_dynamic_kick/launch/viz.launch
+++ b/bitbots_dynamic_kick/launch/viz.launch
@@ -1,8 +1,21 @@
 <launch>
-  <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" />
+  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" />
+
+  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" />
+
+  <!-- launch the base footprint -->
+  <node pkg="humanoid_base_footprint" exec="base_footprint" output="screen">
+    <param name="support_state_topics" value="[walk_support_state, dynamic_kick_support_state]"/>
+  </node>
+
+  <!-- launch the odometry -->
+  <include file="$(find-pkg-share bitbots_odometry)/launch/odometry.launch" />
+
   <node name="rviz2" pkg="rviz2" exec="rviz2" output="screen"
     args="-d $(find-pkg-share wolfgang_description)/config/wolfgang.rviz" />
+
   <node name="motor_goals_viz_helper" pkg="bitbots_utils" exec="motor_goals_viz_helper.py" args="--kick" />
+
   <node pkg="bitbots_dynamic_kick" exec="KickNode" output="screen">
     <param from="$(find-pkg-share bitbots_dynamic_kick)/config/kick_config.yaml" />
   </node>
diff --git a/bitbots_dynamic_kick/test/rostests/test_kick_runs.launch b/bitbots_dynamic_kick/test/rostests/test_kick_runs.launch
deleted file mode 100644
index 88f597557..000000000
--- a/bitbots_dynamic_kick/test/rostests/test_kick_runs.launch
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<launch>
-    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
-        <arg name="sim" value="true"/>
-    </include>
-
-    <param name="use_sim_time" value="false" />
-
-    <node name="dynamic_kick" pkg="bitbots_dynamic_kick" exec="KickNode" output="screen">
-        <rosparam command="load" file="$(find-pkg-share bitbots_dynamic_kick)/config/kick_config.yaml" />
-        <rosparam command="load" file="$(find-pkg-share bitbots_dynamic_kick)/config/kick_config_unstable.yaml" />
-    </node>
-
-    <test pkg="bitbots_dynamic_kick" exec="test_kick_runs.py" test-name="kick_runs" time-limit="300" />
-</launch>
diff --git a/bitbots_dynamic_kick/test/rostests/test_kick_runs.py b/bitbots_dynamic_kick/test/rostests/test_kick_runs.py
deleted file mode 100755
index 3b04c3a7f..000000000
--- a/bitbots_dynamic_kick/test/rostests/test_kick_runs.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python3
-from bitbots_test.test_case import RosNodeTestCase
-from bitbots_test.mocks import MockSubscriber
-from actionlib_msgs.msg import GoalStatus
-from bitbots_msgs.msg import KickAction, KickGoal, JointCommand
-from geometry_msgs.msg import Quaternion
-from rclpy.action import ActionClient
-import rclpy
-from rclpy.node import Node
-
-
-class KickRunsTestCase(RosNodeTestCase):
-    def single_run(self, goal):
-        def done_cb(state, result):
-            assert state == GoalStatus.SUCCEEDED, "Kick was not successful"
-            self.kick_succeeded = True
-
-        self.kick_succeeded = False
-
-        sub = MockSubscriber('kick_motor_goals', JointCommand)
-        self.with_assertion_grace_period(lambda: self.assertNodeRunning("dynamic_kick"), 20)
-        client = ActionClient(self, KickAction, 'dynamic_kick')
-        assert client.wait_for_server(), "Kick action server not running"
-
-        client.send_goal_async(goal)
-        client.done_cb = done_cb
-        client.wait_for_result()
-        sub.wait_until_connected()
-        sub.assertMessageReceived()
-        assert self.kick_succeeded, "Kick was not successful"
-
-    def test_normal_kick(self):
-        goal = KickGoal()
-        goal.header.stamp = self.get_clock().now()
-        goal.header.frame_id = "base_footprint"
-        goal.ball_position.x = 0.2
-        goal.kick_direction = Quaternion(0, 0, 0, 1)
-        goal.kick_speed = 1.0
-        self.single_run(goal)
-
-    def test_unstable_kick(self):
-        goal = KickGoal()
-        goal.header.stamp = self.get_clock().now()
-        goal.header.frame_id = "base_footprint"
-        goal.ball_position.x = 0.2
-        goal.kick_direction = Quaternion(0, 0, 0, 1)
-        goal.kick_speed = 1.0
-        goal.unstable = True
-        self.single_run(goal)
-
-if __name__ == '__main__':
-    from bitbots_test import run_rostests
-    run_rostests(KickRunsTestCase)
diff --git a/bitbots_dynup/launch/test.launch b/bitbots_dynup/launch/test.launch
index d3cf6bc85..8afbc0104 100644
--- a/bitbots_dynup/launch/test.launch
+++ b/bitbots_dynup/launch/test.launch
@@ -8,12 +8,14 @@
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-  <group>
-    <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" >
+  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+    <arg name="sim" value="$(var sim)"/>
+    <arg name="robot_type" value="$(var robot_type)"/>
+  </include>
+
+  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
       <arg name="sim" value="$(var sim)"/>
-      <arg name="robot_type" value="$(var robot_type)"/>
-    </include>
-  </group>
+  </include>
 
   <group unless="$(var sim)">
     <group unless="$(var viz)">
diff --git a/bitbots_dynup/test/rostests/test_dynup_runs.launch b/bitbots_dynup/test/rostests/test_dynup_runs.launch
deleted file mode 100644
index 2ae5ab423..000000000
--- a/bitbots_dynup/test/rostests/test_dynup_runs.launch
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<launch>
-    <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" />
-
-    <rosparam command="load" file="$(find-pkg-share bitbots_dynup)/config/dynup_sim.yaml" />
-
-    <node name="dynup" pkg="bitbots_dynup" exec="DynupNode" output="screen" />
-
-    <node name="motors_helper" pkg="bitbots_utils" exec="motor_goals_viz_helper.py" args="--dynup" />
-
-    <test pkg="bitbots_dynup" exec="test_dynup_runs.py" test-name="dynup_runs" time-limit="300" />
-</launch>
diff --git a/bitbots_dynup/test/rostests/test_dynup_runs.py b/bitbots_dynup/test/rostests/test_dynup_runs.py
deleted file mode 100755
index 29b4ede94..000000000
--- a/bitbots_dynup/test/rostests/test_dynup_runs.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python3
-from bitbots_test.test_case import RosNodeTestCase
-from bitbots_test.mocks import MockSubscriber
-from actionlib_msgs.msg import GoalStatus
-from bitbots_msgs.msg import DynUpAction, DynUpGoal, JointCommand
-from rclpy.action import ActionClient
-
-
-class DynupRunsTestCase(RosNodeTestCase):
-    def one_run(self, direction):
-        def done_cb(state, result):
-            assert state == GoalStatus.SUCCEEDED, "Dynup was not successful"
-            self.kick_succeeded = True
-
-        self.kick_succeeded = False
-
-        sub = MockSubscriber('dynup_motor_goals', JointCommand)
-        self.with_assertion_grace_period(lambda: self.assertNodeRunning("dynup"), 20)
-        client = ActionClient(self, DynUpAction, 'dynup')
-        assert client.wait_for_server(), "Dynup action server not running"
-
-        goal = DynUpGoal()
-        goal.direction = direction
-        client.send_goal_async(goal)
-        client.done_cb = done_cb
-        client.wait_for_result()
-        sub.wait_until_connected()
-        sub.assertMessageReceived()
-        assert self.kick_succeeded, "Dynup was not successful"
-
-    def test_walkready(self):
-        self.one_run("walkready")
-
-    def test_front(self):
-        self.one_run("front")
-
-    def test_back(self):
-        self.one_run("back")
-
-    def test_rise(self):
-        self.one_run("rise")
-
-    def test_descend(self):
-        self.one_run("descend")
-
-if __name__ == '__main__':
-    from bitbots_test import run_rostests
-    run_rostests(DynupRunsTestCase)
diff --git a/bitbots_hcm/bitbots_hcm/fall_classifier.py b/bitbots_hcm/bitbots_hcm/fall_classifier.py
index 13500ab2b..254b354e8 100644
--- a/bitbots_hcm/bitbots_hcm/fall_classifier.py
+++ b/bitbots_hcm/bitbots_hcm/fall_classifier.py
@@ -7,6 +7,7 @@
 from geometry_msgs.msg import Point
 import math
 import numpy as np
+from ros2_numpy import numpify
 
 class FallClassifier:
 
@@ -52,7 +53,7 @@ def smooth_classify(self, imu, joint_state, cop_l, cop_r):
         return result
 
 
-def get_data_from_msgs(imu_msg, joint_state_msg, cop_l_msg, cop_r_msg, imu_raw=True, imu_orient=True, joint_states=True,
+def get_data_from_msgs(imu_msg: Imu, joint_state_msg: JointState, cop_l_msg, cop_r_msg, imu_raw=True, imu_orient=True, joint_states=True,
                        imu_fused=True, cop=True):
     data = []
     if imu_raw:
@@ -63,7 +64,7 @@ def get_data_from_msgs(imu_msg, joint_state_msg, cop_l_msg, cop_r_msg, imu_raw=T
         data.append(imu_msg.angular_velocity.y)
         data.append(imu_msg.angular_velocity.z)
     if imu_orient:
-        euler = transforms3d.euler.quat2euler([imu_msg.orientation.w, imu_msg.orientation.x, imu_msg.orientation.y, imu_msg.orientation.z])
+        euler = transforms3d.euler.quat2euler(numpify(imu_msg.orientation)[[3, 0, 1, 2]])
         data.append(euler[0])
         data.append(euler[1])
         data.append(euler[2])
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index 1c9826357..c29f27ef7 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -1,37 +1,34 @@
 #!/usr/bin/env python3
-import numpy
+
+import os
+import threading
 import rclpy
-from rclpy.duration import Duration
-from rclpy.node import Node
+from ament_index_python import get_package_share_directory
+from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_msgs.action import Dynup
+from bitbots_msgs.msg import FootPressure
+from bitbots_utils.utils import get_parameters_from_ros_yaml
+from builtin_interfaces.msg import Time as TimeMsg
+from diagnostic_msgs.msg import DiagnosticArray
+from dynamic_stack_decider.dsd import DSD
+from geometry_msgs.msg import PointStamped
+from humanoid_league_msgs.action import PlayAnimation
+from humanoid_league_msgs.msg import RobotControlState, Audio
+from humanoid_league_speaker.speaker import speak
+from rcl_interfaces.msg import Parameter as ParameterMsg
 from rclpy.action import ActionClient
+from rclpy.duration import Duration
 from rclpy.executors import MultiThreadedExecutor
+from rclpy.node import Node
 from rclpy.parameter import Parameter
+from rclpy.serialization import deserialize_message
 from rclpy.time import Time
-
-from geometry_msgs.msg import PointStamped
-
-from std_msgs.msg import Bool
+from ros2_numpy import numpify
 from sensor_msgs.msg import Imu, JointState
-from diagnostic_msgs.msg import DiagnosticArray
+from std_msgs.msg import Bool
 
-from humanoid_league_msgs.msg import RobotControlState, Audio
-from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_speaker.speaker import speak
-from bitbots_msgs.msg import FootPressure
-from bitbots_msgs.action import Dynup
-
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
-from dynamic_stack_decider.dsd import DSD
-import os
-import threading
-from bitbots_utils.utils import get_parameters_from_ros_yaml
-from ament_index_python import get_package_share_directory
-from rcl_interfaces.msg import Parameter as ParameterMsg
-from rclpy.serialization import deserialize_message
-from builtin_interfaces.msg import Time as TimeMsg
 
 class HardwareControlManager:
-
     def __init__(self, use_sim_time, simulation_active, visualization_active):
         rclpy.init(args=None)
         node_name = "hcm_py"
@@ -56,11 +53,9 @@ def __init__(self, use_sim_time, simulation_active, visualization_active):
         self.spin_thread = threading.Thread(target=multi_executor.spin, args=(), daemon=True)
         self.spin_thread.start()
 
-        self.blackboard = None
-
         # --- Initialize Node ---
         # Otherwise messages will get lost, bc the init is not finished
-        self.node.get_clock().sleep_for(Duration(seconds=0.1))
+        self.node.get_clock().sleep_for(Duration(seconds=0.5))
         self.node.get_logger().debug("Starting hcm")
         self.simulation_active = self.node.get_parameter("simulation_active")
         # dsd
@@ -171,33 +166,28 @@ def set_cop(self, cop_msg_serialized, left):
             self.blackboard.cop_r_msg = deserialize_message(cop_msg_serialized, PointStamped)
 
     def set_pressure_left(self, pressure_msg_serialized):
-        msg = deserialize_message(pressure_msg_serialized, FootPressure)
+        msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
         self.blackboard.pressures[0] = msg.left_front
         self.blackboard.pressures[1] = msg.left_back
         self.blackboard.pressures[2] = msg.right_front
         self.blackboard.pressures[3] = msg.right_back
 
     def set_pressure_right(self, pressure_msg_serialized):
-        msg = deserialize_message(pressure_msg_serialized, FootPressure)
+        msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
         self.blackboard.pressures[4] = msg.left_front
         self.blackboard.pressures[5] = msg.left_back
         self.blackboard.pressures[6] = msg.right_front
         self.blackboard.pressures[7] = msg.right_back
 
     def set_imu(self, imu_msg_serialized):
-        msg = deserialize_message(imu_msg_serialized, Imu)
-
-        self.blackboard.accel = numpy.array(
-            [msg.linear_acceleration.x, msg.linear_acceleration.y, msg.linear_acceleration.z])
-        self.blackboard.gyro = numpy.array([msg.angular_velocity.x, msg.angular_velocity.y, msg.angular_velocity.z])
-        self.blackboard.quaternion = numpy.array(
-            ([msg.orientation.x, msg.orientation.y, msg.orientation.z, msg.orientation.w]))
-
-        self.blackboard.smooth_gyro = numpy.multiply(self.blackboard.smooth_gyro, 0.95) + numpy.multiply(
-            self.blackboard.gyro, 0.05)
-        self.blackboard.smooth_accel = numpy.multiply(self.blackboard.smooth_accel, 0.99) + numpy.multiply(
-            self.blackboard.accel, 0.01)
-        self.blackboard.not_much_smoothed_gyro = numpy.multiply(self.blackboard.not_much_smoothed_gyro,
-                                                                0.5) + numpy.multiply(self.blackboard.gyro, 0.5)
+        msg: Imu = deserialize_message(imu_msg_serialized, Imu)
+
+        self.blackboard.accel = numpify(msg.linear_acceleration)
+        self.blackboard.gyro = numpify(msg.angular_velocity)
+        self.blackboard.quaternion = numpify(msg.orientation)
+
+        self.blackboard.smooth_gyro = 0.95 * self.blackboard.smooth_gyro + 0.05 * self.blackboard.gyro
+        self.blackboard.smooth_accel = 0.99 * self.blackboard.smooth_accel + 0.01 * self.blackboard.accel
+        self.blackboard.not_much_smoothed_gyro = 0.5 * self.blackboard.not_much_smoothed_gyro + 0.5 * self.blackboard.gyro
 
         self.blackboard.imu_msg = msg
diff --git a/bitbots_hcm/launch/test.launch b/bitbots_hcm/launch/test.launch
index 262385450..b27fdb66d 100644
--- a/bitbots_hcm/launch/test.launch
+++ b/bitbots_hcm/launch/test.launch
@@ -1,7 +1,11 @@
 <launch>
     <arg name="sim" default="false" description="Disables checks for hardware, since we are in simulation."/>
 
-    <include file="$(find-pkg-share bitbots_utils)/launch/base.launch">
+    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch">
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
diff --git a/bitbots_hcm/package.xml b/bitbots_hcm/package.xml
index 48f0b36c5..6f07ddc82 100644
--- a/bitbots_hcm/package.xml
+++ b/bitbots_hcm/package.xml
@@ -23,13 +23,14 @@
   <depend>geometry_msgs</depend>
   <depend>humanoid_league_msgs</depend>
   <depend>pybind11-dev</depend>
+  <depend>python3-numpy</depend>
+  <depend>python3-sklearn</depend>
+  <depend>python3-transforms3d</depend>
   <depend>rclpy</depend>
+  <depend>ros2_numpy</depend>
   <depend>ros2_python_extension</depend>
   <depend>sensor_msgs</depend>
   <depend>std_msgs</depend>
-  <depend>python3-sklearn</depend>
-  <depend>python3-transforms3d</depend>
-  <depend>python3-numpy</depend>
 
   <export>
     <bitbots_documentation>
diff --git a/bitbots_head_mover/CMakeLists.txt b/bitbots_head_mover/CMakeLists.txt
new file mode 100644
index 000000000..cd2564639
--- /dev/null
+++ b/bitbots_head_mover/CMakeLists.txt
@@ -0,0 +1,87 @@
+cmake_minimum_required(VERSION 3.8)
+project(bitbots_head_mover)
+
+if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+  add_compile_options(-Wall -Wextra -Wpedantic)
+endif()
+
+# find dependencies
+find_package(ament_cmake REQUIRED)
+find_package(backward_ros REQUIRED)
+find_package(bio_ik REQUIRED)
+find_package(bio_ik_msgs REQUIRED)
+find_package(bitbots_msgs REQUIRED)
+find_package(generate_parameter_library REQUIRED)
+find_package(humanoid_league_msgs REQUIRED)
+find_package(moveit_core REQUIRED)
+find_package(moveit_msgs REQUIRED)
+find_package(moveit_ros_planning REQUIRED)
+find_package(moveit_ros_planning_interface REQUIRED)
+find_package(rclcpp REQUIRED)
+find_package(sensor_msgs REQUIRED)
+find_package(std_msgs REQUIRED)
+find_package(tf2_geometry_msgs REQUIRED)
+find_package(tf2_kdl REQUIRED)
+find_package(tf2_ros REQUIRED)
+
+set(CMAKE_BUILD_TYPE Debug)
+
+# uncomment the following section in order to fill in
+# further dependencies manually.
+# find_package(<dependency> REQUIRED)
+generate_parameter_library(
+  head_parameters # cmake target name for the parameter library
+  config/head_config.yml)
+
+add_executable(move_head src/move_head.cpp)
+target_link_libraries(move_head
+  rclcpp::rclcpp
+  head_parameters
+)
+
+
+ament_target_dependencies(
+  move_head
+#head_capsule
+backward_ros
+bio_ik
+bio_ik_msgs
+bitbots_msgs
+generate_parameter_library
+humanoid_league_msgs
+moveit_core
+moveit_msgs
+moveit_ros_planning
+moveit_ros_planning_interface
+rclcpp
+sensor_msgs
+std_msgs
+tf2_geometry_msgs
+tf2_kdl
+tf2_ros
+
+
+)
+
+install(TARGETS
+  move_head
+  DESTINATION lib/${PROJECT_NAME})
+if(BUILD_TESTING)
+  find_package(ament_lint_auto REQUIRED)
+  # the following line skips the linter which checks for copyrights
+  # comment the line when a copyright and license is added to all source files
+  set(ament_cmake_copyright_FOUND TRUE)
+  # the following line skips cpplint (only works in a git repo)
+  # comment the line when this package is in a git repo and when
+  # a copyright and license is added to all source files
+  set(ament_cmake_cpplint_FOUND TRUE)
+  ament_lint_auto_find_test_dependencies()
+endif()
+
+install(DIRECTORY config
+        DESTINATION share/${PROJECT_NAME})
+
+install(DIRECTORY launch
+  DESTINATION share/${PROJECT_NAME})
+
+ament_package()
diff --git a/bitbots_head_mover/config/head_config.yml b/bitbots_head_mover/config/head_config.yml
new file mode 100644
index 000000000..69feb1be9
--- /dev/null
+++ b/bitbots_head_mover/config/head_config.yml
@@ -0,0 +1,234 @@
+move_head:
+  # Max values for the head position
+  max_acceleration_pan:
+    type: double
+    default_value: 14.0
+    description: "Max acceleration for pan"
+    validation:
+      bounds<>: [-1, 20]
+
+  max_acceleration_tilt:
+    type: double
+    default_value: 14.0
+    description: "Max acceleration for tilt"
+    validation:
+      bounds<>: [-1, 20]
+
+  max_pan:
+    type: double_array
+    default_value: [-2.35, 2.35]
+    description: "Max values for the head position (in radians)"
+    validation:
+      fixed_size<>: 2
+      element_bounds<>: [-3.14, 3.14]
+
+  max_tilt:
+    type: double_array
+    default_value: [-1.2, 0.2]
+    description: "Max values for the head position (in radians)"
+    validation:
+      fixed_size<>: 2
+
+  look_at:
+    tilt_speed:
+      type: double
+      default_value: 6.0
+      validation:
+        bounds<>: [0.0, 8.0]
+    pan_speed:
+      type: double
+      default_value: 6.0
+      validation:
+        bounds<>: [0.0, 8.0]
+
+  # Search pattern for ball
+  search_pattern:
+    # search pattern speed
+    tilt_speed:
+      type: double
+      default_value: 3.0
+
+    pan_speed:
+      type: double
+      default_value: 3.0
+
+    # Max values for the search pattern
+    pan_max:
+      type: double_array
+      default_value: [135.0, -135.0]
+      description: "Maximum pan values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    tilt_max:
+      type: double_array
+      default_value: [-10.0, -60.0]
+      description: "Maximum tilt values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    # Number of scan lines for the search pattern
+    scan_lines:
+      type: int
+      default_value: 2
+      description: "Number of scan lines for the search pattern"
+      validation:
+        gt_eq<>: [1]
+
+    # Reduces last scanline by that factor so that robot does not collide
+    reduce_last_scanline:
+      type: double
+      default_value: 0.2
+      description: "Reduces last scanline by that factor so that robot does not collide"
+      validation:
+        bounds<>: [0.0, 1.0]
+
+  search_pattern_penalty:
+    tilt_speed:
+      type: double
+      default_value: 1.0
+
+    pan_speed:
+      type: double
+      default_value: 2.0
+
+    pan_max:
+      type: double_array
+      default_value: [-30.0, 30.0]
+      description: "Maximum pan values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    tilt_max:
+      type: double_array
+      default_value: [-7.0, -30.0]
+      description: "Maximum tilt values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    scan_lines:
+      type: int
+      default_value: 2
+      validation:
+        gt_eq<>: [1]
+
+    reduce_last_scanline:
+      type: double
+      default_value: 0.2
+      description: "Reduces last scanline by that factor so that robot does not collide"
+      validation:
+        bounds<>: [0.0, 1.0]
+
+  search_pattern_field_features:
+    tilt_speed:
+      type: double
+      default_value: 3.0
+
+    pan_speed:
+      type: double
+      default_value: 3.0
+
+    pan_max:
+      type: double_array
+      default_value: [-135.0, 135.0]
+      description: "Maximum pan values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    tilt_max:
+      type: double_array
+      default_value: [-10.0, -60.0]
+      description: "Maximum tilt values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    scan_lines:
+      type: int
+      default_value: 2
+      validation:
+        gt_eq<>: [1]
+
+    reduce_last_scanline:
+      type: double
+      default_value: 0.2
+      description: "Reduces last scanline by that factor so that robot does not collide"
+      validation:
+        bounds<>: [0.0, 1.0]
+
+  front_search_pattern:
+    tilt_speed:
+      type: double
+      default_value: 3.0
+
+    pan_speed:
+      type: double
+      default_value: 3.0
+
+    pan_max:
+      type: double_array
+      default_value: [ 0.0, 0.0 ]
+      description: "Maximum pan values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    tilt_max:
+      type: double_array
+      default_value: [ -10.0, -70.0 ]
+      description: "Maximum tilt values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    scan_lines:
+      type: int
+      default_value: 2
+      validation:
+        gt_eq<>: [1]
+
+    reduce_last_scanline:
+      type: double
+      default_value: 0.0
+      description: "Reduces last scanline by that factor so that robot does not collide"
+      validation:
+        bounds<>: [0.0, 1.0]
+
+  look_forward:
+    tilt_speed:
+      type: double
+      default_value: 3.0
+
+    pan_speed:
+      type: double
+      default_value: 3.0
+
+    pan_max:
+      type: double_array
+      default_value: [ 0.0, 0.0 ]
+      description: "Maximum pan values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    tilt_max:
+      type: double_array
+      default_value: [ -7.0, -7.0 ]
+      description: "Maximum tilt values for the search pattern (in degrees)"
+      validation:
+        fixed_size<>: 2
+
+    scan_lines:
+      type: int
+      default_value: 2
+      validation:
+        gt_eq<>: [1]
+
+    reduce_last_scanline:
+      type: double
+      default_value: 0.0
+      description: "Reduces last scanline by that factor so that robot does not collide"
+      validation:
+        bounds<>: [0.0, 1.0]
+
+  position_reached_threshold:
+    type: double
+    default_value: 5.0
+    description: "Threshold (in degrees) when a head position is reached and
+    the next position will be triggered"
diff --git a/bitbots_head_mover/launch/head_mover.launch b/bitbots_head_mover/launch/head_mover.launch
new file mode 100644
index 000000000..51a2aa9f6
--- /dev/null
+++ b/bitbots_head_mover/launch/head_mover.launch
@@ -0,0 +1,10 @@
+<launch>
+    <arg name="tf_prefix" default=""/>
+    <arg name="sim" default="false" />
+
+    <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
+
+    <node pkg="bitbots_head_mover" exec="move_head" output="screen" respawn="true">
+        <param name="use_sim_time" value="$(var sim)" />
+    </node>
+</launch>
diff --git a/bitbots_head_mover/launch/head_mover_standalone.launch b/bitbots_head_mover/launch/head_mover_standalone.launch
new file mode 100644
index 000000000..74e7a8a3c
--- /dev/null
+++ b/bitbots_head_mover/launch/head_mover_standalone.launch
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<launch>
+    <arg name="depends_only" default="false" />
+    <arg name="sim" default="false" />
+
+    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch">
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <include file="$(find-pkg-share bitbots_head_mover)/launch/head_mover.launch">
+        <arg name="depends_only" value="$(var depends_only)"/>
+        <param name="use_sim_time" value="$(var sim)" />
+    </include>
+
+</launch>
diff --git a/bitbots_head_mover/launch/test.launch b/bitbots_head_mover/launch/test.launch
new file mode 100644
index 000000000..7c7ea5954
--- /dev/null
+++ b/bitbots_head_mover/launch/test.launch
@@ -0,0 +1,61 @@
+<launch>
+    <arg name="sim" default="false"/>
+    <arg name="viz" default="false"/>
+    <arg name="depends_only" default="false" />
+    <arg name="tf_prefix" default=""/>
+
+    <group unless="$(var sim)">
+        <group unless="$(var viz)">
+            <include file="$(find-pkg-share bitbots_ros_control)/launch/ros_control.launch" />
+        </group>
+    </group>
+
+    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <!-- launch the base footprint -->
+    <node pkg="humanoid_base_footprint" exec="base_footprint" output="screen">
+      <param name="support_state_topics" value="[walk_support_state, dynamic_kick_support_state]"/>
+      <param name="use_sim_time" value="$(var sim)"/>
+    </node>
+
+    <!-- launch the odometry -->
+    <include file="$(find-pkg-share bitbots_odometry)/launch/odometry.launch">
+      <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <include file="$(find-pkg-share bitbots_ball_filter)/launch/ball_filter.launch" >
+        <arg name="sim" value="$(var sim)"/>
+    </include>
+
+    <group if="$(var viz)">
+        <!-- translate joint goals to joint states -->
+        <node pkg="bitbots_utils" exec="motor_goals_viz_helper.py" args="--head"/>
+        <!-- fake IMU needed for odometry-->
+        <node pkg="bitbots_utils" exec="dummy_imu.py"/>
+        <!-- add some visualization tools -->
+        <include file="$(find-pkg-share humanoid_league_interactive_marker)/launch/interactive_marker.launch" />
+        <!-- create fake tf from map to robot -->
+        <node pkg="tf2_ros" exec="static_transform_publisher" name="static_map2odom_tf" args="--x -0.0 --y -0.0 --z 0.0 --qx 0.0 --qy 0.0 --qz 0.0 --qw 1.0 --frame-id map --child-frame-id odom" />
+    </group>
+
+    <group unless="$(var viz)">
+        <include file="$(find-pkg-share bitbots_vision)/launch/vision_startup.launch" >
+            <arg name="sim" value="$(var sim)"/>
+        </include>
+        <include file="$(find-pkg-share soccer_ipm)/launch/transformer.launch" >
+            <arg name="sim" value="$(var sim)"/>
+        </include>
+    </group>
+
+    <group unless="$(var depends_only)">
+        <include file="$(find-pkg-share bitbots_head_mover)/launch/head_mover.launch" >
+            <arg name="sim" value="$(var sim)"/>
+        </include>
+    </group>
+</launch>
diff --git a/bitbots_head_mover/package.xml b/bitbots_head_mover/package.xml
new file mode 100644
index 000000000..78a22f9e3
--- /dev/null
+++ b/bitbots_head_mover/package.xml
@@ -0,0 +1,39 @@
+<?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>bitbots_head_mover</name>
+  <version>1.0.0</version>
+  <description> The bitbots_head_mover handles the head movement.
+      The body behavior sends commands for different head movement
+      patterns. It can also use an action to look at a specific
+      point on the field, e.g. to track the ball.</description>
+  <maintainer email="valerie.bartel@uni-hamburg.de">Valerie Bartel</maintainer>
+  <maintainer email="info@bit-bots.de">Hamburg Bit-Bots</maintainer>
+  <author email="info@bit-bots.de">Hamburg Bit-Bots</author>
+
+  <license>MIT</license>
+
+  <buildtool_depend>ament_cmake</buildtool_depend>
+
+  <depend>backward_ros</depend>
+  <depend>bio_ik_msgs</depend>
+  <depend>bio_ik</depend>
+  <depend>bitbots_msgs</depend>
+  <depend>generate_parameter_library</depend>
+  <depend>humanoid_league_msgs</depend>
+  <depend>moveit_core</depend>
+  <depend>moveit_ros_planning_interface</depend>
+  <depend>moveit_ros_planning</depend>
+  <depend>moveit_ros</depend>
+  <depend>rclcpp</depend>
+  <depend>sensor_msgs</depend>
+  <depend>std_msgs</depend>
+  <depend>tf2_geometry_msgs</depend>
+  <depend>tf2_ros</depend>
+
+  <test_depend>ament_lint_auto</test_depend>
+  <test_depend>ament_lint_common</test_depend>
+  <export>
+    <build_type>ament_cmake</build_type>
+  </export>
+</package>
diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
new file mode 100644
index 000000000..85ad660a4
--- /dev/null
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -0,0 +1,788 @@
+#include <chrono>
+#include <cmath>
+#include <iostream>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include <rclcpp/clock.hpp>
+#include <rclcpp/logger.hpp>
+#include <rclcpp/rclcpp.hpp>
+#include <rclcpp/time.hpp>
+
+#include <bitbots_msgs/msg/joint_command.hpp>
+#include <geometry_msgs/msg/pose_stamped.hpp>
+#include <geometry_msgs/msg/pose_with_covariance_stamped.hpp>
+#include <humanoid_league_msgs/msg/head_mode.hpp>
+#include <sensor_msgs/msg/joint_state.hpp>
+#include <std_msgs/msg/string.hpp>
+
+#include <bio_ik/bio_ik.h>
+#include <moveit/planning_scene/planning_scene.h>
+#include <moveit/planning_scene_monitor/planning_scene_monitor.h>
+#include <moveit/robot_model_loader/robot_model_loader.h>
+#include <moveit/robot_state/conversions.h>
+#include <tf2/convert.h>
+#include <tf2_ros/buffer.h>
+#include <tf2_ros/transform_listener.h>
+#include <bio_ik_msgs/msg/ik_response.hpp>
+#include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
+
+#include "head_parameters.hpp"
+
+#include <bitbots_msgs/action/look_at.hpp>
+#include <rclcpp_action/rclcpp_action.hpp>
+
+#include <rclcpp/experimental/executors/events_executor/events_executor.hpp>
+
+using std::placeholders::_1;
+using namespace std::chrono_literals;
+
+namespace move_head {
+using LookAtGoal = bitbots_msgs::action::LookAt;
+using LookAtGoalHandle = rclcpp_action::ServerGoalHandle<LookAtGoal>;
+
+class HeadMover {
+  std::shared_ptr<rclcpp::Node> node_;
+
+  // declare subscriber and publisher
+  rclcpp::Subscription<humanoid_league_msgs::msg::HeadMode>::SharedPtr
+    head_mode_subscriber_;
+  rclcpp::Subscription<sensor_msgs::msg::JointState>::SharedPtr
+    joint_state_subscriber_;
+
+  rclcpp::Publisher<bitbots_msgs::msg::JointCommand>::SharedPtr
+    position_publisher_;
+
+  // declare tf
+  std::shared_ptr<tf2_ros::Buffer> tf_buffer_;
+
+  std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
+
+  // declare variables
+  humanoid_league_msgs::msg::HeadMode head_mode_;
+  sensor_msgs::msg::JointState current_joint_state_;
+  bitbots_msgs::msg::JointCommand pos_msg_;
+  double DEG_TO_RAD = M_PI / 180;
+  geometry_msgs::msg::PoseWithCovarianceStamped tf_precision_pose_;
+
+  // declare robot model and planning scene
+  robot_model_loader::RobotModelLoaderPtr loader_;
+  moveit::core::RobotModelPtr robot_model_;
+  moveit::core::RobotStatePtr robot_state_;
+  moveit::core::RobotStatePtr collision_state_;
+  planning_scene_monitor::PlanningSceneMonitorPtr planning_scene_monitor_;
+  planning_scene::PlanningScenePtr planning_scene_;
+
+  // declare params
+  move_head::Params params_;
+  std::shared_ptr<move_head::ParamListener> param_listener_;
+
+  rclcpp::TimerBase::SharedPtr timer_;
+
+  std::vector<std::pair<double, double>> pattern_;
+  uint prev_head_mode_;
+
+  double threshold_;
+  int index_ = 0;
+  double pan_speed_;
+  double tilt_speed_;
+
+  // action server
+  rclcpp_action::Server<LookAtGoal>::SharedPtr action_server_;
+  bool action_running_ = false;
+
+public:
+  HeadMover() {
+    node_ = std::make_shared<rclcpp::Node>("head_mover");
+
+    position_publisher_ =
+      node_->create_publisher<bitbots_msgs::msg::JointCommand>(
+      "head_motor_goals", 10);
+    head_mode_subscriber_ =
+      node_->create_subscription<humanoid_league_msgs::msg::HeadMode>(
+      "head_mode", 10,
+      [this](const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
+        head_mode_callback(msg);
+      });
+    joint_state_subscriber_ =
+      node_->create_subscription<sensor_msgs::msg::JointState>(
+      "joint_states", 10,
+      [this](const sensor_msgs::msg::JointState::SharedPtr msg) {
+        joint_state_callback(msg);
+      });
+
+    // load parameters from config
+    param_listener_ = std::make_shared<move_head::ParamListener>(node_);
+    params_ = param_listener_->get_params();
+
+    auto moveit_node = std::make_shared<rclcpp::Node>("moveit_head_mover_node");
+
+    auto parameters_client =
+      std::make_shared<rclcpp::SyncParametersClient>(node_, "/move_group");
+    while (!parameters_client->wait_for_service(1s)) {
+      if (!rclcpp::ok()) {
+        RCLCPP_ERROR(
+          node_->get_logger(),
+          "Interrupted while waiting for the service. Exiting.");
+        return;
+      }
+      RCLCPP_INFO(
+        node_->get_logger(),
+        "service not available, waiting again...");
+    }
+
+    rcl_interfaces::msg::ListParametersResult parameter_list =
+      parameters_client->list_parameters(
+      {"robot_description_kinematics"},
+      10);
+    auto copied_parameters =
+      parameters_client->get_parameters(parameter_list.names);
+
+    // set the parameters to our node
+    for (auto & parameter : copied_parameters) {
+      moveit_node->declare_parameter(
+        parameter.get_name(),
+        parameter.get_type());
+      moveit_node->set_parameter(parameter);
+    }
+
+    std::string robot_description = "robot_description";
+    // get the robot description from the blackboard
+    loader_ = std::make_shared<robot_model_loader::RobotModelLoader>(
+      robot_model_loader::RobotModelLoader(
+        moveit_node, robot_description,
+        true));
+    robot_model_ = loader_->getModel();
+    if (!robot_model_) {
+      RCLCPP_ERROR(
+        node_->get_logger(),
+        "failed to load robot model %s. Did you start the "
+        "blackboard (bitbots_bringup base.launch)?",
+        robot_description.c_str());
+    }
+    robot_state_.reset(new moveit::core::RobotState(robot_model_));
+    robot_state_->setToDefaultValues();
+
+    collision_state_.reset(new moveit::core::RobotState(robot_model_));
+    collision_state_->setToDefaultValues();
+
+    // get planning scene for collision checking
+    planning_scene_monitor_ =
+      std::make_shared<planning_scene_monitor::PlanningSceneMonitor>(
+      moveit_node, loader_);
+    planning_scene_ = planning_scene_monitor_->getPlanningScene();
+    if (!planning_scene_) {
+      RCLCPP_ERROR_ONCE(
+        node_->get_logger(),
+        "failed to connect to planning scene");
+    }
+
+    // prepare the pos_msg
+    pos_msg_.joint_names = {"HeadPan", "HeadTilt"};
+    pos_msg_.positions = {0, 0};
+    pos_msg_.velocities = {0, 0};
+    pos_msg_.accelerations = {params_.max_acceleration_pan,
+      params_.max_acceleration_pan};
+    pos_msg_.max_currents = {-1, -1};
+
+    // apparently tf_listener is necessary but unused
+    tf_buffer_ = std::make_shared<tf2_ros::Buffer>(node_->get_clock());
+    tf_listener_ = std::make_shared<tf2_ros::TransformListener>(*tf_buffer_);
+
+    prev_head_mode_ = -1;
+    threshold_ = params_.position_reached_threshold * DEG_TO_RAD;
+    pan_speed_ = 0;
+    tilt_speed_ = 0;
+
+    action_server_ = rclcpp_action::create_server<LookAtGoal>(
+      node_, "look_at_goal",
+      std::bind(
+        &HeadMover::handle_goal, this, std::placeholders::_1,
+        std::placeholders::_2),
+      std::bind(&HeadMover::handle_cancel, this, std::placeholders::_1),
+      std::bind(&HeadMover::handle_accepted, this, std::placeholders::_1));
+
+    timer_ = rclcpp::create_timer(
+      node_, node_->get_clock(), 10ms,
+      [this] {behave();});
+  }
+
+  void head_mode_callback(
+    const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
+    head_mode_ = *msg;
+  }
+
+  void joint_state_callback(const sensor_msgs::msg::JointState::SharedPtr msg) {
+    current_joint_state_ = *msg;
+  }
+
+  rclcpp_action::GoalResponse handle_goal(
+    const rclcpp_action::GoalUUID & uuid,
+    std::shared_ptr<const LookAtGoal::Goal> goal) {
+    RCLCPP_INFO(node_->get_logger(), "Received goal request");
+    (void)uuid;
+    geometry_msgs::msg::PointStamped new_point;
+    // check if goal is in range collision wise
+    try {
+      new_point = tf_buffer_->transform(
+        goal->look_at_position,
+        planning_scene_->getPlanningFrame(),
+        tf2::durationFromSec(0.9));
+    } catch (tf2::TransformException & ex) {
+      RCLCPP_ERROR(
+        node_->get_logger(), "Could not transform goal point: %s",
+        ex.what());
+      return rclcpp_action::GoalResponse::REJECT;
+    }
+    std::pair<double, double> pan_tilt =
+      get_motor_goals_from_point(new_point.point);
+    bool goal_not_in_range =
+      check_head_collision(pan_tilt.first, pan_tilt.second);
+    // check whether the goal is in range pan and tilt wise
+
+    if (action_running_ || goal_not_in_range ||
+      !(params_.max_pan[0] < pan_tilt.first &&
+      pan_tilt.first < params_.max_pan[1]) ||
+      !(params_.max_tilt[0] < pan_tilt.second &&
+      pan_tilt.second < params_.max_tilt[1]))
+    {
+      return rclcpp_action::GoalResponse::REJECT;
+    }
+    return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
+  }
+
+  rclcpp_action::CancelResponse handle_cancel(
+    const std::shared_ptr<LookAtGoalHandle> goal_handle) {
+    RCLCPP_INFO(node_->get_logger(), "Received request to cancel goal");
+    (void)goal_handle;
+    action_running_ = false;
+    return rclcpp_action::CancelResponse::ACCEPT;
+  }
+
+  void handle_accepted(const std::shared_ptr<LookAtGoalHandle> goal_handle) {
+    std::thread{
+      std::bind(&HeadMover::execute_look_at, this, std::placeholders::_1),
+      goal_handle}
+    .detach();
+  }
+
+  void execute_look_at(const std::shared_ptr<LookAtGoalHandle> goal_handle) {
+    action_running_ = true;
+
+    RCLCPP_INFO(node_->get_logger(), "Executing goal");
+    const auto goal = goal_handle->get_goal();
+    auto feedback = std::make_shared<LookAtGoal::Feedback>();
+    bool success =
+      false;    // checks whether we look at the position we want to look at
+    auto result = std::make_shared<LookAtGoal::Result>();
+
+    while (!success) {
+      RCLCPP_INFO(node_->get_logger(), "Looking at point");
+      if (goal_handle->is_canceling()) {
+        goal_handle->canceled(result);
+        RCLCPP_INFO(node_->get_logger(), "Goal was canceled");
+        return;
+      }
+      // look at point
+      success = look_at(goal->look_at_position);
+      goal_handle->publish_feedback(
+        feedback);    // TODO: currently feedback is empty
+    }
+    if (rclcpp::ok()) {
+      result->success = true;
+      goal_handle->succeed(result);
+      RCLCPP_INFO(node_->get_logger(), "Goal succeeded");
+    }
+    action_running_ = false;
+  }
+
+  double calculate_lower_speed(
+    double delta_fast_joint,
+    double delta_my_joint,
+    double speed) {
+    double estimated_time = delta_fast_joint / speed;
+    if (estimated_time) {
+      return delta_my_joint / estimated_time;
+    } else {
+      return 0;
+    }
+  }
+
+  bool send_motor_goals(
+    double pan_position,
+    double tilt_position,
+    bool resolve_collision,
+    double pan_speed = 1.5,
+    double tilt_speed = 1.5,
+    double current_pan_position = 0.0,
+    double current_tilt_position = 0.0,
+    bool clip = true) {
+    RCLCPP_DEBUG_STREAM(
+      node_->get_logger(),
+      "target pan/tilt: " << pan_position << "/" << tilt_position);
+    if (clip) {
+      std::pair<double, double> clipped = pre_clip(pan_position, tilt_position);
+      pan_position = clipped.first;
+      tilt_position = clipped.second;
+    }
+
+    if (resolve_collision) {
+      bool success = avoid_collision_on_path(
+        pan_position, tilt_position, current_pan_position,
+        current_tilt_position, pan_speed, tilt_speed);
+      if (!success) {
+        RCLCPP_ERROR_STREAM_THROTTLE(
+          node_->get_logger(), *node_->get_clock(),
+          1000, "Unable to resolve head collision");
+      }
+      return success;
+    } else {
+      move_head_to_position_with_speed_adjustment(
+        pan_position, tilt_position, current_pan_position,
+        current_tilt_position, pan_speed, tilt_speed);
+      return true;
+    }
+  }
+
+  bool send_motor_goals(
+    double pan_position,
+    double tilt_position,
+    double pan_speed = 1.5,
+    double tilt_speed = 1.5,
+    bool clip = true) {
+    RCLCPP_DEBUG_STREAM(
+      node_->get_logger(),
+      "target pan/tilt: " << pan_position << "/" << tilt_position);
+    if (clip) {
+      std::pair<double, double> clipped = pre_clip(pan_position, tilt_position);
+      pan_position = clipped.first;
+      tilt_position = clipped.second;
+    }
+
+    pos_msg_.positions = {pan_position, tilt_position};
+    pos_msg_.velocities = {pan_speed, tilt_speed};
+
+    pos_msg_.accelerations = {params_.max_acceleration_pan,
+      params_.max_acceleration_pan};
+    pos_msg_.header.stamp = node_->get_clock()->now();
+    position_publisher_->publish(pos_msg_);
+    return true;
+  }
+
+  std::pair<double, double> pre_clip(double pan, double tilt) {
+    double new_pan = std::clamp(pan, params_.max_pan[0], params_.max_pan[1]);
+    double new_tilt =
+      std::clamp(tilt, params_.max_tilt[0], params_.max_tilt[1]);
+    return std::make_pair(new_pan, new_tilt);
+  }
+  bool avoid_collision_on_path(
+    double goal_pan,
+    double goal_tilt,
+    double current_pan,
+    double current_tilt,
+    double pan_speed,
+    double tilt_speed,
+    int max_depth = 4,
+    int depth = 0) {
+    if (depth > max_depth) {
+      move_head_to_position_with_speed_adjustment(
+        0.0, 0.0, current_pan, current_tilt, pan_speed, tilt_speed);
+      return false;
+    }
+    double distance =
+      sqrt(pow(goal_pan - current_pan, 2) - pow(goal_tilt - current_tilt, 2));
+
+    int step_count = distance / 3 * DEG_TO_RAD;
+
+    // calculate path
+    std::vector<std::pair<double, double>> pan_and_tilt_steps;
+    for (int i = 0; i < step_count; i++) {
+      pan_and_tilt_steps[i].first =
+        current_pan + (goal_pan - current_pan) / step_count * i;
+      pan_and_tilt_steps[i].second =
+        current_tilt + (goal_tilt - current_tilt) / step_count * i;
+    }
+    // check if we have collisions on our path
+    for (int i = 0; i < step_count; i++) {
+      if (check_head_collision(
+          pan_and_tilt_steps[i].first,
+          pan_and_tilt_steps[i].second))
+      {
+        return avoid_collision_on_path(
+          goal_pan, goal_tilt + 10 * DEG_TO_RAD,
+          current_pan, current_tilt, pan_speed,
+          tilt_speed, max_depth, depth + 1);
+      }
+    }
+    move_head_to_position_with_speed_adjustment(
+      goal_pan, goal_tilt, current_pan, current_tilt, pan_speed, tilt_speed);
+    return true;
+  }
+
+  bool check_head_collision(double pan, double tilt) {
+    collision_state_->setJointPositions("HeadPan", &pan);
+    collision_state_->setJointPositions("HeadTilt", &tilt);
+    collision_detection::CollisionRequest req;
+    collision_detection::CollisionResult res;
+    collision_detection::AllowedCollisionMatrix acm =
+      planning_scene_->getAllowedCollisionMatrix();
+    planning_scene_->checkCollision(req, res, *collision_state_, acm);
+    return res.collision;
+  }
+
+  void move_head_to_position_with_speed_adjustment(
+    double goal_pan,
+    double goal_tilt,
+    double current_pan,
+    double current_tilt,
+    double pan_speed,
+    double tilt_speed) {
+    double delta_pan = std::abs(goal_pan - current_pan);
+    double delta_tilt = std::abs(goal_tilt - current_tilt);
+    if (delta_pan > 0) {
+      tilt_speed = std::min(
+        tilt_speed, calculate_lower_speed(delta_pan, delta_tilt, pan_speed));
+    } else {
+      pan_speed = std::min(
+        pan_speed, calculate_lower_speed(delta_tilt, delta_pan, tilt_speed));
+    }
+    pos_msg_.positions = {goal_pan, goal_tilt};
+    pos_msg_.velocities = {pan_speed, tilt_speed};
+
+    pos_msg_.accelerations = {params_.max_acceleration_pan,
+      params_.max_acceleration_pan};
+    pos_msg_.header.stamp = rclcpp::Clock().now();
+    position_publisher_->publish(pos_msg_);
+  }
+
+  std::pair<double, double> get_head_position() {
+    double head_pan;
+    double head_tilt;
+    for (size_t i = 0; i < current_joint_state_.name.size(); i++) {
+      if (current_joint_state_.name[i] == "HeadPan") {
+        head_pan = current_joint_state_.position[i];
+      } else if (current_joint_state_.name[i] == "HeadTilt") {
+        head_tilt = current_joint_state_.position[i];
+      }
+    }
+    return {head_pan, head_tilt};
+  }
+
+  double lineAngle(
+    int line,
+    int line_count,
+    double min_angle,
+    double max_angle) {
+    double delta = std::abs(max_angle - min_angle);
+    int steps = delta / (line_count - 1);
+    double value = steps * line + min_angle;
+    return value;
+  }
+
+  double calculateHorizonAngle(
+    bool is_right,
+    double angle_right,
+    double angle_left) {
+    if (is_right) {
+      return angle_right;
+    } else {
+      return angle_left;
+    }
+  }
+
+  std::vector<std::pair<double, double>> interpolatedSteps(
+    int steps,
+    double tilt,
+    double min_pan,
+    double max_pan) {
+    if (steps == 0) {
+      return {};
+    }
+    steps += 1;
+    std::vector<std::pair<double, double>> output_points;
+    double delta = std::abs(max_pan - min_pan);
+    double step_size = delta / steps;
+    for (int i = 1; i <= steps; i++) {
+      double pan = min_pan + step_size * i;
+      output_points.emplace_back(pan, tilt);
+    }
+    return output_points;
+  }
+
+  std::vector<std::pair<double, double>> generatePattern(
+    int line_count,
+    double max_horizontal_angle_left,
+    double max_horizontal_angle_right,
+    double max_vertical_angle_up,
+    double max_vertical_angle_down,
+    int reduce_last_scanline = 0.2,    // TODO: needs to be changed to 1
+    int interpolation_steps = 0) {
+    std::vector<std::pair<double, double>> keyframes;
+    bool down_direction = false;
+    bool right_side = false;
+    bool right_direction = true;
+    int line = line_count - 1;
+    int iterations = std::max(line_count * 4 - 4, 2);
+    for (int i = 0; i < iterations; i++) {
+      std::pair<double, double> current_point = {
+        calculateHorizonAngle(
+          right_side, max_horizontal_angle_right,
+          max_horizontal_angle_left),
+        lineAngle(
+          line, line_count, max_vertical_angle_down,
+          max_vertical_angle_up)};
+      keyframes.push_back(current_point);
+
+      if (right_side != right_direction) {
+        std::vector<std::pair<double, double>> interpolated_points =
+          interpolatedSteps(
+          interpolation_steps, current_point.second,
+          max_horizontal_angle_right,
+          max_horizontal_angle_left);
+        if (right_direction) {
+          std::reverse(interpolated_points.begin(), interpolated_points.end());
+        }
+        keyframes.insert(
+          keyframes.end(), interpolated_points.begin(),
+          interpolated_points.end());
+        right_side = right_direction;
+
+      } else {
+        right_side = !right_direction;
+        if (0 <= line && line <= line_count - 1) {
+          down_direction = !down_direction;
+        }
+        if (down_direction) {
+          line -= 1;
+        } else {
+          line += 1;
+        }
+      }
+    }
+    for (auto & keyframe : keyframes) {
+      if (keyframe.second == max_vertical_angle_down) {
+        keyframe = {keyframe.first * reduce_last_scanline,
+          max_vertical_angle_down};
+      }
+    }
+    return keyframes;
+  }
+
+  std::pair<double, double> get_motor_goals_from_point(
+    geometry_msgs::msg::Point point) {
+    bio_ik::BioIKKinematicsQueryOptions ik_options;
+    ik_options.return_approximate_solution = true;
+    ik_options.replace = true;
+
+    bio_ik::LookAtGoal goal;
+    goal.setTarget({point.x, point.y, point.z});
+    goal.setWeight(1.0);
+    goal.setAxis({1.0, 0.0, 0.0});
+    goal.setLinkName("camera");
+    ik_options.goals.emplace_back(new bio_ik::LookAtGoal(goal));
+
+    auto joint_model_group = robot_model_->getJointModelGroup("Head");
+
+    double timeout_seconds = 1.0;
+    bool success = robot_state_->setFromIK(
+      joint_model_group, EigenSTL::vector_Isometry3d(),
+      std::vector<std::string>(), timeout_seconds,
+      moveit::core::GroupStateValidityCallbackFn(), ik_options);
+    robot_state_->update();
+
+    bio_ik_msgs::msg::IKResponse response;
+    moveit::core::robotStateToRobotStateMsg(*robot_state_, response.solution);
+    response.solution_fitness = ik_options.solution_fitness;
+    if (success) {
+      std::pair<double, double> states = {
+        response.solution.joint_state.position[0],
+        response.solution.joint_state.position[1]};
+      return states;
+    } else {
+      std::cout << "BioIK failed with error code: " << response.error_code.val
+                << std::endl;
+      std::pair<double, double> states = {0.0, 0.0};
+      return states;
+    }
+  }
+
+  bool look_at(
+    geometry_msgs::msg::PointStamped point,
+    double min_pan_delta = 0.02,
+    double min_tilt_delta = 0.02) {
+    try {
+      geometry_msgs::msg::PointStamped new_point =
+        tf_buffer_->transform(
+        point, planning_scene_->getPlanningFrame(),
+        tf2::durationFromSec(0.9));
+
+      std::pair<double, double> pan_tilt =
+        get_motor_goals_from_point(new_point.point);
+      std::pair<double, double> current_pan_tilt = get_head_position();
+
+      if (std::abs(pan_tilt.first - current_pan_tilt.first) > min_pan_delta ||
+        std::abs(pan_tilt.second - current_pan_tilt.second) >
+        min_tilt_delta)
+      {
+        send_motor_goals(
+          pan_tilt.first, pan_tilt.second, true,
+          params_.look_at.pan_speed, params_.look_at.tilt_speed);
+        return false;
+      }
+      return true;
+    } catch (tf2::TransformException & ex) {
+      RCLCPP_ERROR(node_->get_logger(), "Transform error: %s", ex.what());
+      return false;
+    }
+  }
+
+  int get_near_pattern_position(
+    std::vector<std::pair<double, double>> pattern,
+    double pan,
+    double tilt) {
+    std::pair<double, int> min_distance_point = {10000.0, -1};
+    for (size_t i = 0; i < pattern.size(); i++) {
+      double distance = std::sqrt(
+        std::pow(pattern[i].first - pan, 2) +
+        std::pow(pattern[i].second - tilt, 2));
+      if (distance < min_distance_point.first) {
+        min_distance_point.first = distance;
+        min_distance_point.second = i;
+      }
+    }
+    return min_distance_point.second;
+  }
+
+  void perform_search_pattern() {
+    if (pattern_.size() == 0) {
+      return;
+    }
+    index_ = index_ % int(pattern_.size());
+    double head_pan = pattern_[index_].first * DEG_TO_RAD;
+    double head_tilt = pattern_[index_].second * DEG_TO_RAD;
+    double current_head_pan;
+    double current_head_tilt;
+    std::pair<double, double> head_position = get_head_position();
+    current_head_pan = head_position.first;
+    current_head_tilt = head_position.second;
+
+    bool success =
+      send_motor_goals(
+      head_pan, head_tilt, true, pan_speed_, tilt_speed_,
+      current_head_pan, current_head_tilt);
+
+    if (success) {
+      double distance_to_goal =
+        std::sqrt(
+        std::pow(head_pan - current_head_pan, 2) +
+        std::pow(head_tilt - current_head_tilt, 2));
+      if (distance_to_goal <= threshold_) {
+        index_++;
+      }
+    } else {
+      index_++;
+    }
+  }
+
+  void behave() {
+    uint curr_head_mode = head_mode_.head_mode;
+
+    params_ = param_listener_->get_params();
+
+    if (prev_head_mode_ != curr_head_mode) {
+      switch (curr_head_mode) {
+        case humanoid_league_msgs::msg::HeadMode::BALL_MODE:  // 0
+          pan_speed_ = params_.search_pattern.pan_speed;
+          tilt_speed_ = params_.search_pattern.tilt_speed;
+          pattern_ =
+            generatePattern(
+            params_.search_pattern.scan_lines,
+            params_.search_pattern.pan_max[0],
+            params_.search_pattern.pan_max[1],
+            params_.search_pattern.tilt_max[0],
+            params_.search_pattern.tilt_max[1],
+            params_.search_pattern.reduce_last_scanline);
+          break;
+        case humanoid_league_msgs::msg::HeadMode::BALL_MODE_PENALTY:  // 11
+          pan_speed_ = params_.search_pattern_penalty.pan_speed;
+          tilt_speed_ = params_.search_pattern_penalty.tilt_speed;
+          pattern_ =
+            generatePattern(
+            params_.search_pattern_penalty.scan_lines,
+            params_.search_pattern_penalty.pan_max[0],
+            params_.search_pattern_penalty.pan_max[1],
+            params_.search_pattern_penalty.tilt_max[0],
+            params_.search_pattern_penalty.tilt_max[1],
+            params_.search_pattern.reduce_last_scanline);
+          break;
+
+        case humanoid_league_msgs::msg::HeadMode::FIELD_FEATURES:  // 3
+          pan_speed_ = params_.search_pattern_field_features.pan_speed;
+          tilt_speed_ = params_.search_pattern_field_features.tilt_speed;
+          pattern_ =
+            generatePattern(
+            params_.search_pattern_field_features.scan_lines,
+            params_.search_pattern_field_features.pan_max[0],
+            params_.search_pattern_field_features.pan_max[1],
+            params_.search_pattern_field_features.tilt_max[0],
+            params_.search_pattern_field_features.tilt_max[1],
+            params_.search_pattern.reduce_last_scanline);
+          break;
+
+        case humanoid_league_msgs::msg::HeadMode::LOOK_FRONT:  // 13
+          pan_speed_ = params_.front_search_pattern.pan_speed;
+          tilt_speed_ = params_.front_search_pattern.tilt_speed;
+          pattern_ =
+            generatePattern(
+            params_.front_search_pattern.scan_lines,
+            params_.front_search_pattern.pan_max[0],
+            params_.front_search_pattern.pan_max[1],
+            params_.front_search_pattern.tilt_max[0],
+            params_.front_search_pattern.tilt_max[1],
+            params_.search_pattern.reduce_last_scanline);
+          break;
+
+        case humanoid_league_msgs::msg::HeadMode::LOOK_FORWARD:  // 7
+          pan_speed_ = params_.look_forward.pan_speed;
+          tilt_speed_ = params_.look_forward.tilt_speed;
+          pattern_ = generatePattern(
+            params_.look_forward.scan_lines, params_.look_forward.pan_max[0],
+            params_.look_forward.pan_max[1], params_.look_forward.tilt_max[0],
+            params_.look_forward.tilt_max[1],
+            params_.search_pattern.reduce_last_scanline);
+          break;
+
+        default:
+          return;
+      }
+      std::pair<double, double> head_position = get_head_position();
+
+      index_ = get_near_pattern_position(
+        pattern_, head_position.first,
+        head_position.second);
+    }
+    if (!action_running_ &&
+      curr_head_mode !=
+      humanoid_league_msgs::msg::HeadMode::DONT_MOVE)          // here DONT_MOVE
+                                                               // is implemented
+    {
+      prev_head_mode_ = curr_head_mode;
+      perform_search_pattern();
+    }
+  }
+
+  std::shared_ptr<rclcpp::Node> get_node() {return node_;}
+};
+}  // namespace move_head
+
+int main(int argc, char * argv[]) {
+  rclcpp::init(argc, argv);
+  rclcpp::experimental::executors::EventsExecutor exec;
+  auto head_mover = std::make_shared<move_head::HeadMover>();
+  exec.add_node(head_mover->get_node());
+  exec.spin();
+  rclcpp::shutdown();
+
+  return 0;
+}
diff --git a/bitbots_odometry/config/odometry_config_default.yaml b/bitbots_odometry/config/odometry_config_default.yaml
new file mode 100644
index 000000000..55021f9ac
--- /dev/null
+++ b/bitbots_odometry/config/odometry_config_default.yaml
@@ -0,0 +1,7 @@
+motion_odometry:
+  ros__parameters:
+    x_forward_scaling: 1.25
+    x_backward_scaling: 0.95
+    y_scaling: 1.0
+    yaw_scaling: 0.6
+    publish_walk_odom_tf: false
diff --git a/bitbots_quintic_walk/launch/test.launch b/bitbots_quintic_walk/launch/test.launch
index 297a93ac0..5bfd1e831 100644
--- a/bitbots_quintic_walk/launch/test.launch
+++ b/bitbots_quintic_walk/launch/test.launch
@@ -7,9 +7,24 @@
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-  <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" >
+  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
       <arg name="sim" value="$(var sim)"/>
-      <arg name="robot_type" value="$(var robot_type)"/>
+  </include>
+
+  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+      <arg name="sim" value="$(var sim)"/>
+    <arg name="robot_type" value="$(var robot_type)"/>
+  </include>
+
+  <!-- launch the base footprint -->
+  <node pkg="humanoid_base_footprint" exec="base_footprint" output="screen">
+    <param name="support_state_topics" value="[walk_support_state, dynamic_kick_support_state]"/>
+    <param name="use_sim_time" value="$(var sim)"/>
+  </node>
+
+  <!-- launch the odometry -->
+  <include file="$(find-pkg-share bitbots_odometry)/launch/odometry.launch">
+    <arg name="sim" value="$(var sim)"/>
   </include>
 
   <group unless="$(var sim)">
diff --git a/bitbots_quintic_walk/test/rostests/test_walk.launch b/bitbots_quintic_walk/test/rostests/test_walk.launch
deleted file mode 100644
index 580a82750..000000000
--- a/bitbots_quintic_walk/test/rostests/test_walk.launch
+++ /dev/null
@@ -1,11 +0,0 @@
-<launch>
-    <include file="$(find-pkg-share wolfgang_webots_sim)/launch/simulation.launch">
-        <arg name="headless" value="false"/>
-    </include>
-
-    <include file="$(find-pkg-share bitbots_quintic_walk)/launch/test.launch">
-        <arg name="sim" value="true"/>
-    </include>
-
-    <test pkg="bitbots_quintic_walk" exec="test_walk.py" test-name="test_walk" time-limit="300.0"/>
-</launch>
diff --git a/bitbots_quintic_walk/test/rostests/test_walk.py b/bitbots_quintic_walk/test/rostests/test_walk.py
deleted file mode 100755
index ec49903cb..000000000
--- a/bitbots_quintic_walk/test/rostests/test_walk.py
+++ /dev/null
@@ -1,179 +0,0 @@
-#!/usr/bin/env python3
-import math
-import time
-
-import rospy
-from biped_interfaces.msg import Phase
-from bitbots_msgs.msg import JointCommand
-from geometry_msgs.msg import Twist, Point, Pose, Quaternion
-
-from bitbots_test.mocks import MockSubscriber
-from bitbots_test.test_case import WebotsTestCase
-from nav_msgs.msg import Odometry
-
-walkready = JointCommand(
-    joint_names=["HeadPan", "HeadTilt", "LShoulderPitch", "LShoulderRoll", "LElbow", "RShoulderPitch",
-                 "RShoulderRoll", "RElbow"],
-    velocities=[5.0] * 8,
-    accelerations=[-1.0] * 8,
-    max_currents=[-1.0] * 8,
-    positions=[
-        0.0,  # HeadPan
-        0.0,  # HeadTilt
-        math.radians(75.27),  # LShoulderPitch
-        0.0,  # LShoulderRoll
-        math.radians(35.86),  # LElbow
-        math.radians(-75.58),  # RShoulderPitch
-        0.0,  # RShoulderRoll
-        math.radians(-36.10),  # RElbow
-    ]
-)
-
-
-class TestWalk(WebotsTestCase):
-
-    def initialize_everything(self):
-        # get arms walkready
-        joint_pub = rospy.Publisher("DynamixelController/command", JointCommand, queue_size=1)
-        joint_pub.publish(walkready)
-
-        # start and stop walking to get walkready
-        pub = rospy.Publisher("cmd_vel", Twist, queue_size=1)
-        cmd_vel = Twist()
-        cmd_vel.linear.x = 0.1
-        pub.publish(cmd_vel)
-        rospy.sleep(1)
-        cmd_vel.linear.x = 0.0
-        cmd_vel.angular.x = -1
-        pub.publish(cmd_vel)
-        rospy.sleep(1)
-
-        # remove ball
-        self.set_ball_position(Point(10, 0, 0))
-
-        # reset robot to start
-        self.set_robot_pose(Pose(Point(0, 0, 0.42), Quaternion(0, 0, 0, 1)))
-
-    def test_start(self):
-        """ test if node starts correctly without warnings/errors/criticals
-        and if it is still there after some time (did not crash by itself)"""
-        # setup
-        self.initialize_everything()
-        # wait to make sure node is up
-        sub = MockSubscriber("DynamixelController/command", JointCommand, tcp_nodelay=True)
-        sub.wait_until_connected()
-
-        # execution
-        time.sleep(2)
-
-        # verification
-        self.assertNoNegativeRosLogs(node="walking")
-
-    def test_no_joint_goals(self):
-        """test if joint goals are published when walking is activated and only then"""
-        # setup
-        self.initialize_everything()
-        sub = MockSubscriber("DynamixelController/command", JointCommand, tcp_nodelay=True)
-        sub.wait_until_connected()
-
-        # execution
-        # wait some time
-        time.sleep(1)
-
-        # verification
-        sub.assertNothingReceived()
-
-    def test_joint_goals(self):
-        # setup
-        self.initialize_everything()
-        pub = rospy.Publisher("cmd_vel", Twist, queue_size=1)
-        sub = MockSubscriber("DynamixelController/command", JointCommand, tcp_nodelay=True)
-        sub.wait_until_connected()
-        # wait for support state to make sure the walking is started
-        sub_support_state = MockSubscriber("walk_support_state", Phase, tcp_nodelay=True)
-        sub_support_state.wait_until_connected()
-        time.sleep(10)
-
-        # execution
-        cmd_vel = Twist()
-        cmd_vel.linear.x = 0.1
-        pub.publish(cmd_vel)
-        rospy.sleep(5)
-
-        # verification
-        # make sure something is published
-        sub.assertMessageReceived()
-
-    def test_walk(self):
-        """test if the walking is really moving the robot around in the simulation"""
-        self.initialize_everything()
-        # setup
-        pub = rospy.Publisher("cmd_vel", Twist, queue_size=1)
-
-        # execution
-        cmd_vel = Twist()
-        cmd_vel.linear.x = 0.1
-        pub.publish(cmd_vel)
-        rospy.sleep(10)
-        cmd_vel = Twist()
-        pub.publish(cmd_vel)
-        rospy.sleep(2)
-
-        # verification
-        # should have moved away
-        self.assertRobotNotPosition(Point(0, 0, 0), threshold=0.5)
-        # but still standing
-        self.assertRobotStanding()
-
-    def test_walk_odometry(self):
-        """
-        Test if the walk odometry is correct.
-        This means also that the robot is walking with the correct speed.
-        """
-
-        def odom_cb(msg):
-            nonlocal current_odom
-            current_odom = msg
-
-        # setup
-        self.initialize_everything()
-        current_odom = None
-        sub = MockSubscriber("walk_engine_odometry", Odometry, odom_cb, tcp_nodelay=True)
-        sub.wait_until_connected()
-        pub = rospy.Publisher("cmd_vel", Twist, queue_size=1)
-        # remember start odom pose
-        rospy.sleep(1)
-        start_odom = current_odom
-
-        # execution
-        cmd_vel = Twist()
-        cmd_vel.linear.x = 0.1
-        cmd_vel.linear.y = 0.05
-        cmd_vel.angular.z = 0.1
-        pub.publish(cmd_vel)
-        rospy.sleep(10)
-        cmd_vel = Twist()
-        cmd_vel.angular.x = -1
-        pub.publish(cmd_vel)
-        rospy.sleep(2)
-
-        # verification
-        end_odom = current_odom
-        odom_diff = Pose()
-        odom_diff.position.x = end_odom.pose.pose.position.x - start_odom.pose.pose.position.x
-        odom_diff.position.y = end_odom.pose.pose.position.y - start_odom.pose.pose.position.y
-        odom_diff.position.z = end_odom.pose.pose.position.z - start_odom.pose.pose.position.z
-        # difference between quaternions is annoying, so just use end pose, other tests did not turn
-        odom_diff.orientation.w = end_odom.pose.pose.orientation.w
-        odom_diff.orientation.x = end_odom.pose.pose.orientation.x
-        odom_diff.orientation.y = end_odom.pose.pose.orientation.y
-        odom_diff.orientation.z = end_odom.pose.pose.orientation.z
-        # robot should be at odom position
-        self.assertRobotPose(odom_diff, lin_threshold=1, ang_threshold=1)
-        self.assertRobotStanding()
-
-
-if __name__ == "__main__":
-    from bitbots_test import run_rostests
-
-    run_rostests(TestWalk)
diff --git a/bitbots_quintic_walk/test/rostests/test_walk_runs.launch b/bitbots_quintic_walk/test/rostests/test_walk_runs.launch
deleted file mode 100644
index 95f304849..000000000
--- a/bitbots_quintic_walk/test/rostests/test_walk_runs.launch
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<launch>
-    <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" />
-
-    <rosparam file="$(find-pkg-share bitbots_quintic_walk)/config/walking_wolfgang_robot.yaml" command="load"/>
-
-    <node name="motors_helper" pkg="bitbots_utils" exec="motor_goals_viz_helper.py" args="--walk" />
-
-    <node name="walking" pkg="bitbots_quintic_walk" exec="WalkNode" output="screen" />
-
-    <test pkg="bitbots_quintic_walk" exec="test_walk_runs.py" test-name="walk_runs" time-limit="300" />
-</launch>
diff --git a/bitbots_quintic_walk/test/rostests/test_walk_runs.py b/bitbots_quintic_walk/test/rostests/test_walk_runs.py
deleted file mode 100755
index 65b708da4..000000000
--- a/bitbots_quintic_walk/test/rostests/test_walk_runs.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python3
-from bitbots_test.test_case import RosNodeTestCase
-from bitbots_test.mocks import MockSubscriber
-from geometry_msgs.msg import Twist
-from bitbots_msgs.msg import JointCommand
-import rospy
-
-
-class WalkRunsTestCase(RosNodeTestCase):
-    def test_walk_runs(self):
-        sub = MockSubscriber('walking_motor_goals', JointCommand)
-        self.with_assertion_grace_period(lambda: self.assertNodeRunning("walking"), 10)
-        pub = rospy.Publisher('cmd_vel', Twist, queue_size=1, latch=True)
-
-        goal = Twist()
-        goal.linear.x = 0.3
-        pub.publish(goal)
-        sub.wait_until_connected()
-        rospy.sleep(5)
-        self.with_assertion_grace_period(sub.assertMessageReceived, 100)
-
-if __name__ == '__main__':
-    from bitbots_test import run_rostests
-    run_rostests(WalkRunsTestCase)
diff --git a/bitbots_rl_motion/launch/test.launch b/bitbots_rl_motion/launch/test.launch
index 1dfef55cf..da148ae1b 100644
--- a/bitbots_rl_motion/launch/test.launch
+++ b/bitbots_rl_motion/launch/test.launch
@@ -6,10 +6,25 @@
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-  <include file="$(find-pkg-share bitbots_utils)/launch/base.launch" >
+  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
       <arg name="sim" value="$(var sim)"/>
   </include>
 
+  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+      <arg name="sim" value="$(var sim)"/>
+  </include>
+
+  <!-- launch the base footprint -->
+  <node pkg="humanoid_base_footprint" exec="base_footprint" output="screen">
+    <param name="support_state_topics" value="[walk_support_state, dynamic_kick_support_state]"/>
+    <param name="use_sim_time" value="$(var sim)"/>
+  </node>
+
+  <!-- launch the odometry -->
+  <include file="$(find-pkg-share bitbots_odometry)/launch/odometry.launch">
+    <arg name="sim" value="$(var sim)"/>
+  </include>
+
   <group unless="$(var use_darwin)">
       <group unless="$(var sim)">
         <include file="$(find-pkg-share bitbots_ros_control)/launch/ros_control.launch" />

From 26cbcbf315d76d7304fd44919832e852e433dcc5 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 11 Aug 2023 23:54:04 +0200
Subject: [PATCH 02/74] Fix launch files

---
 bitbots_animation_server/launch/test.launch   |  4 +--
 bitbots_animation_server/package.xml          |  8 +++--
 bitbots_dynamic_kick/launch/test.launch       |  4 +--
 bitbots_dynamic_kick/launch/viz.launch        |  4 +--
 bitbots_dynamic_kick/package.xml              |  1 +
 bitbots_dynup/launch/test.launch              |  4 +--
 bitbots_dynup/package.xml                     | 29 ++++++++++---------
 bitbots_hcm/launch/test.launch                |  4 +--
 bitbots_hcm/package.xml                       |  2 ++
 .../launch/head_mover_standalone.launch       |  4 +--
 bitbots_head_mover/launch/test.launch         |  4 +--
 bitbots_head_mover/package.xml                |  2 ++
 bitbots_quintic_walk/launch/test.launch       |  4 +--
 bitbots_quintic_walk/package.xml              |  1 +
 bitbots_rl_motion/launch/test.launch          |  4 +--
 bitbots_rl_motion/package.xml                 |  6 ++--
 16 files changed, 49 insertions(+), 36 deletions(-)

diff --git a/bitbots_animation_server/launch/test.launch b/bitbots_animation_server/launch/test.launch
index b58faa1b6..ed669e8f9 100644
--- a/bitbots_animation_server/launch/test.launch
+++ b/bitbots_animation_server/launch/test.launch
@@ -7,8 +7,8 @@
     <include file="$(find-pkg-share bitbots_ros_control)/launch/ros_control.launch" />
   </group>
 
-  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" />
-  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" />
+  <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" />
+  <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" />
 
   <node pkg="bitbots_animation_server" exec="animation_node" output="screen" launch-prefix="$(var taskset)"/>
   <node name="animation_hcm_bridge" pkg="bitbots_animation_server" exec="animation_hcm_bridge.py"  output="screen" launch-prefix="$(var taskset)"/>
diff --git a/bitbots_animation_server/package.xml b/bitbots_animation_server/package.xml
index 07272c331..85ce516b3 100644
--- a/bitbots_animation_server/package.xml
+++ b/bitbots_animation_server/package.xml
@@ -14,11 +14,13 @@
 
   <license>MIT</license>
 
+  <depend>bitbots_docs</depend>
+  <depend>bitbots_robot_description</depend>
+  <depend>bitbots_splines</depend>
+  <depend>bitbots_utils</depend>
+  <depend>humanoid_league_msgs</depend>
   <depend>rclpy</depend>
   <depend>std_msgs</depend>
-  <depend>humanoid_league_msgs</depend>
-  <depend>bitbots_splines</depend>
-  <depend>bitbots_docs</depend>
 
   <export>
     <bitbots_documentation>
diff --git a/bitbots_dynamic_kick/launch/test.launch b/bitbots_dynamic_kick/launch/test.launch
index 13f1d8621..2480bca11 100644
--- a/bitbots_dynamic_kick/launch/test.launch
+++ b/bitbots_dynamic_kick/launch/test.launch
@@ -6,11 +6,11 @@
     <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
     <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+    <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
-    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+    <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
diff --git a/bitbots_dynamic_kick/launch/viz.launch b/bitbots_dynamic_kick/launch/viz.launch
index bab163ae9..0aa37e17e 100644
--- a/bitbots_dynamic_kick/launch/viz.launch
+++ b/bitbots_dynamic_kick/launch/viz.launch
@@ -1,7 +1,7 @@
 <launch>
-  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" />
+  <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" />
 
-  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" />
+  <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" />
 
   <!-- launch the base footprint -->
   <node pkg="humanoid_base_footprint" exec="base_footprint" output="screen">
diff --git a/bitbots_dynamic_kick/package.xml b/bitbots_dynamic_kick/package.xml
index ca56651bb..4438ac255 100644
--- a/bitbots_dynamic_kick/package.xml
+++ b/bitbots_dynamic_kick/package.xml
@@ -24,6 +24,7 @@
     <depend>bio_ik</depend>
     <depend>bitbots_docs</depend>
     <depend>bitbots_msgs</depend>
+    <depend>bitbots_robot_description</depend>
     <depend>bitbots_splines</depend>
     <depend>bitbots_utils</depend>
     <depend>control_toolbox</depend>
diff --git a/bitbots_dynup/launch/test.launch b/bitbots_dynup/launch/test.launch
index 8afbc0104..7e98c6961 100644
--- a/bitbots_dynup/launch/test.launch
+++ b/bitbots_dynup/launch/test.launch
@@ -8,12 +8,12 @@
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+  <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" >
     <arg name="sim" value="$(var sim)"/>
     <arg name="robot_type" value="$(var robot_type)"/>
   </include>
 
-  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+  <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
       <arg name="sim" value="$(var sim)"/>
   </include>
 
diff --git a/bitbots_dynup/package.xml b/bitbots_dynup/package.xml
index d5881f52a..43aeab859 100644
--- a/bitbots_dynup/package.xml
+++ b/bitbots_dynup/package.xml
@@ -13,24 +13,27 @@
   <author email="bestmann@informatik.uni-hamburg.de">Marc Bestmann</author>
 
   <buildtool_depend>ament_cmake</buildtool_depend>
-  <depend>std_msgs</depend>
-  <depend>tf2</depend>
-  <depend>tf2_ros</depend>
-  <depend>tf2_eigen</depend>
-  <depend>tf2_geometry_msgs</depend>
+
+  <depend>backward_ros</depend>
   <depend>bio_ik</depend>
-  <depend>moveit_core</depend>
-  <depend>moveit_ros_move_group</depend>
+  <depend>bitbots_docs</depend>
+  <depend>bitbots_msgs</depend>
+  <depend>bitbots_robot_description</depend>
   <depend>bitbots_splines</depend>
+  <depend>bitbots_utils</depend>
+  <depend>control_toolbox</depend>
   <depend>geometry_msgs</depend>
-  <depend>bitbots_msgs</depend>
-  <depend>moveit_ros_robot_interaction</depend>
+  <depend>moveit_core</depend>
+  <depend>moveit_ros_move_group</depend>
   <depend>moveit_ros_planning_interface</depend>
-  <depend>bitbots_docs</depend>
-  <depend>rot_conv</depend>
-  <depend>control_toolbox</depend>
+  <depend>moveit_ros_robot_interaction</depend>
   <depend>ros2_python_extension</depend>
-  <depend>backward_ros</depend>
+  <depend>rot_conv</depend>
+  <depend>std_msgs</depend>
+  <depend>tf2_eigen</depend>
+  <depend>tf2_geometry_msgs</depend>
+  <depend>tf2_ros</depend>
+  <depend>tf2</depend>
 
   <test_depend>plotjuggler</test_depend>
   <test_depend>bitbots_odometry</test_depend>
diff --git a/bitbots_hcm/launch/test.launch b/bitbots_hcm/launch/test.launch
index b27fdb66d..6fc8e1bc4 100644
--- a/bitbots_hcm/launch/test.launch
+++ b/bitbots_hcm/launch/test.launch
@@ -1,11 +1,11 @@
 <launch>
     <arg name="sim" default="false" description="Disables checks for hardware, since we are in simulation."/>
 
-    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch">
+    <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch">
         <arg name="sim" value="$(var sim)"/>
     </include>
 
-    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+    <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
diff --git a/bitbots_hcm/package.xml b/bitbots_hcm/package.xml
index 6f07ddc82..33494f614 100644
--- a/bitbots_hcm/package.xml
+++ b/bitbots_hcm/package.xml
@@ -20,6 +20,8 @@
   <depend>backward_ros</depend>
   <depend>bitbots_docs</depend>
   <depend>bitbots_msgs</depend>
+  <depend>bitbots_robot_description</depend>
+  <depend>bitbots_utils</depend>
   <depend>geometry_msgs</depend>
   <depend>humanoid_league_msgs</depend>
   <depend>pybind11-dev</depend>
diff --git a/bitbots_head_mover/launch/head_mover_standalone.launch b/bitbots_head_mover/launch/head_mover_standalone.launch
index 74e7a8a3c..10e847597 100644
--- a/bitbots_head_mover/launch/head_mover_standalone.launch
+++ b/bitbots_head_mover/launch/head_mover_standalone.launch
@@ -3,11 +3,11 @@
     <arg name="depends_only" default="false" />
     <arg name="sim" default="false" />
 
-    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch">
+    <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch">
         <arg name="sim" value="$(var sim)"/>
     </include>
 
-    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+    <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
diff --git a/bitbots_head_mover/launch/test.launch b/bitbots_head_mover/launch/test.launch
index 7c7ea5954..f6b81bad9 100644
--- a/bitbots_head_mover/launch/test.launch
+++ b/bitbots_head_mover/launch/test.launch
@@ -10,11 +10,11 @@
         </group>
     </group>
 
-    <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+    <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
-    <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+    <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
         <arg name="sim" value="$(var sim)"/>
     </include>
 
diff --git a/bitbots_head_mover/package.xml b/bitbots_head_mover/package.xml
index 78a22f9e3..c33a83d1a 100644
--- a/bitbots_head_mover/package.xml
+++ b/bitbots_head_mover/package.xml
@@ -19,6 +19,8 @@
   <depend>bio_ik_msgs</depend>
   <depend>bio_ik</depend>
   <depend>bitbots_msgs</depend>
+  <depend>bitbots_robot_description</depend>
+  <depend>bitbots_utils</depend>
   <depend>generate_parameter_library</depend>
   <depend>humanoid_league_msgs</depend>
   <depend>moveit_core</depend>
diff --git a/bitbots_quintic_walk/launch/test.launch b/bitbots_quintic_walk/launch/test.launch
index 5bfd1e831..868568311 100644
--- a/bitbots_quintic_walk/launch/test.launch
+++ b/bitbots_quintic_walk/launch/test.launch
@@ -7,11 +7,11 @@
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+  <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" >
       <arg name="sim" value="$(var sim)"/>
   </include>
 
-  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+  <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
       <arg name="sim" value="$(var sim)"/>
     <arg name="robot_type" value="$(var robot_type)"/>
   </include>
diff --git a/bitbots_quintic_walk/package.xml b/bitbots_quintic_walk/package.xml
index ce1f7a3b1..a47906110 100644
--- a/bitbots_quintic_walk/package.xml
+++ b/bitbots_quintic_walk/package.xml
@@ -27,6 +27,7 @@
     <depend>bio_ik</depend>
     <depend>bitbots_docs</depend>
     <depend>bitbots_msgs</depend>
+    <depend>bitbots_robot_description</depend>
     <depend>bitbots_splines</depend>
     <depend>bitbots_utils</depend>
     <depend>control_toolbox</depend>
diff --git a/bitbots_rl_motion/launch/test.launch b/bitbots_rl_motion/launch/test.launch
index da148ae1b..89da53dbd 100644
--- a/bitbots_rl_motion/launch/test.launch
+++ b/bitbots_rl_motion/launch/test.launch
@@ -6,11 +6,11 @@
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
-  <include file="$(find-pkg-share bitbots_bringup)/launch/base.launch" >
+  <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" >
       <arg name="sim" value="$(var sim)"/>
   </include>
 
-  <include file="$(find-pkg-share bitbots_utils)/launch/motion_base.launch" >
+  <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
       <arg name="sim" value="$(var sim)"/>
   </include>
 
diff --git a/bitbots_rl_motion/package.xml b/bitbots_rl_motion/package.xml
index 52d1032a4..da4769d63 100644
--- a/bitbots_rl_motion/package.xml
+++ b/bitbots_rl_motion/package.xml
@@ -15,10 +15,12 @@
 
   <buildtool_depend>ament_cmake</buildtool_depend>
 
-  <depend>rclpy</depend>
-  <depend>std_msgs</depend>
   <depend>bitbots_docs</depend>
+  <depend>bitbots_robot_description</depend>
+  <depend>bitbots_utils</depend>
   <depend>diagnostic_aggregator</depend>
+  <depend>rclpy</depend>
+  <depend>std_msgs</depend>
 
   <export>
     <bitbots_documentation>

From 498eb8a8cac5d471cd449d9fdc0399ed6e4027a7 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Sat, 12 Aug 2023 00:36:29 +0200
Subject: [PATCH 03/74] Cleanup animation server

---
 .../bitbots_animation_server/animation.py     |   6 +-
 .../animation_node.py                         | 203 +++++++++---------
 .../resource_manager.py                       |  65 +-----
 .../spline_animator.py                        |  19 +-
 .../scripts/animation_hcm_bridge.py           |   6 +-
 .../scripts/run_animation.py                  |  22 +-
 6 files changed, 135 insertions(+), 186 deletions(-)

diff --git a/bitbots_animation_server/bitbots_animation_server/animation.py b/bitbots_animation_server/bitbots_animation_server/animation.py
index 741a750b6..6ad858690 100644
--- a/bitbots_animation_server/bitbots_animation_server/animation.py
+++ b/bitbots_animation_server/bitbots_animation_server/animation.py
@@ -18,8 +18,8 @@ class Animation:
     """
 
     def __init__(self, name, keyframes, default_interpolator=None):
-        self.name = name
-        self.keyframes = keyframes
+        self.name: str = name
+        self.keyframes: list(Keyframe) = keyframes
         self.default_interpolator = default_interpolator
 
 
@@ -37,7 +37,7 @@ def parse(info):
     return anim
 
 
-def as_dict(anim):
+def as_dict(anim: Animation):
     """
     Convert an animation to builtin python types to
     make it serializable to formats like ``json``.
diff --git a/bitbots_animation_server/bitbots_animation_server/animation_node.py b/bitbots_animation_server/bitbots_animation_server/animation_node.py
index 54c2ae821..6d099073f 100755
--- a/bitbots_animation_server/bitbots_animation_server/animation_node.py
+++ b/bitbots_animation_server/bitbots_animation_server/animation_node.py
@@ -1,131 +1,133 @@
 #!/usr/bin/env python3
 import json
-
-from rclpy.action import ActionClient
 import traceback
 
 import numpy as np
 import rclpy
+from rclpy.action import ActionServer
+from rclpy.action.server import ServerGoalHandle
+from rclpy.callback_groups import ReentrantCallbackGroup
 from rclpy.duration import Duration
-from rclpy.node import Node
+from rclpy.executors import ExternalShutdownException
 from rclpy.executors import MultiThreadedExecutor
-from rclpy.callback_groups import ReentrantCallbackGroup
-
-from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import Animation as AnimationMsg
+from rclpy.node import Node
+from sensor_msgs.msg import JointState
 from trajectory_msgs.msg import JointTrajectoryPoint, JointTrajectory
 
+from bitbots_animation_server.animation import Animation
 from bitbots_animation_server.animation import parse
-from sensor_msgs.msg import Imu, JointState
-from bitbots_animation_server.resource_manager import find_all_animations_by_name
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_animation_server.resource_manager import ResourceManager
 from bitbots_animation_server.spline_animator import SplineAnimator
-from rclpy.action import ActionServer
-from rclpy.executors import ExternalShutdownException
+from humanoid_league_msgs.action import PlayAnimation
+from humanoid_league_msgs.msg import Animation as AnimationMsg
+from humanoid_league_msgs.msg import RobotControlState
 
 
 class AnimationNode(Node):
-    _feedback = PlayAnimation.Feedback
-    _result = PlayAnimation.Result
-
+    """This node provides an action server for playing animations."""
+    
     def __init__(self):
         """Starts a simple action server and waits for requests."""
-        super().__init__("animation")
-        # currently, we set log level to info since the action server is spamming too much
-        if not self.get_parameter("use_sim_time"):
-            pass  # todo how does this work in rclpy
-            # rospy.on_shutdown(self.on_shutdown_hook)
+        super().__init__("animation_server")
         self.get_logger().debug("Starting Animation Server")
 
         self.current_joint_states = None
         self.hcm_state = 0
         self.current_animation = None
-        self.animation_cache = {}
-        all_animations = find_all_animations_by_name(self)
+        self.animation_cache: dict[str, Animation] = {}
+
+        # Get robot type and create resource manager
+        self.declare_parameter("robot_type", "wolfgang")
+        self.resource_manager = ResourceManager(self.get_parameter('robot_type').value)
+
+        # Load all animations into memory
+        all_animations = self.resource_manager.find_all_animations_by_name(self)
         for animation_name, animation_file in all_animations.items():
             try:
                 with open(animation_file) as fp:
                     self.animation_cache[animation_name] = parse(json.load(fp))
             except IOError:
-                self.get_logger().error("Animation '%s' could not be loaded" % animation_name)
+                self.get_logger().error(f"Animation '{animation_name}' could not be loaded")
             except ValueError:
                 self.get_logger().error(
-                    "Animation '%s' had a ValueError. Probably there is a syntax error in the animation file. "
-                    "See traceback" % animation_name)
+                    f"Animation '{animation_name}' had a ValueError. "
+                    "Probably there is a syntax error in the animation file. "
+                    "See traceback")
                 traceback.print_exc()
 
-        # predefined messages for performance
-        self.anim_msg = AnimationMsg()
-        # AnimationMsg takes a JointTrajectory message to also be able to process trajectories. To keep this
-        # functionality, we use this message type, even though we only need a single joint goal in this case.
-        self.traj_msg = JointTrajectory()
-        self.traj_point = JointTrajectoryPoint()
-
         callback_group = ReentrantCallbackGroup()
         self.create_subscription(JointState, "joint_states", self.update_current_pose, 1, callback_group=callback_group)
         self.create_subscription(RobotControlState, "robot_state", self.update_hcm_state, 1, callback_group=callback_group)
+
         self.hcm_publisher = self.create_publisher(AnimationMsg, "animation", 1)
 
         self._as = ActionServer(self, PlayAnimation, "animation", self.execute_cb, callback_group=callback_group)
 
-    def on_shutdown_hook(self):
-        # we got external shutdown, let's still wait a bit, since we probably want to do a shutdown animation
-        self.get_clock().sleep_for(Duration(seconds=5))
-
-    def execute_cb(self, goal):
+    def execute_cb(self, goal: ServerGoalHandle):
         """ This is called, when someone calls the animation action"""
+
+        # Set type for request
+        request: PlayAnimation.Goal = goal.request
+
         first = True
-        self.current_animation = goal.request.animation
+        self.current_animation = request.animation
 
         # publish info to the console for the user
-        self.get_logger().info(f"Request to play animation {goal.request.animation}")
+        self.get_logger().info(f"Request to play animation {request.animation}")
 
-        if self.hcm_state != 0 and not goal.request.hcm:  # 0 means controllable
+        if self.hcm_state != 0 and not request.hcm:  # 0 means controllable
             # we cant play an animation right now
             # but we send a request, so that we may can soon
             self.send_animation_request()
-            self.get_logger().info("HCM not controllable. Only sent request to make it come controllable.")
-            goal.abort()
-            return PlayAnimation.Result(successful=False)
 
-        animator = self.get_animation_splines(self.current_animation, goal)
+            # Wait for the hcm to be controllable
+            num_tries = 0
+            while rclpy.ok() and self.hcm_state != 0 and num_tries < 10:
+                num_tries += 1
+                self.get_logger().info("HCM not controllable. Waiting... (try " + str(num_tries) + ")")
+                self.get_clock().sleep_until(self.get_clock().now() + Duration(seconds=0.1))
+
+            if self.hcm_state != 0:
+                self.get_logger().info(
+                    "HCM not controllable. Only sent request to make it come controllable, "
+                    "but it was not successful until timeout")
+                goal.abort()
+                return PlayAnimation.Result(successful=False)
+
+        animator = self.get_animation_splines(self.current_animation)
 
         while rclpy.ok() and animator:
             try:
                 last_time = self.get_clock().now()
-                # first check if we have another goal
-                # todo this does not work in ros2
-                # self.check_for_new_goal(goal)
-                # new_goal = self._as.current_goal.goal.animation
-                ## if there is a new goal, calculate new splines and reset the time
-                # if new_goal != self.current_animation:
-                #    self.current_animation = new_goal
-                #    animator = self.get_animation_splines(self.current_animation)
-                #    first = True
 
                 # if we're here we want to play the next keyframe, cause there is no other goal
                 # compute next pose
-                t = float(self.get_clock().now().seconds_nanoseconds()[0] +
-                        self.get_clock().now().seconds_nanoseconds()[1] / 1e9) - animator.get_start_time()
+                t = self.get_clock().now().nanoseconds / 1e9 - animator.get_start_time()
                 pose = animator.get_positions_rad(t)
 
                 if pose is None:
-                    # see walking node reset
-
                     # animation is finished
                     # tell it to the hcm
-                    self.send_animation(False, True, goal.request.hcm, None, None)
+                    self.send_animation(
+                        first=False,
+                        last=True,
+                        hcm=request.hcm,
+                        pose=None,
+                        torque=None)
                     goal.publish_feedback(PlayAnimation.Feedback(percent_done=100))
                     # we give a positive result
                     goal.succeed()
                     return PlayAnimation.Result(successful=True)
 
-                self.send_animation(first, False, goal.request.hcm, pose, animator.get_torque(t))
+                self.send_animation(
+                    first=first,
+                    last=False,
+                    hcm=request.hcm,
+                    pose=pose,
+                    torque=animator.get_torque(t))
 
                 first = False  # we have sent the first frame, all frames after this can't be the first
-                perc_done = int(((float(self.get_clock().now().seconds_nanoseconds()[0] +
-                                        self.get_clock().now().seconds_nanoseconds()[
-                                            1] / 1e9) - animator.get_start_time()) / animator.get_duration()) * 100)
+                perc_done = int(((self.get_clock().now().nanoseconds / 1e9 - animator.get_start_time()) / animator.get_duration()) * 100)
                 perc_done = max(0, min(perc_done, 100))
 
                 goal.publish_feedback(PlayAnimation.Feedback(percent_done=perc_done))
@@ -135,65 +137,52 @@ def execute_cb(self, goal):
                 exit()
         return PlayAnimation.Result(successful=False)
 
-    def get_animation_splines(self, animation_name, goal):
+    def get_animation_splines(self, animation_name: str):
         if animation_name not in self.animation_cache:
-            self.get_logger().error("Animation '%s' not found" % animation_name)
+            self.get_logger().error(f"Animation '{animation_name}' not found")
             return
-
-        parsed_animation = self.animation_cache[animation_name]
-        return SplineAnimator(parsed_animation, self.current_joint_states, self.get_logger(),
-                              self.get_clock())
-
-    def check_for_new_goal(self, goal):
-        if self._as.is_new_goal_available():
-            next_goal = self._as.next_goal
-            if not next_goal or not next_goal.get_goal():
-                return
-            self.get_logger().debug("New goal: " + next_goal.get_goal().animation)
-            if next_goal.get_goal().hcm:
-                self.get_logger().debug("Accepted hcm animation %s", next_goal.get_goal().animation)
-                # cancel old stuff and restart
-                self._as.current_goal.set_aborted()
-                self._as.accept_new_goal()
-            else:
-                # can't run this animation now
-                self._as.next_goal.set_rejected()
-                # delete the next goal to make sure, that we can accept something else
-                self._as.next_goal = None
-                self.get_logger().warn("Couldn't start non hcm animation because another one is already running.")
+        return SplineAnimator(
+            self.animation_cache[animation_name],
+            self.current_joint_states,
+            self.get_logger(),
+            self.get_clock())
 
     def update_current_pose(self, msg):
         """Gets the current motor positions and updates the representing pose accordingly."""
         self.current_joint_states = msg
 
-    def update_hcm_state(self, msg):
+    def update_hcm_state(self, msg: RobotControlState):
         self.hcm_state = msg.state
 
     def send_animation_request(self):
-        self.anim_msg.request = True
-        self.anim_msg.header.stamp = self.get_clock().now().to_msg()
-        self.hcm_publisher.publish(self.anim_msg)
-
-    def send_animation(self, first, last, hcm, pose, torque):
-        self.anim_msg.request = False
-        self.anim_msg.first = first
-        self.anim_msg.last = last
-        self.anim_msg.hcm = hcm
-        if pose is not None:
-            self.traj_msg.joint_names = []
-            self.traj_msg.points = [JointTrajectoryPoint()]
+        anim_msg = AnimationMsg()
+        anim_msg.request = True
+        anim_msg.header.stamp = self.get_clock().now().to_msg()
+        self.hcm_publisher.publish(anim_msg)
+
+    def send_animation(self, first: bool, last: bool, hcm: bool, pose: dict, torque: dict):
+        """Sends an animation to the hcm"""
+        anim_msg = AnimationMsg()
+        anim_msg.request = False
+        anim_msg.first = first
+        anim_msg.last = last
+        anim_msg.hcm = hcm
+        if pose is not None:#
+            traj_msg = JointTrajectory()
+            traj_msg.joint_names = []
+            traj_msg.points = [JointTrajectoryPoint()]
             # We are only using a single point in the trajectory message, since we only want to send a single joint goal
-            self.traj_msg.points[0].positions = []
-            self.traj_msg.points[0].effort = []
+            traj_msg.points[0].positions = []
+            traj_msg.points[0].effort = []
             for joint in pose:
-                self.traj_msg.joint_names.append(joint)
-                self.traj_msg.points[0].positions.append(pose[joint])
+                traj_msg.joint_names.append(joint)
+                traj_msg.points[0].positions.append(pose[joint])
                 if torque:
                     # 1 and 2 should be mapped to 1
-                    self.traj_msg.points[0].effort.append(np.clip((torque[joint]), 0, 1))
-            self.anim_msg.position = self.traj_msg
-        self.anim_msg.header.stamp = self.get_clock().now().to_msg()
-        self.hcm_publisher.publish(self.anim_msg)
+                    traj_msg.points[0].effort.append(np.clip((torque[joint]), 0, 1))
+            anim_msg.position = traj_msg
+        anim_msg.header.stamp = self.get_clock().now().to_msg()
+        self.hcm_publisher.publish(anim_msg)
 
 
 def main(args=None):
diff --git a/bitbots_animation_server/bitbots_animation_server/resource_manager.py b/bitbots_animation_server/bitbots_animation_server/resource_manager.py
index c4e686c7f..4e37651a8 100644
--- a/bitbots_animation_server/bitbots_animation_server/resource_manager.py
+++ b/bitbots_animation_server/bitbots_animation_server/resource_manager.py
@@ -2,35 +2,26 @@
 ResourceManager
 ^^^^^^^^^^^^^^^
 
-The ResourceManager module provides functions for file searching in a
-Darwin Project. Thus, it is possible to find resources without knowing
-the current location in the file system.
-
-This module provides the global methods :func:`find_resource`,
-:func:`find_anim` and :func:`find` which use a single global instance
-of the :class:`ResourceManager`. Thereby, files that have once been
-discovered do not have to be searched again.
+The ResourceManager module provides functions to search and list animations for a given robot.
+Thus, it is possible to find resources without knowing the current location in the file system.
 """
 
-import os.path
+import os
 from os.path import abspath, dirname, exists, join, normpath
 from os import walk
-import rclpy
 from ament_index_python import get_package_share_directory
-from rclpy.node import Node
 
 
-class ResourceManager(object):
+class ResourceManager:
 
-    def __init__(self, node:Node):
-        node.declare_parameter("robot_type", "wolfgang")
-        anim_package = node.get_parameter('robot_type').get_parameter_value().string_value + "_animations"
-
-        path = get_package_share_directory(anim_package)
-        self.basepath = abspath(path + "/animations")
+    def __init__(self, robot_type: str):
+        # Get the path to the animations folder
+        self.basepath = abspath(os.path.join(
+            get_package_share_directory(robot_type + "_animations"),
+            "animations"))
 
         self.cache = {}
-        self.files = []  # Animations cached for find_all_animations
+        self.files = []
         self.names = []  # Plain animation names, without filename-extension
         self.animpath = self._get_animpath()
 
@@ -117,19 +108,6 @@ def find(self, name, filename=""):
 
         return result
 
-    def generate_find(self, basepath):
-        """ Return a find function that automatically adds a basepath to
-        each name
-        :param basepath: The path to add to each file
-        :type basepath: String
-
-        The returned function takes one argument which will be added to the
-        basepath before calling the normal "find" method without optional
-        arguments.
-        """
-        path = normpath(basepath)
-        return lambda name: self.find(join(path, name))
-
     def find_animation(self, name):
         """
         Find an animation in <robot_name>_animations/animations/*. The filename
@@ -176,26 +154,3 @@ def find_all_animations_by_name(self, force_reload=False):
         if not self.files or force_reload:
             self.find_all_animations(force_reload)
         return dict(zip(self.names, self.files))
-
-    def find_all_animation_names(self, force_reload=False):
-        """ Same as find_all_animations, but returns a sorted set of the animations
-        for use in the record-ui
-        """
-        if not self.names or force_reload:
-            self.find_all_animations(force_reload)
-        return sorted(set(self.names))
-
-    def is_animation_name(self, name, force_reload=False):
-        """Check if a name belongs to a saved animation
-        """
-        if not self.names or force_reload:
-            self.find_all_animations(force_reload=True)
-        return name in self.names
-
-_RM = None  # type: ResourceManager
-# Shortcut to search for animations
-def find_all_animations_by_name(node, *args, **kwargs):
-    global _RM
-    if not _RM:
-        _RM = ResourceManager(node)
-    return _RM.find_all_animations_by_name(*args, **kwargs)
diff --git a/bitbots_animation_server/bitbots_animation_server/spline_animator.py b/bitbots_animation_server/bitbots_animation_server/spline_animator.py
index 1ab5cb153..63de5edb8 100644
--- a/bitbots_animation_server/bitbots_animation_server/spline_animator.py
+++ b/bitbots_animation_server/bitbots_animation_server/spline_animator.py
@@ -1,18 +1,21 @@
 import math
 
-import rclpy
-from rclpy.node import Node
+from rclpy.impl.rcutils_logger import RcutilsLogger as Logger#
+from rclpy.clock import Clock
+
+from sensor_msgs.msg import JointState
+from bitbots_animation_server.animation import Animation
 from bitbots_splines.smooth_spline import SmoothSpline
 
 
 class SplineAnimator:
-
-    def __init__(self, animation, current_joint_states, logger, clock):
+    def __init__(self, animation: Animation, current_joint_states: JointState, logger: Logger, clock: Clock):
         self.anim = animation
-        self.start_time = float(clock.now().seconds_nanoseconds()[0] + clock.now().seconds_nanoseconds()[1]/1e9)
-        self.animation_duration = 0
-        self.current_point_time = 0
-        self.spline_dict = {}
+        self.start_time = clock.now().nanoseconds /1e9
+
+        self.animation_duration = 0.0
+        self.current_point_time = 0.0
+        self.spline_dict: dict[str, SmoothSpline] = {}
         self.torques = {}
 
         # add current joint positions as start
diff --git a/bitbots_animation_server/scripts/animation_hcm_bridge.py b/bitbots_animation_server/scripts/animation_hcm_bridge.py
index 81a92370f..04f502c1d 100755
--- a/bitbots_animation_server/scripts/animation_hcm_bridge.py
+++ b/bitbots_animation_server/scripts/animation_hcm_bridge.py
@@ -1,7 +1,6 @@
 #!/usr/bin/env python3
 import rclpy
 from rclpy.node import Node
-from rclpy.duration import Duration
 from bitbots_msgs.msg import JointCommand
 
 # List of all joint names. Do not change the order as it is important for Gazebo
@@ -26,8 +25,6 @@ def __init__(self):
 
         self.create_subscription(Animation, "animation", self.animation_cb, 10)
 
-        rclpy.spin(self)
-
     def animation_cb(self, msg: Animation):
         self.joint_command_msg.header.stamp = self.get_clock().now().to_msg()
         for i in range(len(msg.position.joint_names)):
@@ -39,4 +36,5 @@ def animation_cb(self, msg: Animation):
 
 
 if __name__ == '__main__':
-    bridge = AnimationHcmBridge()
\ No newline at end of file
+    bridge = AnimationHcmBridge()
+    rclpy.spin(bridge)
\ No newline at end of file
diff --git a/bitbots_animation_server/scripts/run_animation.py b/bitbots_animation_server/scripts/run_animation.py
index 41fc6ca96..05e2593bd 100755
--- a/bitbots_animation_server/scripts/run_animation.py
+++ b/bitbots_animation_server/scripts/run_animation.py
@@ -1,32 +1,36 @@
 #!/usr/bin/env python3
-import argparse
+import sys
 
-from rclpy.action import ActionClient
-from actionlib_msgs.msg import GoalStatus
 import rclpy
-from rclpy.duration import Duration
+from actionlib_msgs.msg import GoalStatus
+from rclpy.action import ActionClient
 from rclpy.node import Node
-import sys
 
-import humanoid_league_msgs.action
+from humanoid_league_msgs.action import PlayAnimation
 
 
 def anim_run(anim=None, hcm=False):
     node = Node("run_animation")
-    anim_client = ActionClient(node, humanoid_league_msgs.action.PlayAnimation, 'animation')
+
+    anim_client = ActionClient(node, PlayAnimation, 'animation')
+
     if anim is None or anim == "":
         node.get_logger().warn("Tried to play an animation with an empty name!")
         return False
+
     first_try = anim_client.wait_for_server(3.0)
+
     if not first_try:
         node.get_logger().error(
             "Animation Action Server not running! Motion can not work without animation action server. "
             "Will now wait until server is accessible!")
         anim_client.wait_for_server()
         node.get_logger().warn("Animation server now running, hcm will go on.")
-    goal = humanoid_league_msgs.action.PlayAnimation.Goal()
+
+    goal = PlayAnimation.Goal()
     goal.animation = anim
     goal.hcm = hcm
+
     # todo not .send_goal does never return
     state = anim_client.send_goal_async(goal)
     if state == GoalStatus.PENDING:
@@ -56,7 +60,7 @@ def anim_run(anim=None, hcm=False):
 if __name__ == '__main__':
     rclpy.init(args=sys.argv)
 
-    # run with "rosrun bitbots_animation_server run_animation.py NAME"
+    # run with "ros2 run bitbots_animation_server run_animation.py NAME"
     if len(sys.argv) > 1:
         # Support for _anim:=NAME -style execution for legacy reasons
         if sys.argv[1].startswith('_anim:=') or sys.argv[1].startswith('anim:='):

From edf04dedba82bd537e90c139f88a1f842a783d96 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 12 Sep 2023 18:35:24 +0200
Subject: [PATCH 04/74] Start hcm refactoring

---
 .../docs/manual/animation.rst                 |   4 +-
 .../scripts/animation_hcm_bridge.py           |   5 +
 .../cfg/bitbots_dynamic_kick_params.cfg       |  88 ----
 .../bitbots_dynup_py/py_dynup_wrapper.py      |  14 +-
 bitbots_dynup/docs/index.rst                  |   4 +-
 .../include/bitbots_dynup/dynup_engine.h      |  22 +-
 bitbots_dynup/launch/dynup.launch             |   1 -
 bitbots_dynup/launch/test.launch              |   1 -
 bitbots_dynup/package.xml                     |   2 -
 .../scripts/generate_walkready_animation.py   |  75 ---
 bitbots_dynup/scripts/test_time.py            | 165 ------
 .../bitbots_hcm/classifier/classifier.pkl     | Bin 2141967 -> 0 bytes
 bitbots_hcm/bitbots_hcm/classifier/scaler.pkl | Bin 752 -> 0 bytes
 bitbots_hcm/bitbots_hcm/classifier/types.pkl  | Bin 89 -> 0 bytes
 bitbots_hcm/bitbots_hcm/fall_checker.py       | 190 -------
 bitbots_hcm/bitbots_hcm/fall_classifier.py    | 114 -----
 .../hcm_dsd/actions/cancel_goals.py           |   5 +-
 .../hcm_dsd/actions/change_motor_power.py     |   4 +-
 .../hcm_dsd/actions/falling_poses.py          | 218 --------
 .../hcm_dsd/actions/play_animation.py         |  54 +-
 .../hcm_dsd/actions/stop_walking.py           |  13 +-
 .../bitbots_hcm/hcm_dsd/decisions/__init__.py |  13 +
 .../hcm_dsd/decisions/animation.py            |  36 ++
 .../hcm_dsd/decisions/check_hardware.py       | 177 +++++++
 .../hcm_dsd/decisions/decisions.py            | 468 ------------------
 .../bitbots_hcm/hcm_dsd/decisions/fallen.py   |  60 +++
 .../bitbots_hcm/hcm_dsd/decisions/falling.py  | 137 +++++
 .../bitbots_hcm/hcm_dsd/decisions/kicking.py  |  20 +
 .../bitbots_hcm/hcm_dsd/decisions/pickup.py   |  28 ++
 .../bitbots_hcm/hcm_dsd/decisions/startup.py  |  52 ++
 .../bitbots_hcm/hcm_dsd/decisions/stop.py     |  16 +
 .../bitbots_hcm/hcm_dsd/decisions/walking.py  |  25 +
 bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd       |   2 +-
 .../bitbots_hcm/hcm_dsd/hcm_blackboard.py     | 122 ++---
 .../bitbots_hcm/humanoid_control_module.py    |  22 +-
 bitbots_hcm/bitbots_hcm/training/dataset.py   |  95 ----
 bitbots_hcm/bitbots_hcm/training/label.py     | 132 -----
 bitbots_hcm/bitbots_hcm/training/train.py     | 219 --------
 bitbots_hcm/config/hcm_wolfgang.yaml          |   3 +
 bitbots_hcm/src/hcm.cpp                       |  10 -
 40 files changed, 674 insertions(+), 1942 deletions(-)
 delete mode 100755 bitbots_dynamic_kick/cfg/bitbots_dynamic_kick_params.cfg
 delete mode 100644 bitbots_dynup/scripts/generate_walkready_animation.py
 delete mode 100644 bitbots_dynup/scripts/test_time.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/classifier/classifier.pkl
 delete mode 100644 bitbots_hcm/bitbots_hcm/classifier/scaler.pkl
 delete mode 100644 bitbots_hcm/bitbots_hcm/classifier/types.pkl
 delete mode 100644 bitbots_hcm/bitbots_hcm/fall_checker.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/fall_classifier.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/falling_poses.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/decisions.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/stop.py
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/training/dataset.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/training/label.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/training/train.py

diff --git a/bitbots_animation_server/docs/manual/animation.rst b/bitbots_animation_server/docs/manual/animation.rst
index b939b9b1e..9041231a8 100644
--- a/bitbots_animation_server/docs/manual/animation.rst
+++ b/bitbots_animation_server/docs/manual/animation.rst
@@ -1,7 +1,7 @@
 Description of Animation Server
 ===============================
 
-The Animation Server is responsible for playback of previously recorded keyframe animations. The server is called by the 'HCM', after the robot fell down and wants to get back up. It can also be used by the 'Behavior', e.g. for shooting.
+The Animation Server is responsible for playback of previously recorded keyframe animations.
 
 The Animation Server is a ROS Action Server. For an action a message is sent to the Animation Server. This is similar to sending a normal 'message', the connection in this case however is not only one-way. The Action Server sends back the status of the active action as well as the result (successful or not).
 
@@ -9,7 +9,7 @@ Actively running animations, can be interrupted by the HCM. This ensures that, s
 
 Animations consist of a series of keyframes. Each keyframe is a snapshot of motor positions at a certain point in time. During playback a file containing the recorded keyframes is read and each frame is played one after the other at a given interval. To achieve a fluid motion the frequency of interpolation is set to 200 Hz with the help of quintic splines. This interpolation is done in the 'Joint Space' (inbetween the motor positions, not inbetween the actual positions of the robot's extremities in the Cartesian space), due to the development of the project and better usability.
 
-Animations can be run manually with `rosrun bitbots_animation_server run_animation <name>`.
+Animations can be run manually with `ros2 run bitbots_animation_server run_animation <name>`.
 All animations can be found in the package `wolfgang_animations`.
 
 If an animation fails to run, the first thing to check is, if the HCM outputs a different 'Robot State' than 'Controllable' or 'Walking'.
diff --git a/bitbots_animation_server/scripts/animation_hcm_bridge.py b/bitbots_animation_server/scripts/animation_hcm_bridge.py
index 04f502c1d..c7b12e431 100755
--- a/bitbots_animation_server/scripts/animation_hcm_bridge.py
+++ b/bitbots_animation_server/scripts/animation_hcm_bridge.py
@@ -1,4 +1,9 @@
 #!/usr/bin/env python3
+
+"""
+This script subscribes to the topic "animation" and publishes the received joint commands to the motor command topic, skipping the HCM.
+"""
+
 import rclpy
 from rclpy.node import Node
 from bitbots_msgs.msg import JointCommand
diff --git a/bitbots_dynamic_kick/cfg/bitbots_dynamic_kick_params.cfg b/bitbots_dynamic_kick/cfg/bitbots_dynamic_kick_params.cfg
deleted file mode 100755
index eaab2e9bc..000000000
--- a/bitbots_dynamic_kick/cfg/bitbots_dynamic_kick_params.cfg
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python3
-
-PACKAGE = 'bitbots_dynamic_kick'
-import roslib
-
-roslib.load_manifest(PACKAGE)
-
-from dynamic_reconfigure.parameter_generator_catkin import *
-
-gen = ParameterGenerator()
-
-group_engine = gen.add_group("Engine", type="tab")
-group_engine_distances = group_engine.add_group("Distances and Positions")
-group_engine.add("engine_rate", int_t, 1,
-                 "How often the engine updates motor goals [Hz]",
-                 min=1, max=500)
-group_engine_distances.add("foot_rise", double_t, 2,
-                           "Rise of the foot [m]",
-                           min=0, max=2)
-group_engine_distances.add("foot_distance", double_t, 2,
-                           "How far apart the feet should be from each other. This is only relevant during the initial phase "
-                           "when the foot is not yet moving towards the ball [m]",
-                           min=0, max=3)
-group_engine_distances.add("kick_windup_distance", double_t, 2,
-                           "How far away from the ball to stop and perform the actual (fast) kick movement [m]",
-                           min=0, max=2)
-group_engine_distances.add("trunk_height", double_t, 4,
-                           "Height of the trunk [m]",
-                           min=0, max=0.6)
-group_engine_distances.add("trunk_roll", double_t, 4,
-                           "Roll of the trunk, positive means toward the support foot [rad]",
-                           min=-1, max=1)
-group_engine_distances.add("trunk_pitch", double_t, 4,
-                           "Pitch of the trunk, positive means toward the front [rad]",
-                           min=-1, max=1)
-group_engine_distances.add("trunk_yaw", double_t, 4,
-                           "Yaw of the trunk, positive means turning toward the kicking foot [rad]",
-                           min=-1, max=1)
-
-group_engine_timings = group_engine.add_group("Timings")
-group_engine_timings.add("move_trunk_time", double_t, 3,
-                         "How long it should take to move the trunk above the support foot before raising the flying foot [s]",
-                         min=0)
-group_engine_timings.add("raise_foot_time", double_t, 3,
-                         "How long it should take to raise the flying foot from the ground [s]",
-                         min=0)
-group_engine_timings.add("move_to_ball_time", double_t, 3,
-                         "How long it should take to move the raised foot to the windup point [s]",
-                         min=0)
-group_engine_timings.add("kick_time", double_t, 3,  # TODO replace this with dynamic calculation
-                         "This will be removed in the future [s]",
-                         min=0)
-group_engine_timings.add("move_back_time", double_t, 3,
-                         "How long it should take to move the flying foot back after kicking [s]",
-                         min=0)
-group_engine_timings.add("lower_foot_time", double_t, 3,
-                         "How long it should take to lower the foot [s]",
-                         min=0)
-group_engine_timings.add("move_trunk_back_time", double_t, 3,
-                         "How long it should take to move the flying foot back after kicking [s]",
-                         min=0)
-
-group_engine_decisions = group_engine.add_group("Decisions")
-group_engine_decisions.add("choose_foot_corridor_width", double_t, 3,
-                           "How wide the corridor should be in which advanced foot-choosing calculations take place."
-                           "If kick goal is placed outside this corridor, the foot on that side will automatically be assigned [m]"
-                           "the flying foot.",
-                           min=0)
-
-group_stabilizing = gen.add_group("Stabilizer", type="tab")
-
-group_stabilizing_cop = group_stabilizing.add_group("CenterOfPressure regulation")
-group_stabilizing_cop.add("use_center_of_pressure", bool_t, 4,
-                          "Use the center of pressure for stabilizing")
-group_stabilizing_cop.add("stabilizing_point_x", double_t, 4,
-                          "Where to stabilize over in x direction. Measured from the support foots *_sole frame [m]",
-                          min=-0.5, max=0.5)
-group_stabilizing_cop.add("stabilizing_point_y", double_t, 4,
-                          "Where to stabilize over in y direction. Measured from the support foots *_sole frame. "
-                          "Be aware that - always represents the direction towards base_footprint [m]",
-                          min=-0.5, max=0.5)
-
-group_visualization = gen.add_group("Visualization", type="tab")
-group_visualization.add("spline_smoothness", int_t, 8,
-                        "how many points to extract from splines for visualization",
-                        min=1, max=200)
-
-exit(gen.generate(PACKAGE, 'dynamic_kick', 'DynamicKick'))
diff --git a/bitbots_dynup/bitbots_dynup_py/py_dynup_wrapper.py b/bitbots_dynup/bitbots_dynup_py/py_dynup_wrapper.py
index 915f388a4..5a78cdb5b 100644
--- a/bitbots_dynup/bitbots_dynup_py/py_dynup_wrapper.py
+++ b/bitbots_dynup/bitbots_dynup_py/py_dynup_wrapper.py
@@ -1,16 +1,10 @@
 from io import BytesIO
 
-import rclpy
-from rclpy.node import Node
-from std_msgs.msg import Int64
-
-from bitbots_dynup.py_dynup import PyDynupWrapper, spin_once
 from bitbots_dynup.msg import DynupPoses
-from bitbots_msgs.msg import JointCommand, FootPressure
-from geometry_msgs.msg import Twist, Pose, PoseArray
-from sensor_msgs.msg import Imu, JointState
-from std_msgs.msg import String
-from nav_msgs.msg import Odometry
+from bitbots_dynup.py_dynup import PyDynupWrapper, spin_once
+from geometry_msgs.msg import PoseArray
+
+from bitbots_msgs.msg import JointCommand
 
 
 class PyDynup(object):
diff --git a/bitbots_dynup/docs/index.rst b/bitbots_dynup/docs/index.rst
index 3fc6db302..ad9f1579b 100644
--- a/bitbots_dynup/docs/index.rst
+++ b/bitbots_dynup/docs/index.rst
@@ -30,9 +30,9 @@ Since the arms are lacking degrees of freedom, the IK solver is set to also cons
 
 How to test it
 --------------
-To test the dynup system, simply start the test script with :code:`roslaunch bitbots_dynup test.launch sim:=true`.
+To test the dynup system, simply start the test script with :code:`ros2 launch bitbots_dynup test.launch sim:=true`.
 The :code:`sim` parameter is only required, if the system is tested in simulation, otherwise omit it.
-To execute the motion, run the following command: :code:`rosrun bitbots_dynup dummy_client.py <direction>`, replacing :code:`<direction>` with one of the six directions mentioned above.
+To execute the motion, run the following command: :code:`ros2 run bitbots_dynup dummy_client.py <direction>`, replacing :code:`<direction>` with one of the six directions mentioned above.
 
 
 
diff --git a/bitbots_dynup/include/bitbots_dynup/dynup_engine.h b/bitbots_dynup/include/bitbots_dynup/dynup_engine.h
index ada2e3cc8..dd749733d 100644
--- a/bitbots_dynup/include/bitbots_dynup/dynup_engine.h
+++ b/bitbots_dynup/include/bitbots_dynup/dynup_engine.h
@@ -1,19 +1,19 @@
 #ifndef BITBOTS_DYNUP_INCLUDE_BITBOTS_DYNUP_DYNUP_ENGINE_H_
 #define BITBOTS_DYNUP_INCLUDE_BITBOTS_DYNUP_DYNUP_ENGINE_H_
 
-#include <string>
-#include <optional>
-#include <cmath>
-#include <rclcpp/rclcpp.hpp>
+#include "dynup_stabilizer.h"
+#include <bitbots_dynup/msg/dynup_engine_debug.hpp>
+#include <bitbots_splines/abstract_engine.h>
+#include <bitbots_splines/pose_spline.h>
 #include <bitbots_splines/smooth_spline.h>
 #include <bitbots_splines/spline_container.h>
-#include <bitbots_splines/pose_spline.h>
-#include <bitbots_splines/abstract_engine.h>
-#include <bitbots_dynup/msg/dynup_engine_debug.hpp>
-#include <tf2/convert.h>
+#include <cmath>
+#include <optional>
+#include <rclcpp/rclcpp.hpp>
+#include <string>
 #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
+#include <tf2/convert.h>
 #include <visualization_msgs/msg/marker.hpp>
-#include "dynup_stabilizer.h"
 
 namespace bitbots_dynup {
 
@@ -25,10 +25,6 @@ class DynupEngine : public bitbots_splines::AbstractEngine<DynupRequest, DynupRe
 
   DynupResponse update(double dt) override;
 
-  /*
-   * Add current position, target position and current position to splines so that they describe a smooth
-   * curve to the ball and back
-   */
   void setGoals(const DynupRequest &goals) override;
 
   /*
diff --git a/bitbots_dynup/launch/dynup.launch b/bitbots_dynup/launch/dynup.launch
index f79f3fec5..15bd7003f 100644
--- a/bitbots_dynup/launch/dynup.launch
+++ b/bitbots_dynup/launch/dynup.launch
@@ -1,7 +1,6 @@
 <launch>
     <let name="tf_prefix" value="$(eval '\'$(env ROS_NAMESPACE not_defined)\' if \'$(env ROS_NAMESPACE not_defined)\' != \'not_defined\' else \'\'')"/>
     <arg name="sim" default="false"/>
-    <arg name="robot_type" default="wolfgang"/>
     <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
     <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
diff --git a/bitbots_dynup/launch/test.launch b/bitbots_dynup/launch/test.launch
index 7e98c6961..d3ef04b31 100644
--- a/bitbots_dynup/launch/test.launch
+++ b/bitbots_dynup/launch/test.launch
@@ -3,7 +3,6 @@
   <let name="tf_prefix" value="$(eval '\'$(env ROS_NAMESPACE not_defined)\' if \'$(env ROS_NAMESPACE not_defined)\' != \'not_defined\' else \'\'')"/>
   <arg name="sim" default="false"/>
   <arg name="viz" default="false"/>
-  <arg name="robot_type" default="wolfgang"/>
 
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
diff --git a/bitbots_dynup/package.xml b/bitbots_dynup/package.xml
index 43aeab859..52644dff9 100644
--- a/bitbots_dynup/package.xml
+++ b/bitbots_dynup/package.xml
@@ -38,8 +38,6 @@
   <test_depend>plotjuggler</test_depend>
   <test_depend>bitbots_odometry</test_depend>
 
-  <exec_depend>ros2launch</exec_depend>
-
   <export>
     <bitbots_documentation>
       <status>tested_integration</status>
diff --git a/bitbots_dynup/scripts/generate_walkready_animation.py b/bitbots_dynup/scripts/generate_walkready_animation.py
deleted file mode 100644
index bcaa39729..000000000
--- a/bitbots_dynup/scripts/generate_walkready_animation.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env python3
-import sys
-
-from rclpy.action import ActionClient
-import rclpy
-from rclpy.node import Node
-from actionlib_msgs.msg import GoalStatus
-from geometry_msgs.msg import Twist
-from bitbots_msgs.msg import JointCommand, DynUpAction, DynUpGoal
-import math
-
-
-def callback(msg):
-    output_string = "{\n \"author\": \"walkready_script\", \n \"description\": \"none\",\n \"hostname\": \"tams159\", \n \"keyframes\": [ \n { \n \"duration\": 1.0, \n \"goals\": { \n"
-    i = 0
-    for joint_name in msg.joint_names:
-        output_string += " \"" + str(joint_name) + "\" : " + str(math.degrees(msg.positions[i]))
-        if i < len(msg.joint_names) - 1:
-            output_string += ","
-        output_string += "\n"
-        i += 1
-    output_string += "},\n \"name\": \"generated frame\", \n \"pause\": 0.5 \n }\n ], \n \"name\": \"walkready\", \n\"version\": 0 \n} \n"
-    with open("walkready.json", "w") as text_file:
-        text_file.write(output_string)
-
-
-def done_cb(state, result):
-    print('Action completed: ', end='')
-    if state == GoalStatus.PENDING:
-        print('Pending')
-    elif state == GoalStatus.ACTIVE:
-        print('Active')
-    elif state == GoalStatus.PREEMPTED:
-        print('Preempted')
-    elif state == GoalStatus.SUCCEEDED:
-        print('Succeeded')
-    elif state == GoalStatus.ABORTED:
-        print('Aborted')
-    elif state == GoalStatus.REJECTED:
-        print('Rejected')
-    elif state == GoalStatus.PREEMPTING:
-        print('Preempting')
-    elif state == GoalStatus.RECALLING:
-        print('Recalling')
-    elif state == GoalStatus.RECALLED:
-        print('Recalled')
-    elif state == GoalStatus.LOST:
-        print('Lost')
-    else:
-        print('Unknown state', state)
-    print(str(result))
-
-
-rclpy.init(args=None)
-self.get_logger().warn("Make sure that the Dynup is running together with simulator or this script will not work.")
-
-rospy.Subscriber("/DynamixelController/command", JointCommand, callback)
-
-print('[..] Connecting to action server \'dynup\'', end='')
-sys.stdout.flush()
-client = ActionClient(self, DynUpAction, 'dynup')
-if not client.wait_for_server():
-    exit(1)
-print('\r[OK] Connecting to action server \'dynup\'')
-print()
-
-goal = DynUpGoal()
-goal.direction = "rise"
-
-client.send_goal_async(goal)
-client.done_cb = done_cb
-print("Sent new goal. Waiting for result")
-client.wait_for_result()
-
-self.get_logger().info("Your walkready animation has been saved to the current directory.")
diff --git a/bitbots_dynup/scripts/test_time.py b/bitbots_dynup/scripts/test_time.py
deleted file mode 100644
index 391448762..000000000
--- a/bitbots_dynup/scripts/test_time.py
+++ /dev/null
@@ -1,165 +0,0 @@
-#!/usr/bin/env python3
-
-from __future__ import print_function
-import sys
-
-import rclpy
-from rclpy.node import Node
-from rclpy.action import ActionClient
-
-from actionlib_msgs.msg import GoalStatus
-from bitbots_msgs.msg import DynUpGoal, DynUpAction, DynUpFeedback
-import humanoid_league_msgs.msg
-from sensor_msgs.msg import Imu
-
-showing_feedback = False
-
-if __name__ == "__main__":
-    def done_cb(state, result):
-        print('Action completed: ', end='')
-        if state == GoalStatus.PENDING:
-            print('Pending')
-        elif state == GoalStatus.ACTIVE:
-            print('Active')
-        elif state == GoalStatus.PREEMPTED:
-            print('Preempted')
-        elif state == GoalStatus.SUCCEEDED:
-            print('Succeeded')
-        elif state == GoalStatus.ABORTED:
-            print('Aborted')
-        elif state == GoalStatus.REJECTED:
-            print('Rejected')
-        elif state == GoalStatus.PREEMPTING:
-            print('Preempting')
-        elif state == GoalStatus.RECALLING:
-            print('Recalling')
-        elif state == GoalStatus.RECALLED:
-            print('Recalled')
-        elif state == GoalStatus.LOST:
-            print('Lost')
-        else:
-            print('Unknown state', state)
-        print(str(result))
-
-
-    def active_cb():
-        print("Server accepted action")
-
-
-    def feedback_cb(feedback):
-        if len(sys.argv) > 1 and '--feedback' in sys.argv:
-            print('Feedback')
-            print(feedback)
-            print()
-
-
-    def play_animation(anim):
-        first_try = anim_client.wait_for_server(
-            Duration(seconds=self.get_parameter('"hcm/anim_server_wait_time"').get_parameter_value().double_value
-        if not first_try:
-            self.get_logger().error(
-                "Animation Action Server not running! Motion can not work without animation action server. "
-                "Will now wait until server is accessible!")
-            anim_client.wait_for_server()
-            self.get_logger().warn("Animation server now running, hcm will go on.")
-        goal = humanoid_league_msgs.msg.PlayAnimationGoal()
-        goal.animation = anim
-        goal.hcm = False
-        state = anim_client.send_goal_and_wait(goal)
-        if state == GoalStatus.PENDING:
-            print('Pending')
-        elif state == GoalStatus.ACTIVE:
-            print('Active')
-        elif state == GoalStatus.PREEMPTED:
-            print('Preempted')
-        elif state == GoalStatus.SUCCEEDED:
-            print('Succeeded')
-        elif state == GoalStatus.ABORTED:
-            print('Aborted')
-        elif state == GoalStatus.REJECTED:
-            print('Rejected')
-        elif state == GoalStatus.PREEMPTING:
-            print('Preempting')
-        elif state == GoalStatus.RECALLING:
-            print('Recalling')
-        elif state == GoalStatus.RECALLED:
-            print('Recalled')
-        elif state == GoalStatus.LOST:
-            print('Lost')
-        else:
-            print('Unknown state', state)
-
-
-    def play_dynup(direction):
-        global last_move_time
-        goal = DynUpGoal()
-        goal.direction = direction
-
-        client.done_cb = done_cb
-        client.feedback_cb = feedback_cb
-        client.active_cb = active_cb
-        client.send_goal_async(goal)
-        print("Sent new goal. Waiting for result")
-        client.wait_for_result()
-
-
-    last_move_time = None
-
-
-    def imu_cb(msg: Imu):
-        global last_move_time
-        if msg.angular_velocity.x > 0.15 or msg.angular_velocity.y > 0.15:
-            last_move_time = self.get_clock().now().to_sec()
-
-
-    rclpy.init(args=None)
-    print('[..] Connecting to action server \'dynup\'', end='')
-    sys.stdout.flush()
-    client = ActionClient(self, DynUpAction, 'dynup')
-    if not client.wait_for_server():
-        exit(1)
-    print('\r[OK] Connecting to action server \'dynup\'')
-
-    anim_client = ActionClient(self, humanoid_league_msgs.msg.PlayAnimationAction, 'animation')
-
-    imu_sub = self.create_subscription(Imu, "/imu/data", imu_cb, 1)
-
-    while rclpy.ok():
-        direction = None
-        anim = None
-        inp = input("Which direction [f|b]")
-        if inp == "f":
-            direction = "front"
-            anim = "falling_front"
-            key_anim = "stand_up_front"
-        elif inp == "b":
-            direction = "back"
-            anim = "falling_back"
-            key_anim = "stand_up_back"
-        else:
-            print(f"input {inp} not valid")
-            continue
-
-        input("Will now go into falling position. please hold robot and press enter")
-        play_animation(anim)
-
-        inp = input("Please put robot on the ground. Then choose dynup or keyframe [d|k]")
-        if inp == "d":
-            last_move_time = None
-            start_time = self.get_clock().now().to_sec()
-            play_dynup(direction)
-        elif inp == "k":
-            last_move_time = None
-            start_time = self.get_clock().now().to_sec()
-            play_animation(key_anim)
-        else:
-            print("invalid input")
-            continue
-
-        # wait till robot is standing at least 3 seconds not moving
-        while last_move_time is None or self.get_clock().now().to_sec() - last_move_time < 3:
-            self.get_clock().sleep_for(Duration(seconds=0.0001)
-        # compute duration
-        duration = last_move_time - start_time
-
-        print(f"Dynup took {duration} s")
diff --git a/bitbots_hcm/bitbots_hcm/classifier/classifier.pkl b/bitbots_hcm/bitbots_hcm/classifier/classifier.pkl
deleted file mode 100644
index 1b27488babd5fb2f33197faf48c6b7056c9f5518..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2141967
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

diff --git a/bitbots_hcm/bitbots_hcm/classifier/scaler.pkl b/bitbots_hcm/bitbots_hcm/classifier/scaler.pkl
deleted file mode 100644
index 19c3de243877523603493af29504a40148ae87a0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 752
zcmZo*PA<;QNlh%u(<>-SEhx%QPAx9Z%uCmcPf09E<O(iH%u7iuN(oL*%t<ZcDrC@X
zEM%-LWYUP>WME(@&n(G^&rMCtD`f77;D8Afm!uT3bVRTK`N{bOm4&Pw5qv;)UVK_=
zVo7OHYH@sKUVI^&H)jMtShzSbw;%^7TAZ2+6lYJ)E6pva)Jx7UO4Z9P%_+%DEGkN@
z<SGWbAQ9*S4v0KgN=aowDpw(A1QXDZOp8LU&W`p%?w~>*4R7WMMxdBYA+MjGpVxmN
z02AH}C53!R&Kwg%fs#N_$lq2d5L74_!3yMnJP}_ggv0LmqSWO4yyB9g(&Q4ZLSd*2
zKmh}CS)qtGLu;X^Gh<SrSbL#(P@#l|H={RaYoTNY#C2&Fg;F5bNe30m09}`X=`Pu%
zPG^r(Av^V>dEf3Y6;b77zIto_?@8TSri`)<QQMw&rG8v&e@1-EiyuwX_RrcfmHTB!
z{eG2G@{c(V@7n*fnAv*=?@9Yr+Uu7D3q7+hlq)HePXdR3Sz=Lqp+bgm2H1&;89?_b
z1r;ho-KUZv1GIKNcdbs#Ivod>%-;`ECDj}nFa4|D^hLvAs?dSS+qU1buX0kI{GtA~
zJ?pw&&F7t0?CrHvWJB0a*b5w4yYP0~ar>WnvHDZ)^E(u(mK3TbMX&)w6BJje@rCLz
zi#0$NYX%i+K`qt>TfFGh`v;4>`5aDJ?EAEDI+w$lHigmzCmshwbL}19);zJVO5J_)
z!Oti59QLaY?NWGTFCmu9rL^m|y}+k^M+^#X+bc$v|2q2qzkQ)jNuh31gaFXucxYOV
bFH0>d&dkp%)C0T6K+nin&#+LxG)WHtw}KZJ

diff --git a/bitbots_hcm/bitbots_hcm/classifier/types.pkl b/bitbots_hcm/bitbots_hcm/classifier/types.pkl
deleted file mode 100644
index 6715e9d1bb2a11abddde17a654f1726b5d8e14a8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 89
zcmZo*t}SHHh+t=6V93lZjW0?pFJ$b9;DU1Vi!xL5N(z}eB6xrzS^1fHCGo{2i6yDU
fh0L81oKRJ1rNyZ!g)E&B%s_$U{DMN(&Qd)9hsqjO

diff --git a/bitbots_hcm/bitbots_hcm/fall_checker.py b/bitbots_hcm/bitbots_hcm/fall_checker.py
deleted file mode 100644
index 80ea4611b..000000000
--- a/bitbots_hcm/bitbots_hcm/fall_checker.py
+++ /dev/null
@@ -1,190 +0,0 @@
-# -*- coding: utf8 -*-
-import math
-import numpy
-from functools import reduce
-
-from rclpy.duration import Duration
-from sensor_msgs.msg import Imu
-import rclpy
-from rclpy.node import Node
-
-from sklearn.base import BaseEstimator
-from sklearn.metrics import accuracy_score
-
-
-class FallChecker(BaseEstimator):
-
-    def __init__(self, node, thresh_gyro_pitch=None,
-                 thresh_gyro_roll=None,
-                 thresh_orient_pitch=None,
-                 thresh_orient_roll=None,
-                 smoothing=None):
-        self.node = node
-        self.thresh_gyro_pitch = self.node.get_parameter("falling_thresh_gyro_pitch").get_parameter_value().double_value \
-            if thresh_gyro_pitch is None else thresh_gyro_pitch
-        self.thresh_gyro_roll = self.node.get_parameter("falling_thresh_gyro_roll").get_parameter_value().double_value \
-            if thresh_gyro_roll is None else thresh_gyro_roll
-        self.thresh_orient_pitch = math.radians(self.node.get_parameter("falling_thresh_orient_pitch").get_parameter_value().double_value) \
-            if thresh_orient_pitch is None else thresh_orient_pitch
-        self.thresh_orient_roll = math.radians(self.node.get_parameter("falling_thresh_orient_roll").get_parameter_value().double_value) \
-            if thresh_orient_roll is None else thresh_orient_roll
-
-        self.smoothing = self.node.get_parameter("smooth_threshold").get_parameter_value().double_value if smoothing is None else smoothing
-        self.smoothing_list = []
-        self.counter = 0
-        self.last_result = 0
-
-        self.STABLE = 0
-        self.FRONT = 1
-        self.BACK = 2
-        self.LEFT = 3
-        self.RIGHT = 4
-
-    def update_reconfigurable_values(self, config, level):
-        # Dynamic Reconfigure
-        self.thresh_gyro_pitch = config["falling_thresh_gyro_pitch"]
-        self.thresh_gyro_roll = config["falling_thresh_gyro_roll"]
-        self.thresh_orient_pitch = math.radians(config["falling_thresh_orient_pitch"])
-        self.thresh_orient_roll = math.radians(config["falling_thresh_orient_roll"])
-        return config
-
-    def check_falling(self, not_much_smoothed_gyro, quaternion):
-        """Checks if the robot is currently falling and in which direction. """
-        # Convert quaternion to fused angles
-        fused_roll, fused_pitch, _ = self.fused_from_quat(quaternion)
-
-        # setting the fall quantification function
-        roll_fall_quantification = self.calc_fall_quantification(
-            self.thresh_orient_roll,
-            self.thresh_gyro_roll,
-            fused_roll,
-            not_much_smoothed_gyro[0])
-
-        pitch_fall_quantification = self.calc_fall_quantification(
-            self.thresh_orient_pitch,
-            self.thresh_gyro_pitch,
-            fused_pitch,
-            not_much_smoothed_gyro[1])
-
-        if roll_fall_quantification + pitch_fall_quantification == 0:
-            result = self.STABLE
-        else:
-            # compare quantification functions
-            if pitch_fall_quantification > roll_fall_quantification:
-                # detect the falling direction
-                if fused_pitch < 0:
-                    result = self.BACK
-                # detect the falling direction
-                else:
-                    result = self.FRONT
-            else:
-                # detect the falling direction
-                if fused_roll < 0:
-                    result = self.LEFT
-                # detect the falling direction
-                else:
-                    result = self.RIGHT
-
-        # Prune old elements from smoothing history
-        self.smoothing_list = list(filter(
-            lambda x: x[0] > self.node.get_clock().now() - Duration(seconds=self.smoothing),
-            self.smoothing_list))
-
-        # Add the current element
-        self.smoothing_list.append((self.node.get_clock().now(), result))
-
-        # List only including the results not the whole tuples
-        results_list = list(zip(*self.smoothing_list))[1]
-
-        # Check if stable is not in the list otherwise say we are stable
-        # This smooths the output but prevents the output of stable when jittering between e.g. right and front
-        if self.STABLE in results_list:
-            result = self.STABLE
-
-        return result
-
-    def calc_fall_quantification(self, falling_threshold_orientation, falling_threshold_gyro, current_axis_euler,
-                                 current_axis__gyro):
-        # check if you are moving forward or away from the perpendicular position, by comparing the signs.
-        moving_more_upright = numpy.sign(current_axis_euler) != numpy.sign(current_axis__gyro)
-
-        # Check if the orientation is over the point of no return threshold
-        over_point_of_no_return = abs(current_axis_euler) > falling_threshold_orientation
-
-        # Calculate quantification if we are moving away from our upright position or if we are over the point of no return
-        if not moving_more_upright or over_point_of_no_return:
-            # calculatiung the orentation skalar for the threshold
-            skalar = max((falling_threshold_orientation - abs(current_axis_euler)) / falling_threshold_orientation, 0)
-            # checking if the rotation velocity is lower than the the threshold
-            if falling_threshold_gyro * skalar < abs(current_axis__gyro):
-                # returning the fall quantification function
-                return abs(current_axis__gyro) * (1 - skalar)
-        return 0
-
-    def fit(self, x, y):
-        # we have to do nothing, as we are not actually fitting any model
-        self.node.get_logger().warn("You can not train this type of classifier", once=True)
-        pass
-
-    def score(self, X, y, sample_weight=None):
-        return accuracy_score(y, self.predict(X), sample_weight=sample_weight)
-
-    def predict(self, x):
-        # only take gyro and orientation from data
-        y = []
-        for entry in x:
-            prediction = self.check_falling(entry[3:6], entry[6:10])
-            y.append(prediction)
-        return y
-
-    def check_fallen(self, quaternion, not_much_smoothed_gyro):
-        """Check if the robot has fallen and is lying on the floor. Returns animation to play, if necessary."""
-
-        if numpy.mean(numpy.abs(not_much_smoothed_gyro)) >= 0.2:
-            return None
-
-        # Convert quaternion to fused angles
-        fused_roll, fused_pitch, _ = self.fused_from_quat(quaternion)
-
-        # Decides which side is facing downwards.
-        if fused_pitch > math.radians(60):
-            self.node.get_logger().info("FALLEN TO THE FRONT")
-            return self.FRONT
-
-        if fused_pitch < math.radians(-60):
-            self.node.get_logger().info("FALLEN TO THE BACK")
-            return self.BACK
-
-        if fused_roll > math.radians(60):
-            self.node.get_logger().info("FALLEN TO THE RIGHT")
-            return self.RIGHT
-
-        if fused_roll < math.radians(-60):
-            self.node.get_logger().info("FALLEN TO THE LEFT")
-            return self.LEFT
-
-        # If no side is facing downwards, the robot is not fallen yet.
-        return None
-
-    def fused_from_quat(self, q):
-        # Fused yaw of Quaternion
-        fused_yaw = 2.0 * math.atan2(q[2], q[3])  # Output of atan2 is [-pi,pi], so this expression is in [-2*pi,2*pi]
-        if fused_yaw > math.pi:
-            fused_yaw -= 2 * math.pi  # fused_yaw is now in[-2 * pi, pi]
-        if fused_yaw <= -math.pi:
-            fused_yaw += 2 * math.pi  # fused_yaw is now in (-pi, pi]
-
-        # Calculate the fused pitch and roll
-        stheta = 2.0 * (q[1] * q[3] - q[0] * q[2])
-        sphi = 2.0 * (q[1] * q[2] + q[0] * q[3])
-        if stheta >= 1.0:  # Coerce stheta to[-1, 1]
-            stheta = 1.0
-        elif stheta <= -1.0:
-            stheta = -1.0
-        if sphi >= 1.0:  # Coerce sphi to[-1, 1]
-            sphi = 1.0
-        elif sphi <= -1.0:
-            sphi = -1.0
-        fused_pitch = math.asin(stheta)
-        fused_roll = math.asin(sphi)
-        return fused_roll, fused_pitch, fused_yaw
diff --git a/bitbots_hcm/bitbots_hcm/fall_classifier.py b/bitbots_hcm/bitbots_hcm/fall_classifier.py
deleted file mode 100644
index 254b354e8..000000000
--- a/bitbots_hcm/bitbots_hcm/fall_classifier.py
+++ /dev/null
@@ -1,114 +0,0 @@
-import pickle
-import time
-
-from sklearn.preprocessing import StandardScaler
-import transforms3d
-from sensor_msgs.msg import JointState, Imu, Image
-from geometry_msgs.msg import Point
-import math
-import numpy as np
-from ros2_numpy import numpify
-
-class FallClassifier:
-
-    def __init__(self, path, smooth_threshold=10):
-        """We open a saved classifier which uses the scikit-learn library."""
-        with open(path + "classifier.pkl", 'rb') as file:
-            self.classifier = pickle.load(file)
-        with open(path + "scaler.pkl", 'rb') as file:
-            self.scaler: StandardScaler = pickle.load(file)
-        with open(path + "types.pkl", 'rb') as file:
-            self.types = pickle.load(file)
-
-        # print(F'{self.classifier}  {self.types}')
-
-        self.counter = 0
-        self.last_prediction = 0
-        self.smooth_threshold = smooth_threshold
-
-    def classify(self, imu, joint_state, cop_l, cop_r):
-        start_time = time.time()
-        data = get_data_from_msgs(imu, joint_state, cop_l, cop_r,
-                                  imu_raw=self.types['imu_raw'],
-                                  imu_orient=self.types['imu_orient'], joint_states=self.types['joint_states'],
-                                  imu_fused=self.types['imu_fused'], cop=self.types['cop'])
-        scaled_date = self.scaler.transform([data])
-        result = self.classifier.predict(scaled_date)
-        # print((time.time() - start_time) * 1000)
-        return result[0]
-
-    def smooth_classify(self, imu, joint_state, cop_l, cop_r):
-        """ Only predict a fall if we got same result more than smooth_threshold times straight. """
-        prediction = self.classify(imu, joint_state, cop_l, cop_r)
-        if prediction == self.last_prediction and prediction != 0:
-            self.counter += 1
-            if self.counter > self.smooth_threshold:
-                result = prediction
-            else:
-                result = 0
-        else:
-            self.counter = 0
-            result = 0
-        self.last_prediction = prediction
-        return result
-
-
-def get_data_from_msgs(imu_msg: Imu, joint_state_msg: JointState, cop_l_msg, cop_r_msg, imu_raw=True, imu_orient=True, joint_states=True,
-                       imu_fused=True, cop=True):
-    data = []
-    if imu_raw:
-        data.append(imu_msg.linear_acceleration.x)
-        data.append(imu_msg.linear_acceleration.y)
-        data.append(imu_msg.linear_acceleration.z)
-        data.append(imu_msg.angular_velocity.x)
-        data.append(imu_msg.angular_velocity.y)
-        data.append(imu_msg.angular_velocity.z)
-    if imu_orient:
-        euler = transforms3d.euler.quat2euler(numpify(imu_msg.orientation)[[3, 0, 1, 2]])
-        data.append(euler[0])
-        data.append(euler[1])
-        data.append(euler[2])
-
-    if joint_states:
-        for i in range(len(joint_state_msg.name)):
-            # only add leg joints
-            if joint_state_msg.name[i] in ["RHipPitch", "RHipRoll", "RKnee", "RAnklePitch", "RAnkleRoll",
-                                           "LHipPitch", "LHipRoll", "LKnee", "LAnklePitch", "LAnkleRoll"]:
-                data.append(joint_state_msg.effort[i])
-    if imu_fused:
-        fused_rpy = fused_from_quat(imu_msg.orientation)
-        data.append(fused_rpy[0])
-        data.append(fused_rpy[1])
-
-    if cop:
-        data.append(cop_l_msg.point.x)
-        data.append(cop_l_msg.point.y)
-        data.append(cop_r_msg.point.x)
-        data.append(cop_r_msg.point.y)
-    return data
-
-
-# Python version of this code https://github.com/AIS-Bonn/rot_conv_lib/blob/master/src/rot_conv.cpp
-def fused_from_quat(q):
-    # Fused yaw of Quaternion
-    fused_yaw = 2.0 * math.atan2(q.z, q.w)  # Output of atan2 is [-pi,pi], so this expression is in [-2*pi,2*pi]
-    if fused_yaw > math.pi:
-        fused_yaw -= 2 * math.pi  # fused_yaw is now in[-2 * pi, pi]
-    if fused_yaw <= -math.pi:
-        fused_yaw += 2 * math.pi  # fused_yaw is now in (-pi, pi]
-
-    # Calculate the fused pitch and roll
-    stheta = 2.0 * (q.y * q.w - q.x * q.z)
-    sphi = 2.0 * (q.y * q.z + q.x * q.w)
-    if stheta >= 1.0:  # Coerce stheta to[-1, 1]
-        stheta = 1.0
-    elif stheta <= -1.0:
-        stheta = -1.0
-    if sphi >= 1.0:  # Coerce sphi to[-1, 1]
-        sphi = 1.0
-    elif sphi <= -1.0:
-        sphi = -1.0
-    fused_pitch = math.asin(stheta)
-    fused_roll = math.asin(sphi)
-
-    return fused_roll, fused_pitch, fused_yaw
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
index 28235fbbd..2ea250d58 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
@@ -4,6 +4,9 @@
 
 
 class CancelGoals(AbstractActionElement):
+    """
+    Cancels all animation, dynup and move_base goals
+    """
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
@@ -21,6 +24,6 @@ def perform(self):
             except:
                 pass
 
-        self.blackboard.cancel_move_base_goal()
+        self.blackboard.cancel_path_planning()
         self.pop()
 
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py
index e3cec4a2a..4769d1c42 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py
@@ -16,10 +16,10 @@ def __init__(self, blackboard, dsd, parameters=None):
         if not self.blackboard.visualization_active and not self.blackboard.simulation_active:
             # In visualization and simulation, we cannot disable motors
             try:
-                blackboard.motor_switch_service.wait_for_service(timeout_sec=10)
+                self.blackboard.motor_switch_service.wait_for_service(timeout_sec=10)
             except:
                 self.blackboard.node.get_logger().warn("HCM waiting for switch power service")
-            blackboard.motor_switch_service.wait_for_service()
+            self.blackboard.motor_switch_service.wait_for_service()
 
     def perform(self, reevaluate=False):
         raise NotImplementedError
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/falling_poses.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/falling_poses.py
deleted file mode 100644
index ff4b72c24..000000000
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/falling_poses.py
+++ /dev/null
@@ -1,218 +0,0 @@
-from math import radians
-
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
-from rclpy.duration import Duration
-
-from bitbots_msgs.msg import JointCommand
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
-
-
-def parse_dict_to_msg(joint_dict: dict, time_stamp):
-    names = []
-    positions = []
-    for name, value in joint_dict.items():
-        names.append(name)
-        positions.append(radians(value))
-    msg = JointCommand()
-    msg.joint_names = names
-    msg.positions = positions
-    msg.velocities = len(names) * [-1.0]
-    msg.accelerations = len(names) * [-1.0]
-    msg.max_currents = len(names) * [-1.0]
-    msg.header.stamp = time_stamp
-    return msg
-
-
-class AbstractFallingPose(AbstractActionElement):
-
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters: dict = None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-        self.first_perform = True
-        self.start_time = blackboard.node.get_clock().now()
-        self.duration = parameters.get('duration', 1.0)
-
-    def perform(self, reevaluate=False):
-        self.do_not_reevaluate()
-        self.blackboard.joint_pub.publish(self.falling_pose)
-        # wait some time
-        if self.blackboard.node.get_clock().now() - self.start_time > Duration(seconds=self.duration):
-            self.pop()
-
-    def get_side_fall_head_pan(self):
-        head_index = self.blackboard.current_joint_state.name.index("HeadPan")
-        current_head_pan = self.blackboard.current_joint_state.position[head_index]
-        if current_head_pan > 0:
-            return 90
-        else:
-            return -90
-
-
-class FallingPoseFront(AbstractFallingPose):
-
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        joint_dict = {
-            "HeadPan": 0.0,
-            "HeadTilt": 45.0,
-            "LAnklePitch": -36.0,
-            "LAnkleRoll": 4.0,
-            "LElbow": 45.0,
-            "LHipPitch": -11.0,
-            "LHipRoll": 4.0,
-            "LHipYaw": 6.0,
-            "LKnee": 13.0,
-            "LShoulderPitch": 90.0,
-            "LShoulderRoll": 0.0,
-            "RAnklePitch": 36.0,
-            "RAnkleRoll": -4.0,
-            "RElbow": -45.0,
-            "RHipPitch": 11.0,
-            "RHipRoll": -4.0,
-            "RHipYaw": 6.0,
-            "RKnee": -13.0,
-            "RShoulderPitch": -90.0,
-            "RShoulderRoll": 0.0
-        }
-        self.falling_pose = parse_dict_to_msg(joint_dict, self.blackboard.node.get_clock().now().to_msg())
-
-
-class FallingPoseBack(AbstractFallingPose):
-
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        joint_dict = {
-            "HeadPan": 0.0,
-            "HeadTilt": 0.0,
-            "LAnklePitch": -29.0,
-            "LAnkleRoll": 0.0,
-            "LElbow": 47.0,
-            "LHipPitch": 51.0,
-            "LHipRoll": 0.0,
-            "LHipYaw": 0.0,
-            "LKnee": 64.0,
-            "LShoulderPitch": 1.0,
-            "LShoulderRoll": 0.0,
-            "RAnklePitch": 28.0,
-            "RAnkleRoll": -4.0,
-            "RElbow": -45.0,
-            "RHipPitch": -50.0,
-            "RHipRoll": -1.0,
-            "RHipYaw": 1.0,
-            "RKnee": -61.0,
-            "RShoulderPitch": 0.0,
-            "RShoulderRoll": 0.0
-        }
-        self.falling_pose = parse_dict_to_msg(joint_dict, self.blackboard.node.get_clock().now().to_msg())
-
-
-class FallingPoseLeft(AbstractFallingPose):
-
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        joint_dict = {
-            "HeadPan": self.get_side_fall_head_pan(),
-            "HeadTilt": 0.0,
-            "LAnklePitch": -26.0,
-            "LAnkleRoll": 4.0,
-            "LElbow": 44.0,
-            "LHipPitch": 27.0,
-            "LHipRoll": 4.0,
-            "LHipYaw": -1.0,
-            "LKnee": 58.0,
-            "LShoulderPitch": -2.0,
-            "LShoulderRoll": 0.0,
-            "RAnklePitch": 26.0,
-            "RAnkleRoll": -4.0,
-            "RElbow": -42.0,
-            "RHipPitch": -27.0,
-            "RHipRoll": -4.0,
-            "RHipYaw": 1.0,
-            "RKnee": -58.0,
-            "RShoulderPitch": 6.0,
-            "RShoulderRoll": 0.0
-        }
-        self.falling_pose = parse_dict_to_msg(joint_dict, self.blackboard.node.get_clock().now().to_msg())
-
-
-class FallingPoseRight(AbstractFallingPose):
-
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        joint_dict = {
-            "HeadPan": self.get_side_fall_head_pan(),
-            "HeadTilt": 0.0,
-            "LAnklePitch": -26.0,
-            "LAnkleRoll": 4.0,
-            "LElbow": 44.0,
-            "LHipPitch": 27.0,
-            "LHipRoll": 4.0,
-            "LHipYaw": -1.0,
-            "LKnee": 58.0,
-            "LShoulderPitch": -2.0,
-            "LShoulderRoll": 0.0,
-            "RAnklePitch": 26.0,
-            "RAnkleRoll": -4.0,
-            "RElbow": -42.0,
-            "RHipPitch": -27.0,
-            "RHipRoll": -4.0,
-            "RHipYaw": 1.0,
-            "RKnee": -58.0,
-            "RShoulderPitch": 6.0,
-            "RShoulderRoll": 0.0
-        }
-        self.falling_pose = parse_dict_to_msg(joint_dict, self.blackboard.node.get_clock().now().to_msg())
-
-class TurnRightToBack(AbstractFallingPose):
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        joint_dict = {
-            "HeadPan": 0,
-            "HeadTilt": 0,
-            "LAnklePitch": -26,
-            "LAnkleRoll": 4,
-            "LElbow": 45,
-            "LHipPitch": 27,
-            "LHipRoll": 4,
-            "LHipYaw": -1,
-            "LKnee": 58,
-            "LShoulderPitch": 0,
-            "LShoulderRoll": 0,
-            "RAnklePitch": 26,
-            "RAnkleRoll": -4,
-            "RElbow": -45,
-            "RHipPitch": -27,
-            "RHipRoll": -4,
-            "RHipYaw": 43,
-            "RKnee": -58,
-            "RShoulderPitch": 0,
-            "RShoulderRoll": 0
-        }
-        self.falling_pose = parse_dict_to_msg(joint_dict, self.blackboard.node.get_clock().now().to_msg())
-
-class TurnLeftToBack(AbstractFallingPose):
-    def __init__(self, blackboard: HcmBlackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        joint_dict = {
-            "HeadPan": 0,
-            "HeadTilt": 0,
-            "LAnklePitch": -26,
-            "LAnkleRoll": 4,
-            "LElbow": 45,
-            "LHipPitch": 27,
-            "LHipRoll": 4,
-            "LHipYaw": -43,
-            "LKnee": 58,
-            "LShoulderPitch": 0,
-            "LShoulderRoll": 0,
-            "RAnklePitch": 26,
-            "RAnkleRoll": -4,
-            "RElbow": -45,
-            "RHipPitch": -27,
-            "RHipRoll": -4,
-            "RHipYaw": 1,
-            "RKnee": -58,
-            "RShoulderPitch": 0,
-            "RShoulderRoll": 0
-        }
-        self.falling_pose = parse_dict_to_msg(joint_dict, self.blackboard.node.get_clock().now().to_msg())
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index a98f64a12..0f338c9ad 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -29,6 +29,7 @@ def perform(self, reevaluate=False):
 
             # try to start animation
             sucess = self.start_animation(anim)
+
             # if we fail, we need to abort this action
             if not sucess:
                 self.blackboard.node.get_logger().error("Could not start animation. Will abort play animation action!")
@@ -76,39 +77,12 @@ def start_animation(self, anim):
         goal = PlayAnimation.Goal()
         goal.animation = anim
         goal.hcm = True  # the animation is from the hcm
-        self.blackboard.animation_action_current_goal = self.blackboard.animation_action_client.send_goal_async(goal, feedback_callback=self.blackboard.last_kick_feedback_callback)
+        self.blackboard.animation_action_current_goal = self.blackboard.animation_action_client.send_goal_async(goal)
         return True
 
     def animation_finished(self):
         return self.blackboard.animation_action_current_goal.cancelled() or self.blackboard.animation_action_current_goal.done()
 
-class PlayAnimationStandUpFront(AbstractPlayAnimation):
-    def chose_animation(self):
-        self.blackboard.current_state = RobotControlState.GETTING_UP
-        self.blackboard.node.get_logger().info("PLAYING STAND UP FRONT ANIMATION")
-        return self.blackboard.stand_up_front_animation
-
-
-class PlayAnimationStandUpBack(AbstractPlayAnimation):
-    def chose_animation(self):
-        self.blackboard.current_state = RobotControlState.GETTING_UP
-        self.blackboard.node.get_logger().info("PLAYING STAND UP BACK ANIMATION")
-        return self.blackboard.stand_up_back_animation
-
-
-class PlayAnimationStandUpLeft(AbstractPlayAnimation):
-    def chose_animation(self):
-        self.blackboard.current_state = RobotControlState.GETTING_UP
-        self.blackboard.node.get_logger().info("PLAYING STAND UP LEFT ANIMATION")
-        return self.blackboard.stand_up_left_animation
-
-
-class PlayAnimationStandUpRight(AbstractPlayAnimation):
-    def chose_animation(self):
-        self.blackboard.current_state = RobotControlState.GETTING_UP
-        self.blackboard.node.get_logger().info("PLAYING STAND UP RIGHT ANIMATION")
-        return self.blackboard.stand_up_right_animation
-
 
 class PlayAnimationFallingLeft(AbstractPlayAnimation):
     def chose_animation(self):
@@ -134,26 +108,6 @@ def chose_animation(self):
         return self.blackboard.falling_animation_back
 
 
-class PlayAnimationStopped(AbstractPlayAnimation):
-    def chose_animation(self):
-        return self.blackboard.stop_animation
-
-
-class PlayAnimationWalkready(AbstractPlayAnimation):
-    def chose_animation(self):
-        return self.blackboard.walkready_animation
-
-
-class PlayAnimationSitDown(AbstractPlayAnimation):
-    def chose_animation(self):
-        return self.blackboard.sit_down_animation
-
-
-class PlayAnimationMotorOff(AbstractPlayAnimation):
-    def chose_animation(self):
-        return self.blackboard.motor_off_animation
-
-
 class PlayAnimationDynup(AbstractActionElement):
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
@@ -190,9 +144,7 @@ def perform(self, reevaluate=False):
 
     def start_animation(self):
         """
-        This will NOT wait by itself. You have to check
-        animation_finished()
-        by yourself.
+        This will NOT wait by itself. You have to check animation_finished() by yourself.
         :return:
         """
 
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py
index 71b626473..49f6c72a6 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py
@@ -14,15 +14,10 @@ def __init__(self, blackboard, dsd, parameters=None):
         self.blackboard: HcmBlackboard
 
     def perform(self, reevaluate=False):
-        if self.blackboard.current_time.to_sec() - self.blackboard.last_walking_goal_time.to_sec() < 0.1:
-            msg = Twist()
-            msg.linear.x = 0.0
-            msg.linear.y = 0.0
-            msg.angular.z = 0.0
-            msg.angular.x = -1.0
-            self.blackboard.walk_pub.publish(msg)
-        else:
-            self.pop()
+        msg = Twist()
+        msg.angular.x = -1.0
+        self.blackboard.walk_pub.publish(msg)
+        self.pop()
 
 
 class ForceStopWalking(AbstractActionElement):
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/__init__.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/__init__.py
index e69de29bb..b08ac2789 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/__init__.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/__init__.py
@@ -0,0 +1,13 @@
+from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+
+from dynamic_stack_decider.abstract_decision_element import \
+    AbstractDecisionElement
+
+
+class AbstractHCMDecisionElement(AbstractDecisionElement):
+    """
+    AbstractHCMDecisionElement with a hcm blackboard as its blackboard
+    """
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+        self.blackboard: HcmBlackboard
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
new file mode 100644
index 000000000..6fd4e9ca3
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
@@ -0,0 +1,36 @@
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class Record(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is currently recording animations
+    """
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.record_active:
+            self.blackboard.current_state = RobotControlState.RECORD
+            return "RECORD_ACTIVE"
+        else:
+            # robot is not recording
+            return "FREE"
+
+    def get_reevaluate(self):
+        return True
+
+
+class PlayingExternalAnimation(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is currently wants to play or plays an animation
+    """
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.external_animation_running:
+            self.blackboard.current_state = RobotControlState.ANIMATION_RUNNING
+            return "ANIMATION_RUNNING"
+        else:
+            return "FREE"
+
+    def get_reevaluate(self):
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
new file mode 100644
index 000000000..1235556e2
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
@@ -0,0 +1,177 @@
+from rclpy.time import Time
+
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class CheckMotors(AbstractHCMDecisionElement):
+    """
+    Checks if we are getting information from the motors.
+    Since the HCM is not able to work without motor connection, we will stop if there are no values.
+    Needs to be checked before other sensors, since they also need the power to be able to response
+    """
+
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
+        self.had_problem = False
+
+    def perform(self, reevaluate=False):
+        self.clear_debug_data()
+        if self.blackboard.visualization_active:
+            # we will have no problems with hardware in visualization
+            return "OKAY"
+
+        # we check if the values are actually changing, since the joint_state controller will publish the same message
+        # even if there is no connection anymore. But we don't want to go directly to hardware error if we just
+        # have a small break, since this can happen often due to loose cabling
+        if self.blackboard.previous_joint_state is not None and self.blackboard.current_joint_state is not None \
+                and (self.blackboard.previous_joint_state.effort != self.blackboard.current_joint_state.effort
+                or self.blackboard.previous_joint_state.position != self.blackboard.current_joint_state.position) \
+                and not self.blackboard.servo_diag_error:
+            self.last_different_msg_time = self.blackboard.node.get_clock().now()
+
+        if self.blackboard.simulation_active:
+            # Some simulators will give exact same joint messages which look like errors, so ignore this case
+            if self.blackboard.last_motor_update_time != Time(seconds=int(0), nanoseconds=0 % 1 * 1e9):
+                return "OKAY"
+            else:
+                return "MOTORS_NOT_STARTED"
+        else:
+            if self.blackboard.servo_overload:
+                return "OVERLOAD"
+
+        # check if we want to turn the motors off after not using them for a longer time
+        if self.blackboard.last_motor_goal_time is not None \
+                and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9 \
+                > self.blackboard.motor_off_time:
+            self.blackboard.node.get_logger().warn("Didn't recieve goals for " + str(
+                self.blackboard.motor_off_time) + " seconds. Will shut down the motors and wait for commands.", throttle_duration_sec=5)
+            self.publish_debug_data("Time since last motor goals",
+                                    self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9)
+            self.blackboard.current_state = RobotControlState.MOTOR_OFF
+            # we do an action sequence to turn off the motors and stay in motor off
+            return "TURN_OFF"
+
+        # see if we get no messages or always the exact same
+        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > self.blackboard.motor_timeout_duration:
+            if self.blackboard.is_power_on:
+                if (self.blackboard.current_state == RobotControlState.STARTUP and
+                        self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.start_time.nanoseconds / 1e9 < 10):
+                    # we are still in startup phase, just wait and dont complain
+                    return "MOTORS_NOT_STARTED"
+                else:
+                    # tell that we have a hardware problem
+                    self.had_problem = True
+                    # wait for motors to connect
+                    self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
+                    return "PROBLEM"
+            else:
+                # we have to turn the motors on
+                return "TURN_ON"
+
+        if self.had_problem:
+            # had problem before, just tell that this is solved now
+            self.blackboard.node.get_logger().info("Motors are now connected. Will resume.")
+            self.had_problem = False
+
+        # motors are on and we can continue
+        return "OKAY"
+
+    def get_reevaluate(self):
+        return True
+
+
+class CheckIMU(AbstractHCMDecisionElement):
+    """
+    Checks if we are getting information from the IMU.
+    Since the HCM can not detect falls without it, we will shut everything down if we dont have an imu.
+    """
+
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+        self.last_msg = None
+        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
+        self.had_problem = False
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.visualization_active:
+            # In visualization, we do not have an IMU. Therefore, return OKAY to ignore that.
+            return "OKAY"
+
+        # we will get always the same message if there is no connection, so check if it differs
+        if self.last_msg is not None and self.blackboard.imu_msg is not None \
+                and not self.last_msg.orientation == self.blackboard.imu_msg.orientation \
+                and not self.blackboard.imu_diag_error:
+            self.last_different_msg_time = self.blackboard.node.get_clock().now()
+        self.last_msg = self.blackboard.imu_msg
+
+        if self.blackboard.simulation_active:
+            # Some simulators will give exact same IMU messages which look like errors, so ignore this case
+            if self.last_msg:
+                return "OKAY"
+            else:
+                return "IMU_NOT_STARTED"
+
+        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > self.blackboard.imu_timeout_duration:
+            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - \
+                    self.blackboard.start_time.nanoseconds / 1e9 < 10:
+                # wait for the IMU to start
+                return "IMU_NOT_STARTED"
+            else:
+                self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
+                self.had_problem = True
+                return "PROBLEM"
+
+        if self.had_problem:
+            # had problem before, just tell that this is solved now
+            self.blackboard.node.get_logger().info("IMU is now connected. Will resume.")
+            self.had_problem = False
+
+        return "OKAY"
+
+    def get_reevaluate(self):
+        return True
+
+
+class CheckPressureSensor(AbstractHCMDecisionElement):
+    """
+    Checks connection to pressure sensors.
+    """
+
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+        self.last_pressure_values = None
+        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
+        self.had_problem = False
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.visualization_active:
+            # no pressure sensors is visualization, but thats okay
+            return "OKAY"
+
+        if not self.blackboard.pressure_sensors_installed:
+            # no pressure sensors installed, no check necessary
+            return "OKAY"
+        if not self.blackboard.pressure_diag_error:
+            self.last_different_msg_time = self.blackboard.node.get_clock().now()
+
+        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > 0.1:
+            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - \
+                    self.blackboard.start_time.nanoseconds / 1e9 < 10:
+                # wait for the pressure sensors to start
+                self.blackboard.current_state = RobotControlState.STARTUP
+                return "PRESSURE_NOT_STARTED"
+            else:
+                self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
+                return "PROBLEM"
+
+        if self.had_problem:
+            # had problem before, just tell that this is solved now
+            self.blackboard.node.get_logger().info("Pressure sensors are now connected. Will resume.")
+            self.had_problem = False
+
+        return "OKAY"
+
+    def get_reevaluate(self):
+        return True
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/decisions.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/decisions.py
deleted file mode 100644
index 9a1b3e6f3..000000000
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/decisions.py
+++ /dev/null
@@ -1,468 +0,0 @@
-import math
-
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
-from humanoid_league_speaker.speaker import speak
-from rclpy.time import Duration, Time
-
-from dynamic_stack_decider.abstract_decision_element import \
-    AbstractDecisionElement
-from humanoid_league_msgs.msg import RobotControlState
-
-
-class AbstractHCMDecisionElement(AbstractDecisionElement):
-    """
-    AbstractHCMDecisionElement with a hcm blackboard as its blackboard
-    """
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
-
-class StartHCM(AbstractHCMDecisionElement):
-    """
-    Initializes HCM.
-    """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.is_initial = True
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.shut_down_request:
-            if self.blackboard.current_state == RobotControlState.HARDWARE_PROBLEM:
-                self.blackboard.current_state = RobotControlState.SHUTDOWN
-                return "SHUTDOWN_WHILE_HARDWARE_PROBLEM"
-            else:
-                self.blackboard.current_state = RobotControlState.SHUTDOWN
-                return "SHUTDOWN_REQUESTED"
-        else:
-            if self.is_initial:
-                if not self.is_walkready():
-                    return "NOT_WALKREADY"
-                else:
-                    self.is_initial = False
-                self.blackboard.current_state = RobotControlState.STARTUP
-            return "RUNNING"
-
-    def is_walkready(self):
-        """
-        We check if any joint is has an offset from the walkready pose which is higher than a threshold
-        """
-        if self.blackboard.current_joint_state is None or self.blackboard.current_joint_state.name == []:
-            return False
-        i = 0
-        for joint_name in self.blackboard.current_joint_state.name:
-            if joint_name == "HeadPan" or joint_name == "HeadTilt":
-                # we dont care about the head position
-                i += 1
-                continue
-            if abs(math.degrees(self.blackboard.current_joint_state.position[i]) -
-                   self.blackboard.walkready_pose_dict[joint_name]) > self.blackboard.walkready_pose_threshold:
-                return False
-            i += 1
-        return True
-
-    def get_reevaluate(self):
-        return True
-
-
-class Stop(AbstractHCMDecisionElement):
-    """
-    Handles manual stops
-    """
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.stopped:
-            # we do an action sequence to go into stop and to stay there
-            return "STOPPED"
-        else:
-            return "FREE"
-
-    def get_reevaluate(self):
-        return True
-
-
-class Record(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is currently recording animations
-    """
-
-    def perform(self, reevaluate=False):
-        # check if the robot is currently recording animations
-        if self.blackboard.record_active:
-            self.blackboard.current_state = RobotControlState.RECORD
-            return "RECORD_ACTIVE"
-        else:
-            # robot is not recording
-            return "FREE"
-
-    def get_reevaluate(self):
-        return True
-
-
-class CheckMotors(AbstractHCMDecisionElement):
-    """
-    Checks if we are getting information from the motors.
-    Since the HCM is not able to work without motor connection, we will stop if there are no values.
-    Needs to be checked before other sensors, since they also need the power to be able to response
-    """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
-        self.had_problem = False
-
-    def perform(self, reevaluate=False):
-        self.clear_debug_data()
-        if self.blackboard.visualization_active:
-            # we will have no problems with hardware in visualization
-            return "OKAY"
-
-        # we check if the values are actually changing, since the joint_state controller will publish the same message
-        # even if there is no connection anymore. But we don't want to go directly to hardware error if we just
-        # have a small break, since this can happen often due to loose cabling
-        if self.blackboard.previous_joint_state is not None and self.blackboard.current_joint_state is not None \
-                and (self.blackboard.previous_joint_state.effort != self.blackboard.current_joint_state.effort
-                or self.blackboard.previous_joint_state.position != self.blackboard.current_joint_state.position) \
-                and not self.blackboard.servo_diag_error:
-            self.last_different_msg_time = self.blackboard.current_time
-
-        if self.blackboard.simulation_active:
-            # Some simulators will give exact same joint messages which look like errors, so ignore this case
-            if self.blackboard.last_motor_update_time != Time(seconds=int(0), nanoseconds=0 % 1 * 1e9):
-                return "OKAY"
-            else:
-                return "MOTORS_NOT_STARTED"
-        else:
-            if self.blackboard.servo_overload:
-                return "OVERLOAD"
-
-        # check if we want to turn the motors off after not using them for a longer time
-        if self.blackboard.last_motor_goal_time is not None \
-                and self.blackboard.current_time.nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9 \
-                > self.blackboard.motor_off_time:
-            self.blackboard.node.get_logger().warn("Didn't recieve goals for " + str(
-                self.blackboard.motor_off_time) + " seconds. Will shut down the motors and wait for commands.", throttle_duration_sec=5)
-            self.publish_debug_data("Time since last motor goals",
-                                    self.blackboard.current_time.nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9)
-            self.blackboard.current_state = RobotControlState.MOTOR_OFF
-            # we do an action sequence to turn off the motors and stay in motor off
-            return "TURN_OFF"
-
-        # see if we get no messages or always the exact same
-        if self.blackboard.current_time.nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > self.blackboard.motor_timeout_duration:
-            if self.blackboard.is_power_on:
-                if (self.blackboard.current_state == RobotControlState.STARTUP and
-                        self.blackboard.current_time.nanoseconds / 1e9 - self.blackboard.start_time.nanoseconds / 1e9 < 10):
-                    # we are still in startup phase, just wait and dont complain
-                    return "MOTORS_NOT_STARTED"
-                else:
-                    # tell that we have a hardware problem
-                    self.had_problem = True
-                    # wait for motors to connect
-                    self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
-                    return "PROBLEM"
-            else:
-                # we have to turn the motors on
-                return "TURN_ON"
-
-        if self.had_problem:
-            # had problem before, just tell that this is solved now
-            self.blackboard.node.get_logger().info("Motors are now connected. Will resume.")
-            self.had_problem = False
-
-        # motors are on and we can continue
-        return "OKAY"
-
-    def get_reevaluate(self):
-        return True
-
-
-class CheckIMU(AbstractHCMDecisionElement):
-    """
-    Checks if we are getting information from the IMU.
-    Since the HCM can not detect falls without it, we will shut everything down if we dont have an imu.
-    """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.last_msg = None
-        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
-        self.had_problem = False
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.visualization_active:
-            # In visualization, we do not have an IMU. Therefore, return OKAY to ignore that.
-            return "OKAY"
-
-        # we will get always the same message if there is no connection, so check if it differs
-        if self.last_msg is not None and self.blackboard.imu_msg is not None \
-                and not self.last_msg.orientation == self.blackboard.imu_msg.orientation \
-                and not self.blackboard.imu_diag_error:
-            self.last_different_msg_time = self.blackboard.current_time
-        self.last_msg = self.blackboard.imu_msg
-
-        if self.blackboard.simulation_active:
-            # Some simulators will give exact same IMU messages which look like errors, so ignore this case
-            if self.last_msg:
-                return "OKAY"
-            else:
-                return "IMU_NOT_STARTED"
-
-        if self.blackboard.current_time.nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > self.blackboard.imu_timeout_duration:
-            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.current_time.nanoseconds / 1e9 - \
-                    self.blackboard.start_time.nanoseconds / 1e9 < 10:
-                # wait for the IMU to start
-                return "IMU_NOT_STARTED"
-            else:
-                self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
-                self.had_problem = True
-                return "PROBLEM"
-
-        if self.had_problem:
-            # had problem before, just tell that this is solved now
-            self.blackboard.node.get_logger().info("IMU is now connected. Will resume.")
-            self.had_problem = False
-
-        return "OKAY"
-
-    def get_reevaluate(self):
-        return True
-
-
-class CheckPressureSensor(AbstractHCMDecisionElement):
-    """
-    Checks connection to pressure sensors.
-    """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.last_pressure_values = None
-        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
-        self.had_problem = False
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.visualization_active:
-            # no pressure sensors is visualization, but thats okay
-            return "OKAY"
-
-        if not self.blackboard.pressure_sensors_installed:
-            # no pressure sensors installed, no check necessary
-            return "OKAY"
-        if not self.blackboard.pressure_diag_error:
-            self.last_different_msg_time = self.blackboard.current_time
-
-        if self.blackboard.current_time.nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > 0.1:
-            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.current_time.nanoseconds / 1e9 - \
-                    self.blackboard.start_time.nanoseconds / 1e9 < 10:
-                # wait for the pressure sensors to start
-                self.blackboard.current_state = RobotControlState.STARTUP
-                return "PRESSURE_NOT_STARTED"
-            else:
-                self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
-                return "PROBLEM"
-
-        if self.had_problem:
-            # had problem before, just tell that this is solved now
-            self.blackboard.node.get_logger().info("Pressure sensors are now connected. Will resume.")
-            self.had_problem = False
-
-        return "OKAY"
-
-    def get_reevaluate(self):
-        return True
-
-
-class PickedUp(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is currently picked up
-    """
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.visualization_active:
-            return "ON_GROUND"
-        # check if the robot is currently being picked up. foot have no connection to the ground,
-        # but robot is more or less upright (to differentiate from falling)
-        if self.blackboard.pressure_sensors_installed and not self.blackboard.simulation_active and \
-                sum(self.blackboard.pressures) < 10 and \
-                abs(self.blackboard.smooth_accel[0]) < self.blackboard.pickup_accel_threshold and \
-                abs(self.blackboard.smooth_accel[1]) < self.blackboard.pickup_accel_threshold:
-            self.blackboard.current_state = RobotControlState.PICKED_UP
-            if not reevaluate:
-                speak("Picked up!", self.blackboard.speak_publisher, priority=50)
-            # we do an action sequence to go to walkready and stay in picked up state
-            return "PICKED_UP"
-
-        # robot is not picked up
-        return "ON_GROUND"
-
-    def get_reevaluate(self):
-        return True
-
-
-class Falling(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is currently falling and has to act on this
-    """
-
-    def perform(self, reevaluate=False):
-        # check if the robot is currently falling
-        falling_direction = self.blackboard.fall_checker.check_falling(self.blackboard.gyro, self.blackboard.quaternion)
-        if self.blackboard.falling_detection_active and falling_direction is not None:
-            self.blackboard.current_state = RobotControlState.FALLING
-
-            if falling_direction == self.blackboard.fall_checker.FRONT:
-                return "FALLING_FRONT"
-            if falling_direction == self.blackboard.fall_checker.BACK:
-                return "FALLING_BACK"
-            if falling_direction == self.blackboard.fall_checker.LEFT:
-                return "FALLING_LEFT"
-            if falling_direction == self.blackboard.fall_checker.RIGHT:
-                return "FALLING_RIGHT"
-        # robot is not fallen
-        return "NOT_FALLING"
-
-    def get_reevaluate(self):
-        return True
-
-
-class FallingClassifier(AbstractHCMDecisionElement):
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.falling_detection_active:
-            prediction = self.blackboard.classifier.smooth_classify(self.blackboard.imu_msg,
-                                                                    self.blackboard.current_joint_state,
-                                                                    self.blackboard.cop_l_msg, self.blackboard.cop_r_msg)
-            if prediction == 0:
-                return "NOT_FALLING"
-            else:
-                if not reevaluate:
-                    self.blackboard.current_state = RobotControlState.FALLING
-                if prediction == 1:
-                    return "FALLING_FRONT"
-                elif prediction == 2:
-                    return "FALLING_BACK"
-                elif prediction == 3:
-                    return "FALLING_LEFT"
-                elif prediction == 4:
-                    return "FALLING_RIGHT"
-        else:
-            return "NOT_FALLING"
-
-    def get_reevaluate(self):
-        return True
-
-
-class Sitting(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is sitting (due to sitting down earlier).
-    """
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.current_joint_state is None:
-            return "NO"
-        # simple check is looking at knee joint positions
-        # todo can be done more sophisticated
-        if self.blackboard.current_joint_state is None:
-            return "NO"
-        left_knee = 0
-        right_knee = 0
-        i = 0
-        for joint_name in self.blackboard.current_joint_state.name:
-            if joint_name == "LKnee":
-                left_knee = self.blackboard.current_joint_state.position[i]
-            elif joint_name == "RKnee":
-                right_knee = self.blackboard.current_joint_state.position[i]
-            i += 1
-
-        if abs(left_knee) > 2.5 and abs(right_knee) > 2.5:
-            return "YES"
-        else:
-            return "NO"
-
-    def get_reevaluate(self):
-        # we never have to reevaluate since this state of this can only be changed by decisions above it
-        return False
-
-
-class Fallen(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is fallen and lying on the ground
-    """
-
-    def perform(self, reevaluate=False):
-        # check if the robot is currently laying on the ground
-        fallen_side = self.blackboard.fall_checker.check_fallen(self.blackboard.quaternion, self.blackboard.gyro)
-        if self.blackboard.is_stand_up_active and fallen_side is not None:
-            if not reevaluate:
-                self.blackboard.current_state = RobotControlState.FALLEN
-            # we play a stand up animation
-            if fallen_side == self.blackboard.fall_checker.FRONT:
-                return "FALLEN_FRONT"
-            if fallen_side == self.blackboard.fall_checker.BACK:
-                return "FALLEN_BACK"
-            if fallen_side == self.blackboard.fall_checker.RIGHT:
-                return "FALLEN_RIGHT"
-            if fallen_side == self.blackboard.fall_checker.LEFT:
-                return "FALLEN_LEFT"
-        else:
-            # robot is not fallen
-            return "NOT_FALLEN"
-
-    def get_reevaluate(self):
-        return True
-
-
-class ExternalAnimation(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is currently wants to play an animation comming from the behavior
-    """
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.external_animation_running:
-            self.blackboard.current_state = RobotControlState.ANIMATION_RUNNING
-            return "ANIMATION_RUNNING"
-        else:
-            return "FREE"
-
-    def get_reevaluate(self):
-        return True
-
-
-class Walking(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is currently walking
-    """
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.current_time.nanoseconds / 1e9 - self.blackboard.last_walking_goal_time.nanoseconds / 1e9 < 0.1:
-            self.blackboard.current_state = RobotControlState.WALKING
-            if self.blackboard.animation_requested:
-                self.blackboard.animation_requested = False
-                # we are walking but we have to stop to play an animation
-                return "STOP_WALKING"
-            else:
-                # we are walking and can stay like this
-                return "STAY_WALKING"
-        else:
-            return "NOT_WALKING"
-
-    def get_reevaluate(self):
-        return True
-
-
-class Kicking(AbstractHCMDecisionElement):
-    """
-    Decides if the robot is currently kicking
-    """
-
-    def perform(self, reevaluate=False):
-        if self.blackboard.last_kick_feedback is not None and \
-                (self.blackboard.node.get_clock().now() - self.blackboard.last_kick_feedback) < Duration(seconds=1):
-            self.blackboard.current_state = RobotControlState.KICKING
-            return 'KICKING'
-        else:
-            return 'NOT_KICKING'
-
-    def get_reevaluate(self):
-        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
new file mode 100644
index 000000000..c1c7f1452
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
@@ -0,0 +1,60 @@
+import math
+
+import numpy as np
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+from bitbots_utils.transforms import quat2fused
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class Fallen(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is fallen and lying on the ground
+    """
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+
+        # Get parameters
+        self.fallen_orientation_thresh = math.radians(self.blackboard.node.get_parameter("fallen_orientation_thresh").value)
+        self.fallen_angular_velocity_thresh = self.blackboard.node.get_parameter("fallen_angular_velocity_thresh").value
+
+    def perform(self, reevaluate=False):
+        # Check of the fallen detection is active
+        if not self.blackboard.is_stand_up_active:
+            return "NOT_FALLEN"
+
+        # Get angular velocity from the IMU
+        angular_velocity = self.blackboard.gyro
+
+        # Check if the robot is rotating
+        if np.mean(np.abs(angular_velocity)) >= 0.2:
+            return "NOT_FALLEN"
+
+        # Convert quaternion to fused angles
+        fused_roll, fused_pitch, _ = quat2fused(self.blackboard.quaternion, order="xyzw")
+
+        # Decides which side is facing downwards.
+        if fused_pitch > self.fallen_orientation_thresh:
+            self.blackboard.node.get_logger().info("FALLEN TO THE FRONT")
+            self.blackboard.current_state = RobotControlState.FALLEN
+            return "FALLEN_FRONT"
+
+        if fused_pitch < -self.fallen_orientation_thresh:
+            self.blackboard.node.get_logger().info("FALLEN TO THE BACK")
+            self.blackboard.current_state = RobotControlState.FALLEN
+            return "FALLEN_BACK"
+
+        if fused_roll > self.fallen_orientation_thresh:
+            self.blackboard.node.get_logger().info("FALLEN TO THE RIGHT")
+            self.blackboard.current_state = RobotControlState.FALLEN
+            return "FALLEN_RIGHT"
+
+        if fused_roll < -self.fallen_orientation_thresh:
+            self.blackboard.node.get_logger().info("FALLEN TO THE LEFT")
+            self.blackboard.current_state = RobotControlState.FALLEN
+            return "FALLEN_LEFT"
+
+        return "NOT_FALLEN"
+
+    def get_reevaluate(self):
+        return True
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
new file mode 100644
index 000000000..3602e221c
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
@@ -0,0 +1,137 @@
+import math
+from enum import Enum
+
+import numpy as np
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+from bitbots_utils.transforms import quat2fused
+from rclpy.duration import Duration
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class FallDirection(Enum):
+    STABLE = 0
+    FRONT = 1
+    BACK = 2
+    LEFT = 3
+    RIGHT = 4
+
+
+class Falling(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is currently falling and has to act on this
+    """
+
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+
+        # Get parameters
+        self.thresh_gyro_pitch = self.blackboard.node.get_parameter("falling_thresh_gyro_pitch").value
+        self.thresh_gyro_roll = self.blackboard.node.get_parameter("falling_thresh_gyro_roll").value
+        self.thresh_orient_pitch = math.radians(self.blackboard.node.get_parameter("falling_thresh_orient_pitch").value)
+        self.thresh_orient_roll = math.radians(self.blackboard.node.get_parameter("falling_thresh_orient_roll").value)
+        self.smoothing = self.blackboard.node.get_parameter("smooth_threshold").value
+
+        # Initialize smoothing list that stores the last results
+        self.smoothing_list: list[FallDirection] = []
+
+
+
+    def perform(self, reevaluate=False):
+        """Checks if the robot is currently falling and in which direction. """
+        # Check if detection is active
+        if not self.blackboard.falling_detection_active:
+            return "NOT_FALLING"
+
+        # Get angular from the IMU
+        angular_velocity = self.blackboard.gyro
+
+        # Convert orientation to fused angles
+        fused_roll, fused_pitch, _ = quat2fused(self.blackboard.quaternion, order="xyzw")
+
+        # setting the fall quantification function
+        roll_fall_quantification = self.calc_fall_quantification(
+            self.thresh_orient_roll,
+            self.thresh_gyro_roll,
+            fused_roll,
+            angular_velocity[0])
+
+        pitch_fall_quantification = self.calc_fall_quantification(
+            self.thresh_orient_pitch,
+            self.thresh_gyro_pitch,
+            fused_pitch,
+            angular_velocity[1])
+
+        if roll_fall_quantification + pitch_fall_quantification == 0:
+            result = FallDirection.STABLE
+        else:
+            # compare quantification functions
+            if pitch_fall_quantification > roll_fall_quantification:
+                # detect the falling direction
+                if fused_pitch < 0:
+                    result = FallDirection.BACK
+                # detect the falling direction
+                else:
+                    result = FallDirection.FRONT
+            else:
+                # detect the falling direction
+                if fused_roll < 0:
+                    result = FallDirection.LEFT
+                # detect the falling direction
+                else:
+                    result = FallDirection.RIGHT
+
+        # Prune old elements from smoothing history
+        self.smoothing_list = list(filter(
+            lambda x: x[0] > self.blackboard.node.get_clock().now() - Duration(seconds=self.smoothing),
+            self.smoothing_list))
+
+        # Add the current element
+        self.smoothing_list.append((self.blackboard.node.get_clock().now(), result))
+
+        # List only including the results not the whole tuples
+        results_list = list(zip(*self.smoothing_list))[1]
+
+        # Check if stable is not in the list otherwise say we are stable
+        # This smooths the output but prevents the output of stable when jittering between e.g. right and front
+        if FallDirection.STABLE in results_list:
+            result = FallDirection.STABLE
+
+        # Check if we are falling at all
+        if result != FallDirection.STABLE and not reevaluate:
+            self.blackboard.current_state = RobotControlState.FALLING
+
+        # Return the appropriate result
+        if result == FallDirection.STABLE:
+            return "NOT_FALLING"
+        elif result == FallDirection.FRONT:
+            return "FALLING_FRONT"
+        elif result == FallDirection.BACK:
+            return "FALLING_BACK"
+        elif result == FallDirection.LEFT:
+            return "FALLING_LEFT"
+        elif result == FallDirection.RIGHT:
+            return "FALLING_RIGHT"
+        else:
+            raise ValueError("Unknown falling direction")
+
+    def calc_fall_quantification(self, falling_threshold_orientation, falling_threshold_gyro, current_axis_euler,
+                                 current_axis__gyro):
+        # check if you are moving forward or away from the perpendicular position, by comparing the signs.
+        moving_more_upright = np.sign(current_axis_euler) != np.sign(current_axis__gyro)
+
+        # Check if the orientation is over the point of no return threshold
+        over_point_of_no_return = abs(current_axis_euler) > falling_threshold_orientation
+
+        # Calculate quantification if we are moving away from our upright position or if we are over the point of no return
+        if not moving_more_upright or over_point_of_no_return:
+            # calculatiung the orentation skalar for the threshold
+            skalar = max((falling_threshold_orientation - abs(current_axis_euler)) / falling_threshold_orientation, 0)
+            # checking if the rotation velocity is lower than the the threshold
+            if falling_threshold_gyro * skalar < abs(current_axis__gyro):
+                # returning the fall quantification function
+                return abs(current_axis__gyro) * (1 - skalar)
+        return 0
+
+    def get_reevaluate(self):
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
new file mode 100644
index 000000000..660208a01
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
@@ -0,0 +1,20 @@
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class Kicking(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is currently kicking
+    """
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.last_kick_feedback is not None and \
+                (self.blackboard.node.get_clock().now() - self.blackboard.last_kick_feedback).nanoseconds / 1e9 < 0.2:
+            self.blackboard.current_state = RobotControlState.KICKING
+            return 'KICKING'
+        else:
+            return 'NOT_KICKING'
+
+    def get_reevaluate(self):
+        return True
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
new file mode 100644
index 000000000..51f3bc9de
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
@@ -0,0 +1,28 @@
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class PickedUp(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is currently picked up
+    """
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.visualization_active:
+            return "ON_GROUND"
+        # check if the robot is currently being picked up. foot have no connection to the ground,
+        # but robot is more or less upright (to differentiate from falling)
+        if self.blackboard.pressure_sensors_installed and not self.blackboard.simulation_active and \
+                sum(self.blackboard.pressures) < 10 and \
+                abs(self.blackboard.smooth_accel[0]) < self.blackboard.pickup_accel_threshold and \
+                abs(self.blackboard.smooth_accel[1]) < self.blackboard.pickup_accel_threshold:
+            self.blackboard.current_state = RobotControlState.PICKED_UP
+            # we do an action sequence to go to walkready and stay in picked up state
+            return "PICKED_UP"
+
+        # robot is not picked up
+        return "ON_GROUND"
+
+    def get_reevaluate(self):
+        return True
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
new file mode 100644
index 000000000..024450d80
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
@@ -0,0 +1,52 @@
+import math
+
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class StartHCM(AbstractHCMDecisionElement):
+    """
+    Initializes HCM.
+    """
+
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+        self.is_initial = True
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.shut_down_request:
+            if self.blackboard.current_state == RobotControlState.HARDWARE_PROBLEM:
+                self.blackboard.current_state = RobotControlState.SHUTDOWN
+                return "SHUTDOWN_WHILE_HARDWARE_PROBLEM"
+            else:
+                self.blackboard.current_state = RobotControlState.SHUTDOWN
+                return "SHUTDOWN_REQUESTED"
+        else:
+            if self.is_initial:
+                if not self.is_walkready():
+                    return "NOT_WALKREADY"
+                else:
+                    self.is_initial = False
+                self.blackboard.current_state = RobotControlState.STARTUP
+            return "RUNNING"
+
+    def is_walkready(self):
+        """
+        We check if any joint is has an offset from the walkready pose which is higher than a threshold
+        """
+
+        if self.blackboard.current_joint_state is None or self.blackboard.current_joint_state.name == []:
+            self.blackboard.node.get_logger().warn("No joint state received yet, can not check if we are walkready at startup")
+            return False
+
+        for i, joint_name in enumerate(self.blackboard.current_joint_state.name):
+            if joint_name == "HeadPan" or joint_name == "HeadTilt":
+                continue # we dont care about the head position
+            if abs(math.degrees(self.blackboard.current_joint_state.position[i]) -
+                   self.blackboard.walkready_pose_dict[joint_name]) > self.blackboard.walkready_pose_threshold:
+                return False
+        return True
+
+    def get_reevaluate(self):
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/stop.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/stop.py
new file mode 100644
index 000000000..86032413c
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/stop.py
@@ -0,0 +1,16 @@
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+
+class Stop(AbstractHCMDecisionElement):
+    """
+    Handles manual stops
+    """
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.stopped:
+            # we do an action sequence to go into stop and to stay there
+            return "STOPPED"
+        else:
+            return "FREE"
+
+    def get_reevaluate(self):
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
new file mode 100644
index 000000000..fb02864f8
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
@@ -0,0 +1,25 @@
+from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class Walking(AbstractHCMDecisionElement):
+    """
+    Decides if the robot is currently walking
+    """
+
+    def perform(self, reevaluate=False):
+        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_walking_goal_time.nanoseconds / 1e9 < 0.1:
+            self.blackboard.current_state = RobotControlState.WALKING
+            if self.blackboard.animation_requested:
+                self.blackboard.animation_requested = False
+                # we are walking but we have to stop to play an animation
+                return "STOP_WALKING"
+            else:
+                # we are walking and can stay like this
+                return "STAY_WALKING"
+        else:
+            return "NOT_WALKING"
+
+    def get_reevaluate(self):
+        return True
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
index a2bfc5941..1879b8eb3 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
@@ -38,7 +38,7 @@ $StartHCM
                                     FALLING_BACK --> @CancelGoals, @FallingPoseBack + duration:0.5
                                     NOT_FALLING --> $Sitting
                                         YES --> @PlayAnimationDynup + direction:rise
-                                        NO --> $ExternalAnimation
+                                        NO --> $PlayingExternalAnimation
                                             ANIMATION_RUNNING --> @StayAnimationRunning
                                             FREE --> $Walking
                                                 STOP_WALKING --> @StopWalking
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index 755a41fbb..2164ee135 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -4,13 +4,12 @@
 
 import numpy
 from ament_index_python import get_package_share_directory
-from bitbots_hcm.fall_checker import FallChecker
-from bitbots_hcm.fall_classifier import FallClassifier
 from diagnostic_msgs.msg import DiagnosticArray, DiagnosticStatus
 from geometry_msgs.msg import PointStamped, Twist
 from rclpy.action import ActionClient
 from rclpy.node import Node
 from rclpy.time import Time
+from rclpy.task import Future
 from sensor_msgs.msg import Imu, JointState
 from std_msgs.msg import Empty as EmptyMsg
 from std_srvs.srv import Empty as EmptySrv
@@ -25,66 +24,84 @@
 class HcmBlackboard():
     def __init__(self, node: Node):
         self.node = node
+
+        # Basic state
         self.current_state: RobotControlState = RobotControlState.STARTUP
         self.stopped: bool = False
         self.shut_down_request: bool  = False
-        self.simulation_active = self.node.get_parameter('simulation_active').value
-        self.visualization_active = self.node.get_parameter('visualization_active').value
-
-        # this is used to prevent calling Time a lot, which takes some time
-        # we assume that the time does not change during one update cycle
-        self.current_time = self.node.get_clock().now()
-        self.start_time = self.current_time
-        # Imu
+
+        # Save start time
+        self.start_time: Time = self.node.get_clock().now()
+
+        # Get parameters
+        self.simulation_active: bool = self.node.get_parameter('simulation_active').value
+        self.visualization_active: bool = self.node.get_parameter('visualization_active').value
+        self.pickup_accel_threshold: float = 1000.0  # TODO: make this a parameter
+        self.pressure_sensors_installed: bool = self.node.get_parameter('pressure_sensors_installed').value
+
+        # Create services
+        foot_zero_service_name = self.node.get_parameter("foot_zero_service").value
+        self.foot_zero_service = self.node.create_client(EmptySrv, foot_zero_service_name)
+        self.motor_switch_service = self.node.create_client(SetBool, 'core/switch_power')
+
+        # Create action clients and corresponding goal handles
+        self.animation_action_client: ActionClient = ActionClient(self.node, PlayAnimation, 'animation')
+        self.animation_action_current_goal: Optional[Future]  = None
+        self.dynup_action_client: ActionClient = ActionClient(self.node, Dynup, 'dynup')
+        self.dynup_action_current_goal: Optional[Future] = None
+
+        # Create publishers
+        self.walk_pub = self.node.create_publisher(Twist, "cmd_vel", 1)
+        self.cancel_path_planning_pub = self.node.create_publisher(EmptyMsg, "pathfinding/cancel", 1)
+
+        # Latest imu data
         self.accel = numpy.array([0, 0, 0])
         self.gyro = numpy.array([0, 0, 0])
         self.smooth_accel = numpy.array([0, 0, 0])
         self.smooth_gyro = numpy.array([0, 0, 0])
         self.not_much_smoothed_gyro = numpy.array([0, 0, 0])
-        self.quaternion = numpy.array([0, 0, 0, 0.21])
-        self.pickup_accel_threshold: float = 1000.0
+        self.quaternion = numpy.array([0, 0, 0, 1.0])
 
         # Pressure sensors
-        self.pressure_sensors_installed = self.node.get_parameter('pressure_sensors_installed').value
-        # initialize values high to prevent wrongly thinking the robot is picked up during start or in simulation
+        # Initialize values high to prevent wrongly thinking the robot is picked up during start or in simulation
         self.pressures: List[float] = [100.0] * 8
-        foot_zero_service_name = self.node.get_parameter("foot_zero_service").value
-        self.foot_zero_service = self.node.create_client(EmptySrv, foot_zero_service_name)
-
-        self.motor_switch_service = self.node.create_client(SetBool, 'core/switch_power')
 
         # Animation
-        self.animation_action_client: Optional[ActionClient] = None
-        self.animation_action_current_goal: Optional[PlayAnimation.Goal]  = None
-        self.dynup_action_client: Optional[ActionClient] = None
-        self.dynup_action_current_goal: Optional[Dynup.Goal] = None
-        self.last_animation_goal_time = self.node.get_clock().now()
-        self.external_animation_running: bool = False
+        # Animation states
         self.animation_requested: bool = False
+        self.external_animation_running: bool = False
+        self.last_animation_goal_time: Time = self.node.get_clock().now()
+        self.record_active: bool = False
+
         if self.simulation_active:
             self.walkready_animation = self.node.get_parameter("animations.walkready_sim").value
         else:
             self.walkready_animation = self.node.get_parameter("animations.walkready").value
+
+        # Get animation parameters
         self.falling_animation_front = self.node.get_parameter("animations.falling_front").value
         self.falling_animation_back = self.node.get_parameter("animations.falling_back").value
         self.falling_animation_left = self.node.get_parameter("animations.falling_left").value
         self.falling_animation_right = self.node.get_parameter("animations.falling_right").value
-        self.stop_animation = self.node.get_parameter("animations.penalty").value
-        self.sit_down_animation = self.node.get_parameter("animations.sit_down").value
-        self.motor_off_animation = self.node.get_parameter("animations.motor_off").value
-        self.stand_up_front_animation = self.node.get_parameter("animations.stand_up_front").value
-        self.stand_up_back_animation = self.node.get_parameter("animations.stand_up_back").value
-        self.stand_up_left_animation = self.node.get_parameter("animations.stand_up_left").value
-        self.stand_up_right_animation = self.node.get_parameter("animations.stand_up_right").value
-        # motors
-        # initialize with current time, or motors will be turned off on start
-        self.last_motor_goal_time = self.node.get_clock().now()
+
+        # Motors
+
+        # State
+        # Initialize with current time, or motors will be turned off on start
+        self.last_motor_goal_time: Time = self.node.get_clock().now()
         self.last_motor_update_time =  Time()
-        self.motor_timeout_duration = self.node.get_parameter("motor_timeout_duration").value
-        self.motor_off_time = self.node.get_parameter("motor_off_time").value
-        self.imu_timeout_duration = self.node.get_parameter("imu_timeout_duration").value
         self.current_joint_state: Optional[JointState] = None
         self.previous_joint_state: Optional[JointState] = None
+        self.is_power_on: bool = False
+
+        # Parameters
+        self.motor_timeout_duration: float = self.node.get_parameter("motor_timeout_duration").value
+        self.motor_off_time: float = self.node.get_parameter("motor_off_time").value
+        self.imu_timeout_duration: float = self.node.get_parameter("imu_timeout_duration").value
+        self.walkready_pose_threshold = self.node.get_parameter("animations.walkready_pose_threshold").value
+
+
+        # Hacky way of getting the walkready pose. TODO change that. Maybe use a dynup service
         anim_package = self.node.get_parameter("animations.anim_package").value
         path = get_package_share_directory(anim_package)
         path = os.path.join(path, 'animations/motion/', self.walkready_animation + '.json')
@@ -92,39 +109,28 @@ def __init__(self, node: Node):
             json_data = json.load(f)
         keyframes: List[dict] = json_data["keyframes"]
         self.walkready_pose_dict: dict = keyframes[-1]["goals"]
-        self.walkready_pose_threshold = self.node.get_parameter("animations.walkready_pose_threshold").value
-        self.is_power_on: bool = False
-        # walking
-        self.last_walking_goal_time = self.node.get_clock().now()
-        self.walk_pub = self.node.create_publisher(Twist, "cmd_vel", 1)
 
-        self.record_active: bool = False
+        # Walking state
+        self.last_walking_goal_time = self.node.get_clock().now()
 
-        # falling
-        self.fall_checker = FallChecker(self.node)
+        # Falling
+        # Paramerters
         self.is_stand_up_active = self.node.get_parameter('stand_up_active').value
         self.falling_detection_active = self.node.get_parameter('falling_active').value
-        self.joint_pub = self.node.create_publisher(JointCommand, "DynamixelController/command", 1)
 
-        # kicking
+        # Kicking
+        # State
         self.last_kick_feedback: Optional[Time] = None
 
-        # direct messages for falling classier
-        # todo needs refactoring
-        path = get_package_share_directory('bitbots_hcm')
-        smooth_threshold = self.node.get_parameter('smooth_threshold').value
-        self.classifier = FallClassifier(path + "/classifier/", smooth_threshold=smooth_threshold)
+        # IMU state
         self.imu_msg: Optional[Imu] = None
-        self.cop_l_msg: Optional[PointStamped] = None
-        self.cop_r_msg: Optional[PointStamped] = None
 
+        # Diagnostics state
         self.servo_diag_error: bool = False
         self.servo_overload: bool = False
         self.imu_diag_error: bool = False
         self.pressure_diag_error: bool = False
 
-        self.move_base_cancel_pub = self.node.create_publisher(EmptyMsg, "pathfinding/cancel", 1)
-
     def diag_cb(self, msg: DiagnosticArray):
         status: DiagnosticStatus
         for status in msg.status:
@@ -141,5 +147,5 @@ def diag_cb(self, msg: DiagnosticArray):
     def last_kick_feedback_callback(self, msg: PlayAnimation.Feedback):
         self.last_kick_feedback = self.node.get_clock().now()
 
-    def cancel_move_base_goal(self):
-        self.move_base_cancel_pub.publish(EmptyMsg())
+    def cancel_path_planning(self):
+        self.cancel_path_planning_pub.publish(EmptyMsg())
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index c29f27ef7..f7d5af535 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -2,18 +2,14 @@
 
 import os
 import threading
+
 import rclpy
 from ament_index_python import get_package_share_directory
 from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
-from bitbots_msgs.action import Dynup
-from bitbots_msgs.msg import FootPressure
 from bitbots_utils.utils import get_parameters_from_ros_yaml
 from builtin_interfaces.msg import Time as TimeMsg
 from diagnostic_msgs.msg import DiagnosticArray
-from dynamic_stack_decider.dsd import DSD
 from geometry_msgs.msg import PointStamped
-from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import RobotControlState, Audio
 from humanoid_league_speaker.speaker import speak
 from rcl_interfaces.msg import Parameter as ParameterMsg
 from rclpy.action import ActionClient
@@ -27,6 +23,12 @@
 from sensor_msgs.msg import Imu, JointState
 from std_msgs.msg import Bool
 
+from bitbots_msgs.action import Dynup
+from bitbots_msgs.msg import FootPressure
+from dynamic_stack_decider.dsd import DSD
+from humanoid_league_msgs.action import PlayAnimation
+from humanoid_league_msgs.msg import Audio, RobotControlState
+
 
 class HardwareControlManager:
     def __init__(self, use_sim_time, simulation_active, visualization_active):
@@ -60,8 +62,6 @@ def __init__(self, use_sim_time, simulation_active, visualization_active):
         self.simulation_active = self.node.get_parameter("simulation_active")
         # dsd
         self.blackboard = HcmBlackboard(self.node)
-        self.blackboard.animation_action_client = ActionClient(self.node, PlayAnimation, 'animation')
-        self.blackboard.dynup_action_client = ActionClient(self.node, Dynup, 'dynup')
         dirname = os.path.dirname(os.path.realpath(__file__)) + "/hcm_dsd"
         self.dsd = DSD(self.blackboard, "debug/dsd/hcm", node=self.node)
         self.dsd.register_actions(os.path.join(dirname, 'actions'))
@@ -115,7 +115,6 @@ def loop(self):
                 if self.hcm_deactivated:
                     self.blackboard.current_state = RobotControlState.CONTROLLABLE
                 else:
-                    self.blackboard.current_time = self.node.get_clock().now()
                     try:
                         self.dsd.update()
                     except IndexError:
@@ -132,7 +131,6 @@ def on_shutdown_hook(self):
         # now wait for it finishing the shutdown procedure
         while not self.blackboard.current_state == RobotControlState.HCM_OFF:
             # we still have to update everything
-            self.blackboard.current_time = self.node.get_clock().now()
             self.dsd.update()
             self.hcm_state_publisher.publish(self.blackboard.current_state)
             self.node.get_clock().sleep_for(Duration(seconds=0.01))
@@ -159,12 +157,6 @@ def set_current_joint_state(self, joint_state_msg_serialized):
         self.blackboard.previous_joint_state = self.blackboard.current_joint_state
         self.blackboard.current_joint_state = deserialize_message(joint_state_msg_serialized, JointState)
 
-    def set_cop(self, cop_msg_serialized, left):
-        if left:
-            self.blackboard.cop_l_msg = deserialize_message(cop_msg_serialized, PointStamped)
-        else:
-            self.blackboard.cop_r_msg = deserialize_message(cop_msg_serialized, PointStamped)
-
     def set_pressure_left(self, pressure_msg_serialized):
         msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
         self.blackboard.pressures[0] = msg.left_front
diff --git a/bitbots_hcm/bitbots_hcm/training/dataset.py b/bitbots_hcm/bitbots_hcm/training/dataset.py
deleted file mode 100644
index 57f1811aa..000000000
--- a/bitbots_hcm/bitbots_hcm/training/dataset.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env python3
-import tf
-from sensor_msgs.msg import JointState, Imu, Image
-from geometry_msgs.msg import Point
-
-import math
-import numpy as np
-from bitbots_hcm.fall_classifier import get_data_from_msgs
-
-
-class Dataset:
-
-    def __init__(self):
-        self.frames = []
-        self.fall_impact_time = None
-        self.fall_type = None
-
-    def append_frame(self, time, imu, joint_states, cop_l, cop_r, image):
-        frame = Frame(time, imu, joint_states, cop_l, cop_r, image)
-        self.frames.append(frame)
-
-    def as_scikit_data(self, imu_raw=True, imu_orient=True, joint_states=True, imu_fused=True, cop=True):
-        X = []
-        y = []
-        for frame in self.frames:
-            X.append(
-                frame.get_data(imu_raw=imu_raw, imu_orient=imu_orient, joint_states=joint_states, imu_fused=imu_fused,
-                               cop=cop))
-            y.append(frame.label)
-        return X, y
-
-    def get_frame_index_by_time(self, time):
-        difference = np.inf
-        index = None
-        for i in range(0, len(self.frames)):
-            if abs(time - self.frames[i].time) < difference:
-                index = i
-                difference = abs(time - self.frames[i].time)
-        return index
-
-    def set_all_labels_to(self, label):
-        if label == "stable":
-            int_label = 0
-        elif label == "front":
-            int_label = 1
-        elif label == "back":
-            int_label = 2
-        elif label == "left":
-            int_label = 3
-        elif label == "right":
-            int_label = 4
-        else:
-            print("Wrong label")
-            exit(1)
-
-        for frame in self.frames:
-            frame.label = int_label
-
-    def append_dataset(self, dataset):
-        self.frames = self.frames + dataset.frames
-
-
-class Frame:
-
-    def __init__(self, time, joint_states, imu, cop_l, cop_r, image):
-        self.time = time
-        self.imu: Imu = imu
-        self.joint_states: JointState = joint_states
-        self.cop_l: Point = cop_l
-        self.cop_r: Point = cop_r
-        self.image: Image = image
-        self.label = -1
-
-    def get_label(self):
-        if self.label == -2:
-            return "removed"
-        elif self.label == -1:
-            return "unlabeled"
-        elif self.label == 0:
-            return "stable"
-        elif self.label == 1:
-            return "front"
-        elif self.label == 2:
-            return "back"
-        elif self.label == 3:
-            return "left"
-        elif self.label == 4:
-            return "right"
-        else:
-            print(F"Label number {self.label} not clear, will use unlabeled")
-            return "unlabeled"
-
-    def get_data(self, imu_raw=True, imu_orient=True, joint_states=True, imu_fused=True, cop=True):
-        return get_data_from_msgs(self.imu, self.joint_states, self.cop_l, self.cop_r, imu_raw, imu_orient,
-                                  joint_states, imu_fused, cop)
diff --git a/bitbots_hcm/bitbots_hcm/training/label.py b/bitbots_hcm/bitbots_hcm/training/label.py
deleted file mode 100644
index d0a63f01d..000000000
--- a/bitbots_hcm/bitbots_hcm/training/label.py
+++ /dev/null
@@ -1,132 +0,0 @@
-import pickle
-import random
-import rclpy
-from rclpy.node import Node
-import keyboard
-
-from geometry_msgs.msg import PointStamped
-from sensor_msgs.msg import Imu, JointState
-
-from bitbots_hcm.training.dataset import Dataset, Frame
-
-imu = None
-joint_states = None
-cop_left = None
-cop_right = None
-
-rclpy.init(args=None)
-
-
-def imu_cb(msg):
-    global imu
-    imu = msg
-
-
-def joint_state_cb(msg):
-    global joint_states
-    joint_states = msg
-
-
-def cop_left_cb(msg):
-    global cop_left
-    cop_left = msg
-
-
-def cop_right_cb(msg):
-    global cop_right
-    cop_right = msg
-
-
-dataset = Dataset()
-
-rospy.Subscriber("/imu/data", Imu, imu_cb, tcp_nodelay=True)
-rospy.Subscriber("/joint_states", JointState, joint_state_cb, tcp_nodelay=True)
-rospy.Subscriber("/cop_l", PointStamped, cop_left_cb, tcp_nodelay=True)
-rospy.Subscriber("/cop_r", PointStamped, cop_right_cb, tcp_nodelay=True)
-
-
-# set keys
-def key_cb(key):
-    global current_key
-    current_key = key
-
-
-current_key = '5'
-previous_key = None
-keyboard.add_hotkey('5', key_cb, args='5')
-keyboard.add_hotkey('0', key_cb, args='0')
-keyboard.add_hotkey('1', key_cb, args='1')
-keyboard.add_hotkey('2', key_cb, args='2')
-keyboard.add_hotkey('3', key_cb, args='3')
-keyboard.add_hotkey('4', key_cb, args='4')
-keyboard.add_hotkey('s', key_cb, args='s')
-
-frequency = 200
-rate = self.create_rate(frequency)
-print("Press \'s\' top stop. 0,1,2,3,4 to label stable,front,back,left,right")
-while True:
-    frame = Frame(self.get_clock().now(), joint_states=joint_states, imu=imu, cop_l=cop_left, cop_r=cop_right, image=None)
-    if current_key == '5':
-        if previous_key != '5':
-            print("Not labeling")
-            previous_key = current_key
-        continue
-    elif current_key == '0':
-        if previous_key != '0':
-            print("Stable")
-            previous_key = current_key
-        frame.label = 0
-    elif current_key == '1':
-        if previous_key != '1':
-            print("Front")
-            previous_key = current_key
-        frame.label = 1
-    elif current_key == '2':
-        if previous_key != '2':
-            print("Back")
-            previous_key = current_key
-        frame.label = 2
-    elif current_key == '3':
-        if previous_key != '3':
-            print("Left")
-            previous_key = current_key
-        frame.label = 3
-    elif current_key == '4':
-        if previous_key != '4':
-            print("Right")
-            previous_key = current_key
-        frame.label = 4
-    elif current_key == 's':
-        break
-    else:
-        print("key not known")
-        continue
-    dataset.frames.append(frame)
-    rate.sleep()
-
-print(F"Recorded {len(dataset.frames)} frames")
-sorted = [0, 0, 0, 0, 0]
-for i in range(len(dataset.frames)):
-    sorted[dataset.frames[i].label] += 1
-print(F'Stable {sorted[0]} Front {sorted[1]} Back {sorted[2]} Left {sorted[3]} Right {sorted[4]}')
-
-time_to_remove = input("Remove how many seconds: ")
-try:
-    frames_to_remove = int(float(time_to_remove) * frequency)
-    print(F"{frames_to_remove} ---")
-    dataset.frames = dataset.frames[:-frames_to_remove - 1]
-    print(F"Frames after removing: {len(dataset.frames)}")
-except:
-    pass
-
-reduce_to = input("Reduce number to ")
-if reduce_to != "":
-    dataset.frames = random.choices(dataset.frames, k=int(reduce_to))
-    print(F"Reduced number of frames to {len(dataset.frames)}")
-
-file_name = input("File name: ")
-if len(file_name) > 0:
-    with open(file_name + ".pkl", "wb") as file:
-        pickle.dump(dataset, file)
-
-    print(F"Saved dataset with {len(dataset.frames)} frames to {file_name}.pkl")
diff --git a/bitbots_hcm/bitbots_hcm/training/train.py b/bitbots_hcm/bitbots_hcm/training/train.py
deleted file mode 100644
index a1dab1c2a..000000000
--- a/bitbots_hcm/bitbots_hcm/training/train.py
+++ /dev/null
@@ -1,219 +0,0 @@
-#!/usr/bin/env python3
-import argparse
-import math
-import pickle
-import random
-from pathlib import Path
-from os import listdir
-from os.path import isfile, join
-
-import optuna
-import numpy as np
-import sklearn
-from optuna.samplers import TPESampler
-from sklearn.gaussian_process import GaussianProcessClassifier
-from sklearn.metrics import confusion_matrix, accuracy_score
-from sklearn.model_selection import train_test_split
-from sklearn.neural_network import MLPClassifier
-
-from bitbots_hcm.training.dataset import Dataset
-from bitbots_hcm.fall_checker import FallChecker
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--storage', help='Database SQLAlchemy string, e.g. postgresql://USER:PASS@SERVER/DB_NAME',
-                    default=None, type=str, required=False)
-parser.add_argument('--name', help='Name of the study', default=None, type=str, required=False)
-parser.add_argument('--iterations', help='iterations for optimization', default=100, type=int, required=False)
-parser.add_argument('--knn', help='use knn', dest='knn', action='store_true')
-parser.add_argument('--svc', help='use svc', dest='svc', action='store_true')
-parser.add_argument('--mlp', help='use mlp', dest='mlp', action='store_true')
-parser.add_argument('--gpc', help='use gpc', dest='gpc', action='store_true')
-parser.add_argument('--bb', help='use bb', dest='bb', action='store_true')
-parser.add_argument('--reduce', help='reduce data', dest='reduce', action='store_true')
-parser.add_argument('--directories', help='directories of labelled training data', nargs='+', required=True)
-args = parser.parse_args()
-
-# load dataset
-merged_dataset = Dataset()
-for directory in args.directories:
-    data_files = [f for f in listdir(directory) if isfile(join(directory, f))]
-    print(F"Loaded datasets {data_files}")
-    for file_name in data_files:
-        with open(directory + "/" + file_name, 'rb') as file:
-            dataset: Dataset = pickle.load(file)
-            merged_dataset.append_dataset(dataset)
-
-data_types = {'imu_raw': True, 'imu_orient': True, 'joint_states': False, 'imu_fused': False, 'cop': False}
-print(f"Used datatypes are: {data_types}\n Change this in the script if you want to use other combinations.")
-
-x, y = merged_dataset.as_scikit_data(imu_raw=data_types['imu_raw'], imu_orient=data_types['imu_orient'],
-                                     joint_states=data_types['joint_states'], imu_fused=data_types['imu_fused'],
-                                     cop=data_types['cop'])
-
-print("Transformed to scipy data")
-print(F"stable: {y.count(0)} front: {y.count(1)} back: {y.count(2)} left: {y.count(3)} right: {y.count(4)}")
-
-
-def reduce_data(x, y, max_number=np.inf):
-    lowest_number = np.inf
-    for i in range(5):
-        count = y.count(i)
-        lowest_number = min(lowest_number, count)
-    lowest_number = min(lowest_number, max_number)
-    # make 5 lists with the indexes of frames for each class
-    sorted = [[], [], [], [], []]
-    for i in range(len(x)):
-        sorted[y[i]].append(i)
-    print(F'0 {len(sorted[0])} 1 {len(sorted[1])} 2 {len(sorted[2])} 3 {len(sorted[3])} 4 {len(sorted[4])}')
-    x_out = []
-    y_out = []
-    for i in range(5):
-        sampled_indexes = random.choices(sorted[i], k=lowest_number)
-        for index in sampled_indexes:
-            x_out.append(x[index])
-            y_out.append(y[index])
-
-    return x_out, y_out
-
-
-if args.reduce:
-    x, y = reduce_data(x, y, 200)
-print(F'reduced to {y.count(0)} front: {y.count(1)} back: {y.count(2)} left: {y.count(3)} right: {y.count(4)}')
-print(F'stable {y.count(0)} falling {y.count(1) + y.count(2) + y.count(3) + y.count(4)}')
-scaler = sklearn.preprocessing.StandardScaler()
-scaler.fit(x)
-
-use_fn = False
-if use_fn:
-    x, x_test, y, y_test = train_test_split(x, y, random_state=0)
-    x_test_scaled = scaler.transform(x_test)
-    print(F'train is to {y.count(0)} front: {y.count(1)} back: {y.count(2)} left: {y.count(3)} right: {y.count(4)}')
-    print(
-        F'test is to {y_test.count(0)} front: {y_test.count(1)} back: {y_test.count(2)} left: {y_test.count(3)} right: {y_test.count(4)}')
-
-x_scaled = scaler.transform(x)
-
-
-def evaluate_classifier(classifier):
-    if use_fn:
-        classifier.fit(x_scaled, y)
-        conf_mat = confusion_matrix(y_test, classifier.predict(x_test_scaled))
-        FP = conf_mat.sum(axis=0) - np.diag(conf_mat)
-        FN = conf_mat.sum(axis=1) - np.diag(conf_mat)
-        TP = np.diag(conf_mat)
-        # TN = conf_mat.values.sum() - (FP + FN + TP)
-        print(FN)
-        return FN[0] * 100 + FN[1] + FN[2] + FN[3] + FN[4]
-    else:
-        score = sklearn.model_selection.cross_val_score(classifier, x_scaled, y, n_jobs=-1, verbose=0)
-        accuracy = score.mean()
-        return accuracy
-
-
-def knn(trial: optuna.Trial):
-    n_neighbors = trial.suggest_int("n_neighbors", 1, 10)
-    weights = trial.suggest_categorical("weights", ['uniform', 'distance'])
-    algorithm = trial.suggest_categorical("algorithm", ['ball_tree', 'kd_tree'])
-    leaf_size = trial.suggest_int('leaf_size', 1, 50)
-    classifier = sklearn.neighbors.KNeighborsClassifier(n_neighbors=n_neighbors, weights=weights, algorithm=algorithm,
-                                                        leaf_size=leaf_size)
-    return evaluate_classifier(classifier)
-
-
-def svc(trial: optuna.Trial):
-    svc_c = trial.suggest_loguniform("svc_c", 1e-10, 1e10)
-    kernel = trial.suggest_categorical('kernel', ['linear', 'poly', 'rbf', 'sigmoid'])
-    degree = trial.suggest_int('degree', 1, 10)
-    classifier = sklearn.svm.SVC(C=svc_c, gamma="auto", kernel=kernel, degree=degree)
-    return evaluate_classifier(classifier)
-
-
-def mlp(trial: optuna.Trial):
-    hidden_layer_size = trial.suggest_int("hidden_layer_size", 10, 1000, 10)
-    hidden_layer_count = trial.suggest_int("hidden_layer_count", 1, 10)
-    hidden_layer = (hidden_layer_size,) * hidden_layer_count
-    activation_fun = trial.suggest_categorical("activation_fun", ['identity', 'tanh', 'relu'])
-    alpha = trial.suggest_float("alpha", 0.000001, 0.0001)
-    learning_rate = trial.suggest_categorical('learning_rate', ['constant', 'invscaling', 'adaptive'])
-    classifier = MLPClassifier(hidden_layer_sizes=hidden_layer, activation=activation_fun,
-                               alpha=alpha, learning_rate=learning_rate)
-    return evaluate_classifier(classifier)
-
-
-def gpc(trial: optuna.Trial):
-    multi_class = trial.suggest_categorical("multi_class", ['one_vs_rest', 'one_vs_one'])
-    classifier = GaussianProcessClassifier(multi_class=multi_class)
-    return evaluate_classifier(classifier)
-
-
-def bb(trial: optuna.Trial):
-    # our previous naive bitbots approach
-    thresh_gyro_front = trial.suggest_float("thresh_gyro_front", 0, 20)
-    thresh_gyro_side = trial.suggest_float("thresh_gyro_side", 0, 20)
-    thresh_orient_front = trial.suggest_float("thresh_orient_front", 0, math.pi)
-    thresh_orient_side = trial.suggest_float("thresh_orient_side", 0, math.pi)
-    classifier = FallChecker(thresh_gyro_front=thresh_gyro_front, thresh_gyro_side=thresh_gyro_side,
-                             thresh_orient_front=thresh_orient_front, thresh_orient_side=thresh_orient_side)
-    return evaluate_classifier(classifier)
-
-
-def pickle_classifier(classifier, type):
-    path = "classifiers/" + type + "/"
-    Path(path).mkdir(parents=True, exist_ok=True)
-    with open(path + "classifier.pkl", "wb") as file:
-        pickle.dump(classifier, file)
-    with open(path + "scaler.pkl", "wb") as file:
-        pickle.dump(scaler, file)
-    with open(path + "types.pkl", "wb") as file:
-        pickle.dump(data_types, file)
-
-
-if args.knn:
-    objective = knn
-    name = 'knn'
-elif args.mlp:
-    objective = mlp
-    name = 'mlp'
-elif args.svc:
-    objective = svc
-    name = 'svc'
-elif args.gpc:
-    objective = gpc
-    name = 'gpc'
-elif args.bb:
-    objective = bb
-    name = 'bb'
-
-seed = np.random.randint(2 ** 32 - 1)
-sampler = TPESampler(n_startup_trials=10, seed=seed)
-if use_fn:
-    direction = 'minimize'
-else:
-    direction = 'maximize'
-study = optuna.create_study(study_name=args.name, storage=args.storage, direction=direction,
-                            sampler=sampler, load_if_exists=True)
-print("Start optimizing hyper parameters")
-study.optimize(objective, n_trials=args.iterations, show_progress_bar=True, n_jobs=1)
-
-print("Train final classifier with optimized hyper parameters")
-if args.knn:
-    classifier = sklearn.neighbors.KNeighborsClassifier(n_neighbors=study.best_params['n_neighbors'],
-                                                        weights=study.best_params['weights'],
-                                                        algorithm=study.best_params['algorithm'],
-                                                        leaf_size=study.best_params['leaf_size'])
-elif args.mlp:
-    hidden_layer = (study.best_params['hidden_layer_size'],) * study.best_params['hidden_layer_count']
-    classifier = MLPClassifier(hidden_layer_sizes=hidden_layer, activation=study.best_params['activation_fun'],
-                               alpha=study.best_params['alpha'], learning_rate=study.best_params['learning_rate'])
-elif args.svc:
-    classifier = sklearn.svm.SVC(C=study.best_params['svc_c'], gamma="auto", kernel=study.best_params['kernel'],
-                                 degree=study.best_params['degree'])
-elif args.gpc:
-    classifier = GaussianProcessClassifier(multi_class=study.best_params['multi_class'])
-elif args.bb:
-    classifier = FallChecker(thresh_gyro_front=study.best_params['thresh_gyro_front'],
-                             thresh_gyro_side=study.best_params['thresh_gyro_side'],
-                             thresh_orient_front=study.best_params['thresh_orient_front'],
-                             thresh_orient_side=study.best_params['thresh_orient_side'])
-classifier.fit(x_scaled, y)
-pickle_classifier(classifier, name)
diff --git a/bitbots_hcm/config/hcm_wolfgang.yaml b/bitbots_hcm/config/hcm_wolfgang.yaml
index 9fcd20423..c0659c0f8 100644
--- a/bitbots_hcm/config/hcm_wolfgang.yaml
+++ b/bitbots_hcm/config/hcm_wolfgang.yaml
@@ -42,6 +42,9 @@
     # smoothing threshold for classifier
     smooth_threshold: 0.04
 
+    fallen_orientation_thresh: 60.0 # Lean (degrees) after which we consider the robot fallen on this side
+    fallen_angular_velocity_thresh: 0.2 # Angular velocity (rad/s) under which we consider the robot as not moving (the fall is over and we are lying on the ground)
+
     pick_up_accel_threshold: 7.0
 
     falling:
diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index fbd7b96ab..cf7228eb6 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -190,14 +190,6 @@ class HCM_CPP : public rclcpp::Node {
     current_joint_state_ = msg;
   }
 
-  void cop_l_callback(geometry_msgs::msg::PointStamped msg) {
-    current_cop_right_ = msg;
-  }
-
-  void cop_r_callback(geometry_msgs::msg::PointStamped msg) {
-    current_cop_left_ = msg;
-  }
-
   void pressure_l_callback(bitbots_msgs::msg::FootPressure msg) {
     current_pressure_left_ = msg;
   }
@@ -215,8 +207,6 @@ class HCM_CPP : public rclcpp::Node {
     hcm_py_.attr("set_imu")(ros2_python_extension::toPython(current_imu_));
     hcm_py_.attr("set_pressure_left")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_left_));
     hcm_py_.attr("set_pressure_right")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_right_));
-    hcm_py_.attr("set_cop")(ros2_python_extension::toPython<geometry_msgs::msg::PointStamped>(current_cop_left_), false);
-    hcm_py_.attr("set_cop")(ros2_python_extension::toPython<geometry_msgs::msg::PointStamped>(current_cop_right_), true);
     hcm_py_.attr("set_last_motor_update_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(current_joint_state_.header.stamp));
     hcm_py_.attr("set_current_joint_state")(ros2_python_extension::toPython<sensor_msgs::msg::JointState>(current_joint_state_));
     hcm_py_.attr("set_last_walking_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_walking_time_));

From 82f6aa411ef4e1be2bff62f2fe0d076692997f11 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 12 Sep 2023 19:31:30 +0200
Subject: [PATCH 05/74] Fix hcm led script

---
 bitbots_hcm/scripts/hcm_led.py | 90 ++++++++++++----------------------
 1 file changed, 30 insertions(+), 60 deletions(-)

diff --git a/bitbots_hcm/scripts/hcm_led.py b/bitbots_hcm/scripts/hcm_led.py
index 92672d7fc..7838ad2cc 100755
--- a/bitbots_hcm/scripts/hcm_led.py
+++ b/bitbots_hcm/scripts/hcm_led.py
@@ -3,86 +3,56 @@
 import rclpy
 from rclpy.node import Node
 from std_msgs.msg import ColorRGBA
+
 from humanoid_league_msgs.msg import RobotControlState
 
+
 BLINK_DURATION = 0.2
 ERROR_TIMEOUT = 1
+
 class HCMLedNode(Node):
     def __init__(self):
         rclpy.init(args=None)
 
         self.pub = self.create_publisher(ColorRGBA, "/led1", 1)
 
+        self.color_mapping = {
+            RobotControlState.CONTROLLABLE: (0.3, 0.3, 0.3),
+            RobotControlState.FALLING: (0.3, 0.1, 0),
+            RobotControlState.FALLEN: (0.3, 0.3, 0),
+            RobotControlState.HARDWARE_PROBLEM: (1, 0, 0),
+            RobotControlState.ANIMATION_RUNNING: (0, 0, 0.3),
+            RobotControlState.WALKING: (0, 0.3, 0),
+            RobotControlState.GETTING_UP: (0, 0.3, 0.3),
+            RobotControlState.HCM_OFF: (0, 0, 0),
+            RobotControlState.MOTOR_OFF: (0.03, 0.03, 0.03),
+            RobotControlState.KICKING: (0, 0, 0.1),
+            RobotControlState.PENALTY: (0.3, 0, 0.3),
+            RobotControlState.PENALTY_ANIMATION: (0.3, 0, 0.3),
+            RobotControlState.PICKED_UP: (0, 0.03, 0),
+            RobotControlState.RECORD: (0, 0.1, 0),
+        }
+
         self.last_state = -1
 
-        sub = self.create_subscription(RobotControlState, "robot_state", self.hcm_state_cb, 1)
+        self.sub = self.create_subscription(RobotControlState, "robot_state", self.hcm_state_cb, 1)
         rclpy.spin(self)
 
 
-    def hcm_state_cb(msg: RobotControlState):
+    def hcm_state_cb(self, msg: RobotControlState):
         state = msg.state
-        # only do something if state changes, to not spam messages
+
+        # Only do something if state changes, to not spam messages
         if state == self.last_state:
             return
         self.last_state = state
+
         led = ColorRGBA()
         led.a = 1.0
-        if state == msg.CONTROLLABLE:
-            led.r = 0.3
-            led.g = 0.3
-            led.b = 0.3
-        elif state == msg.FALLING:
-            led.r = 0.3
-            led.g = 0.1
-            led.b = 0
-        elif state == msg.FALLEN:
-            led.r = 0.3
-            led.g = 0.3
-            led.b = 0
-        elif state == msg.HARDWARE_PROBLEM:
-            led.r = 1
-            led.g = 0
-            led.b = 0
-        elif state == msg.ANIMATION_RUNNING:
-            led.r = 0
-            led.g = 0
-            led.b = 0.3
-        elif state == msg.WALKING:
-            led.r = 0
-            led.g = 0.3
-            led.b = 0
-        elif state == msg.GETTING_UP:
-            led.r = 0
-            led.g = 0.3
-            led.b = 0.3
-        elif state == msg.HCM_OFF:
-            led.r = 0
-            led.g = 0
-            led.b = 0
-        elif state == msg.MOTOR_OFF:
-            led.r = 0.03
-            led.g = 0.03
-            led.b = 0.03
-        elif state == msg.KICKING:
-            led.r = 0
-            led.g = 0
-            led.b = 0.1
-        elif state == msg.PENALTY:
-            led.r = 0.3
-            led.g = 0
-            led.b = 0.3
-        elif state == msg.PENALTY_ANIMATION:
-            led.r = 0.3
-            led.g = 0
-            led.b = 0.3
-        elif state == msg.PICKED_UP:
-            led.r = 0
-            led.g = 0.03
-            led.b = 0
-        elif state == msg.RECORD:
-            led.r = 0
-            led.g = 0.1
-            led.b = 0
-        self.pub.publish(led)
 
+        if state in self.color_mapping:
+            led.r, led.g, led.b = self.color_mapping[state]
+        else:
+            self.get_logger().warn(f"Unknown state: {state}")
 
+        self.pub.publish(led)

From cf27605deee78b75dae85bc09eb65a5e6925f472 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 12 Sep 2023 19:31:56 +0200
Subject: [PATCH 06/74] Remove unessesary code

---
 .../hcm_dsd/actions/play_animation.py         |   8 +-
 .../bitbots_hcm/hcm_dsd/actions/stay.py       |   4 -
 .../bitbots_hcm/hcm_dsd/decisions/pickup.py   |   3 +
 .../bitbots_hcm/hcm_dsd/decisions/startup.py  |  38 +----
 bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd       |   9 +-
 .../bitbots_hcm/hcm_dsd/hcm_blackboard.py     |  42 +----
 .../bitbots_hcm/humanoid_control_module.py    | 152 +++++++++---------
 bitbots_hcm/config/hcm_wolfgang.yaml          |  19 +--
 bitbots_hcm/src/hcm.cpp                       |   6 +-
 9 files changed, 106 insertions(+), 175 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index 0f338c9ad..6a72b94c8 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -63,7 +63,7 @@ def start_animation(self, anim):
             timeout_sec=self.blackboard.node.get_parameter('hcm.anim_server_wait_time').get_parameter_value().double_value)
         if not first_try:
             server_running = False
-            while not server_running and not self.blackboard.shut_down_request and rclpy.ok():
+            while not server_running and rclpy.ok():
                 self.blackboard.node.get_logger().warn(
                                       "Animation Action Server not running! Motion can not work without animation action server. "
                                       "Will now wait until server is accessible!",
@@ -77,9 +77,13 @@ def start_animation(self, anim):
         goal = PlayAnimation.Goal()
         goal.animation = anim
         goal.hcm = True  # the animation is from the hcm
-        self.blackboard.animation_action_current_goal = self.blackboard.animation_action_client.send_goal_async(goal)
+        self.blackboard.animation_action_current_goal = self.blackboard.animation_action_client.send_goal_async(
+            goal, feedback_callback=self.kick_feedback_cb)
         return True
 
+    def kick_feedback_cb(self, msg: PlayAnimation.Feedback):
+        self.blackboard.last_kick_feedback = self.blackboard.node.get_clock().now()
+
     def animation_finished(self):
         return self.blackboard.animation_action_current_goal.cancelled() or self.blackboard.animation_action_current_goal.done()
 
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py
index de5c63807..63a6a2139 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py
@@ -50,9 +50,5 @@ class StayRecord(AbstractStay):
     pass
 
 
-class StayShutDown(AbstractStay):
-    def perform(self):
-        self.blackboard.current_state = RobotControlState.HCM_OFF
-
 class StayKicking(AbstractStay):
     pass
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
index 51f3bc9de..4c50e8c08 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
@@ -1,4 +1,5 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
+from humanoid_league_speaker.speaker import speak
 
 from humanoid_league_msgs.msg import RobotControlState
 
@@ -18,6 +19,8 @@ def perform(self, reevaluate=False):
                 abs(self.blackboard.smooth_accel[0]) < self.blackboard.pickup_accel_threshold and \
                 abs(self.blackboard.smooth_accel[1]) < self.blackboard.pickup_accel_threshold:
             self.blackboard.current_state = RobotControlState.PICKED_UP
+            if not reevaluate:
+                speak("Picked up!", self.blackboard.speak_publisher, priority=50)
             # we do an action sequence to go to walkready and stay in picked up state
             return "PICKED_UP"
 
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
index 024450d80..d276c263a 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
@@ -9,44 +9,16 @@ class StartHCM(AbstractHCMDecisionElement):
     """
     Initializes HCM.
     """
-
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
         self.is_initial = True
 
     def perform(self, reevaluate=False):
-        if self.blackboard.shut_down_request:
-            if self.blackboard.current_state == RobotControlState.HARDWARE_PROBLEM:
-                self.blackboard.current_state = RobotControlState.SHUTDOWN
-                return "SHUTDOWN_WHILE_HARDWARE_PROBLEM"
-            else:
-                self.blackboard.current_state = RobotControlState.SHUTDOWN
-                return "SHUTDOWN_REQUESTED"
-        else:
-            if self.is_initial:
-                if not self.is_walkready():
-                    return "NOT_WALKREADY"
-                else:
-                    self.is_initial = False
-                self.blackboard.current_state = RobotControlState.STARTUP
-            return "RUNNING"
-
-    def is_walkready(self):
-        """
-        We check if any joint is has an offset from the walkready pose which is higher than a threshold
-        """
-
-        if self.blackboard.current_joint_state is None or self.blackboard.current_joint_state.name == []:
-            self.blackboard.node.get_logger().warn("No joint state received yet, can not check if we are walkready at startup")
-            return False
-
-        for i, joint_name in enumerate(self.blackboard.current_joint_state.name):
-            if joint_name == "HeadPan" or joint_name == "HeadTilt":
-                continue # we dont care about the head position
-            if abs(math.degrees(self.blackboard.current_joint_state.position[i]) -
-                   self.blackboard.walkready_pose_dict[joint_name]) > self.blackboard.walkready_pose_threshold:
-                return False
-        return True
+        if self.is_initial:
+            self.is_initial = False
+            self.blackboard.current_state = RobotControlState.STARTUP
+            return "START_UP"
+        return "RUNNING"
 
     def get_reevaluate(self):
         return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
index 1879b8eb3..5409a38e0 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
@@ -1,13 +1,6 @@
-#ShutDownProcedure
-$PickedUp
-    PICKED_UP --> @TurnMotorsOff, @StayShutDown
-    ON_GROUND --> @PlayAnimationSitDown, @TurnMotorsOff, @StayShutDown
-
 -->HCM
 $StartHCM
-    NOT_WALKREADY --> @Wait + time:0.1 + r:false, @PlayAnimationDynup + direction:walkready + initial:true + r:false
-    SHUTDOWN_REQUESTED --> #ShutDownProcedure
-    SHUTDOWN_WHILE_HARDWARE_PROBLEM --> @StayShutDown
+    START_UP --> @Wait + time:0.1 + r:false, @PlayAnimationDynup + direction:walkready + initial:true + r:false
     RUNNING --> $Stop
         STOPPED -->  @ForceStopWalking, @PlayAnimationDynup + direction:walkready + initial:true + r:false, @StayStopped
         FREE -->$Record
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index 2164ee135..2f5c36e26 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -4,7 +4,6 @@
 
 import numpy
 from ament_index_python import get_package_share_directory
-from diagnostic_msgs.msg import DiagnosticArray, DiagnosticStatus
 from geometry_msgs.msg import PointStamped, Twist
 from rclpy.action import ActionClient
 from rclpy.node import Node
@@ -18,7 +17,7 @@
 from bitbots_msgs.action import Dynup
 from bitbots_msgs.msg import JointCommand
 from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import RobotControlState
+from humanoid_league_msgs.msg import Audio, RobotControlState
 
 
 class HcmBlackboard():
@@ -28,7 +27,6 @@ def __init__(self, node: Node):
         # Basic state
         self.current_state: RobotControlState = RobotControlState.STARTUP
         self.stopped: bool = False
-        self.shut_down_request: bool  = False
 
         # Save start time
         self.start_time: Time = self.node.get_clock().now()
@@ -40,8 +38,7 @@ def __init__(self, node: Node):
         self.pressure_sensors_installed: bool = self.node.get_parameter('pressure_sensors_installed').value
 
         # Create services
-        foot_zero_service_name = self.node.get_parameter("foot_zero_service").value
-        self.foot_zero_service = self.node.create_client(EmptySrv, foot_zero_service_name)
+        self.foot_zero_service = self.node.create_client(EmptySrv, "set_foot_zero")
         self.motor_switch_service = self.node.create_client(SetBool, 'core/switch_power')
 
         # Create action clients and corresponding goal handles
@@ -53,6 +50,7 @@ def __init__(self, node: Node):
         # Create publishers
         self.walk_pub = self.node.create_publisher(Twist, "cmd_vel", 1)
         self.cancel_path_planning_pub = self.node.create_publisher(EmptyMsg, "pathfinding/cancel", 1)
+        self.speak_publisher = self.node.create_publisher(Audio, 'speak', 1)
 
         # Latest imu data
         self.accel = numpy.array([0, 0, 0])
@@ -73,11 +71,6 @@ def __init__(self, node: Node):
         self.last_animation_goal_time: Time = self.node.get_clock().now()
         self.record_active: bool = False
 
-        if self.simulation_active:
-            self.walkready_animation = self.node.get_parameter("animations.walkready_sim").value
-        else:
-            self.walkready_animation = self.node.get_parameter("animations.walkready").value
-
         # Get animation parameters
         self.falling_animation_front = self.node.get_parameter("animations.falling_front").value
         self.falling_animation_back = self.node.get_parameter("animations.falling_back").value
@@ -98,17 +91,6 @@ def __init__(self, node: Node):
         self.motor_timeout_duration: float = self.node.get_parameter("motor_timeout_duration").value
         self.motor_off_time: float = self.node.get_parameter("motor_off_time").value
         self.imu_timeout_duration: float = self.node.get_parameter("imu_timeout_duration").value
-        self.walkready_pose_threshold = self.node.get_parameter("animations.walkready_pose_threshold").value
-
-
-        # Hacky way of getting the walkready pose. TODO change that. Maybe use a dynup service
-        anim_package = self.node.get_parameter("animations.anim_package").value
-        path = get_package_share_directory(anim_package)
-        path = os.path.join(path, 'animations/motion/', self.walkready_animation + '.json')
-        with open(path, 'r') as f:
-            json_data = json.load(f)
-        keyframes: List[dict] = json_data["keyframes"]
-        self.walkready_pose_dict: dict = keyframes[-1]["goals"]
 
         # Walking state
         self.last_walking_goal_time = self.node.get_clock().now()
@@ -131,21 +113,5 @@ def __init__(self, node: Node):
         self.imu_diag_error: bool = False
         self.pressure_diag_error: bool = False
 
-    def diag_cb(self, msg: DiagnosticArray):
-        status: DiagnosticStatus
-        for status in msg.status:
-            if "//Servos/" in status.name:
-                if status.level == DiagnosticStatus.ERROR and "Overload" in status.message:
-                    self.servo_overload = True
-            elif "//Servos" in status.name:
-                self.servo_diag_error = status.level in (DiagnosticStatus.ERROR, DiagnosticStatus.STALE)
-            elif "//IMU" in status.name:
-                self.imu_diag_error = status.level in (DiagnosticStatus.ERROR, DiagnosticStatus.STALE)
-            elif "//Pressure" in status.name:
-                self.pressure_diag_error = status.level in (DiagnosticStatus.ERROR, DiagnosticStatus.STALE)
-
-    def last_kick_feedback_callback(self, msg: PlayAnimation.Feedback):
-        self.last_kick_feedback = self.node.get_clock().now()
-
     def cancel_path_planning(self):
-        self.cancel_path_planning_pub.publish(EmptyMsg())
+        self.cancel_path_planning_pub.publish(EmptyMsg())
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index f7d5af535..271007d64 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -8,11 +8,9 @@
 from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
 from bitbots_utils.utils import get_parameters_from_ros_yaml
 from builtin_interfaces.msg import Time as TimeMsg
-from diagnostic_msgs.msg import DiagnosticArray
-from geometry_msgs.msg import PointStamped
+from diagnostic_msgs.msg import DiagnosticArray, DiagnosticStatus
 from humanoid_league_speaker.speaker import speak
 from rcl_interfaces.msg import Parameter as ParameterMsg
-from rclpy.action import ActionClient
 from rclpy.duration import Duration
 from rclpy.executors import MultiThreadedExecutor
 from rclpy.node import Node
@@ -23,7 +21,6 @@
 from sensor_msgs.msg import Imu, JointState
 from std_msgs.msg import Bool
 
-from bitbots_msgs.action import Dynup
 from bitbots_msgs.msg import FootPressure
 from dynamic_stack_decider.dsd import DSD
 from humanoid_league_msgs.action import PlayAnimation
@@ -34,6 +31,10 @@ class HardwareControlManager:
     def __init__(self, use_sim_time, simulation_active, visualization_active):
         rclpy.init(args=None)
         node_name = "hcm_py"
+
+        self.simulation_active = simulation_active
+
+        # Load parameters from yaml file because this is a hacky cpp python hybrid node for performance reasons
         parameter_msgs: list(ParameterMsg) = get_parameters_from_ros_yaml(
             node_name, f"{get_package_share_directory('bitbots_hcm')}/config/hcm_wolfgang.yaml", use_wildcard=True)
         parameters = []
@@ -45,133 +46,140 @@ def __init__(self, use_sim_time, simulation_active, visualization_active):
             parameters.append(Parameter("simulation_active", type_=Parameter.Type.BOOL, value=True))
         if visualization_active:
             parameters.append(Parameter("visualization_active", type_=Parameter.Type.BOOL, value=True))
+
+        # Create Python node
         self.node = Node(node_name,
                          allow_undeclared_parameters=True,
                          automatically_declare_parameters_from_overrides=True,
                          parameter_overrides=parameters)
-        # create own executor for python part
+
+        # Create own executor for Python part
         multi_executor = MultiThreadedExecutor()
         multi_executor.add_node(self.node)
         self.spin_thread = threading.Thread(target=multi_executor.spin, args=(), daemon=True)
         self.spin_thread.start()
 
-        # --- Initialize Node ---
         # Otherwise messages will get lost, bc the init is not finished
         self.node.get_clock().sleep_for(Duration(seconds=0.5))
         self.node.get_logger().debug("Starting hcm")
-        self.simulation_active = self.node.get_parameter("simulation_active")
-        # dsd
+
+        # Create Dynamic Stack Decider Blackboard
         self.blackboard = HcmBlackboard(self.node)
-        dirname = os.path.dirname(os.path.realpath(__file__)) + "/hcm_dsd"
+        # Create Dynamic Stack Decider
         self.dsd = DSD(self.blackboard, "debug/dsd/hcm", node=self.node)
+        # Get the path to the python actions and decisions
+        dirname = os.path.dirname(os.path.realpath(__file__)) + "/hcm_dsd"
+        # Register actions and decisions
         self.dsd.register_actions(os.path.join(dirname, 'actions'))
         self.dsd.register_decisions(os.path.join(dirname, 'decisions'))
+        # Load the behavior file
         self.dsd.load_behavior(os.path.join(dirname, 'hcm.dsd'))
+
+        # Flag to deactivate the HCM
         self.hcm_deactivated = False
-        # Publisher / subscriber
-        self.blackboard.speak_publisher = self.node.create_publisher(Audio, 'speak', 1)
 
-        # important to make sure the connection to the speaker is established, for next line
-        self.node.get_clock().sleep_for(Duration(seconds=0.1))
-        speak("Starting HCM", self.blackboard.speak_publisher, priority=50)
+        # Create subscribers
         self.node.create_subscription(Bool, "pause", self.pause, 1)
         self.node.create_subscription(Bool, "core/power_switch_status", self.power_cb, 1)
         self.node.create_subscription(Bool, "hcm_deactivate", self.deactivate_cb, 1)
-        self.node.create_subscription(DiagnosticArray, "diagnostics_agg", self.blackboard.diag_cb, 1)
-        self.node.add_on_set_parameters_callback(self.on_set_parameters)
+        self.node.create_subscription(DiagnosticArray, "diagnostics_agg", self.diag_cb, 1)
+
+        # Store time of the last tick
+        self.last_tick_start_time = self.node.get_clock().now()
 
-        self.last_loop_start_time = self.node.get_clock().now()
+        # Anounce the HCM startup
+        speak("Starting HCM", self.blackboard.speak_publisher, priority=50)
 
-    def deactivate_cb(self, msg):
+    def tick(self):
+        """
+        Keeps updating the DSD and publishes its current state.
+        All the forwarding of joint goals is directly done in the callbacks to reduce latency.
+        """
+        # Store the time of the current tick
+        tick_start_time = self.node.get_clock().now()
+        # This can happen in simulation due to bad implementation in rclpy
+        if (self.last_tick_start_time != tick_start_time):
+            self.last_tick_start_time = tick_start_time
+            # Do not perform any behavior if the HCM is deactivated
+            if self.hcm_deactivated:
+                self.blackboard.current_state = RobotControlState.CONTROLLABLE
+            else:
+                try:
+                    # Step the dsd
+                    self.dsd.update()
+                except IndexError:
+                    # this error will happen during shutdown procedure, just ignore it
+                    pass
+
+    def deactivate_cb(self, msg: Bool):
+        """ Deactivates the HCM. """
         self.hcm_deactivated = msg.data
 
-    def pause(self, msg):
+    def pause(self, msg: Bool):
         """ Updates the stop state for the state machine"""
         self.blackboard.stopped = msg.data
 
-    def on_set_parameters(self, config, level):
-        """ Dynamic reconfigure of the fall checker values."""
-        # just pass on to the StandupHandler, as all the variables are located there
-        self.blackboard.fall_checker.update_reconfigurable_values(config, level)
-        self.blackboard.pickup_accel_threshold = config["pick_up_accel_threshold"]
-        return config
-
-    def power_cb(self, msg):
+    def power_cb(self, msg: Bool):
+        """ Updates the power state. """
         self.blackboard.is_power_on = msg.data
 
-    def get_state(self):
+    def diag_cb(self, msg: DiagnosticArray):
+        """ Updates the diagnostic state. """
+        status: DiagnosticStatus
+        for status in msg.status:
+            if "//Servos/" in status.name:
+                if status.level == DiagnosticStatus.ERROR and "Overload" in status.message:
+                    self.blackboard.servo_overload = True
+            elif "//Servos" in status.name:
+                self.blackboard.servo_diag_error = status.level in (DiagnosticStatus.ERROR, DiagnosticStatus.STALE)
+            elif "//IMU" in status.name:
+                self.blackboard.imu_diag_error = status.level in (DiagnosticStatus.ERROR, DiagnosticStatus.STALE)
+            elif "//Pressure" in status.name:
+                self.blackboard.pressure_diag_error = status.level in (DiagnosticStatus.ERROR, DiagnosticStatus.STALE)
+
+    def get_state(self) -> RobotControlState:
+        """ Returns the current state of the HCM. """
         return self.blackboard.current_state
 
-    def loop(self):
-        """ Keeps updating the DSD and publish its current state.
-            All the forwarding of joint goals is directly done in the callbacks to reduce latency. """
-        if self.blackboard.shut_down_request and not self.simulation_active:
-            self.on_shutdown_hook()
-        else:
-            loop_start_time = self.node.get_clock().now()
-            #can happen in simulation due to bad implementation in rclpy
-            if (self.last_loop_start_time != loop_start_time):
-                self.last_loop_start_time = loop_start_time
-                if self.hcm_deactivated:
-                    self.blackboard.current_state = RobotControlState.CONTROLLABLE
-                else:
-                    try:
-                        self.dsd.update()
-                    except IndexError:
-                        # this error will happen during shutdown procedure, just ignore it
-                        pass
-
-    def on_shutdown_hook(self):
-        if not self.blackboard:
-            return
-        # we got external shutdown, tell it to the DSD, it will handle it
-        self.blackboard.shut_down_request = True
-        self.node.get_logger().warn("You're stopping the HCM. The robot will sit down and power off its motors.")
-        speak("Stopping HCM", self.blackboard.speak_publisher, priority=50)
-        # now wait for it finishing the shutdown procedure
-        while not self.blackboard.current_state == RobotControlState.HCM_OFF:
-            # we still have to update everything
-            self.dsd.update()
-            self.hcm_state_publisher.publish(self.blackboard.current_state)
-            self.node.get_clock().sleep_for(Duration(seconds=0.01))
-
-    def set_last_animation_goal_time(self, time_msg_serialized):
-        self.blackboard.last_animation_goal_time = deserialize_message(time_msg_serialized, TimeMsg)
+    # The following methods are used to set the blackboard values from the cpp part
 
-    def set_animation_requested(self, animation_requested):
+    def set_animation_requested(self, animation_requested: bool):
         self.blackboard.animation_requested = animation_requested
 
-    def set_external_animation_running(self, running):
+    def set_external_animation_running(self, running: bool):
         self.blackboard.external_animation_running = running
 
-    def set_record_active(self, active):
+    def set_record_active(self, active: bool):
         self.blackboard.record_active = active
 
-    def set_last_walking_goal_time(self, time_msg_serialized):
+    def set_last_animation_goal_time(self, time_msg_serialized: bytes):
+        self.blackboard.last_animation_goal_time = deserialize_message(time_msg_serialized, TimeMsg)
+
+    def set_last_walking_goal_time(self, time_msg_serialized: bytes):
         self.blackboard.last_walking_goal_time = Time.from_msg(deserialize_message(time_msg_serialized, TimeMsg))
 
-    def set_last_motor_update_time(self, time_msg_serialized):
+    def set_last_motor_update_time(self, time_msg_serialized: bytes):
         self.blackboard.last_motor_update_time = deserialize_message(time_msg_serialized, TimeMsg)
 
-    def set_current_joint_state(self, joint_state_msg_serialized):
+    def set_current_joint_state(self, joint_state_msg_serialized: bytes):
         self.blackboard.previous_joint_state = self.blackboard.current_joint_state
         self.blackboard.current_joint_state = deserialize_message(joint_state_msg_serialized, JointState)
 
-    def set_pressure_left(self, pressure_msg_serialized):
+    def set_pressure_left(self, pressure_msg_serialized: bytes):
         msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
         self.blackboard.pressures[0] = msg.left_front
         self.blackboard.pressures[1] = msg.left_back
         self.blackboard.pressures[2] = msg.right_front
         self.blackboard.pressures[3] = msg.right_back
 
-    def set_pressure_right(self, pressure_msg_serialized):
+    def set_pressure_right(self, pressure_msg_serialized: bytes):
         msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
         self.blackboard.pressures[4] = msg.left_front
         self.blackboard.pressures[5] = msg.left_back
         self.blackboard.pressures[6] = msg.right_front
         self.blackboard.pressures[7] = msg.right_back
 
-    def set_imu(self, imu_msg_serialized):
+    def set_imu(self, imu_msg_serialized: bytes):
         msg: Imu = deserialize_message(imu_msg_serialized, Imu)
 
         self.blackboard.accel = numpify(msg.linear_acceleration)
diff --git a/bitbots_hcm/config/hcm_wolfgang.yaml b/bitbots_hcm/config/hcm_wolfgang.yaml
index c0659c0f8..dd5cfe74d 100644
--- a/bitbots_hcm/config/hcm_wolfgang.yaml
+++ b/bitbots_hcm/config/hcm_wolfgang.yaml
@@ -1,34 +1,23 @@
 /**:
   ros__parameters:
-    #Pressure sensors
+    # Pressure sensors
     pressure_sensors_installed: False
-    foot_zero_service: "set_foot_zero"
+
+    # IMU
+    imu_timeout_duration: 0.5 # time without messages from the IMU till error is produced [s]
 
     # Motors
     motor_off_time: 30000000.0 # time of no use or updates when the hcm goes to soft off
     motor_timeout_duration: 0.5 # time without messages from the servos till error is produced [s]
 
-    imu_timeout_duration: 0.5 # time without messages from the IMU till error is produced [s]
-
     #Animations
     anim_server_wait_time: 1.0 # time the hcm waits for animation server
     animations:
-      walkready: "walkready"
-      walkready_sim: "walkready_sim"
       falling_front: "falling_front"
       falling_back: "falling_back"
       falling_left: "falling_left"
       falling_right: "falling_right"
-      stand_up_front: "stand_up_front"
-      stand_up_back: "stand_up_back"
-      stand_up_left: "turning_back_left"
-      stand_up_right: "turning_back_right"
-      sit_down: "sit"
-      penalty: "walkready"
-      motor_off: "sit"
-      init: "init"
       anim_package: "wolfgang_animations"
-      walkready_pose_threshold: 50.0 # [deg]
 
     # Falling
     stand_up_active: true # enables the robot to stand up automatically
diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index cf7228eb6..ae8454660 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -202,7 +202,7 @@ class HCM_CPP : public rclcpp::Node {
     current_imu_ = msg;
   }
 
-  void loop() {
+  void tick() {
     // update all input to the HCM
     hcm_py_.attr("set_imu")(ros2_python_extension::toPython(current_imu_));
     hcm_py_.attr("set_pressure_left")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_left_));
@@ -215,7 +215,7 @@ class HCM_CPP : public rclcpp::Node {
     hcm_py_.attr("set_animation_requested")(animation_requested_);
     hcm_py_.attr("set_last_animation_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_animation_goal_time_));
     // run HCM
-    hcm_py_.attr("loop")();
+    hcm_py_.attr("tick")();
     // update current HCM state for joint mutex
     py::object result = hcm_py_.attr("get_state")();
     current_state_ = result.cast<int>();
@@ -277,7 +277,7 @@ int main(int argc, char** argv) {
     auto current_time = node->get_clock()->now();
     if (current_time > last_time) {
       last_time = current_time;
-      node->loop();
+      node->tick();
       rate.sleep();
     }
     // really short sleep to not waste cpu time

From fb911c4754b98d8d8a0d3f6c2f3fac81f213e3ce Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 12 Sep 2023 19:37:11 +0200
Subject: [PATCH 07/74] Cleanup parameters

---
 bitbots_hcm/config/hcm_wolfgang.yaml | 29 +++++++---------------------
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/bitbots_hcm/config/hcm_wolfgang.yaml b/bitbots_hcm/config/hcm_wolfgang.yaml
index dd5cfe74d..991a323ef 100644
--- a/bitbots_hcm/config/hcm_wolfgang.yaml
+++ b/bitbots_hcm/config/hcm_wolfgang.yaml
@@ -20,35 +20,20 @@
       anim_package: "wolfgang_animations"
 
     # Falling
-    stand_up_active: true # enables the robot to stand up automatically
-    falling_active: true # enables the check for falling and coresponding counter meassurements
-    #Grenzwerte schärfer --> fruehere Reaktion aber haeufigere Fehlinterpretation, zb. beim Laufen
-    #Grenzwerte sanfter --> zu spaete Raktion
+    stand_up_active: true # Enables the robot to stand up automatically
+    falling_active: true # Enables the check for falling and coresponding counter meassurements
+    # Threshold tighter --> earlier reaction but more false positives, e.g. while walking
+    # Threshold softer --> too late reaction
     falling_thresh_gyro_pitch: 7.0 # > gyroY
     falling_thresh_gyro_roll: 7.0 # > gyroX
     falling_thresh_orient_roll: 60.0 # > Point of no return in degrees
     falling_thresh_orient_pitch: 45.0 # > Point of no return in degrees
-    # smoothing threshold for classifier
+    # Duration in seconds in which the robot has to be in a falling state to trigger the fall
     smooth_threshold: 0.04
 
+    # Fallen
     fallen_orientation_thresh: 60.0 # Lean (degrees) after which we consider the robot fallen on this side
     fallen_angular_velocity_thresh: 0.2 # Angular velocity (rad/s) under which we consider the robot as not moving (the fall is over and we are lying on the ground)
 
+    # Pick up
     pick_up_accel_threshold: 7.0
-
-    falling:
-
-      #falling animations
-      "falling_front": "falling_front"
-      "falling_back": "falling_back"
-      "falling_left": "falling_left"
-      "falling_right": "falling_right"
-
-      "wolfgang":
-
-        #Grenzwerte müssen auf härterem boden auch härter eingestellt werden,
-        #dies erfolgt mit dem boden_koeffizient
-        "ground_coefficient": 1.0  #WEICH(kunstrasen Spielfeld)= 1.0 , HART(teppich Spielfeld)= 1.25
-
-        #false = motoren werden bei fallerkennung abgeschaltet
-        "dyn_falling_active": true

From 33621e3938947399fecc2d6673d9f7b470172f1b Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 12 Sep 2023 19:45:41 +0200
Subject: [PATCH 08/74] Update docs

---
 bitbots_hcm/docs/index.rst | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/bitbots_hcm/docs/index.rst b/bitbots_hcm/docs/index.rst
index 3398e2ed4..e2ec73c46 100644
--- a/bitbots_hcm/docs/index.rst
+++ b/bitbots_hcm/docs/index.rst
@@ -53,7 +53,7 @@ How the HCM works
 
 The HCM uses a DSD to decide what the state of the robot is and to decide on the actions that should be performed.
 This state is then published as a ROS message (`/robot_state`).
-To see which state is which, you have to look at the message definition (`rosmsg show humanoid_league_msgs/RobotControlState`).
+To see which state is which, you have to look at the message definition (`ros2 interface show humanoid_league_msgs/msg/RobotControlState`).
 
 The HCM subscribes to all joint goal topics of the different software parts.
 Dependend on its state, it forwards the goals or not.
@@ -62,21 +62,11 @@ Sensor data is not influenced by the HCM, since it does not need to be mutexed.
 How the HCM is started
 ----------------------
 
-The easiest way to start the HCM is to launch the complete motion (`roslaunch bitbots_bringup motion_standalone.launch`).
+The easiest way to start the HCM is to launch the complete motion (`ros2 launch bitbots_bringup motion_standalone.launch`).
 For debugging it is sometimes better to launch the single parts by themselves.
-The HCM needs the animation server (`roslaunch bitbots_animation_server animation.launch`) to work because it is needed to perform falling and stand up animations.
-To be able to actually control the hardware, ros_control needs to run (`roslaunch bitbots_ros_control ros_control_standalone.launch`).
-Finally launch the HCM itself (`roslaunch bitbots_hcm hcm_standalone.launch`).
-
-How to retrain the falling classification
------------------------------------------
-
-All necessary scripts are in the `training folder`. Previous labeled datasets can be found `here <https://cloud.mafiasi.de/s/o6YW3eTWXqnLrkt>`_.
-
-The `label.py` script allows to label either online on a robot or on a prerecorded rosbag.
-
-The `train.py` script allows to train the classifier.
-
+The HCM needs the animation server (`ros2 launch bitbots_animation_server animation.launch`) to work because it is needed to perform falling and stand up animations.
+To be able to actually control the hardware, ros_control needs to run (`ros2 launch bitbots_ros_control ros_control_standalone.launch`).
+Finally launch the HCM itself (`ros2 launch bitbots_hcm hcm_standalone.launch`).
 
 
 What to do when it does not work
@@ -84,7 +74,7 @@ What to do when it does not work
 
 1. Is `ros_control` running? Do you recieve joint states (`/joint_states`) or IMU data (`/imu/data_raw`)?
 2. What is the state of the HCM (`rostopic echo /robot_state`)? The number has to be matched with the message
-   description (`rosmsg show humanoid_league_msgs/RobotControlState`).
+   description (`ros2 interface show humanoid_league_msgs/msg/RobotControlState`).
 3. The visualization of the DSD is possible with the standard DSD visualization using the rqt plugin.
    There you can see exactly which decision is responsible for the current behavior and then you can look into the code.
 

From 757fc3c923be188f6baa8424aad2cb78c13b3e3f Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 12 Sep 2023 19:45:54 +0200
Subject: [PATCH 09/74] Use enum values

---
 bitbots_hcm/scripts/pause.py | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/bitbots_hcm/scripts/pause.py b/bitbots_hcm/scripts/pause.py
index 48adeccc6..198db7649 100755
--- a/bitbots_hcm/scripts/pause.py
+++ b/bitbots_hcm/scripts/pause.py
@@ -6,9 +6,7 @@
 from std_msgs.msg import Bool
 
 from bitbots_msgs.srv import ManualPenalize
-from humanoid_league_msgs.msg import GameState
 from humanoid_league_speaker.speaker import speak
-from rclpy.executors import ExternalShutdownException
 
 
 class Pause(object):
@@ -29,21 +27,14 @@ def __init__(self):
         self.pause_publisher = self.node.create_publisher(Bool, "pause", 10)  # todo latch
         self.speak_publisher = self.node.create_publisher(Audio, "speak", 10)
 
-        while rclpy.ok():
-            try:
-                rclpy.spin_once(self.node)
-            except (ExternalShutdownException, KeyboardInterrupt):
-                exit(0)
+        rclpy.spin(self.node)
 
-    def manual_update(self, req:ManualPenalize.Request, resp:ManualPenalize.Response):
-        if req.penalize == 0:
-            # off
+    def manual_update(self, req: ManualPenalize.Request, resp: ManualPenalize.Response):
+        if req.penalize == ManualPenalize.Request.OFF:
             self.penalty_manual = False
-        elif req.penalize == 1:
-            # on
+        elif req.penalize == ManualPenalize.Request.ON:
             self.penalty_manual = True
-        elif req.penalize == 2:
-            # switch
+        elif req.penalize == ManualPenalize.Request.SWITCH:
             self.penalty_manual = not self.penalty_manual
         else:
             self.node.get_logger().error("Manual penalize call with unspecified request")

From d688bbd5637cc151f6ef3699757a6ead387cf743 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 19:34:10 +0200
Subject: [PATCH 10/74] Cleanup actions

---
 .../bitbots_hcm/hcm_dsd/actions/__init__.py   | 13 +++
 .../hcm_dsd/actions/cancel_goals.py           |  7 +-
 .../hcm_dsd/actions/change_motor_power.py     |  7 +-
 .../hcm_dsd/actions/play_animation.py         | 40 +++++----
 .../hcm_dsd/actions/set_foot_zero.py          | 11 +--
 .../bitbots_hcm/hcm_dsd/actions/state.py      | 89 +++++++++++++++++++
 .../bitbots_hcm/hcm_dsd/actions/stay.py       | 54 -----------
 .../hcm_dsd/actions/stop_walking.py           | 31 +------
 .../bitbots_hcm/hcm_dsd/actions/wait.py       | 24 ++---
 .../bitbots_hcm/hcm_dsd/actions/wait_for.py   | 56 +++---------
 10 files changed, 158 insertions(+), 174 deletions(-)
 create mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
 delete mode 100644 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/__init__.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/__init__.py
index e69de29bb..997192bdf 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/__init__.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/__init__.py
@@ -0,0 +1,13 @@
+from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+
+from dynamic_stack_decider.abstract_action_element import \
+    AbstractActionElement
+
+
+class AbstractHCMActionElement(AbstractActionElement):
+    """
+    AbstractHCMActionElement with a hcm blackboard as its blackboard
+    """
+    def __init__(self, blackboard, dsd, parameters=None):
+        super().__init__(blackboard, dsd, parameters)
+        self.blackboard: HcmBlackboard
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
index 2ea250d58..f8eb177e5 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
@@ -1,16 +1,13 @@
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
 
-
-class CancelGoals(AbstractActionElement):
+class CancelGoals(AbstractHCMActionElement):
     """
     Cancels all animation, dynup and move_base goals
     """
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
 
     def perform(self):
         if self.blackboard.animation_action_current_goal is not None:
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py
index 4769d1c42..ee01ed493 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/change_motor_power.py
@@ -1,17 +1,14 @@
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 from std_srvs.srv import SetBool
 
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
 
-
-class AbstractChangeMotorPower(AbstractActionElement):
+class AbstractChangeMotorPower(AbstractHCMActionElement):
     """
     Switches motor power using the service call of the hardware interface.
     """
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
 
         if not self.blackboard.visualization_active and not self.blackboard.simulation_active:
             # In visualization and simulation, we cannot disable motors
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index 6a72b94c8..2b8b22f34 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -1,21 +1,18 @@
+import rclpy
 from action_msgs.msg import GoalStatus
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-import rclpy
 from bitbots_msgs.action import Dynup
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
 from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import RobotControlState
 
 
-class AbstractPlayAnimation(AbstractActionElement):
+class AbstractPlayAnimation(AbstractHCMActionElement):
     """
     Abstract class to create actions for playing animations
     """
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
         self.first_perform = True
 
     def perform(self, reevaluate=False):
@@ -91,43 +88,49 @@ def animation_finished(self):
 class PlayAnimationFallingLeft(AbstractPlayAnimation):
     def chose_animation(self):
         self.blackboard.node.get_logger().info("PLAYING FALLING LEFT ANIMATION")
-        return self.blackboard.falling_animation_left
+        return self.blackboard.animation_name_falling_left
 
 
 class PlayAnimationFallingRight(AbstractPlayAnimation):
     def chose_animation(self):
         self.blackboard.node.get_logger().info("PLAYING FALLING RIGHT ANIMATION")
-        return self.blackboard.falling_animation_right
+        return self.blackboard.animation_name_falling_right
 
 
 class PlayAnimationFallingFront(AbstractPlayAnimation):
     def chose_animation(self):
         self.blackboard.node.get_logger().info("PLAYING FALLING FRONT ANIMATION")
-        return self.blackboard.falling_animation_front
+        return self.blackboard.animation_name_falling_front
 
 
 class PlayAnimationFallingBack(AbstractPlayAnimation):
     def chose_animation(self):
         self.blackboard.node.get_logger().info("PLAYING FALLING BACK ANIMATION")
-        return self.blackboard.falling_animation_back
+        return self.blackboard.animation_name_falling_back
+
+
+class PlayAnimationTurningBackLeft(AbstractPlayAnimation):
+    def chose_animation(self):
+        self.blackboard.node.get_logger().info("TURNING LYING ON THE LEFT SIDE AND TURNING BACK TO GET UP")
+        return self.blackboard.animation_name_turning_back_left
+
+class PlayAnimationTurningBackRight(AbstractPlayAnimation):
+    def chose_animation(self):
+        self.blackboard.node.get_logger().info("TURNING LYING ON THE RIGHT SIDE AND TURNING BACK TO GET UP")
+        return self.blackboard.animation_name_turning_back_right
 
 
-class PlayAnimationDynup(AbstractActionElement):
+class PlayAnimationDynup(AbstractHCMActionElement):
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
         self.direction = parameters.get('direction')
         self.first_perform = True
 
-        # A parameter 'initial' is passed when dynup is called during the startup phase,
-        # in this case we do not want to set the state to GETTING_UP.
-        initial = parameters.get('initial', False)
-        if not initial:
-            self.blackboard.current_state = RobotControlState.GETTING_UP
-
     def perform(self, reevaluate=False):
         # deactivate falling since it will be wrongly detected
         self.do_not_reevaluate()
+
+        # We only want to execute this once
         if self.first_perform:
             # get the animation that should be played
             # defined by implementations of this abstract class
@@ -167,6 +170,7 @@ def start_animation(self):
             else:
                 self.blackboard.node.get_logger().warn("Dynup server did not start.")
                 return False
+
         goal = Dynup.Goal()
         goal.direction = self.direction
         self.blackboard.dynup_action_current_goal = self.blackboard.dynup_action_client.send_goal_async(goal)
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py
index 0081e1d50..95ce01446 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py
@@ -1,15 +1,16 @@
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
 
-
-class SetFootZero(AbstractActionElement):
+class SetFootZero(AbstractHCMActionElement):
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
         self.first_perform = True
 
     def perform(self, reevaluate=False):
+        # Just to be sure, we do not want to reevaluate
+        self.do_not_reevaluate()
+
+        # We only want to execute this once
         if self.first_perform:
             # Executing this once is sufficient
             self.first_perform = False
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
new file mode 100644
index 000000000..ab6d50113
--- /dev/null
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
@@ -0,0 +1,89 @@
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
+
+from humanoid_league_msgs.msg import RobotControlState
+
+
+class AbstractRobotState(AbstractHCMActionElement):
+    """
+    Abstract class to create actions which just stay on top of the stack
+    and set the robot state accordingly.
+    """
+    def get_state(self) -> RobotControlState:
+        """
+        Returns the state which should be set. This will be implemented by the subclasses.
+        """
+        raise NotImplementedError
+
+    def perform(self, reevaluate=False):
+        # Just to be sure, we do not reevaluate
+        self.do_not_reevaluate()
+        # Set the state
+        self.blackboard.current_state = self.get_state()
+        # Our job is done, we can pop
+        self.pop()
+
+
+
+class RobotStateStartup(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.STARTUP
+
+
+class RobotStateControllable(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.CONTROLLABLE
+
+
+class RobotStateWalking(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.WALKING
+
+
+class RobotStateAnimationRunning(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.ANIMATION_RUNNING
+
+
+class RobotStatePickedUp(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.PICKED_UP
+
+
+class RobotStateFalling(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.FALLING
+
+
+class RobotStateFallen(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.FALLEN
+
+
+class RobotStateGettingUp(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.GETTING_UP
+
+
+class RobotStatePenalty(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.PENALTY
+
+
+class RobotStateRecord(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.RECORD
+
+
+class RobotStateKicking(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.KICKING
+
+
+class RobotStateHardwareProblem(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.HARDWARE_PROBLEM
+
+
+class RobotStateMotorOff(AbstractRobotState):
+    def get_state(self) -> RobotControlState:
+        return RobotControlState.MOTOR_OFF
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py
deleted file mode 100644
index 63a6a2139..000000000
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stay.py
+++ /dev/null
@@ -1,54 +0,0 @@
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
-
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
-from humanoid_league_msgs.msg import RobotControlState
-
-
-class AbstractStay(AbstractActionElement):
-    """
-    Abstract class to create actions which just stay on top of the stack.
-    This can be used to stay in a certain state till some precondition changes.
-    Implementations can be used to change the name
-    """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
-    def perform(self):
-        # just do nothing
-        return
-
-
-class StayControlable(AbstractStay):
-    def perform(self):
-        self.blackboard.current_state = RobotControlState.CONTROLLABLE
-
-
-class StayWalking(AbstractStay):
-    pass
-
-
-class StayAnimationRunning(AbstractStay):
-    pass
-
-
-class StayPickedUp(AbstractStay):
-    pass
-
-
-class StayMotorsOff(AbstractStay):
-    pass
-
-
-class StayStopped(AbstractStay):
-    def perform(self):
-        self.blackboard.current_state = RobotControlState.PENALTY
-
-
-class StayRecord(AbstractStay):
-    pass
-
-
-class StayKicking(AbstractStay):
-    pass
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py
index 49f6c72a6..feffaf860 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/stop_walking.py
@@ -1,40 +1,13 @@
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 from geometry_msgs.msg import Twist
 
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
-from humanoid_league_msgs.msg import RobotControlState
 
-
-class StopWalking(AbstractActionElement):
+class StopWalking(AbstractHCMActionElement):
     """
     Stop the walking
     """
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
-    def perform(self, reevaluate=False):
-        msg = Twist()
-        msg.angular.x = -1.0
-        self.blackboard.walk_pub.publish(msg)
-        self.pop()
-
-
-class ForceStopWalking(AbstractActionElement):
-    """
-    Stop the walking and set the state to penalty
-    """
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
     def perform(self, reevaluate=False):
         msg = Twist()
-        msg.linear.x = 0.0
-        msg.linear.y = 0.0
-        msg.angular.z = 0.0
         msg.angular.x = -1.0
         self.blackboard.walk_pub.publish(msg)
-        self.blackboard.current_state = RobotControlState.PENALTY
-        # We can pop immediately because the state is PENALTY on no walking messages will be passed
         self.pop()
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py
index 965fcf562..a2defafbe 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py
@@ -7,31 +7,31 @@
 
 Just waits for something (i.e. that preconditions will be fullfilled)
 """
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
 
-
-class Wait(AbstractActionElement):
+class Wait(AbstractHCMActionElement):
     """
-    This action waits a specified time before it pops itself
+    This action does nothing. If a time is given, it will wait for that time.before it pops itself.
     """
 
     def __init__(self, blackboard, dsd, parameters=None):
         """
         :param parameters['time']: Time to wait in seconds
         """
-        super().__init__(blackboard, dsd)
-        self.blackboard: HcmBlackboard
-        self.time = float(self.blackboard.node.get_clock().now().seconds_nanoseconds()[0]  \
-                           + self.blackboard.node.get_clock().now().seconds_nanoseconds()[1]/1e9) \
-                            + float(parameters['time'])
+        super().__init__(blackboard, dsd, parameters)
+        self.duration = parameters.get("time", None)
+        self.start_time = self.blackboard.node.get_clock().now().nanoseconds / 1e9
 
     def perform(self, reevaluate=False):
         """
         Only pop when the wait-time has elapsed
         """
 
-        if self.time < float(self.blackboard.node.get_clock().now().seconds_nanoseconds()[0] \
-                             + self.blackboard.node.get_clock().now().seconds_nanoseconds()[1]/1e9):
+        # Return directly if we want to wait infinitely
+        if self.duration is None:
+            return
+
+        # Pop if the time has elapsed
+        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 > self.start_time + self.duration:
             self.pop()
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait_for.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait_for.py
index 6045b2df9..cc7bc5df9 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait_for.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait_for.py
@@ -1,56 +1,31 @@
-from bitbots_hcm.hcm_dsd.hcm_blackboard import HcmBlackboard
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-from dynamic_stack_decider.abstract_action_element import AbstractActionElement
 
-
-class WaitForIMUStartup(AbstractActionElement):
+class WaitForIMUStartup(AbstractHCMActionElement):
     """
     Waits for the IMU to connect and does not complain as we are still in start up.
     """
+    pass
 
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
-    def perform(self, reevaluate=False):
-        pass
-
-
-class WaitForIMU(AbstractActionElement):
+class WaitForIMU(AbstractHCMActionElement):
     """
     Waits for the IMU to connect and publishes warnings while doing so
     """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
     def perform(self, reevaluate=False):
         self.blackboard.node.get_logger().warn("HCM gets no IMU data. Waiting for IMU to connect.", throttle_duration_sec=10)
 
 
-class WaitForPressureStartup(AbstractActionElement):
+class WaitForPressureStartup(AbstractHCMActionElement):
     """
     Waits for the pressure sensors to connect and not complain since we are still starting up.
     """
+    pass
 
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
-    def perform(self, reevaluate=False):
-        pass
 
-
-class WaitForPressure(AbstractActionElement):
+class WaitForPressure(AbstractHCMActionElement):
     """
     Waits for the pressure sensors to connect and publishes warnings while doing so
     """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
     def perform(self, reevaluate=False):
         self.blackboard.node.get_logger().warn(
                                          "HCM gets no correct pressure data. Waiting for pressure sensors to connect.\n"
@@ -61,28 +36,17 @@ def perform(self, reevaluate=False):
                                          "set the visualization_active parameter to True.", throttle_duration_sec=30)
 
 
-class WaitForMotorStartup(AbstractActionElement):
+class WaitForMotorStartup(AbstractHCMActionElement):
     """
     Waits for the motors on startup without complaining if it takes a moment.
     """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
-    def perform(self, reevaluate=False):
-        pass
+    pass
 
 
-class WaitForMotors(AbstractActionElement):
+class WaitForMotors(AbstractHCMActionElement):
     """
     Waits for the motors to connect and publishes warnings while doing so
     """
-
-    def __init__(self, blackboard, dsd, parameters=None):
-        super().__init__(blackboard, dsd, parameters)
-        self.blackboard: HcmBlackboard
-
     def perform(self, reevaluate=False):
         self.blackboard.node.get_logger().warn(
                                          "HCM gets no data from the motors (/joint_states). Waiting for the motors to "

From b9a881abf2d40a2639a46624425892ded9d4341e Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 19:35:10 +0200
Subject: [PATCH 11/74] Move robot state modifications to own action

---
 .../hcm_dsd/decisions/animation.py            |  2 -
 .../hcm_dsd/decisions/check_hardware.py       |  5 --
 .../bitbots_hcm/hcm_dsd/decisions/fallen.py   |  4 --
 .../bitbots_hcm/hcm_dsd/decisions/falling.py  |  4 --
 .../bitbots_hcm/hcm_dsd/decisions/kicking.py  |  5 +-
 .../bitbots_hcm/hcm_dsd/decisions/pickup.py   |  1 -
 .../bitbots_hcm/hcm_dsd/decisions/startup.py  |  1 -
 .../bitbots_hcm/hcm_dsd/decisions/walking.py  | 14 ++---
 bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd       | 57 +++++++++----------
 .../bitbots_hcm/hcm_dsd/hcm_blackboard.py     | 18 +++---
 bitbots_hcm/config/hcm_wolfgang.yaml          |  2 +
 11 files changed, 44 insertions(+), 69 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
index 6fd4e9ca3..d07c95880 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
@@ -10,7 +10,6 @@ class Record(AbstractHCMDecisionElement):
 
     def perform(self, reevaluate=False):
         if self.blackboard.record_active:
-            self.blackboard.current_state = RobotControlState.RECORD
             return "RECORD_ACTIVE"
         else:
             # robot is not recording
@@ -27,7 +26,6 @@ class PlayingExternalAnimation(AbstractHCMDecisionElement):
 
     def perform(self, reevaluate=False):
         if self.blackboard.external_animation_running:
-            self.blackboard.current_state = RobotControlState.ANIMATION_RUNNING
             return "ANIMATION_RUNNING"
         else:
             return "FREE"
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
index 1235556e2..7b02632eb 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
@@ -49,7 +49,6 @@ def perform(self, reevaluate=False):
                 self.blackboard.motor_off_time) + " seconds. Will shut down the motors and wait for commands.", throttle_duration_sec=5)
             self.publish_debug_data("Time since last motor goals",
                                     self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9)
-            self.blackboard.current_state = RobotControlState.MOTOR_OFF
             # we do an action sequence to turn off the motors and stay in motor off
             return "TURN_OFF"
 
@@ -64,7 +63,6 @@ def perform(self, reevaluate=False):
                     # tell that we have a hardware problem
                     self.had_problem = True
                     # wait for motors to connect
-                    self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
                     return "PROBLEM"
             else:
                 # we have to turn the motors on
@@ -119,7 +117,6 @@ def perform(self, reevaluate=False):
                 # wait for the IMU to start
                 return "IMU_NOT_STARTED"
             else:
-                self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
                 self.had_problem = True
                 return "PROBLEM"
 
@@ -160,10 +157,8 @@ def perform(self, reevaluate=False):
             if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - \
                     self.blackboard.start_time.nanoseconds / 1e9 < 10:
                 # wait for the pressure sensors to start
-                self.blackboard.current_state = RobotControlState.STARTUP
                 return "PRESSURE_NOT_STARTED"
             else:
-                self.blackboard.current_state = RobotControlState.HARDWARE_PROBLEM
                 return "PROBLEM"
 
         if self.had_problem:
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
index c1c7f1452..147b8b19f 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
@@ -36,22 +36,18 @@ def perform(self, reevaluate=False):
         # Decides which side is facing downwards.
         if fused_pitch > self.fallen_orientation_thresh:
             self.blackboard.node.get_logger().info("FALLEN TO THE FRONT")
-            self.blackboard.current_state = RobotControlState.FALLEN
             return "FALLEN_FRONT"
 
         if fused_pitch < -self.fallen_orientation_thresh:
             self.blackboard.node.get_logger().info("FALLEN TO THE BACK")
-            self.blackboard.current_state = RobotControlState.FALLEN
             return "FALLEN_BACK"
 
         if fused_roll > self.fallen_orientation_thresh:
             self.blackboard.node.get_logger().info("FALLEN TO THE RIGHT")
-            self.blackboard.current_state = RobotControlState.FALLEN
             return "FALLEN_RIGHT"
 
         if fused_roll < -self.fallen_orientation_thresh:
             self.blackboard.node.get_logger().info("FALLEN TO THE LEFT")
-            self.blackboard.current_state = RobotControlState.FALLEN
             return "FALLEN_LEFT"
 
         return "NOT_FALLEN"
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
index 3602e221c..1021e13ad 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
@@ -97,10 +97,6 @@ def perform(self, reevaluate=False):
         if FallDirection.STABLE in results_list:
             result = FallDirection.STABLE
 
-        # Check if we are falling at all
-        if result != FallDirection.STABLE and not reevaluate:
-            self.blackboard.current_state = RobotControlState.FALLING
-
         # Return the appropriate result
         if result == FallDirection.STABLE:
             return "NOT_FALLING"
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
index 660208a01..dcad299f8 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
@@ -3,15 +3,14 @@
 from humanoid_league_msgs.msg import RobotControlState
 
 
-class Kicking(AbstractHCMDecisionElement):
+class RecentKickGoals(AbstractHCMDecisionElement):
     """
-    Decides if the robot is currently kicking
+    Decides if the kick is currently sending joint commands
     """
 
     def perform(self, reevaluate=False):
         if self.blackboard.last_kick_feedback is not None and \
                 (self.blackboard.node.get_clock().now() - self.blackboard.last_kick_feedback).nanoseconds / 1e9 < 0.2:
-            self.blackboard.current_state = RobotControlState.KICKING
             return 'KICKING'
         else:
             return 'NOT_KICKING'
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
index 4c50e8c08..be34ae8fa 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
@@ -18,7 +18,6 @@ def perform(self, reevaluate=False):
                 sum(self.blackboard.pressures) < 10 and \
                 abs(self.blackboard.smooth_accel[0]) < self.blackboard.pickup_accel_threshold and \
                 abs(self.blackboard.smooth_accel[1]) < self.blackboard.pickup_accel_threshold:
-            self.blackboard.current_state = RobotControlState.PICKED_UP
             if not reevaluate:
                 speak("Picked up!", self.blackboard.speak_publisher, priority=50)
             # we do an action sequence to go to walkready and stay in picked up state
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
index d276c263a..8cebd08d4 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
@@ -16,7 +16,6 @@ def __init__(self, blackboard, dsd, parameters=None):
     def perform(self, reevaluate=False):
         if self.is_initial:
             self.is_initial = False
-            self.blackboard.current_state = RobotControlState.STARTUP
             return "START_UP"
         return "RUNNING"
 
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
index fb02864f8..51c9142fc 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
@@ -3,21 +3,15 @@
 from humanoid_league_msgs.msg import RobotControlState
 
 
-class Walking(AbstractHCMDecisionElement):
+class RecentWalkingGoals(AbstractHCMDecisionElement):
     """
-    Decides if the robot is currently walking
+    Decides if the robot is currently getting joint commands to from the walking node
     """
 
     def perform(self, reevaluate=False):
         if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_walking_goal_time.nanoseconds / 1e9 < 0.1:
-            self.blackboard.current_state = RobotControlState.WALKING
-            if self.blackboard.animation_requested:
-                self.blackboard.animation_requested = False
-                # we are walking but we have to stop to play an animation
-                return "STOP_WALKING"
-            else:
-                # we are walking and can stay like this
-                return "STAY_WALKING"
+            # we are walking and can stay like this
+            return "STAY_WALKING"
         else:
             return "NOT_WALKING"
 
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
index 5409a38e0..521f6a743 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
@@ -1,41 +1,38 @@
 -->HCM
 $StartHCM
-    START_UP --> @Wait + time:0.1 + r:false, @PlayAnimationDynup + direction:walkready + initial:true + r:false
+    START_UP --> @RobotStateStartup, @Wait + time:0.1 + r:false, @PlayAnimationDynup + direction:walkready + r:false
     RUNNING --> $Stop
-        STOPPED -->  @ForceStopWalking, @PlayAnimationDynup + direction:walkready + initial:true + r:false, @StayStopped
+        STOPPED --> @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:walkready + r:false, @Wait
         FREE -->$Record
-            RECORD_ACTIVE --> @StayRecord
+            RECORD_ACTIVE --> @RobotStateRecord, @Wait
             FREE --> $CheckMotors
-                MOTORS_NOT_STARTED --> @WaitForMotorStartup
-                OVERLOAD --> @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @StayMotorsOff
-                PROBLEM --> @WaitForMotors
-                TURN_OFF --> @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @StayMotorsOff
+                MOTORS_NOT_STARTED --> @RobotStateStartup, @WaitForMotorStartup
+                OVERLOAD --> @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
+                PROBLEM --> @RobotStateHardwareProblem, @WaitForMotors
+                TURN_OFF --> @RobotStateMotorOff + @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
                 TURN_ON --> @TurnMotorsOn, @PlayAnimationDynup + direction:rise
                 OKAY --> $CheckIMU
-                    IMU_NOT_STARTED --> @WaitForIMUStartup
-                    PROBLEM --> @WaitForIMU
+                    IMU_NOT_STARTED --> @RobotStateStartup, @WaitForIMUStartup
+                    PROBLEM --> @RobotStateHardwareProblem, @WaitForIMU
                     OKAY --> $CheckPressureSensor
-                        PRESSURE_NOT_STARTED --> @WaitForPressureStartup
-                        PROBLEM --> @WaitForPressure
+                        PRESSURE_NOT_STARTED --> @RobotStateStartup, @WaitForPressureStartup
+                        PROBLEM --> @RobotStateHardwareProblem, @WaitForPressure
                         OKAY --> $PickedUp
-                            PICKED_UP --> @PlayAnimationDynup + direction:walkready, @StayPickedUp
+                            PICKED_UP --> @RobotStatePickedUp, @PlayAnimationDynup + direction:walkready, @Wait
                             ON_GROUND --> $Fallen
-                                FALLEN_FRONT --> @CancelGoals, @PlayAnimationDynup + direction:front
-                                FALLEN_BACK --> @CancelGoals, @SetFootZero, @PlayAnimationDynup + direction:back
-                                FALLEN_RIGHT --> @CancelGoals, @TurnRightToBack + duration:1.5, @PlayAnimationDynup + direction:back
-                                FALLEN_LEFT --> @CancelGoals, @TurnLeftToBack + duration:1.5, @PlayAnimationDynup + direction:back
+                                FALLEN_FRONT --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @PlayAnimationDynup + direction:front
+                                FALLEN_BACK --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @SetFootZero, @PlayAnimationDynup + direction:back
+                                FALLEN_RIGHT --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @PlayAnimationTurningBackRight
+                                FALLEN_LEFT --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @PlayAnimationTurningBackLeft
                                 NOT_FALLEN --> $Falling
-                                    FALLING_LEFT --> @CancelGoals, @FallingPoseLeft + duration:0.5
-                                    FALLING_RIGHT --> @CancelGoals, @FallingPoseRight + duration:0.5
-                                    FALLING_FRONT --> @CancelGoals, @FallingPoseFront + duration:0.5
-                                    FALLING_BACK --> @CancelGoals, @FallingPoseBack + duration:0.5
-                                    NOT_FALLING --> $Sitting
-                                        YES --> @PlayAnimationDynup + direction:rise
-                                        NO --> $PlayingExternalAnimation
-                                            ANIMATION_RUNNING --> @StayAnimationRunning
-                                            FREE --> $Walking
-                                                STOP_WALKING --> @StopWalking
-                                                STAY_WALKING --> @StayWalking
-                                                NOT_WALKING --> $Kicking
-                                                    KICKING --> @StayKicking
-                                                    NOT_KICKING --> @StayControlable
+                                    FALLING_LEFT --> @RobotStateFalling, @CancelGoals, @StopWalking, @PlayAnimationFallingLeft, @Wait
+                                    FALLING_RIGHT --> @RobotStateFalling, @CancelGoals, @StopWalking, @PlayAnimationFallingRight, @Wait
+                                    FALLING_FRONT --> @RobotStateFalling, @CancelGoals, @StopWalking, @PlayAnimationFallingFront, @Wait
+                                    FALLING_BACK --> @RobotStateFalling, @CancelGoals, @StopWalking, @PlayAnimationFallingBack, @Wait
+                                    NOT_FALLING --> $PlayingExternalAnimation
+                                        ANIMATION_RUNNING --> @StopWalking, @RobotStateAnimationRunning, @Wait
+                                        FREE --> $RecentWalkingGoals
+                                            STAY_WALKING --> @RobotStateWalking, @Wait
+                                            NOT_WALKING --> $RecentKickGoals
+                                                KICKING --> @RobotStateKicking, @Wait
+                                                NOT_KICKING --> @RobotStateControllable, @Wait
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index 2f5c36e26..d1a335de1 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -72,14 +72,14 @@ def __init__(self, node: Node):
         self.record_active: bool = False
 
         # Get animation parameters
-        self.falling_animation_front = self.node.get_parameter("animations.falling_front").value
-        self.falling_animation_back = self.node.get_parameter("animations.falling_back").value
-        self.falling_animation_left = self.node.get_parameter("animations.falling_left").value
-        self.falling_animation_right = self.node.get_parameter("animations.falling_right").value
-
-        # Motors
-
-        # State
+        self.animation_name_falling_front: str = self.node.get_parameter("animations.falling_front").value
+        self.animation_name_falling_back: str = self.node.get_parameter("animations.falling_back").value
+        self.animation_name_falling_left: str = self.node.get_parameter("animations.falling_left").value
+        self.animation_name_falling_right: str = self.node.get_parameter("animations.falling_right").value
+        self.animation_name_turning_back_left: str = self.node.get_parameter("animations.turning_back_left").value
+        self.animation_name_turning_back_right: str = self.node.get_parameter("animations.turning_back_right").value
+
+        # Motor State
         # Initialize with current time, or motors will be turned off on start
         self.last_motor_goal_time: Time = self.node.get_clock().now()
         self.last_motor_update_time =  Time()
@@ -87,7 +87,7 @@ def __init__(self, node: Node):
         self.previous_joint_state: Optional[JointState] = None
         self.is_power_on: bool = False
 
-        # Parameters
+        # Motor Parameters
         self.motor_timeout_duration: float = self.node.get_parameter("motor_timeout_duration").value
         self.motor_off_time: float = self.node.get_parameter("motor_off_time").value
         self.imu_timeout_duration: float = self.node.get_parameter("imu_timeout_duration").value
diff --git a/bitbots_hcm/config/hcm_wolfgang.yaml b/bitbots_hcm/config/hcm_wolfgang.yaml
index 991a323ef..e1d21fe42 100644
--- a/bitbots_hcm/config/hcm_wolfgang.yaml
+++ b/bitbots_hcm/config/hcm_wolfgang.yaml
@@ -17,6 +17,8 @@
       falling_back: "falling_back"
       falling_left: "falling_left"
       falling_right: "falling_right"
+      turning_back_left: "turning_back_left"
+      turning_back_right: "turning_back_right"
       anim_package: "wolfgang_animations"
 
     # Falling

From 51d15ada999c5d70488fdd25324c913d02745c2e Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 19:35:25 +0200
Subject: [PATCH 12/74] Add pause script to build

---
 bitbots_hcm/setup.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/bitbots_hcm/setup.py b/bitbots_hcm/setup.py
index fb9ace321..93336689b 100644
--- a/bitbots_hcm/setup.py
+++ b/bitbots_hcm/setup.py
@@ -27,6 +27,7 @@
     ],
     scripts=[
         'scripts/hcm_led.py',
+        'scripts/pause.py',
     ],
     install_requires=[
         'launch',

From eaa2595ff474820222a1de5df92a25d2598c2243 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 19:35:45 +0200
Subject: [PATCH 13/74] Cleanup cpp

---
 bitbots_hcm/src/hcm.cpp | 68 +++++++++++++++++++++++------------------
 1 file changed, 39 insertions(+), 29 deletions(-)

diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index ae8454660..0b7ed1727 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -26,36 +26,45 @@ class HCM_CPP : public rclcpp::Node {
     : Node("hcm_cpp",
            rclcpp::NodeOptions().allow_undeclared_parameters(true).automatically_declare_parameters_from_overrides(
                true)) {
-    // these are provided by the launch and not in the yaml file therefore we need to handle them seperatly
+
+    // These are provided by the launch and not in the yaml file therefore we need to handle them seperatly
     bool use_sim_time, simulation_active, visualization_active;
     this->get_parameter("use_sim_time", use_sim_time);
     this->get_parameter("simulation_active", simulation_active);
     this->get_parameter("visualization_active", visualization_active);
 
+    // HCM state
     current_state_ = humanoid_league_msgs::msg::RobotControlState::STARTUP;
 
+    // Sensor states
     current_imu_ = sensor_msgs::msg::Imu();
     current_pressure_left_ = bitbots_msgs::msg::FootPressure();
     current_pressure_right_ = bitbots_msgs::msg::FootPressure();
-    current_cop_left_ = geometry_msgs::msg::PointStamped();
-    current_cop_right_ = geometry_msgs::msg::PointStamped();
     current_joint_state_ = sensor_msgs::msg::JointState();
+
+    // Walking state
     last_walking_time_ = builtin_interfaces::msg::Time();
+
+    // Animation state
     record_active_ = false;
     external_animation_running_ = false;
     animation_requested_ = false;
     last_animation_goal_time_ = builtin_interfaces::msg::Time();
 
-    // from bitbots_hcm.humanoid_control_module import HardwareControlManager
+    // Initialize HCM logic
+    // Import Python module
+    // "from bitbots_hcm.humanoid_control_module import HardwareControlManager"
     auto hcm_module = py::module::import("bitbots_hcm.humanoid_control_module");
+
+    // Create HCM object
     // hcm = HardwareControlManager()
     hcm_py_ = hcm_module.attr("HardwareControlManager")(use_sim_time, simulation_active, visualization_active);
 
-    // create goal publisher
+    // Create publishers
     pub_controller_command_ = this->create_publisher<bitbots_msgs::msg::JointCommand>("DynamixelController/command", 1);
     pub_robot_state_ = this->create_publisher<humanoid_league_msgs::msg::RobotControlState>("robot_state", 1);
 
-    // create subscriber motor goals
+    // Create subscribers for goals
     anim_sub_ = this->create_subscription<humanoid_league_msgs::msg::Animation>(
         "animation", 1, std::bind(&HCM_CPP::animation_callback, this, _1));
     dynup_sub_ = this->create_subscription<bitbots_msgs::msg::JointCommand>(
@@ -69,63 +78,66 @@ class HCM_CPP : public rclcpp::Node {
     walk_sub_ = this->create_subscription<bitbots_msgs::msg::JointCommand>(
         "walking_motor_goals", 1, std::bind(&HCM_CPP::walking_goal_callback, this, _1));
 
-    // subscriber for high frequency topics
+    // Create subscriber for high frequency sensor data
     joint_state_sub_ = this->create_subscription<sensor_msgs::msg::JointState>(
-        "joint_states", 1, std::bind(&HCM_CPP::joint_state_callback, this, _1));
-    cop_l_sub_ = this->create_subscription<geometry_msgs::msg::PointStamped>(
-        "cop_l", 1, std::bind(&HCM_CPP::cop_l_callback, this, _1));
-    cop_r_sub_ = this->create_subscription<geometry_msgs::msg::PointStamped>(
-        "cop_r", 1, std::bind(&HCM_CPP::cop_l_callback, this, _1));
+      "joint_states", 1, std::bind(&HCM_CPP::joint_state_callback, this, _1));
     pressure_l_sub_ = this->create_subscription<bitbots_msgs::msg::FootPressure>(
-        "foot_pressure_left/filtered", 1, std::bind(&HCM_CPP::pressure_l_callback, this, _1));
+      "foot_pressure_left/filtered", 1, std::bind(&HCM_CPP::pressure_l_callback, this, _1));
     pressure_r_sub_ = this->create_subscription<bitbots_msgs::msg::FootPressure>(
-        "foot_pressure_right/filtered", 1, std::bind(&HCM_CPP::pressure_r_callback, this, _1));
-    imu_sub_ =
-        this->create_subscription<sensor_msgs::msg::Imu>("imu/data", 1, std::bind(&HCM_CPP::imu_callback, this, _1));
+      "foot_pressure_right/filtered", 1, std::bind(&HCM_CPP::pressure_r_callback, this, _1));
+    imu_sub_ = this->create_subscription<sensor_msgs::msg::Imu>(
+      "imu/data", 1, std::bind(&HCM_CPP::imu_callback, this, _1));
   }
 
   void animation_callback(humanoid_league_msgs::msg::Animation msg) {
     // The animation server is sending us goal positions for the next keyframe
     last_animation_goal_time_ = msg.header.stamp;
 
+    // Check if the message is an animation request
     if (msg.request) {
       RCLCPP_INFO(this->get_logger(), "Got Animation request. HCM will try to get controllable now.");
-      // animation has to wait
-      // dsd should try to become controllable
+      // Animation has to wait
+      // DSD should try to become controllable
       animation_requested_ = true;
       return;
     }
+
+    // TODO: REWORK MUTEX
+
+    // Check if the message is the start of an animation
     if (msg.first) {
       if (msg.hcm) {
-        // coming from ourselves
-        // we don't have to do anything, since we must be in the right state
+        // This was an animation from the DSD
+        // We don't have to do anything, since we must be in the right state
       } else {
-        // coming from outside
-        // check if we can run an animation now
+        // Coming from outside
+        // Check if we can run an animation now
         if (current_state_ != humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
           RCLCPP_WARN(this->get_logger(), "HCM is not controllable, animation refused.");
         } else {
-          // we're already controllable, go to animation running
+          // We're already controllable, go to animation running
           external_animation_running_ = true;
         }
       }
     }
 
+    // Check if the message is the end of an animation
     if (msg.last) {
       if (msg.hcm) {
         // This was an animation from the DSD
-        // we don't have to do anything, since we must be in the right state
+        // We don't have to do anything, since we must be in the right state
       } else {
-        // this is the last frame, we want to tell the DSD that we're finished with the animations
+        // This is the last frame, we want to tell the DSD that we're finished with the animations
         external_animation_running_ = false;
         if (msg.position.points.size() == 0) {
-          // probably this was just to tell us we're finished
+          // Probably this was just to tell us we're finished
           // we don't need to set another position to the motors
           return;
         }
       }
     }
-    // forward positions to motors, if some where transmitted
+
+    // Forward joint positions to motors
     if (msg.position.points.size() > 0 && current_state_ != humanoid_league_msgs::msg::RobotControlState::GETTING_UP) {
       bitbots_msgs::msg::JointCommand out_msg = bitbots_msgs::msg::JointCommand();
       out_msg.positions = msg.position.points[0].positions;
@@ -232,8 +244,6 @@ class HCM_CPP : public rclcpp::Node {
   sensor_msgs::msg::Imu current_imu_;
   bitbots_msgs::msg::FootPressure current_pressure_left_;
   bitbots_msgs::msg::FootPressure current_pressure_right_;
-  geometry_msgs::msg::PointStamped current_cop_left_;
-  geometry_msgs::msg::PointStamped current_cop_right_;
   sensor_msgs::msg::JointState current_joint_state_;
   builtin_interfaces::msg::Time last_walking_time_;
   bool record_active_;

From f1e53cc5dad36216d0d2b023fa8222a7d873bc06 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 19:52:05 +0200
Subject: [PATCH 14/74] Add comments to hcm cpp

---
 bitbots_hcm/src/hcm.cpp | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index 0b7ed1727..879a72e47 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -215,7 +215,9 @@ class HCM_CPP : public rclcpp::Node {
   }
 
   void tick() {
-    // update all input to the HCM
+    // Performs one tick of the HCM DSD
+
+    // Pass all the data nessesary data to the python module
     hcm_py_.attr("set_imu")(ros2_python_extension::toPython(current_imu_));
     hcm_py_.attr("set_pressure_left")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_left_));
     hcm_py_.attr("set_pressure_right")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_right_));
@@ -226,33 +228,49 @@ class HCM_CPP : public rclcpp::Node {
     hcm_py_.attr("set_external_animation_running")(external_animation_running_);
     hcm_py_.attr("set_animation_requested")(animation_requested_);
     hcm_py_.attr("set_last_animation_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_animation_goal_time_));
-    // run HCM
+
+    // Run HCM Python DSD code
     hcm_py_.attr("tick")();
-    // update current HCM state for joint mutex
+
+    // Pull the current robot state from the python module
+    // It is used to perform the joint mutex
     py::object result = hcm_py_.attr("get_state")();
     current_state_ = result.cast<int>();
-    // publish current state
+
+    // Publish current robot state
     humanoid_league_msgs::msg::RobotControlState state_msg = humanoid_league_msgs::msg::RobotControlState();
     state_msg.state = current_state_;
     pub_robot_state_->publish(state_msg);
   }
 
 private:
+  // Python interpreter
   py::scoped_interpreter python_;
+  // Python hcm module
   py::object hcm_py_;
+  // The current robot state
   int current_state_;
+
+  // Sensor states
   sensor_msgs::msg::Imu current_imu_;
   bitbots_msgs::msg::FootPressure current_pressure_left_;
   bitbots_msgs::msg::FootPressure current_pressure_right_;
   sensor_msgs::msg::JointState current_joint_state_;
+
+  // Walking state
   builtin_interfaces::msg::Time last_walking_time_;
+
+  // Animation states
   bool record_active_;
   bool external_animation_running_;
   bool animation_requested_;
   builtin_interfaces::msg::Time last_animation_goal_time_;
 
+  // Publishers
   rclcpp::Publisher<bitbots_msgs::msg::JointCommand>::SharedPtr pub_controller_command_;
   rclcpp::Publisher<humanoid_league_msgs::msg::RobotControlState>::SharedPtr pub_robot_state_;
+
+  // Subscribers
   rclcpp::Subscription<humanoid_league_msgs::msg::Animation>::SharedPtr anim_sub_;
   rclcpp::Subscription<bitbots_msgs::msg::JointCommand>::SharedPtr dynup_sub_;
   rclcpp::Subscription<bitbots_msgs::msg::JointCommand>::SharedPtr head_sub_;

From fbd81d20f92ce33020fcd4a211c7f4f2f6ebf5b5 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 19:52:25 +0200
Subject: [PATCH 15/74] Remove duplicated build setup

---
 bitbots_hcm/CMakeLists.txt |  2 --
 bitbots_hcm/setup.cfg      |  4 ----
 bitbots_hcm/setup.py       | 40 --------------------------------------
 3 files changed, 46 deletions(-)
 delete mode 100644 bitbots_hcm/setup.cfg
 delete mode 100644 bitbots_hcm/setup.py

diff --git a/bitbots_hcm/CMakeLists.txt b/bitbots_hcm/CMakeLists.txt
index 2afd6cc93..ec932cf47 100644
--- a/bitbots_hcm/CMakeLists.txt
+++ b/bitbots_hcm/CMakeLists.txt
@@ -55,8 +55,6 @@ install(DIRECTORY config
 
 install(DIRECTORY scripts/ USE_SOURCE_PERMISSIONS DESTINATION lib/${PROJECT_NAME})
 
-install(DIRECTORY bitbots_hcm/classifier DESTINATION share/${PROJECT_NAME})
-
 install(DIRECTORY bitbots_hcm/hcm_dsd/actions DESTINATION share/${PROJECT_NAME} FILES_MATCHING PATTERN "*.py")
 
 install(DIRECTORY bitbots_hcm/hcm_dsd/decisions DESTINATION share/${PROJECT_NAME} FILES_MATCHING PATTERN "*.py")
diff --git a/bitbots_hcm/setup.cfg b/bitbots_hcm/setup.cfg
deleted file mode 100644
index 3578a0006..000000000
--- a/bitbots_hcm/setup.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[develop]
-script_dir=$base/lib/bitbots_hcm
-[install]
-install_scripts=$base/lib/bitbots_hcm
diff --git a/bitbots_hcm/setup.py b/bitbots_hcm/setup.py
deleted file mode 100644
index 93336689b..000000000
--- a/bitbots_hcm/setup.py
+++ /dev/null
@@ -1,40 +0,0 @@
-import glob
-import os
-
-from setuptools import find_packages
-from setuptools import setup
-
-package_name = 'bitbots_hcm'
-
-
-setup(
-    name=package_name,
-    packages=find_packages(exclude=['test']),
-    data_files=[
-        ('share/' + package_name, ['package.xml']),
-        ('share/' + package_name + '/launch',
-            glob.glob('launch/*.launch')),
-
-        ('share/' + package_name + '/config',
-            glob.glob('config/*')),
-
-        ('share/' + package_name + '/actions',
-            glob.glob(package_name + '/hcm_dsd/actions/*.py')),
-        ('share/' + package_name + '/decisions' ,
-            glob.glob(package_name + '/hcm_dsd/decisions/*.py')),
-        ('share/' + package_name,
-            [package_name+'/hcm_dsd/hcm.dsd'])
-    ],
-    scripts=[
-        'scripts/hcm_led.py',
-        'scripts/pause.py',
-    ],
-    install_requires=[
-        'launch',
-        'setuptools',
-    ],
-    include_package_data=True,
-    zip_safe=True,
-    keywords=['ROS'],
-    license='MIT',
-)

From bf38e888cbb0511f3cf39d1b16fa8795df35de19 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 20:11:39 +0200
Subject: [PATCH 16/74] Rework joint mutex

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd |  8 ++++----
 bitbots_hcm/src/hcm.cpp                 | 17 ++++++++++++-----
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
index 521f6a743..b511babe3 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
@@ -7,9 +7,9 @@ $StartHCM
             RECORD_ACTIVE --> @RobotStateRecord, @Wait
             FREE --> $CheckMotors
                 MOTORS_NOT_STARTED --> @RobotStateStartup, @WaitForMotorStartup
-                OVERLOAD --> @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
+                OVERLOAD --> @RobotStateMotorOff, @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
                 PROBLEM --> @RobotStateHardwareProblem, @WaitForMotors
-                TURN_OFF --> @RobotStateMotorOff + @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
+                TURN_OFF --> @RobotStateMotorOff, @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
                 TURN_ON --> @TurnMotorsOn, @PlayAnimationDynup + direction:rise
                 OKAY --> $CheckIMU
                     IMU_NOT_STARTED --> @RobotStateStartup, @WaitForIMUStartup
@@ -22,8 +22,8 @@ $StartHCM
                             ON_GROUND --> $Fallen
                                 FALLEN_FRONT --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @PlayAnimationDynup + direction:front
                                 FALLEN_BACK --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @SetFootZero, @PlayAnimationDynup + direction:back
-                                FALLEN_RIGHT --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @PlayAnimationTurningBackRight
-                                FALLEN_LEFT --> @RobotStateFallen, @CancelGoals, @StopWalking, @RobotStateGettingUp, @PlayAnimationTurningBackLeft
+                                FALLEN_RIGHT --> @RobotStateFallen, @CancelGoals, @StopWalking, @PlayAnimationTurningBackRight
+                                FALLEN_LEFT --> @RobotStateFallen, @CancelGoals, @StopWalking, @PlayAnimationTurningBackLeft
                                 NOT_FALLEN --> $Falling
                                     FALLING_LEFT --> @RobotStateFalling, @CancelGoals, @StopWalking, @PlayAnimationFallingLeft, @Wait
                                     FALLING_RIGHT --> @RobotStateFalling, @CancelGoals, @StopWalking, @PlayAnimationFallingRight, @Wait
diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index 879a72e47..d8b473b42 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -102,8 +102,6 @@ class HCM_CPP : public rclcpp::Node {
       return;
     }
 
-    // TODO: REWORK MUTEX
-
     // Check if the message is the start of an animation
     if (msg.first) {
       if (msg.hcm) {
@@ -137,8 +135,12 @@ class HCM_CPP : public rclcpp::Node {
       }
     }
 
-    // Forward joint positions to motors
-    if (msg.position.points.size() > 0 && current_state_ != humanoid_league_msgs::msg::RobotControlState::GETTING_UP) {
+    // Forward joint positions to motors if there are any and we're in the right state
+    if (msg.position.points.size() > 0 && (
+        current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
+        current_state_ == humanoid_league_msgs::msg::RobotControlState::ANIMATION_RUNNING ||
+        current_state_ == humanoid_league_msgs::msg::RobotControlState::FALLING ||
+        current_state_ == humanoid_league_msgs::msg::RobotControlState::FALLEN)) {
       bitbots_msgs::msg::JointCommand out_msg = bitbots_msgs::msg::JointCommand();
       out_msg.positions = msg.position.points[0].positions;
       out_msg.joint_names = msg.position.joint_names;
@@ -162,18 +164,21 @@ class HCM_CPP : public rclcpp::Node {
 
   void dynup_callback(const bitbots_msgs::msg::JointCommand msg) {
     if (current_state_ == humanoid_league_msgs::msg::RobotControlState::STARTUP ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::FALLEN ||
         current_state_ == humanoid_league_msgs::msg::RobotControlState::GETTING_UP ||
+        current_state_ == humanoid_league_msgs::msg::RobotControlState::MOTOR_OFF ||
+        current_state_ == humanoid_league_msgs::msg::RobotControlState::PICKED_UP ||
         current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
       pub_controller_command_->publish(msg);
     }
   }
+
   void head_goal_callback(const bitbots_msgs::msg::JointCommand msg) {
     if (current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
         current_state_ == humanoid_league_msgs::msg::RobotControlState::WALKING) {
       pub_controller_command_->publish(msg);
     }
   }
+
   void kick_goal_callback(const bitbots_msgs::msg::JointCommand msg) {
     if (current_state_ == humanoid_league_msgs::msg::RobotControlState::KICKING ||
         current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
@@ -181,6 +186,7 @@ class HCM_CPP : public rclcpp::Node {
       pub_controller_command_->publish(msg);
     }
   }
+
   void record_goal_callback(const bitbots_msgs::msg::JointCommand msg) {
     if (msg.joint_names.size() == 0) {
       // record tells us that its finished
@@ -190,6 +196,7 @@ class HCM_CPP : public rclcpp::Node {
       pub_controller_command_->publish(msg);
     }
   }
+  
   void walking_goal_callback(bitbots_msgs::msg::JointCommand msg) {
     last_walking_time_ = msg.header.stamp;
     if (current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||

From 5008ecd660faaa60cdf34ceba14746cd0f1a11e7 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 21:19:20 +0200
Subject: [PATCH 17/74] Cleanup head mover

---
 bitbots_head_mover/config/head_config.yml |  16 +++
 bitbots_head_mover/src/move_head.cpp      | 133 +++++++++++++++-------
 2 files changed, 109 insertions(+), 40 deletions(-)

diff --git a/bitbots_head_mover/config/head_config.yml b/bitbots_head_mover/config/head_config.yml
index 69feb1be9..ce35a1cc6 100644
--- a/bitbots_head_mover/config/head_config.yml
+++ b/bitbots_head_mover/config/head_config.yml
@@ -33,11 +33,13 @@ move_head:
     tilt_speed:
       type: double
       default_value: 6.0
+      description: "Tilt speed for the look at action"
       validation:
         bounds<>: [0.0, 8.0]
     pan_speed:
       type: double
       default_value: 6.0
+      description: "Pan speed for the look at action"
       validation:
         bounds<>: [0.0, 8.0]
 
@@ -46,10 +48,12 @@ move_head:
     # search pattern speed
     tilt_speed:
       type: double
+      description: "Tilt speed for the search pattern"
       default_value: 3.0
 
     pan_speed:
       type: double
+      description: "Pan speed for the search pattern"
       default_value: 3.0
 
     # Max values for the search pattern
@@ -86,10 +90,12 @@ move_head:
   search_pattern_penalty:
     tilt_speed:
       type: double
+      description: "Tilt speed for the search pattern"
       default_value: 1.0
 
     pan_speed:
       type: double
+      description: "Pan speed for the search pattern"
       default_value: 2.0
 
     pan_max:
@@ -109,6 +115,7 @@ move_head:
     scan_lines:
       type: int
       default_value: 2
+      description: "Number of scan horizontal lines for the search pattern"
       validation:
         gt_eq<>: [1]
 
@@ -122,10 +129,12 @@ move_head:
   search_pattern_field_features:
     tilt_speed:
       type: double
+      description: "Tilt speed for the search pattern"
       default_value: 3.0
 
     pan_speed:
       type: double
+      description: "Pan speed for the search pattern"
       default_value: 3.0
 
     pan_max:
@@ -145,6 +154,7 @@ move_head:
     scan_lines:
       type: int
       default_value: 2
+      description: "Number of scan horizontal lines for the search pattern"
       validation:
         gt_eq<>: [1]
 
@@ -158,10 +168,12 @@ move_head:
   front_search_pattern:
     tilt_speed:
       type: double
+      description: "Tilt speed for the search pattern"
       default_value: 3.0
 
     pan_speed:
       type: double
+      description: "Pan speed for the search pattern"
       default_value: 3.0
 
     pan_max:
@@ -181,6 +193,7 @@ move_head:
     scan_lines:
       type: int
       default_value: 2
+      description: "Number of scan horizontal lines for the search pattern"
       validation:
         gt_eq<>: [1]
 
@@ -194,10 +207,12 @@ move_head:
   look_forward:
     tilt_speed:
       type: double
+      description: "Tilt speed for the search pattern"
       default_value: 3.0
 
     pan_speed:
       type: double
+      description: "Pan speed for the search pattern"
       default_value: 3.0
 
     pan_max:
@@ -217,6 +232,7 @@ move_head:
     scan_lines:
       type: int
       default_value: 2
+      description: "Number of scan horizontal lines for the search pattern"
       validation:
         gt_eq<>: [1]
 
diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index 85ad660a4..3b46695e4 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -39,34 +39,36 @@ using std::placeholders::_1;
 using namespace std::chrono_literals;
 
 namespace move_head {
+
+#define DEG_TO_RAD M_PI / 180
+
 using LookAtGoal = bitbots_msgs::action::LookAt;
 using LookAtGoalHandle = rclcpp_action::ServerGoalHandle<LookAtGoal>;
 
 class HeadMover {
   std::shared_ptr<rclcpp::Node> node_;
 
-  // declare subscriber and publisher
+  // Declare subscriber
   rclcpp::Subscription<humanoid_league_msgs::msg::HeadMode>::SharedPtr
     head_mode_subscriber_;
   rclcpp::Subscription<sensor_msgs::msg::JointState>::SharedPtr
     joint_state_subscriber_;
 
+  // Declare publisher
   rclcpp::Publisher<bitbots_msgs::msg::JointCommand>::SharedPtr
     position_publisher_;
 
-  // declare tf
+  // Declare tf
   std::shared_ptr<tf2_ros::Buffer> tf_buffer_;
-
   std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
 
-  // declare variables
-  humanoid_league_msgs::msg::HeadMode head_mode_;
-  sensor_msgs::msg::JointState current_joint_state_;
+  // Declare variables
+  uint head_mode_;
+  std::shared_ptr<sensor_msgs::msg::JointState> current_joint_state_;
   bitbots_msgs::msg::JointCommand pos_msg_;
-  double DEG_TO_RAD = M_PI / 180;
   geometry_msgs::msg::PoseWithCovarianceStamped tf_precision_pose_;
 
-  // declare robot model and planning scene
+  // Declare robot model and planning scene for moveit
   robot_model_loader::RobotModelLoaderPtr loader_;
   moveit::core::RobotModelPtr robot_model_;
   moveit::core::RobotStatePtr robot_state_;
@@ -74,21 +76,25 @@ class HeadMover {
   planning_scene_monitor::PlanningSceneMonitorPtr planning_scene_monitor_;
   planning_scene::PlanningScenePtr planning_scene_;
 
-  // declare params
+  // Declare parameters and parameter listener
   move_head::Params params_;
   std::shared_ptr<move_head::ParamListener> param_listener_;
 
+  // Declare timer that executes the main loop
   rclcpp::TimerBase::SharedPtr timer_;
 
+  // Declare variable for the current search pattern
   std::vector<std::pair<double, double>> pattern_;
-  uint prev_head_mode_;
+  // Store previous head mode
+  uint prev_head_mode_ = -1;
 
-  double threshold_;
+  // Declare variables for the current search patterns parameters
+  double threshold_ = 0;
   int index_ = 0;
-  double pan_speed_;
-  double tilt_speed_;
+  double pan_speed_ = 0;
+  double tilt_speed_ = 0;
 
-  // action server
+  // Action server for the look at action
   rclcpp_action::Server<LookAtGoal>::SharedPtr action_server_;
   bool action_running_ = false;
 
@@ -96,15 +102,20 @@ class HeadMover {
   HeadMover() {
     node_ = std::make_shared<rclcpp::Node>("head_mover");
 
+    // Initialize publisher for head motor goals
     position_publisher_ =
       node_->create_publisher<bitbots_msgs::msg::JointCommand>(
       "head_motor_goals", 10);
+
+    // Initialize subscriber for head mode
     head_mode_subscriber_ =
       node_->create_subscription<humanoid_league_msgs::msg::HeadMode>(
       "head_mode", 10,
       [this](const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
         head_mode_callback(msg);
       });
+
+    // Initialize subscriber for the current joint states of the robot
     joint_state_subscriber_ =
       node_->create_subscription<sensor_msgs::msg::JointState>(
       "joint_states", 10,
@@ -112,12 +123,15 @@ class HeadMover {
         joint_state_callback(msg);
       });
 
-    // load parameters from config
+    // Create parameter listener and load initial set of parameters
     param_listener_ = std::make_shared<move_head::ParamListener>(node_);
     params_ = param_listener_->get_params();
 
+    // Create a seperate node for moveit, this way we can use rqt to change parameters,
+    // because some moveit parameters break the gui
     auto moveit_node = std::make_shared<rclcpp::Node>("moveit_head_mover_node");
 
+    // Get the parameters from the move_group node
     auto parameters_client =
       std::make_shared<rclcpp::SyncParametersClient>(node_, "/move_group");
     while (!parameters_client->wait_for_service(1s)) {
@@ -132,14 +146,15 @@ class HeadMover {
         "service not available, waiting again...");
     }
 
+    // Extract the robot_description
     rcl_interfaces::msg::ListParametersResult parameter_list =
       parameters_client->list_parameters(
       {"robot_description_kinematics"},
       10);
+
+    // Set the robot description parameters in the moveit node
     auto copied_parameters =
       parameters_client->get_parameters(parameter_list.names);
-
-    // set the parameters to our node
     for (auto & parameter : copied_parameters) {
       moveit_node->declare_parameter(
         parameter.get_name(),
@@ -147,8 +162,9 @@ class HeadMover {
       moveit_node->set_parameter(parameter);
     }
 
+
+    // Load robot description / robot model into moveit
     std::string robot_description = "robot_description";
-    // get the robot description from the blackboard
     loader_ = std::make_shared<robot_model_loader::RobotModelLoader>(
       robot_model_loader::RobotModelLoader(
         moveit_node, robot_description,
@@ -161,13 +177,16 @@ class HeadMover {
         "blackboard (bitbots_bringup base.launch)?",
         robot_description.c_str());
     }
+
+    // Recreate robot state
     robot_state_.reset(new moveit::core::RobotState(robot_model_));
     robot_state_->setToDefaultValues();
 
+    // Recreate collision state
     collision_state_.reset(new moveit::core::RobotState(robot_model_));
     collision_state_->setToDefaultValues();
 
-    // get planning scene for collision checking
+    // Get planning scene for collision checking
     planning_scene_monitor_ =
       std::make_shared<planning_scene_monitor::PlanningSceneMonitor>(
       moveit_node, loader_);
@@ -178,7 +197,7 @@ class HeadMover {
         "failed to connect to planning scene");
     }
 
-    // prepare the pos_msg
+    // Prepare the pos_msg with default values
     pos_msg_.joint_names = {"HeadPan", "HeadTilt"};
     pos_msg_.positions = {0, 0};
     pos_msg_.velocities = {0, 0};
@@ -186,15 +205,14 @@ class HeadMover {
       params_.max_acceleration_pan};
     pos_msg_.max_currents = {-1, -1};
 
-    // apparently tf_listener is necessary but unused
+    // Create tf buffer and listener to update it
     tf_buffer_ = std::make_shared<tf2_ros::Buffer>(node_->get_clock());
     tf_listener_ = std::make_shared<tf2_ros::TransformListener>(*tf_buffer_);
 
-    prev_head_mode_ = -1;
+    // Initialize variables
     threshold_ = params_.position_reached_threshold * DEG_TO_RAD;
-    pan_speed_ = 0;
-    tilt_speed_ = 0;
 
+    // Initialize action server for look at action
     action_server_ = rclcpp_action::create_server<LookAtGoal>(
       node_, "look_at_goal",
       std::bind(
@@ -203,6 +221,7 @@ class HeadMover {
       std::bind(&HeadMover::handle_cancel, this, std::placeholders::_1),
       std::bind(&HeadMover::handle_accepted, this, std::placeholders::_1));
 
+    // Initialize timer for main loop
     timer_ = rclcpp::create_timer(
       node_, node_->get_clock(), 10ms,
       [this] {behave();});
@@ -210,20 +229,29 @@ class HeadMover {
 
   void head_mode_callback(
     const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
-    head_mode_ = *msg;
+    head_mode_ = msg->head_mode;
   }
 
   void joint_state_callback(const sensor_msgs::msg::JointState::SharedPtr msg) {
-    current_joint_state_ = *msg;
+    current_joint_state_ = msg;
   }
 
+  /***
+   * @brief Handles the goal request for the look at action
+   *
+   * @param uuid
+   * @param goal
+  */
   rclcpp_action::GoalResponse handle_goal(
     const rclcpp_action::GoalUUID & uuid,
     std::shared_ptr<const LookAtGoal::Goal> goal) {
-    RCLCPP_INFO(node_->get_logger(), "Received goal request");
+
+    // Avoid unused parameter warning
     (void)uuid;
+    RCLCPP_DEBUG(node_->get_logger(), "Received goal request");
+
+    // Bring the goal point into the planning frame
     geometry_msgs::msg::PointStamped new_point;
-    // check if goal is in range collision wise
     try {
       new_point = tf_buffer_->transform(
         goal->look_at_position,
@@ -235,12 +263,16 @@ class HeadMover {
         ex.what());
       return rclcpp_action::GoalResponse::REJECT;
     }
+
+    // Get the motor goals that are needed to look at the point
     std::pair<double, double> pan_tilt =
       get_motor_goals_from_point(new_point.point);
+
+    // Check whether the goal is in range pan and tilt wise
     bool goal_not_in_range =
       check_head_collision(pan_tilt.first, pan_tilt.second);
-    // check whether the goal is in range pan and tilt wise
 
+    // Check whether the action goal is valid and can be executed
     if (action_running_ || goal_not_in_range ||
       !(params_.max_pan[0] < pan_tilt.first &&
       pan_tilt.first < params_.max_pan[1]) ||
@@ -254,13 +286,16 @@ class HeadMover {
 
   rclcpp_action::CancelResponse handle_cancel(
     const std::shared_ptr<LookAtGoalHandle> goal_handle) {
-    RCLCPP_INFO(node_->get_logger(), "Received request to cancel goal");
+    // Avoid unused parameter warning
     (void)goal_handle;
+    RCLCPP_INFO(node_->get_logger(), "Received request to cancel goal");
+    // Set the action_running_ flag to false, so that the action can be executed again
     action_running_ = false;
     return rclcpp_action::CancelResponse::ACCEPT;
   }
 
   void handle_accepted(const std::shared_ptr<LookAtGoalHandle> goal_handle) {
+    // Spawn a new thread that executes the look at action until we reach the goal
     std::thread{
       std::bind(&HeadMover::execute_look_at, this, std::placeholders::_1),
       goal_handle}
@@ -268,35 +303,51 @@ class HeadMover {
   }
 
   void execute_look_at(const std::shared_ptr<LookAtGoalHandle> goal_handle) {
+    // Yeah seems like we are executing the action
     action_running_ = true;
 
     RCLCPP_INFO(node_->get_logger(), "Executing goal");
+
+    // Get the goal from the goal handle
     const auto goal = goal_handle->get_goal();
+
+    // Create feedback and result messages
     auto feedback = std::make_shared<LookAtGoal::Feedback>();
-    bool success =
-      false;    // checks whether we look at the position we want to look at
+    // Flag that indicates whether the action was successful yet
+    bool success = false;
     auto result = std::make_shared<LookAtGoal::Result>();
 
-    while (!success) {
+    // Execute the action until we reach the goal or the action is canceled
+    while (!success && rclcpp::ok()) {
       RCLCPP_INFO(node_->get_logger(), "Looking at point");
+
+      // Check if the action was canceled and if so, set the result accordingly
       if (goal_handle->is_canceling()) {
         goal_handle->canceled(result);
         RCLCPP_INFO(node_->get_logger(), "Goal was canceled");
         return;
       }
-      // look at point
+
+      // Look at the goal point
       success = look_at(goal->look_at_position);
+
+      // Publish feedback to the client
       goal_handle->publish_feedback(
         feedback);    // TODO: currently feedback is empty
     }
+
+    // If we reach this point, the action was successful
     if (rclcpp::ok()) {
       result->success = true;
       goal_handle->succeed(result);
       RCLCPP_INFO(node_->get_logger(), "Goal succeeded");
     }
+
+    // Set the action_running_ flag to false, so that the action can be executed again
     action_running_ = false;
   }
 
+
   double calculate_lower_speed(
     double delta_fast_joint,
     double delta_my_joint,
@@ -309,6 +360,7 @@ class HeadMover {
     }
   }
 
+
   bool send_motor_goals(
     double pan_position,
     double tilt_position,
@@ -376,6 +428,7 @@ class HeadMover {
       std::clamp(tilt, params_.max_tilt[0], params_.max_tilt[1]);
     return std::make_pair(new_pan, new_tilt);
   }
+  
   bool avoid_collision_on_path(
     double goal_pan,
     double goal_tilt,
@@ -459,11 +512,11 @@ class HeadMover {
   std::pair<double, double> get_head_position() {
     double head_pan;
     double head_tilt;
-    for (size_t i = 0; i < current_joint_state_.name.size(); i++) {
-      if (current_joint_state_.name[i] == "HeadPan") {
-        head_pan = current_joint_state_.position[i];
-      } else if (current_joint_state_.name[i] == "HeadTilt") {
-        head_tilt = current_joint_state_.position[i];
+    for (size_t i = 0; i < current_joint_state_->name.size(); i++) {
+      if (current_joint_state_->name[i] == "HeadPan") {
+        head_pan = current_joint_state_->position[i];
+      } else if (current_joint_state_->name[i] == "HeadTilt") {
+        head_tilt = current_joint_state_->position[i];
       }
     }
     return {head_pan, head_tilt};
@@ -686,7 +739,7 @@ class HeadMover {
   }
 
   void behave() {
-    uint curr_head_mode = head_mode_.head_mode;
+    uint curr_head_mode = head_mode_;
 
     params_ = param_listener_->get_params();
 

From f4e396f48ae0c44e47f5cec02b38cbe34be55ea4 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 13 Sep 2023 21:21:53 +0200
Subject: [PATCH 18/74] Remove record gui (ROS 1)

---
 bitbots_recordui_rqt/AMENT_IGNORE             |   0
 bitbots_recordui_rqt/CMakeLists.txt           |  16 -
 bitbots_recordui_rqt/docs/_static/logo.png    | Bin 11686 -> 0 bytes
 bitbots_recordui_rqt/docs/conf.py             | 193 ----
 bitbots_recordui_rqt/docs/index.rst           |  21 -
 bitbots_recordui_rqt/init.bag                 | Bin 200686 -> 0 bytes
 bitbots_recordui_rqt/package.xml              |  41 -
 bitbots_recordui_rqt/plugin.xml               |  17 -
 bitbots_recordui_rqt/resource/RecordUI.ui     | 339 -------
 bitbots_recordui_rqt/setup.py                 |  12 -
 .../src/bitbots_recordui_rqt/__init__.py      |   0
 .../animation_recording.py                    | 377 -------
 .../src/bitbots_recordui_rqt/record_ui.py     | 944 ------------------
 13 files changed, 1960 deletions(-)
 delete mode 100644 bitbots_recordui_rqt/AMENT_IGNORE
 delete mode 100644 bitbots_recordui_rqt/CMakeLists.txt
 delete mode 100644 bitbots_recordui_rqt/docs/_static/logo.png
 delete mode 100644 bitbots_recordui_rqt/docs/conf.py
 delete mode 100644 bitbots_recordui_rqt/docs/index.rst
 delete mode 100644 bitbots_recordui_rqt/init.bag
 delete mode 100644 bitbots_recordui_rqt/package.xml
 delete mode 100644 bitbots_recordui_rqt/plugin.xml
 delete mode 100644 bitbots_recordui_rqt/resource/RecordUI.ui
 delete mode 100644 bitbots_recordui_rqt/setup.py
 delete mode 100644 bitbots_recordui_rqt/src/bitbots_recordui_rqt/__init__.py
 delete mode 100644 bitbots_recordui_rqt/src/bitbots_recordui_rqt/animation_recording.py
 delete mode 100644 bitbots_recordui_rqt/src/bitbots_recordui_rqt/record_ui.py

diff --git a/bitbots_recordui_rqt/AMENT_IGNORE b/bitbots_recordui_rqt/AMENT_IGNORE
deleted file mode 100644
index e69de29bb..000000000
diff --git a/bitbots_recordui_rqt/CMakeLists.txt b/bitbots_recordui_rqt/CMakeLists.txt
deleted file mode 100644
index 6b3990d2d..000000000
--- a/bitbots_recordui_rqt/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-cmake_minimum_required(VERSION 2.8.3)
-project(bitbots_recordui_rqt)
-# Load catkin and all dependencies required for this package
-find_package(catkin REQUIRED bitbots_docs)
-catkin_package()
-catkin_python_setup()
-
-enable_bitbots_docs()
-
-install(FILES plugin.xml
-  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
-)
-
-install(DIRECTORY resource
-  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
-)
diff --git a/bitbots_recordui_rqt/docs/_static/logo.png b/bitbots_recordui_rqt/docs/_static/logo.png
deleted file mode 100644
index f8afdd5d066232e2dba94b758c6c44fe72b42820..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11686
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

diff --git a/bitbots_recordui_rqt/docs/conf.py b/bitbots_recordui_rqt/docs/conf.py
deleted file mode 100644
index 586c7734e..000000000
--- a/bitbots_recordui_rqt/docs/conf.py
+++ /dev/null
@@ -1,193 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Full list of options at http://www.sphinx-doc.org/en/master/config
-
-# -- Path setup --------------------------------------------------------------
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-import os
-import sys
-import catkin_pkg.package
-
-from exhale import utils
-
-package_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-catkin_package = catkin_pkg.package.parse_package(
-    os.path.join(package_dir, catkin_pkg.package.PACKAGE_MANIFEST_FILENAME))
-sys.path.insert(0, os.path.abspath(os.path.join(package_dir, "src")))
-
-
-# -- Helper functions --------------------------------------------------------
-
-def count_files():
-    """:returns tuple of (num_py, num_cpp)"""
-    num_py = 0
-    num_cpp = 0
-
-    for root, dirs, files in os.walk(os.path.join(package_dir, "src")):
-        for f in files:
-            if f.endswith(".py"):
-                num_py += 1
-    for root, dirs, files in os.walk(os.path.join(package_dir, "include")):
-        for f in files:
-            if f.endswith(".h") or f.endswith(".hpp"):
-                num_cpp += 1
-
-    return num_py, num_cpp
-
-
-# -- Project information -----------------------------------------------------
-
-project = catkin_package.name
-copyright = '2019, Bit-Bots'
-author = ", ".join([a.name for a in catkin_package.authors])
-
-# The short X.Y version
-version = str(catkin_package.version)
-# The full version, including alpha/beta/rc tags
-release = str(catkin_package.version)
-
-# -- General configuration ---------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.doctest',
-    'sphinx.ext.intersphinx',
-    'sphinx.ext.todo',
-    'sphinx.ext.coverage',
-    'sphinx.ext.imgmath',
-    'sphinx.ext.viewcode',
-    'sphinx_rtd_theme',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This pattern also affects html_static_path and html_extra_path.
-exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = None
-
-# -- Exhale and Breath setup -------------------------------------------------
-
-# Tell sphinx what the primary language being documented is.
-num_files_py, num_files_cpp = count_files()
-primary_domain = "py" if num_files_py >= num_files_cpp else "cpp"
-
-# Tell sphinx what the pygments highlight language should be.
-highlight_language = primary_domain
-
-if num_files_cpp > 0:
-    extensions += [
-        'breathe',
-        'exhale',
-    ]
-
-    breathe_projects = {
-        project: os.path.join("_build", "doxyoutput", "xml")
-    }
-    breathe_default_project = project
-
-    def specifications_for_kind(kind):
-        # Show all members for classes and structs
-        if kind == "class" or kind == "struct":
-            return [
-              ":members:",
-              ":protected-members:",
-              ":private-members:",
-              ":undoc-members:"
-            ]
-        # An empty list signals to Exhale to use the defaults
-        else:
-            return []
-
-    exhale_args = {
-        # These arguments are required
-        "containmentFolder": "cppapi",
-        "rootFileName": "library_root.rst",
-        "rootFileTitle": "C++ Library API",
-        "doxygenStripFromPath": "..",
-        "customSpecificationsMapping": utils.makeCustomSpecificationsMapping(
-            specifications_for_kind
-        ),
-        # Suggested optional arguments
-        "createTreeView": True,
-        "exhaleExecutesDoxygen": True,
-        "exhaleDoxygenStdin": "INPUT = {}".format(os.path.join(package_dir, "include"))
-    }
-
-# -- Options for HTML output -------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-#
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#
-# html_theme_options = {}
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Custom sidebar templates, must be a dictionary that maps document names
-# to template names.
-#
-# The default sidebars (for documents that don't match any pattern) are
-# defined by theme itself.  Builtin themes are using these templates by
-# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
-# 'searchbox.html']``.
-#
-# html_sidebars = {}
-
-html_logo = os.path.join('_static', 'logo.png')
-html_favicon = os.path.join('_static', 'logo.png')
-
-
-# -- Options for intersphinx extension ---------------------------------------
-
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'https://docs.python.org/': None}
-
-# -- Options for todo extension ----------------------------------------------
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = True
-
-# -- RST Standard variables ---------------------------------------------------
-rst_prolog = ".. |project| replace:: {}\n".format(project)
-rst_prolog += ".. |description| replace:: {}\n".format(catkin_package.description.replace("\n\n", "\n"))
-rst_prolog += ".. |modindex| replace:: {}\n".format(":ref:`modindex`" if num_files_py > 0 else "Python module index is not available")
diff --git a/bitbots_recordui_rqt/docs/index.rst b/bitbots_recordui_rqt/docs/index.rst
deleted file mode 100644
index e76aa433a..000000000
--- a/bitbots_recordui_rqt/docs/index.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-Welcome to |project|'s documentation!
-================================================
-
-Description
------------
-
-|description|
-
-.. toctree::
-   :maxdepth: 2
-
-   cppapi/library_root
-   pyapi/modules
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* |modindex|
-* :ref:`search`
diff --git a/bitbots_recordui_rqt/init.bag b/bitbots_recordui_rqt/init.bag
deleted file mode 100644
index 69929cfc1fd2c4426fcd9e7baeeeaac7bff0f20c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 200686
zcmeI*2Xs_L`#<pXkR_o6VkDGYNQba&IteUQf?z0y-i({wn`B|L8+JE=fK&zHr6?dx
zMWh4)DWQlUi0?}gJ6#k}s(^|SP?4tm=b4#=@FKo*U~=~NKj+Dj<9ExQJ9qA9pSkz$
zW)qg#qgRLaot3`vTAikoo10rL^3Rx8XdRYiv=v&NdUtZWCfsMUS}WZZNbWLQP3p+3
z0-HnMpqeMS?dIl1{@Dujp4-V13jW{-;0WLd;0WLd;0WLd;0WLd;0WLd;0WLd;0XL*
z9)TEg8c(kS*zybPs>5NnS@l+%RpqDm-hSk9hk2B$Z}y{y8~lqUcfg%+kw8!WUw$FL
zw+_ipTY=fAZ!y$nwmP#MPJ>f*H1*{d6$}=OYB!toEsXgo2|5jVw#DEy=9#UzdR-K`
zm2XON6z1y_bjiskqbViXkZjB`s5wa~so5r7PC{Z_N`ji2V_NP*o=Q4u$W^mUYL3}z
zc0!-Sl-_w}heG}{DEwi?nP+e+c{Yp5p_mL#gW|L)Ce>lIo3mB&n5xhYDz+T5h(mQk
zaN6v{3sr?|o6~M1{WU3cQyf}F6Q+SxR9Z+i81vY}O0-=qvRMk9s$#P%1$MI|-{3SG
zW1u&*i=>_G;xy8L(v+^4Tt}h3rmG}v(v^@_3?^tGKPL9>Q;SrK&1iNO-~ZGW4*KL4
zju^#YHIWXMx31>o*z8WW^)Ma<1r{^uf!Rve&DYgEAC~SOqoo_x>F&0WB?_%(G76Sr
z#cWcoPIC?{olR~z9g5YEukwM&Qw=87t~d%*BRs`HTX&lCRfUZDh&(eH9T;S`K4w7~
zq1si&t{QE2lWNi`?Jbu3o<mwEJtYDwc4MBQi0m($LiSquqOc0O2T6AnSSQ;IN}zo2
zlbz@=J4m1D4$d#MIL!qX(mA``Q0$1MYarvK(A`*IAOi;b|K1M6Zl^mv*JiN5-Xy)q
zHw;tRLj3t;+d-JE02~@DTBTo}YE@Kiu2w0w723HVg>Hq_MjGV%$KY^~Jxg99CS`=#
zNe3%G78X&A2CHIG=~k2els_H%t*H40&SI_+MvrX`+qa~D<=gJavlUuQY@HS31TSN<
z-F6sA)(+h|vKVX`S(D95_W2017P6TY1}eH)X>dS6MW@ND#ZLB%lQhQmvR0$fJjrk{
zBN~mvX(zAqK|`3I9E;81Oim;>%U=kZyLXj?uXGn10gXm4`A5^OSLZa+X;W6dBiGS_
z^_gr&FDH3H8SEx9oK6F+8~`QHoSUcGn_E=UL)g;%0<z~=T`4Y59YkP73CdNis-4uk
zVx`bQo<xSzXv@zhLuw?un|i%xd9oxSZ%{y?*;r^X*va$BOT=u2r{~zoXhZAdKZi<Q
zm{y~zba^5Ts+2=D7COzOL*&(IHQH5!gA6lyP|*~U3Y-uR3uwZ6kFYf-H`QG7a)lQQ
zT{+pE<V8gGygHH=e$r2a18P)LwsBh0HW?i9TD210(R7(Ca+8!BvJ%n-wZKMR;?bn%
zJ&T=rHdbAV40f|2o4m|O!$zq1CM60Mii)Y!GITqQP_Wv{n`bTFU57}s&<bl8wyAj@
z*=H8mdPiX{89=iB0=un<R4`h*fVYv9L90`-n6vE$d$ER=D!NKdSUQX`84<D+-J|6H
z74F%~lXPE4`fOvngWQTsQ*te~Y*H8K4&ubwjV!ZC^ML8FKFpHDi{7DH9X30Y*A?c=
zUNBuol866pcJ&B=<;ZsGuiOe8_(NH=PW5ne`*WPT8{GD49HJwSyVWKC$aL$L`J}mE
zfMEp03>K^Ldo#(b1{v;#4C{ht_cW8K7;eA=^oBP)@|0CoA!I<P4)?UT4zsBA32-yx
z?oF7`*`v@d++q*Hts3xHFItmSJ6#y=$++hp*uaYCz(R0G#Z%x8GV!}*cCuvKMnKA-
z2{sX4w>=G3*er;>%@!vN#Q*i5{~!7YV<<-Q$JXCal5XP}$!4RLAxR`zH7`OjlI|Vm
z#zB?z<|K=6y%-1m!77PWQo2hql76EvQ<6TMWF6-_ND`~0bd9t@F_L47Ux<e)>BmV1
zkLex{i({3<Dk<Hi7)j61_E3`5ImuVnZbOn-C8cYm4T_PRarO!&>CZ`in0^6CB1u=0
zY|y480VeL6oTT=WEdlz26E{xW(p`#G$)OFC6M<wMPI5!@s6-@5MgXr%N*5`3UGmJU
zGbqU*PV&aI=aD2%-10d>i(*xB?yfaSP$lbgl6!A0O@gIy;>L*^97z2UBWY-VGzCb8
za*`jo4NQh^AW0-Cl_NAJMsnfUFDXfdlgwAABT1aNrE8=Oijkb3f1HvG=OnA2Zj%Cw
zW0k}zDcz+Q$zu)AP?C|HWVfJKkt9}0=^AN+Vk9F<5?jHsWGW|V8R*su7RM@yRZ_ak
z|4s5L`Fv#7i3m3!sV5}i_Pzrlv?oXsNxF#S9o-lYAla6a{H|^hlEjHyx<=ZdSe5K@
zaV#a-o|9~>KZGQaq$^1_s573DOy?v+#%+NwDZ*n(d_z$_OR*|h{T3tHnUhp=enOI1
zCFOI37R5+*fATvoIF{_fNq!yMgWSR@i66TF1(JWnNM4?Il9KGkNg5jY(ytA~Gj2TN
zmJCv~N`83f6eZb%leC+RND?P*=^AN+VpZ~qMP-y^KTfh!z)ASt6+FGc(;N9L#Yj4<
z2YbV@WPeWbQd9tZ0RWOjlCC0os7pIvAUTMWochE(B#9HZe2&nfSe3kUxjiNM3@7=Y
z{SAF!X*|8b(;ILg^+$~4uf01`lG&W(-qS~rBvwhO5-S=LBbl~gsUJ+-W=?Wd&mh<#
zSS9gTvO<!yAVzX_(sD|27$><jeK?ZDDk)9jJq?MG9JHf^lC*M?oziY1NhEoXBxyIq
zNS=Rg1tn?YBtM@X4c`rk6E{xW(j-<iBu27N=z2=BfRi+K>5C+>N>(V68pKF`(bwA_
zPH%>DlGb(4BS|DFRboYBVkAS-t5K2;PIAZAG9-y4D-=l$Vk9T}`%#jkImvbr7Wn3H
zJeI^`NvRrXV`3!T_cM}XImwwVe@Bv7CFOI37R5+<J=um<$#I<I?a$-=VQG9r5#LY*
z2U35;NE-EnYQX8uzc|VB`e^v89Y_)<ZmAk+V`3!Z)R$@j$$6Y)M%G~X+jU41NxF(;
z{GC&QKyooB*?aT#+DMX&0FrbS$@g2Ip(K}bk{|3E7l<U0q<oL0MX`x{%#5>?<T6gO
zZ1GwoiD%qZB2ti~|G|zyFmbQoB(Drefj`-Z$C5a4%V#N8CChZ3D9N`t$(#fgNn(|h
z&k<S_BU%4@Msg)5c}Ft`Ng_#Cl8nymPOIcPPV%EIC2*A-CvKd$<+Bv4k~cz1g5g+l
zGbefT%)3EIl8gY7bQQ_4F)Jv^Eu7?<6LlU#l1Ng%N7ABLm0Vc%7A3iplZ@Q;axjua
zk}f2vHD*5!6Zd~O$=%aq9!HW$(uE}7?KX#!+|5Y_U7v&`@r=7lL<&ya-`6e+fhze4
zCpr1OBlWOKVwJ2ClVZn`={<g-BtPXO2RHGcf6@UzFNvR*l+IF&WJtdr4WUXN;UrrZ
zy<Q)yBvwi39HBuml7rXvq$I!MB$r3@ZU9STmBcCu4y68wk?eb+G!&}jcbsIeoScTx
z4J3&qrE-ME#7Jt=Hd2!3ILU=;MmB<_ktC7?2U35;NE&|+YywsCXHIh8_PPpm14$xD
zsT`p(F_M`Xbt%bTILSpxV-;8$Ng_#bAoWL#<h(zFD9PVB$v0cQ+!(rnB$1?4j?kDG
zNypB@aG1FN;3P+Ozl0?5-5co|X@g=UkN#FfN#5op%^9bfz~WdXu}VsJDMoTj-LaIU
z#{~BGxaTgp8ipjv2;k=>rHd4txV;CDqa-~!$s41Ua3qN&<$EM8idD(U&A*O>W61zc
za!i{(upmy{SS97F6eBsi-S8+N8OTZQ^Gu6El4Jysq^n52ap-UikPPM|vz3O?ND@iP
z_efe4tCG(&JxWQ2aFQRI-$jym5vWQ;3X<#-krWG6QsE>oeRM1a`hypN@FI|Omts}&
zx|&Q$hH;X6wmsVvNs<x3V@c^E1*_!L*c3`Kl9Tia{Sisx#4VpAv?x|32X&aQg^9a4
zC;8roO=DqcoVan~1_x4q#7Jh0SwKl9bCO-pA8roaK$1vODo1EcjO4Jr3n|GIPI6ao
z4=pT>B#|UIkoqG=a!<}}9ZcM<ImwmR&Lc@YmXs>7qA@X&9;^SPB=wwRpNn-{KoeLc
zu}W4@k`=^APJQw(O0pd%d3*jMB#Bj07Q%bm5hL00u{)Gxdropt&}T>zN#09I)-5rT
zTTU~Q9XQEJJ8mFJBq<Bwz3qsRY`WMj4o+{<ImvnROLfo=9!uh}<h`CG+!7<XH(*Et
zknGG!KA-p<lEf-0!QbCBAx1KDRu(1Mos+!tNAq}S467to$-hDMXm^Q`R8~GqN%r6*
zZP&ArBv#2sqxYbt#YlQi%BCcr<|IR&+lnNS<bzN>+WlfA&n*~DN%rO>6WX>*fc4_U
zjT85y`TLut#YkqYeL5LVZ%mxzsGmcUkt7)b{JiAfn0my!#7Or1#MTl>s+{C6U3(x&
zoVXv+-UAjFBbjm5K}qItl3(?ij3kld157>Q-C`umHajWFp`7IYy{%JV#ds`<$C8f-
z@czZcNb05*QIf+r$pgO)N0L}2@8=}r9x;;FvPV#oHcs*feUp~3cC3<EC1ohQrwuWZ
z>jsXbBnvpn4lngZl2|40ktFSg7|DHJ2h-q;dpIZg(`(a_B$AY-@ScXmNOsCRL`gb1
z$)=wMr9v|}apS~&4<{Kn#7Jgp4^xtboaC*e9g!qfNf`j|Z$pe^#;hZhWDzH+)cqVu
zBFXzX$+$<1WJ;H#l;kK*^4O$_X|Q&jxN+i^q41tI{x`{AZv_tA_d#1XIK3H9NW$&9
zPx#SRkR+14hm(vOVkC#G9ZN}0;3PX;XpJOs;+6sM{x-x&{vL4C1FGapoMho!`^YVv
zxbc%f_ltVud&Edyt=7yNNWQ{JKH*s7i6qGg;D^&5S>SyQh>^5(h@~VKaFS0yZuCNu
zNb){TGVTx~x#1^9@-<F!cIl5u5|1Ti0KC5qF_NnfPWOe0dl4sju0y&vw1sEfc*cFd
zsYkp=jAVWNOiFSwC)srE5+sRL@)7MlU~w^$?S1A^lB+n$_va1sg$A)oVwHRVtcSl_
zjO6a0%KTvB-oQyNUh*~62qcMT+z(IhK}(8}yqJ2KlHABi-n{5b-@d^riB<AJvL5<=
zF_N#l-=HKnagt9QN<xx&Ecwvt{&7JulGB$z?GF?87EUr@;Z7upB>z#?Lq8}+^7Yld
zD9Ih1<jXS;YG9Q(apT1O(DWX(pcu&wQO{D6yE(~K%NqG3NiqU>dh;My4}ZTH$yE1l
z0WfiY%t=l!YZrhdk>ta>`-dgPNDjTcuqKe)&q-b>>Qw_tBFTS%_3#ggk$fTiHA?ab
zC;3-IYE2}GBp=@0KP)LmvVX*_+E68rbCSp2d8!tYM3Vmi>){^~BbnX#HYIt6le}Qr
zRvSqo$%l9M4@-)Xbe!=BgerNKlbkfN3`yd3$$xP52oH&ojP!k`E|9#yNgjCn?Lb&5
zUYEq{l8=Dz?-vy#x%0+EO7b!%d2oGa(1;}Qy5!%pdX#&`NDc`2?lGv6e{qsu_CNd>
zk|ZO5Bp(Ie-!CgjGC#Z?ko1_yevdo#+@fG4i6sBt)Fa+2Mlxz)1SRRiNzNbG>v1HB
zBp(sq-!CpkGTIzTN&0b;rbQ=^B%X2qJ*h{%SB&KJ=b|V{4JWy$y`~<l8PB-!jQddq
z-nYCM$<@au)rVur>YU`<h*TtrRq{SfQtl8V85a2>C0T=$tXBLVB#9)Y2)wTmF_Qi_
z8OfTQ<nGvCktCA5Pm`28#7JIEdXrYkU`}%TE=zq_JswNqv7{7+l^YQw`Ek&u25>Cd
zkdw@KXIuj$Nk#xKl~=|jCyS9Bb^fzPKvLl(|M()fA(BLrat!`gD`F&1y}6%~jN~NW
zNpIE&Ng~Pr!X)RW7)h_02PnyCPV&VTlaVBz-pC>N->ry|T>7E5F-+VsoMiojn~)@u
z{BKNhZi|t;`mK(VY{p3r`L1RttRK&~@r+xJ!%D4)k*vNoj*^V!Bz@n}BT1~1l^jWo
zVkE~bj;AD>bCN4VhapKMDbZo2ro>2|e?FO#jOQe;=XF=05uCVj;;w{AP81`#zsamH
zIK4^XB%j%w&=^UQ5x`63au`-_MU14IZ8jyD%1KV>JQGRc#9bMZyevl2J$()(nZ`-(
zzWhFtM3V9tR&Gg*<l#B5P?D`U$<WC^B1t4!8Irs#M$-4j#&9^6?7~S-yjdI$eZbQj
zJiU=;k+&p9(ypGPB)f8wqds^GNn(|hu8}q<MsmQO@F=K~JvqriFKvy0#j#3am6YyM
zjHFLwBqiC8lk7S81}umq@gk6Pk#1rn&-R=W164Aclk8)>5{)Fu2p~yUk({((DkW*+
zB<D5Eh(VG_QocvhqF9x@*6*igP$ey#<QHBaHARw0(uE{TmtLYIt(@d~U05?Di6mV}
z(h`@Ug(_+1Bx}EP97*Cupehk5IB`#!(v6ZV;w1a#&Wgn<iB+;nOo|;#X8NwvL6scG
zNk&d>u0@ha(uE{fwp~w2PT(YOjh~7napJBLk%ANVH&+?S=Q+vr#@{1JB<V_$xh18v
zO1{8Jmh25|0sX-@6!8s3=`O{NCHtPLl>o<*(>Y1&rm;FCNk#zQy^$_baN@qM4WuMz
zbCM%pm=%X4k)(W&q(!kRnS6nfoL@e1zg`rNB$1>GNk*-yL#yNhPO`txawLhTH&r51
zuu9%IYEOb=$yYhah}n0LB$9L`$>Hmrl;jdl@{>O85}`kM#*Js((p`!jORg=MPD!rh
zB){;Pkc1@32;dpFbdiD+_oWr>lVRds!$~&jl9G%hk)(W&q(!kRd2q0`C6L_ANd|vj
zl7b|Wqzg&*U23Bw-{mB~x}a@|B$1>GNv6jgOoJ-<0Vg?d<7=r%5=pv{<n`0%DapN@
zq#C|14M`$N7m@t!R^Y&Dj`{9TB|jx3;dYD{J>kZSKzPP2U*-Qky#a!|)-RwW_j8i%
zUb;lPg4ZSSx}<cIVk8fYSx8A9<Rm})y|X)X1xX@F7m<9i#xhFs5GVP^tIr`xd_z&X
zM%tiQm0U38rY9Ur9^oYa{pKkoi6mV~vgGhBO7cri^4FoQ2~eE4@eRc)P$^a=>&(7Q
zNq)siPP;K5Nn(|(0*|CgF_K4m{z*xGT|RNI-HRlVq$^22y>YM)97~?$B=dK-^Md~1
z88@DBOLr+&B|o`3gpxeXNw#|9Z6t|RQo2UkpcqN(KrdgYl0S2jo4pSDz~WdXu}VsJ
zDMm8lY5*l!#z}S=>FJ9k$q3*Ziqb_2p56?K>E{Pk@)u6>@h4g%Nu0RlbA%Sfs^s_)
z{VB;`Imul)SCJ%=bS23_WdkY6Yn<fU-%f)ag2$3Lam!~ZRweuH+*TbX?pvH>)K;q>
zk|ZO5Bwa;visyDp(*1e%dCAV-kJlhcBq`q`X;G|7F8Pv?^x`Dv+BMaYB$9L?$s27N
z)PRZGmy=X}nS&(p^rlKg3RcNuvl>#8)i}xM^n*weNxG6`YE}d#so^Bg_K)?4{@}Ye
z`0kB#mx9NVlOrj~8l0r(m9t0^tE6;|v_UbFr&6LQ$vT|m_JEH9U~#OHSS6*q6eF3b
z8CMHVZ|ZWAUv<2RB(X|L*GL-_BRMH_0wo#DNoK{5s{xB+mBcD3-K7}G(LXYhA)MsK
zk9}$)NiqWX?u~Sjf){~qu9--yWCKnzVVwy{;>0bVBeW=1C7nBGP?DjX<ffjNkR+0H
zCCQ97rvu^iCY+P(u;4%~=no!C;<2Q3mts}&xfN$9$!Jcp@vIkXBS|s>cq}Phq~OGT
zbMJXdvMDDSFy|_g#EDxzM`%&3N?O)lpd@2C$!8aL4}_(0;>L*^97z2UBYE+MOO&LR
zliapy6_Ug%DOF-cV`3za9D2VloZh5zlCA4*fC7nC5|1S-BuNWmB;7m%f`Mc!PI5?E
z{U9VsMgU1llUUJ^7)g&-H7LoBoaD%nQy)W;NV0;F%pgWmb8%ihsFInS<g`zW^^hcz
zlqs>IEisa9R+okV$^M+=obg2=ND@g_Fp?R>NCti6(GW-u<RrJheh5k88MjP`ciR#p
zIqg#~O47thI_tjL0NTLol6YP6t|duHjO5(XoKUEextyd@65S9<k`cf&Zb=R+H6uo{
z`ieYC(#%OlZX1gvapJDzNMaNtd9s(8lC*M?GfIq&pc6Q8<HRiyBWp^G<O%nol%$Q5
zT$MKqNn(|hu8}q<M)GHylad_HNq#*0XC#RvT}iTu*T;?F^ro1TTo^t`f&SpcjT5(Y
zmts{ix!os}<QPu!wYh<fkt7)bJmZ!wQt<PVq22d}L6w}wNsiq(D-1~@N%<a0i(*xB
zQRy{Gat0?^v&YX!5|1UTM5G|e!ROmXLY17!Nq$%s5)S>rV@W)gl<rcjN=}SyPf5<=
zB(EJ`h9t2{O4mpm6eGE2N>@tq6;3iUu6YD3j#Uz?q;!{JBufLAM#IFtkdvGd7zhg@
zNj&40E>iGVa!L9!O7aa(ve^3%B#9HZe2&nfSe1;dww#h&&PjG`riq57apJ~_8yrae
z5hFQw10z|&N&b6O8zhNUQmVv?#>7bKCzjAExq_2CQf5MuNU}na)F4K(W9%kM@-0rX
zmURx2M3Pb^Rx~C?(tnzFGdSa3$4QR;`Ctq*fya_~ELlNGRuCh(x6U<6avLZ4>#mE<
zkR%xaya*%<;@x({NWQxDDJ@jV?d2r<b&N%lNb;^DiAjv)lqKCL$sL^JpC6A$l6WjB
z(P5>g#7GV+>P|_%&q?m-whl=m$x4nSMlq7(qk2%1dpODPjklXaC-C$JPj4h*WKD^Y
zoc`K69UM!3%t>xKbXtof$q3--jdYQMZzx(lN-4=NILT!bK5T&`k)(W&q(!kR`Q>|z
z<RMP-sj1KDkR+0HA<545KaYcn`)f`zZsCqNB#9(lNOE`Xns^}jEhpJzk~1DjB1spL
z%q}{f2qaH(lArvsA4%dxpehk5cr00a-8YovX-;zDN6iwjN@A6)5|d)5H@PEDP?Bdj
z$)*1pfF!X>R*6W#D%o}5_mt#WPBQzq$w(4Ox|HPR)+ul-`6DO!xPD(E^atO)!FO+@
zyA+$aPyeE)BrkE2wbzCvAxSa<`0kB#k%AMq{oS^d<W)|x+O(u(B#9*Ddn7H2RY|A4
z9VK~<ll<oBB_xT*l2sy7kmRJ{9Vp2^ILQtR8l*sf@K_R$C8fI*tCH=ti&NqB=0^F%
zy?GLn#40IWBW+NO<hL)pNlD)1Bv%CPK$1w(l_al}t)L`tbCNX=*KY~^!HF9uZs{(?
zs$_?k-l8P$aFV@8zk?*PN=nyA8x$kiyw6HX(&Ghpx8H6B4lG=)Pld&?N@A6i?oy28
zxX)HmlAfHTPp$(=VwIGxkv90hN&Zf%V&d)`H#p<=<|K~{{SrwcNmr8G8I(s!`f!pr
z)4bB4KR9vY#4X*WSe4v=&_YT2agw!5XCO(elF~KO2E|D3IFV0DYB)*H@a;$vNxG8c
z2lK6zq(3M5)sn|rL4R=K#)(_HOR*|B@V1STtVKw|=}zpg^jB|?Bz`zex=4YKT>!!S
zr;<J3j5~yrTr%~hJ61_D0!Y$TB&+4l_5zaOoTPos9#15RB;|V~Es9Ot9ok;=0g_ry
za&^y{-bfNjx{&0^1%FVI3FTF?slx|JB1spL{KIgal1$_zOY}>SBwhrn5|M%vcdosk
zA57dyoMfK&ek6$`T}g7)f&P?aGADVoiMKEG2d_)wbxG+i#ZGVTyfA>0Y{f}#I&c|D
zVwIGxkv1qs^5p>oDap2+<jEgPV25Cp#OspsS&ETd-DnUc*^ZOU*?kyEVwIH75n2=@
z*>lyl>Tr6~fs>r%XyFG-<FO<jOM(NbKVl?ToPLjz?953nF@$NL8%PpKO63TRiILoz
zx`UGJ%1LfGw+2b##4TMTZBUG)^C}~m!ATD5Tdg`Qj#Uz?q;!{JBo}nwNvmXcPSS6O
z5lLc|l&+CBC`NMfzJ@j6^rkl_*($rp9~Q?diB(d%OEHpa+oqJ{U`}#y#BTvel8gXe
zmy|A2@bqTrsIj%6O6G8qg)Kj=i6oJve2=6>u_{?yI*yXe<0K;%Mb<)+NYaHQ|JrsY
z5UQkwll<QLEt163n<^10SS5os=P1eHoMiNlUA3`FVwJ2ClVTJ1{GE)Xos;~$?H@=I
zt7Mgk6s(egmX1L%agXFA>y!r8!77PWvPw*fRY}VSPf(I$ImxHTM!+RWye^3sf#j<c
zBiVCCCra{pPV&<>^@5Nj8382eDw2IPD}rI-p2|tqif{TDl0=g7J(3p1s^m1|Ta@HX
zPV%P{t%H#ylB^PvEl8{IX<VbtYSqIU;6rCdTcOpd4<+BR;ze%R3iMuZc3Gs__3*VT
zPV!#j74oetKa@r5o*}=21Nq0+-{`K8b|AZVm>c&3c?%q}-{{M6!Q_n|$YY9Mh+j=k
z)FFF*wkKXs4o4x+IC~}j04chV8?-4&FxF#vXv5^hYxP+^^XiPmsf}2kyK7BSgT^cy
z+8<3>AI9>+v0tWiATKd!XMX<il%vrsA8U9fC9fIF5haPOZZ&svyGovubt1xTrjF%1
zx-lM&$zLjk`@38m>#>>qJwC_{>Wug3Oum*Ka`ju|J&uzvjDy_$$?v@K$#_A&Jny8J
zTRWCNymQKHP6w8sSXAZ}*@<Om^<eL9omoEArJZj^SC;QwZtr_CgXLd)cl5RQU^#8W
zQa|rZmS-m|_gm1L<v}}2{F?P+`TTP${B{mtxlibNzo!SY{6$}H|8vi<9Fktme}sYM
ziT-~68WYRz`~CbE<*@AaWE+2-nPsDXP>tQgSdLR)s@2!Za{QfBfj<<m{C?{*fzLTu
z9y8-?V9g?y{SS5wS~`;DGF_*jq|q$b|GrbuM`Kuy&g>pEXgtd|LP~<mCbAqhW<~IX
zNh~icdn>r^6qdEd?8o2w7t8N<oAY?u43@vIT^92BODw1N_$B1o*(`_j>(TJnS6Cjr
zu4lu^^I7hDp)|DKt1N5MHioWwon_<iflb;jW;rvXZj(bxSf2N1P!n}I%Z{Ce;n!EN
zeDt@X@M)`9-comLc%wBedk-ELzF{59lbe4X`NRg6XSW+3b!-#MZyY)tGjt2f&on(6
z^XFEU`$QzgzPz2~>uPdr*iM$G#-_w>`8UghI?UI0+0Amsm<8Gsds!Z~ccIqy5zBjW
zZtFZgW!Yo(pSro9vpn_5zjV<DSnl}P9o_arEN?k|N7wx*%S{)%#hpIJ^4@?U3C`mz
zXU@t>@cou$W#zL8ubyPtb5eFf^D``;TQEA|-{)A)TKjZzuL~^q{KVGs{0}T=oOQG;
zzQl6bW@k(PUs%>nEo!;=3d`5BN3@LpjpcO%N4DI1jpcn_2h;lBV7XJ~p|qcFv7D(r
zoHq6^mNRA@NvrMdPG65HU5=(L_jGsrmAp3hebCk|#fRk~Ysb2MQjO)`18#Z@sm}7%
zYR$Ya2e54E5bOPXEtWU@6zlz19hO%gobJ0Sh~@hFnZB(bXSu!4Jm38xEbsoQ%rCnk
z%NJ8G`~6M|DD>fV_Zxmwny@^5`P2UOBl!KRd-<=6VtGT<v;OUyvYhJPE#OEj%R?_O
zteM+_<rl(Vt9dhy<^B=3YR^byIlJ@i+DZz`jx!#Cn^IYh^nIpodTW+<-k4bT>ozP8
z2>9+XOM9O4!|UDY$a2)eh<dZrS&lYG){E%E^7QAT>TP|B<<-X~)qkox%VCi(*8i?2
z%l<cCtUtUL%U6@$tnbyA<&T3lHJIO@<x%H9Yt(cQ%ctJl-{}1zEPKs7(5UCLEHC{~
z+xToY%U8eEH7-(FuD&&{v0om`V;09Zetjs*=buk*+#;Xl{Y_?t?Xt1#W}6+>$Ih~Q
z`kb(fPL>bPc_nQ02$p?sYz(h4ie<ZcE_}&zEDzWd9+fzbWuM5%sC^SyKHGCj%s_HX
z2K#i<f~he-PiFaAzn_|opUQIS(o4<iOlR2=m!VxTlRtk-H*M-HmNR|V={}po^2)aB
zby@RR{^sg>-PHvw=a!V}CcVaT-&3^`9)E-7>)ODCx8Gzr`9feqn`JCVt*Mi6u!Q9s
zN9{?bl`Icm?@an*HOp&DrYHStEz6fyv`=nW%JRX%)|RCkS?;^k*0SR}ET_jEO#AX(
zmam^apJslK{Z)u+j`{Alcd)!`{Q~!wK4AI4n1$|5cCq|ojb-ld>|uGql$)MU?qj*+
z@GZ}8K4!Vj?AxB!&saXv^G{Fr{VYGdaj?%T2U-5)>JXo(BP?47dilQhCCd?41AM!E
z&GMj_etxIEVR`(B{(g?{`2A%A{d`Wd+;``;>I=`ZJjHW+_1N<)FZptN^$#wxe4|Z+
z8ks+_d~8<38sGoSa%xsYjggo6^Cw5vsQxR<r&6M7yzx8BnVNC6;;yqiDRe@uJ>(1O
z;4f&5{&7OBet)ujbIrtBKi*;4xpPLXF&-ZDIT>wE2iEdt`MDKm0+;!+d~@&lz+?@}
zmbDiGKlW$&;t!Vs2iIiz$f5V^{!*J|H_w3JiFH}_XjLOPD41o<#d-Bs)?>NN>e7%_
z4OkBP$fMyGjaZ)csaHcoW0vQZ=7jzh#&Y!)d7&>xvV5|aIW#1O<rD5hL)SKA`DdFm
zw4IjaCSD&mKCELox!os?a}rn%?Y=kcMiR@5O0R`YZ^`oD^KBzTTd_PbvVG)6J<DsR
zbdBuPj^)z8rO{t?V0lUUvgl!*SdOf=Jo>NBEYIDrJbG4Fmh}@$qQkqf+%a}j^t(M+
z_Mhh6tZOFAd+S_l_HA#LU)}nYwxA!&Q<ikodJbfHSW$QFyumDwkLsa~$zpl>YwL77
z3@lqcN_9O<EPwf4sqRb;%bn|g9#?2)d3Wxb_-YoGvx|-=zGh{)_PTEpwZmD?9dRP@
zKMt0=4*Wi`cM;FzkC$H<$uj)a=ux9thCkOEFqUQbJE?DuXBqxLWy13;!(Rsca1zV#
zC)ox}VHy4w)}?>341a`Z+zgiCufGJo%rgAhjgr|O^b0`Y?;W(9%QAe?{HOC-hHv<O
z=2e#AtCg?3&N6(b?F)-phA$HhUdl3ji{t9$EW_95>EB`*zPIeaDwg33ql{}<hHvV*
zwvJ`^ij=7vScdPWXt0@O_)>uNTUdtQ#_q6<W%xDNquW`A-#^UT$uj)n*R6lE48L(R
zb2rQIs}7AnWEnnVzWF1T;lsV1KV=y{ReAh#mf_=U`3G2r&k?yDW*I)fG3O}D@XmSU
zS1iL@mfMcA4DS_Xe9JOiq(6C*Ww<(OKf^Lymh%3dWw;)&;DU!+EIIcgr&xDS)%eMo
zFTB&_v=x|*`W8cNW~(#H;WRi^M^kccMozulj0THEwVO@)7RLOP1Rb2<Sqx5Np4pnK
z*F}+A`KBaCVZJ^=mz-=eno^Pt$;KRmnv;~0nr+hMBqYYAB&ex5rsY25sj9<a$W^mU
zYL3}zcA9NgeVEca&+Jghe+Gp=tT^)wP9@J~F*y{I!D&#OHpQemjCOOjN*+@c+CjyZ
zLl$wUP6$q$eR!d&kke47-A4LrQs|~Qw2CH71FNXCkZLgIv4@ptyIN$k6gpMKW>*UA
zW=FokX*R|{Z)g`uJK4o)qyeQVU2%cUL3>SCN!p|<A*~op&_I4n?A@mpsTP~j>@2?j
zsVyAz$t@f)iot3k9V~BM&B?LZoowr2JPHadX3_(*m9Cqwt9w2y-91K2H>}g$Z6Qk(
zTFqn>EX9i1q*|Tk99TM=+;Tb;t07<I1Cd8QSgqO>M}caDr#NWqPIJDhkWn9zXC|Wq
zgUr^)EGQ#XyQ<h#qs?woO<JYB#d6<sNb97hHmh2(8}kfBWPjNdve(KNg;mf!NV=oI
zI@xAW0_A(3>_mszLHbO0aDJi1X)dsk&e`pTVn-}p0~sfU?#2QG88F!Y_jVX|JKgEI
zHiHHBCh0}KVVKGm;?F1B4#I2&;Lu>vD*f_QtD<UiwMwzA(9Q)ZbStbj(jebI28V;}
zS@IGwDI?5II#~I!u!v$bSQU#(x0>{){OQndMa?g87ITd-dTeXhz9s!D-*!iyt<Yj(
z>#P_jhk2Arw%ZN^$=ab?M;3!EBWto*$vz)J)<QP3!azkgD-8}PsOU6#wb;piagxT^
zUe;<f8h9&#;9y2H8i&(PUgv{`Fh4mKo57i!NN$$D5Hxr1DhFTbE;a%hjb8GPrdzMh
zX{6Jptb9kVqXp|T*^FLJ@`5thO=LKo23k1)N}f44PqjC<sHBImrTGP9&#}5vT%bCL
zz={%-t6Eh%sdvRnp@Te$45!hSpHGI=NOm{%de8D?NkZPBfI_pe&|<KY=aZL+*$Pk3
zv6In;*2#YkmAo*mMpfzZL>g2nhiWWznn{PqtJ7+<s|E)dX7Zq-DI^s*As!acg!LX_
zYff&exnz&Pi-oS7>`w9`B70sPSzssil=Rc!fEv}5ZJd_0O$LX&R;@&LG+ic(+$80O
ztb}wyEwGW7cr@vG&thkuja8Q-gWYV%CNDG6Fs=9|B?=abimB8xbUTeuu-eL-XD!}c
zhe)%~3Tqd(sd*mRXBOCcM`11*K(hV<yRC>+Fj~8Sw~>@Vt5dO<v+V|Zv4)l^x=Kx0
zI*c(H5waBBqvZb;?%B(ebYDmMY-78F+=@$6axJ!OQWxkB;>6jFEVD`Tfa#E2Npy1(
zFM5Y+b=d4oURRhed%<)`E{wSal7Gg$LhG<B^77CJ)gm{^&)qAcaP<>DX{1_BS+Eg$
k_;PBPp7~7d1FI$*W_PlO;YuW2C9Qn*6f*pfivw=|4@P(J)&Kwi

diff --git a/bitbots_recordui_rqt/package.xml b/bitbots_recordui_rqt/package.xml
deleted file mode 100644
index b2cc1151f..000000000
--- a/bitbots_recordui_rqt/package.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?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>bitbots_recordui_rqt</name>
-  <version>1.0.0</version>
-  <description>TODO
-  </description>
-
-  <maintainer email="6stelter@informatik.uni-hamburg.de">Sebastian Stelter</maintainer>
-  <maintainer email="info@bit-bots.de">Hamburg Bit-Bots</maintainer>
-
-  <author email="5guelden@informatik.uni-hamburg.de">Jasper Güldenstein</author>
-
-  <license>MIT</license>
-
-  <buildtool_depend>catkin</buildtool_depend>
-
-  <exec_depend version_gte="0.2.19">python_qt_binding</exec_depend>
-  <exec_depend>python3-rospkg</exec_depend>
-  <exec_depend>qt_dotgraph</exec_depend>
-  <exec_depend>rosgraph</exec_depend>
-  <exec_depend>rosgraph_msgs</exec_depend>
-  <exec_depend>roslib</exec_depend>
-  <exec_depend>rosnode</exec_depend>
-  <exec_depend>rospy</exec_depend>
-  <exec_depend>rosservice</exec_depend>
-  <exec_depend>rostopic</exec_depend>
-  <exec_depend>rqt_gui</exec_depend>
-  <exec_depend>rqt_gui_py</exec_depend>
-  <exec_depend>bitbots_hcm</exec_depend>
-
-  <export>
-    <architecture_independent/>
-    <rqt_gui plugin="${prefix}/plugin.xml"/>
-    <bitbots_documentation>
-      <status>tested_robot</status>
-      <language>python3</language>
-    </bitbots_documentation>
-  </export>
-</package>
-
diff --git a/bitbots_recordui_rqt/plugin.xml b/bitbots_recordui_rqt/plugin.xml
deleted file mode 100644
index a7e1e35b4..000000000
--- a/bitbots_recordui_rqt/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<library path="src">
-  <class name="RecordUI" type="bitbots_recordui_rqt.record_ui.RecordUI" base_class_type="rqt_gui_py::Plugin">
-    <description>
-      TODO
-    </description>
-    <qtgui>
-      <group>
-        <label>RoboCup</label>
-        <icon type="theme">folder</icon>
-        <statustip>Plugins related to RoboCup.</statustip>
-      </group>
-      <label>Animation record</label>
-      <icon type="theme">preferences-system-network</icon>
-      <statustip>TODO</statustip>
-    </qtgui>
-  </class>
-</library>
diff --git a/bitbots_recordui_rqt/resource/RecordUI.ui b/bitbots_recordui_rqt/resource/RecordUI.ui
deleted file mode 100644
index dd5d6ca4e..000000000
--- a/bitbots_recordui_rqt/resource/RecordUI.ui
+++ /dev/null
@@ -1,339 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>1285</width>
-    <height>670</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>MainWindow</string>
-  </property>
-  <widget class="QWidget" name="centralwidget">
-   <layout class="QGridLayout" name="gridLayout_2">
-    <item row="0" column="0">
-     <layout class="QHBoxLayout" name="contentLayout" stretch="1,3,1">
-      <property name="sizeConstraint">
-       <enum>QLayout::SetNoConstraint</enum>
-      </property>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_2">
-        <item>
-         <layout class="QGridLayout" name="gridLayout">
-          <item row="0" column="1">
-           <widget class="QLineEdit" name="lineAnimationName"/>
-          </item>
-          <item row="1" column="0">
-           <widget class="QLabel" name="label_2">
-            <property name="text">
-             <string>Author</string>
-            </property>
-           </widget>
-          </item>
-          <item row="3" column="1">
-           <widget class="QPlainTextEdit" name="fieldDescription">
-            <property name="maximumSize">
-             <size>
-              <width>16777215</width>
-              <height>150</height>
-             </size>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="0">
-           <widget class="QLabel" name="label_3">
-            <property name="text">
-             <string>Animation Name</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="1">
-           <widget class="QLineEdit" name="lineAuthor"/>
-          </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="label">
-            <property name="text">
-             <string>Version</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="1">
-           <widget class="QLineEdit" name="lineVersion"/>
-          </item>
-          <item row="3" column="0">
-           <widget class="QLabel" name="label_4">
-            <property name="text">
-             <string>Description</string>
-            </property>
-            <property name="alignment">
-             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_3">
-        <item>
-         <layout class="QHBoxLayout" name="horizontalLayout">
-          <item>
-           <widget class="QLabel" name="label_5">
-            <property name="text">
-             <string>Frame Name</string>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QLineEdit" name="lineFrameName"/>
-          </item>
-          <item>
-           <widget class="QLabel" name="label_6">
-            <property name="text">
-             <string>Duration</string>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QDoubleSpinBox" name="spinBoxDuration">
-            <property name="singleStep">
-             <double>0.100000000000000</double>
-            </property>
-            <property name="value">
-             <double>1.000000000000000</double>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QLabel" name="label_7">
-            <property name="text">
-             <string>Pause</string>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QDoubleSpinBox" name="spinBoxPause">
-            <property name="singleStep">
-             <double>0.100000000000000</double>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QPushButton" name="buttonRecord">
-            <property name="text">
-             <string>Record</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </item>
-        <item>
-         <layout class="QGridLayout" name="motorControlLayout"/>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="treeLayout">
-        <item>
-         <widget class="QComboBox" name="treeModeSelector">
-          <item>
-           <property name="text">
-            <string>Power mode</string>
-           </property>
-          </item>
-          <item>
-           <property name="text">
-            <string>Save mode</string>
-           </property>
-          </item>
-         </widget>
-        </item>
-        <item>
-         <widget class="QTreeWidget" name="motorTree">
-          <column>
-           <property name="text">
-            <string notr="true">1</string>
-           </property>
-          </column>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QToolBar" name="toolBar">
-   <property name="windowTitle">
-    <string>toolBar</string>
-   </property>
-   <attribute name="toolBarArea">
-    <enum>TopToolBarArea</enum>
-   </attribute>
-   <attribute name="toolBarBreak">
-    <bool>false</bool>
-   </attribute>
-   <addaction name="actionNew"/>
-   <addaction name="actionOpen"/>
-   <addaction name="actionSave"/>
-   <addaction name="actionSave_as"/>
-   <addaction name="actionInit"/>
-   <addaction name="actionCurrent_Frame"/>
-   <addaction name="actionNext_Frame"/>
-   <addaction name="actionAnimation"/>
-   <addaction name="actionAnimation_until_Frame"/>
-   <addaction name="actionDuplicate_Frame"/>
-   <addaction name="actionDelete_Frame"/>
-   <addaction name="actionLeft"/>
-   <addaction name="actionRight"/>
-   <addaction name="actionInvert"/>
-   <addaction name="actionUndo"/>
-   <addaction name="actionRedo"/>
-   <addaction name="actionHelp"/>
-  </widget>
-  <widget class="QStatusBar" name="statusBar"/>
-  <action name="actionNew">
-   <property name="text">
-    <string>New</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+N</string>
-   </property>
-  </action>
-  <action name="actionOpen">
-   <property name="text">
-    <string>Open</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+O</string>
-   </property>
-  </action>
-  <action name="actionSave">
-   <property name="text">
-    <string>Save</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+S</string>
-   </property>
-  </action>
-  <action name="actionSave_as">
-   <property name="text">
-    <string>Save as</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Shift+S</string>
-   </property>
-  </action>
-  <action name="actionInit">
-   <property name="text">
-    <string>Play Init</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+I</string>
-   </property>
-  </action>
-  <action name="actionCurrent_Frame">
-   <property name="text">
-    <string>Play Frame</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+P</string>
-   </property>
-  </action>
-  <action name="actionNext_Frame">
-   <property name="text">
-    <string>Play Next</string>
-   </property>
-   <property name="shortcut">
-    <string>Alt+P</string>
-   </property>
-  </action>
-  <action name="actionAnimation">
-   <property name="text">
-    <string>Play Animation</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Shift+P</string>
-   </property>
-  </action>
-  <action name="actionAnimation_until_Frame">
-   <property name="text">
-    <string>Play Until</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Alt+P</string>
-   </property>
-  </action>
-  <action name="actionDuplicate_Frame">
-   <property name="text">
-    <string>Duplicate Frame</string>
-   </property>
-   <property name="shortcut">
-    <string>+</string>
-   </property>
-  </action>
-  <action name="actionDelete_Frame">
-   <property name="text">
-    <string>Delete Frame</string>
-   </property>
-   <property name="shortcut">
-    <string>-</string>
-   </property>
-  </action>
-  <action name="actionUndo">
-   <property name="text">
-    <string>Undo</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Z</string>
-   </property>
-  </action>
-  <action name="actionRedo">
-   <property name="text">
-    <string>Redo</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Y</string>
-   </property>
-  </action>
-  <action name="actionLeft">
-   <property name="text">
-    <string>Mirror to Left</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Left</string>
-   </property>
-  </action>
-  <action name="actionRight">
-   <property name="text">
-    <string>Mirror to Right</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Right</string>
-   </property>
-  </action>
-  <action name="actionInvert">
-   <property name="text">
-    <string>Invert</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Down</string>
-   </property>
-  </action>
-  <action name="actionHelp">
-   <property name="text">
-    <string>Help</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+H</string>
-   </property>
-  </action>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/bitbots_recordui_rqt/setup.py b/bitbots_recordui_rqt/setup.py
deleted file mode 100644
index 1d654f18e..000000000
--- a/bitbots_recordui_rqt/setup.py
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env python
-
-from distutils.core import setup
-from catkin_pkg.python_setup import generate_distutils_setup
-
-d = generate_distutils_setup(
-    packages=['bitbots_recordui_rqt'],
-    package_dir={'': 'src'},
-    #scripts=['scripts/motion_viz']
-)
-
-setup(**d)
diff --git a/bitbots_recordui_rqt/src/bitbots_recordui_rqt/__init__.py b/bitbots_recordui_rqt/src/bitbots_recordui_rqt/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/bitbots_recordui_rqt/src/bitbots_recordui_rqt/animation_recording.py b/bitbots_recordui_rqt/src/bitbots_recordui_rqt/animation_recording.py
deleted file mode 100644
index cc7db92bb..000000000
--- a/bitbots_recordui_rqt/src/bitbots_recordui_rqt/animation_recording.py
+++ /dev/null
@@ -1,377 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-import datetime
-
-# todo
-# copy paste of frames, from one animation to another
-# record button next to frame name filed
-# set min max for joint value fields
-
-import json
-import os
-import math
-
-import actionlib
-import humanoid_league_msgs
-import rosparam
-from rosgraph import MasterException
-import rospy
-from copy import deepcopy
-from socket import gethostname
-import rospkg
-from humanoid_league_msgs.msg import PlayAnimationAction
-
-import subprocess
-
-
-class AnimationData(object):
-    ''' 
-    Defines a current status of the recorded Animation
-    '''
-
-    def __init__(self):
-        self.anim_steps = []
-        self.name = "None yet"
-        self.version = 0
-        self.last_edited = datetime.datetime.isoformat(datetime.datetime.now(), ' ')
-        self.author = "Unknown"
-        self.last_hostname = "Unknown"
-        self.description = "Edit me!"
-
-
-class Recorder(object):
-    ''' Recorder Methods are gathered in this class
-
-    :param ipc: Shared Memory provider to set data
-    :param gui: urwid-gui responsible for displaying this reocrd-instance
-    :param logger:
-        the logger to use, defaults to 'record-gui' the logger is
-        important for the commuication with the gui-console
-    '''
-
-    def __init__(self):
-        self.steps = []
-        self.redo_steps = []
-        self.current_state = AnimationData()
-        self.anim_client = actionlib.SimpleActionClient('animation', PlayAnimationAction)
-        self.save_step('Initial step')
-
-    def get_animation_state(self):
-        return self.current_state.anim_steps
-
-    def get_meta_data(self):
-        data = self.current_state
-        return data.name, data.version, data.author, data.description
-
-    def set_meta_data(self, name, version, author, description):
-        self.current_state.name = name
-        self.current_state.version = version
-        self.current_state.author = author
-        self.current_state.description = description
-
-    def save_step(self, description, state=None):
-        ''' Save the current state of the Animation
-        for later restoration by the undo-command
-
-        (Yes we might save only a diff, but the Memory consumption
-        should still be relatively low this way and saving / undoing
-        is really cheap in terms of CPU and effort spent programming)
-
-        :param description: A string describing the saved action for the user
-        :param state: a AnimState can be given otherwise the current one is used
-        '''
-
-        rospy.logdebug("Saving step: %s" % description)
-        if not state:
-            state = deepcopy(self.current_state)
-        self.steps.append((state, description))
-        self.save_animation("backup")
-
-    def undo(self, amount=1):
-        ''' Undo <amount> of steps or the last Step if omitted
-        '''
-        if amount > len(self.steps) or self.steps[-1][1] == "Initial step":
-            rospy.logwarn("I cannot undo what did not happen!")
-            return "I cannot undo what did not happen!"
-        if amount == 1:
-            state, description = self.steps.pop()
-            self.redo_steps.append((state, description, self.current_state))
-            rospy.loginfo("Undoing: %s" % description)
-            if self.steps:
-                state, description = self.steps[-1]
-                self.current_state = state
-                rospy.loginfo("Last noted action: %s" % description)
-                return "Undoing. Last noted action: %s" % description
-            else:
-                rospy.loginfo("There are no previously noted steps")
-                return "Undoing. There are no more previous steps."
-        else:
-            rospy.loginfo("Undoing %i steps" % amount)
-            state, description = self.steps[-amount]
-            self.current_state = state
-            self.redo_steps = self.steps[-amount:].reverse()
-            self.steps = self.steps[:-amount]
-            return "Undoing %i steps" % amount
-
-    def redo(self, amount=1):
-        ''' Redo <amount> of steps, or the last step if omitted
-        '''
-        post_state = None
-        if not self.redo_steps:
-            rospy.logwarn("Cannot redo what was not undone!")
-            return "Cannot redo what was not undone!"
-        if amount < 0:
-            rospy.logwarn("Amount cannot be negative! (What where you even thinking?)")
-            return "Amount cannot be negative! (What where you even thinking?)"
-        while amount and self.redo_steps:
-            pre_state, description, post_state = self.redo_steps.pop()
-            self.steps.append((pre_state, description))
-            amount -= 1
-        self.current_state = post_state
-        rospy.loginfo("Last noted step is now: %s " % self.steps[-1][1])
-        return "Last noted step is now: %s " % self.steps[-1][1]
-
-    def record(self, motor_pos, motor_torque, frame_name, duration, pause, seq_pos=None, override=False):
-        ''' Record Command, save current keyframe-data
-        '''
-        frame = {
-            "name": frame_name,
-            "duration": duration,
-            "pause": pause,
-            "goals": motor_pos,
-            "torque": motor_torque
-        }
-        new_frame = deepcopy(frame)
-        if seq_pos is None:
-            self.current_state.anim_steps.append(new_frame)
-            self.save_step("Appending new keyframe " + frame_name)
-        elif not override:
-            self.current_state.anim_steps.insert(seq_pos, new_frame)
-            self.save_step("Inserting new keyframe " + frame_name + " to position " + str(seq_pos))
-        else:
-            self.current_state.anim_steps[seq_pos] = new_frame
-            self.save_step("overriding keyframe " + frame_name + " at position " + str(seq_pos))
-        return True
-
-    def clear(self):
-        ''' Record Command, clear all keyframe-data
-        '''
-        newsteps = []
-        for i in self.steps:
-            if i[1] == 'Initial step':
-                newsteps.append(i)
-        self.steps = deepcopy(newsteps)
-        self.current_state.anim_steps = []
-        return True
-
-    def save_animation(self, path, file_name=None, save_checkbox=None):
-        ''' Record Command, dump all keyframedata to an animation .json file
-
-        :param file_name: what name the new file should receive
-        '''
-        if not self.current_state.anim_steps:
-            rospy.loginfo("There is nothing to save.")
-            return "There is nothing to save."
-
-        if not file_name:
-            file_name = self.current_state.name
-
-        if not os.path.isdir(path):
-            path = os.path.expanduser('~')
-        path = os.path.join(path, file_name + '.json')
-        rospy.logdebug("Saving to '%s'" % path)
-
-        savedKeyframes = deepcopy(self.current_state.anim_steps)
-
-        for kf in savedKeyframes:
-            if not save_checkbox == None:
-                if kf["name"] in save_checkbox:
-                    for k, v in save_checkbox[kf["name"]].items():
-                        if v == 0:
-                            kf["goals"].pop(k)
-
-        anim = {
-            "name": self.current_state.name,
-            "version": self.current_state.version,
-            "last_edited": datetime.datetime.isoformat(datetime.datetime.now(), ' '),
-            "author": self.current_state.author,
-            "description": self.current_state.description,
-            "keyframes": savedKeyframes,
-            "hostname": gethostname()
-        }
-
-        for kf in anim['keyframes']:
-            for k, v in kf['goals'].items():
-                kf['goals'][k] = int(math.degrees(v))
-
-        with open(path, "w") as fp:
-            json.dump(anim, fp, sort_keys=True, indent=4)
-        return ("Saving to '%s'" % path + ". Done.")
-
-    def remove(self, framenumber=None):
-        ''' Record Command, remove the last keyframedata
-
-        :param framenumber: The Number of frame to remove. default is last
-        '''
-        if not framenumber:
-            if not self.current_state.anim_steps:
-                rospy.logwarn("Nothing to revert, framelist is empty!")
-                return False
-            self.save_step("Reverting the last Keyframe (#%i)" % len(self.current_state.anim_steps))
-            self.current_state.anim_steps.pop()
-            return True
-        else:
-            try:
-                framenumber = int(framenumber)
-            except TypeError:
-                rospy.logwarn("Optional framenumber must be Integer! (got %s)" % framenumber)
-                return False
-            if len(self.current_state.anim_steps) < framenumber:
-                rospy.logwarn("Invalid framenumber: %i" % framenumber)
-                return False
-            self.save_step("Reverting keyframe #%i" % framenumber)
-            framenumber -= 1  # Frameindices in the GUI are starting with 1, not 0
-            self.current_state.anim_steps.pop(framenumber)
-        return True
-
-    def load_animation(self, path):
-        ''' Record command, load a animation '.json' file
-
-        :param path: path of the animation to load
-        '''
-        data = []
-        with open(path) as fp:
-            try:
-                data = json.load(fp)
-                i = 0
-                for kf in data['keyframes']:
-                    if not 'name' in kf:
-                        kf['name'] = 'frame'+str(i)
-                        i += 1
-                for kf in data['keyframes']:
-                    for k, v in kf['goals'].items():
-                        kf['goals'][k] = math.radians(v)
-            except ValueError as e:
-                rospy.logerr("Animation %s is corrupt:\n %s" %
-                             (path, e.message.partition('\n')[0]))
-                return ("Animation %s is corrupt:\n %s" % (path, e.message.partition('\n')[0]))
-
-
-        # Ensure Data retrieval was a success
-        if not data:
-            return False
-
-        self.save_step("Loading of animation named %s" % path)
-
-        self.current_state.anim_steps = data['keyframes']
-
-    def play(self, anim_path, until_frame=None):
-        ''' Record command, start playing an animation
-
-        Can play a certain (named) animation or the current one by default.
-        Also can play only a part of an animation if end is defined
-
-        :param until_frame: the frame until which the animation should be played
-        '''
-        try:
-            if not self.current_state.anim_steps:
-                rospy.loginfo("Refusing to play, because nothing to play exists!")
-                return "Refusing to play, because nothing to play exists!"
-            if not until_frame:
-                # play complete animation
-                n = len(self.current_state.anim_steps)
-            else:
-                # play the given number if not higher than current steps
-                n = min(until_frame, len(self.current_state.anim_steps))
-
-            anim_dict = {
-                "name": "Record-play",
-                "keyframes": deepcopy(self.current_state.anim_steps[0:n])
-            }
-            for kf in anim_dict['keyframes']:
-                for k, v in kf['goals'].items():
-                    kf['goals'][k] = int(math.degrees(v))
-
-            rospy.loginfo("playing %d frames..." % len(anim_dict['keyframes']))
-            self.execute_play(anim_dict, anim_path)
-            return "playing %d frames..." % len(anim_dict['keyframes'])
-        except MasterException:
-            rospy.logwarn("There is no Robot! Can't play Animation!")
-            return "There is no Robot! Can't play Animation!"
-
-    def execute_play(self, anim_dict, anim_path):
-        ''' We make a temporary copy of the animation and call the animation play action to play it'''
-        anim_package = rosparam.get_param("robot_type_name").lower() + "_animations"
-        rospack = rospkg.RosPack()
-        path = rospack.get_path(anim_package)
-        path = os.path.join(path, "record" + '.json')
-
-
-        with open(path, "w") as fp:
-            json.dump(anim_dict, fp, sort_keys=True, indent=4)
-        p = subprocess.Popen(["scp", path, anim_path]).wait()
-        self.play_animation("record")
-
-    def play_animation(self, name):
-        '''Sends the animation to the animation server '''
-        first_try = self.anim_client.wait_for_server(
-            rospy.Duration(rospy.get_param("hcm/anim_server_wait_time", 10)))
-        if not first_try:
-            rospy.logerr(
-                "Animation Action Server not running! Will now wait until server is accessible!")
-            self.anim_client.wait_for_server()
-            rospy.logwarn("Animation server now running, hcm will go on.")
-        goal = humanoid_league_msgs.msg.PlayAnimationGoal()
-        goal.animation = name
-        goal.hcm = True  # force
-        self.anim_client.send_goal_and_wait(goal)
-        rospy.sleep(0.5)
-
-    def change_frame_order(self, new_order):
-        ''' Changes the order of the frames given an array of frame names'''
-        new_ordered_frames = []
-        for frame_name in new_order:
-            for frame in self.current_state.anim_steps:
-                if frame_name == frame["name"]:
-                    new_ordered_frames.append(frame)
-
-        self.current_state.anim_steps = new_ordered_frames
-        self.save_step("Reordered frames")
-
-    def duplicate(self, frame_name):
-        '''
-        Duplicates a frame
-        '''
-        new_frames = []
-        for frame in self.current_state.anim_steps:
-            new_frames.append(frame)
-            if frame_name == frame["name"]:
-                duplicate = deepcopy(frame)
-                newname = frame_name + "d"
-                x = True
-                n = 0
-                for frame in self.current_state.anim_steps:
-                    if newname == frame["name"]:
-                        while(x):
-                            x = False
-                            for frame in self.current_state.anim_steps:
-                                if newname + str(n) == frame["name"]:
-                                    n+=1
-                                    x = True
-                        newname = newname+str(n)
-
-                duplicate["name"] = newname
-                new_frames.append(duplicate)
-        self.current_state.anim_steps = new_frames
-        self.save_step("Duplicated Frame " + frame_name)
-
-    def delete(self, frame_name):
-        '''
-        Deletes a frame
-        '''
-        new_frames = []
-        for frame in self.current_state.anim_steps:
-            if not frame_name == frame["name"]:
-                new_frames.append(frame)
-        self.current_state.anim_steps = new_frames
-        self.save_step("Duplicated Frame " + frame_name)
diff --git a/bitbots_recordui_rqt/src/bitbots_recordui_rqt/record_ui.py b/bitbots_recordui_rqt/src/bitbots_recordui_rqt/record_ui.py
deleted file mode 100644
index 83f79a765..000000000
--- a/bitbots_recordui_rqt/src/bitbots_recordui_rqt/record_ui.py
+++ /dev/null
@@ -1,944 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-import rospkg
-import rospy
-import time
-import math
-import inspect
-from copy import deepcopy
-
-from python_qt_binding.QtCore import Qt, QMetaType, QDataStream, QVariant, pyqtSignal
-from python_qt_binding import loadUi
-from rqt_gui_py.plugin import Plugin
-from python_qt_binding.QtWidgets import QMainWindow, QTreeWidget, QTreeWidgetItem,QListWidgetItem, \
-    QSlider, QGroupBox, QVBoxLayout, QLabel, QLineEdit, QListWidget, QAbstractItemView, QFileDialog, QDoubleSpinBox, QMessageBox, \
-    QInputDialog, QShortcut
-from python_qt_binding.QtGui import QDoubleValidator, QKeySequence
-
-from bitbots_msgs.msg import JointCommand, JointTorque
-from sensor_msgs.msg import JointState
-from trajectory_msgs.msg import JointTrajectory, JointTrajectoryPoint
-
-import os
-
-from .animation_recording import Recorder
-
-
-
-class DragDropList(QListWidget):
-    ''' QListWidget with an event that is called when a drag and drop action was performed.'''
-    keyPressed = pyqtSignal()
-
-    def __init__(self, parent, ui):
-        super(DragDropList, self).__init__(parent)
-
-        self.ui = ui
-        self.setAcceptDrops(True)
-
-
-    def dropEvent(self, e):
-        super(DragDropList, self).dropEvent(e)
-        items = []
-        for i in range(0, self.count()):
-            items.append(self.item(i).text())
-        self.ui.change_frame_order(items)
-
-    def keyPressEvent(self, event):
-        if event.key() == Qt.Key_Delete:
-            super(DragDropList, self).keyPressEvent(event)
-            self.keyPressed.emit()
-        elif event.key() == Qt.Key_Up and self.currentRow()-1 >= 0:
-                self.setCurrentRow(self.currentRow()-1)
-        elif event.key() == Qt.Key_Down and self.currentRow()+1 < self.count():
-            self.setCurrentRow(self.currentRow()+1)
-
-
-
-
-class RecordUI(Plugin):
-    ''' class containing the UI part of the framework'''
-    def __init__(self, context):
-        super(RecordUI, self).__init__(context)
-
-
-        self._widget = QMainWindow()
-        rp = rospkg.RosPack()
-        ui_file = os.path.join(rp.get_path('bitbots_recordui_rqt'), 'resource', 'RecordUI.ui')
-        loadUi(ui_file, self._widget, {})
-
-        self._recorder = Recorder()
-        self._sliders = {}
-        self._textFields = {}
-        self._motorSwitched = {}
-        self._selected_frame  = None
-
-        self._currentGoals = {}                 # this is the data about the current unsaved frame
-        self._currentDuration = 1.0
-        self._currentPause = 0.0
-        self._currentName = "new frame"
-
-        self._workingValues = {}                # this is the data about the frame that is displayed
-        self._workingDuration = 1.0
-        self._workingPause = 0.0
-        self._workingName = self._currentName
-
-        self._current = True
-
-        self._saveDir = None
-
-        self._robot_anim_path = None
-
-        #save current frame when switching to other frames for reference
-        #working frame
-
-        self._treeItems = {}
-        self._motorCheckBody = QTreeWidgetItem(self._widget.motorTree)
-        self._motorCheckLegs = QTreeWidgetItem(self._motorCheckBody)
-        self._motorCheckArms = QTreeWidgetItem(self._motorCheckBody)
-        self._motorCheckHead = QTreeWidgetItem(self._motorCheckBody)
-        self._motorCheckLArm = QTreeWidgetItem(self._motorCheckArms)
-        self._motorCheckRArm = QTreeWidgetItem(self._motorCheckArms)
-        self._motorCheckLLeg = QTreeWidgetItem(self._motorCheckLegs)
-        self._motorCheckRLeg = QTreeWidgetItem(self._motorCheckLegs)
-
-        #saves configuration of the trees checkboxes for each of the tree modes.
-        self._checkBoxesSave = {}
-        self._checkBoxesPower = {}
-        self._previousTreeMode = 0
-
-        self.setObjectName('Record Animation')
-
-        self._initial_joints = None
-
-        self._widget.frameList = DragDropList(self._widget, self)
-        self._widget.verticalLayout_2.insertWidget(0, self._widget.frameList)
-        self._widget.frameList.setDragDropMode(QAbstractItemView.InternalMove)
-
-        self.state_sub = rospy.Subscriber("joint_states", JointState, self.state_update, queue_size=1, tcp_nodelay=True)
-        self._joint_pub = rospy.Publisher("record_motor_goals", JointCommand, queue_size=1)
-        self.effort_pub = rospy.Publisher("ros_control/set_torque_individual", JointTorque, queue_size=1)
-
-        self.ids = {"HeadPan": 0,
-               "HeadTilt": 1,
-               "LShoulderPitch": 2,
-               "LShoulderRoll": 3,
-               "LElbow": 4,
-               "RShoulderPitch": 5,
-               "RShoulderRoll": 6,
-               "RElbow": 7,
-               "LHipYaw": 8,
-               "LHipRoll": 9,
-               "LHipPitch": 10,
-               "LKnee": 11,
-               "LAnklePitch": 12,
-               "LAnkleRoll": 13,
-               "RHipYaw": 14,
-               "RHipRoll": 15,
-               "RHipPitch": 16,
-               "RKnee": 17,
-               "RAnklePitch": 18,
-               "RAnkleRoll": 19}
-
-        self._initial_joints = JointState()
-
-        self.update_time = rospy.Duration(0.1)
-
-        for k,v in self.ids.items():
-            rospy.loginfo(k)
-            self._initial_joints.name.append(k)
-            self._initial_joints.position.append(0)
-
-        while not self._initial_joints:
-            if not rospy.is_shutdown():
-                time.rospy.sleep(0.5)
-                rospy.logwarn("wait")
-            else:
-                return
-
-        self.initialize()
-
-        context.add_widget(self._widget)
-        self._widget.statusBar.showMessage("Initialization complete.")
-
-    def initialize(self):
-        for i in range(0, len(self._initial_joints.name)):
-            self._currentGoals[self._initial_joints.name[i]] = self._initial_joints.position[i]
-            self._workingValues[self._initial_joints.name[i]] = self._initial_joints.position[i]
-            self._motorSwitched[self._initial_joints.name[i]] = True
-
-
-        host = os.environ['ROS_MASTER_URI'].split('/')[2].split(':')[0]
-        self._robot_anim_path = "bitbots@{}:~/wolfgang_ws/src/wolfgang_robot/wolfgang_animations/animations/motion/".format(host)
-                
-        rospy.loginfo("Set animation path to: "+str(self._robot_anim_path+"record.json"))
-
-        initTorque = {}
-        for k, v in self._workingValues.items():
-            initTorque[k] = 2
-
-        self._checkBoxesPower['#CURRENT_FRAME'] = initTorque
-
-        self.motor_controller()
-        self.motor_switcher()
-        self.action_connect()
-        self.box_ticked()
-        self.frame_list()
-        self.update_frames()
-        self.set_sliders_and_text_fields(manual=True)
-
-    def state_update(self, joint_states):
-        '''
-        Callback method for /joint_states. Updates the sliders to the actual values of the motors when the robot moves.
-        '''
-        if not self._initial_joints:
-            self._initial_joints = joint_states
-            time.rospy.sleep(1)
-        else:
-            for i in range(0, len(joint_states.name)):
-                if (not self._motorSwitched[joint_states.name[i]]):
-                    self._workingValues[joint_states.name[i]] = joint_states.position[i]
-
-
-        rospy.sleep(self.update_time)
-        self.set_sliders_and_text_fields(manual=False)
-
-
-    def motor_controller(self):
-        '''
-        Sets up the GUI in the middle of the Screen to control the motors. 
-        Uses self._motorValues to determine which motors are present.
-        '''
-        i = 0
-        for k, v in sorted(self._currentGoals.items()):
-            group = QGroupBox()
-            slider = QSlider(Qt.Horizontal)
-            slider.setTickInterval(1)
-            slider.setMinimum(-181)
-            slider.setMaximum(181)
-            slider.sliderMoved.connect(self.slider_update) # This has to  be a sliderMoved signal, since valueChanged is
-                                                           # triggered by other sources than user action.
-            self._sliders[k] = slider
-
-            textfield = QLineEdit()
-            textfield.setText('0')
-            textfield.textEdited.connect(self.textfield_update)
-            self._textFields[k] = textfield
-
-            label = QLabel()
-            label.setText(k)
-
-            layout = QVBoxLayout()
-            layout.addWidget(label)
-            layout.addWidget(self._sliders[k])
-            layout.addWidget(self._textFields[k])
-            group.setLayout(layout)
-            self._widget.motorControlLayout.addWidget(group, i / 5, i % 5)
-            i = i+1
-
-    def action_connect(self):
-        '''
-        Connects the actions in the top bar to the corresponding functions, and sets their shortcuts
-        :return: 
-        '''
-        self._widget.actionNew.triggered.connect(self.new)
-        self._widget.actionOpen.triggered.connect(self.open)
-        self._widget.actionSave.triggered.connect(self.save)
-        self._widget.actionSave_as.triggered.connect(self.save_as)
-        self._widget.actionInit.triggered.connect(self.goto_init)
-        self._widget.actionCurrent_Frame.triggered.connect(self.goto_frame)
-        self._widget.actionNext_Frame.triggered.connect(self.goto_next)
-        self._widget.actionAnimation.triggered.connect(self.play)
-        self._widget.actionAnimation_until_Frame.triggered.connect(self.play_until)
-        self._widget.actionDuplicate_Frame.triggered.connect(self.duplicate)
-        self._widget.actionDelete_Frame.triggered.connect(self.delete)
-        self._widget.actionLeft.triggered.connect(lambda: self.mirrorFrame("L"))
-        self._widget.actionRight.triggered.connect(lambda: self.mirrorFrame("R"))
-        self._widget.actionInvert.triggered.connect(self.invertFrame)
-        self._widget.actionUndo.triggered.connect(self.undo)
-        self._widget.actionRedo.triggered.connect(self.redo)
-        self._widget.actionHelp.triggered.connect(self.help)
-
-        self._widget.buttonRecord.clicked.connect(self.record)
-        self._widget.buttonRecord.shortcut = QShortcut(QKeySequence("Space"), self._widget)
-        self._widget.buttonRecord.shortcut.activated.connect(self.record)
-
-
-        self._widget.frameList.keyPressed.connect(self.delete)
-
-        self._widget.treeModeSelector.currentIndexChanged.connect(self.treeModeChanged)
-
-    def help(self):
-        '''
-        Prints out the help dialogue
-        '''
-        helpDialog = QMessageBox.about(self._widget, "About RecordUI", "This is RecordUI, a tool to record robot animations.\n \n Keyboard shortcuts: \n \n \
-            New: Ctrl + N \n \
-            Open: Ctrl + O \n \
-            Save: Ctrl + S \n \
-            Save as: Ctrl + Shift + S \n \n \
-            Play Init: Ctrl + I \n \
-            Play Frame: Ctrl + P \n \
-            Play Next: Alt + P \n \
-            Play Animation: Ctrl + Shift + P \n \
-            Play Until: Ctrl + Alt + P \n \n \
-            Record Frame: Space \n \
-            Duplicate Frame: '+' \n \
-            Delete Frame: '-' \n \
-            Undo: Ctrl + Z \n \
-            Redo: Ctrl + Y \n \
-            Help: Ctrl + H \n \n \
-            Mirror to Left: Ctrl + Left Arrow \n \
-            Mirror to Right: Ctrl + Right Arrow \n \
-            Invert: Ctrl + Down Arrow")
-
-    def new(self):
-        '''
-        Deletes all currently recorded frames
-        '''
-        if len(self._widget.frameList) > 1:
-            message = "This will discard your current Animation. Continue?"
-            sure = QMessageBox.question(self._widget, 'Sure?', message, QMessageBox.Yes | QMessageBox.No)
-            if sure == QMessageBox.Yes:
-                self._recorder.clear()
-                self.update_frames()
-
-    def save(self):
-        '''
-        Saves all currently recorded frames into a json file
-        '''
-        if self._recorder.get_animation_state():
-            self.treeModeChanged(self._previousTreeMode)
-            self.set_metadata()
-            if not self._saveDir:
-                rp = rospkg.RosPack()
-                #QFileDialogue throws a gtk warning, that can not be suppressed or fixed. Should be ignored.
-                self._saveDir = QFileDialog.getExistingDirectory(directory=str(rp.get_path('wolfgang_animations')+"/animations"))
-            status = self._recorder.save_animation(self._saveDir, self._widget.lineAnimationName.text(), self._checkBoxesSave)
-            self._widget.statusBar.showMessage(status)
-        else:
-            self._widget.statusBar.showMessage("There is nothing to save!")
-            return
-
-    def save_as(self):
-        '''
-        Saves all currently recorded frames into a json file, which is saved at a user specified location
-        '''
-        if self._recorder.get_animation_state():
-            self.treeModeChanged(self._previousTreeMode)
-            rp = rospkg.RosPack()
-            self._saveDir = QFileDialog.getExistingDirectory(directory=str(rp.get_path('wolfgang_animations')+"/animations"))
-            self._recorder.save_animation(self._saveDir, self._widget.lineAnimationName.text(), self._checkBoxesSave)
-        else:
-            self._widget.statusBar.showMessage("There is nothing to save!")
-            return
-
-
-    def set_metadata(self):
-        status = self._recorder.set_meta_data(self._widget.lineAnimationName.text(),
-                                     self._widget.lineVersion.text(),
-                                     self._widget.lineAuthor.text(),
-                                     self._widget.fieldDescription.toPlainText())
-        self._widget.statusBar.showMessage(status)
-    def open(self):
-        '''
-        Deletes all current frames and instead loads an animation from a json file
-        '''
-        if len(self._widget.frameList) > 1:
-            message = "This will discard your current Animation. Continue?"
-            sure = QMessageBox.question(self._widget, 'Sure?', message, QMessageBox.Yes | QMessageBox.No)
-            if sure == QMessageBox.No:
-                return
-        rp = rospkg.RosPack()
-        my_file = QFileDialog.getOpenFileName(directory=str(rp.get_path('wolfgang_animations')+"/animations"))[0]
-        if my_file:
-            status = self._recorder.load_animation(my_file)
-            if status == "":
-                status = "Load successful."
-            self._widget.statusBar.showMessage(status)
-
-        animstate = self._recorder.get_animation_state()
-        for i in animstate:
-            try:
-                self._checkBoxesPower[i['name']] = i['torque']
-            except KeyError:
-                self._checkBoxesPower[i['name']] = {}
-                for key in self.ids:
-                    self._checkBoxesPower[i['name']][key] = 2
-
-
-
-        self.update_frames()
-
-        metadata = self._recorder.get_meta_data()
-
-        self._widget.lineAnimationName.setText(metadata[0])
-        self._widget.lineAuthor.setText(metadata[2])
-        self._widget.lineVersion.setText(str(metadata[1]))
-        self._widget.fieldDescription.setPlainText(metadata[3])
-
-    def play(self):
-        '''
-        Plays the animation
-        '''
-        status = self._recorder.play(self._robot_anim_path)
-        self._widget.statusBar.showMessage(status)
-
-    def play_until(self):
-        '''
-        Plays the animation up to a certain frame
-        '''
-        steps = self._recorder.get_animation_state()
-        j = 0
-        for i in range(0, len(steps)):
-            j += 1
-            rospy.loginfo(steps[i]["name"])
-            if steps[i]["name"] == self._selected_frame["name"]:
-                break
-        self._recorder.play(self._robot_anim_path, j)
-
-    def goto_frame(self):
-        '''
-        Plays one single frame
-        '''
-        self.set_all_joints_stiff()
-
-        pos_msg = JointCommand()
-        pos_msg.joint_names = []
-        pos_msg.velocities = [1.0] * 20
-        pos_msg.positions = []
-        pos_msg.accelerations = [-1.0] * 20
-        pos_msg.max_currents = [-1.0] * 20
-
-
-        for k,v in self._workingValues.items():
-            pos_msg.joint_names.append(k)
-            pos_msg.positions.append(v)
-
-        torque_msg = JointTorque()
-        torque_msg.joint_names = []
-        torque_msg.on = []
-
-        for k, v in self._checkBoxesPower[self._widget.frameList.currentItem().text()].items():
-            torque_msg.joint_names.append(k)
-            torque_msg.on.append(v)
-
-        self.effort_pub.publish(torque_msg)
-        self._joint_pub.publish(pos_msg)
-
-    def goto_next(self):
-        if self._widget.frameList.currentRow() < self._widget.frameList.count() - 2:
-            self._widget.frameList.setCurrentRow(self._widget.frameList.currentRow()+1)
-            self.goto_frame()
-
-    def goto_init(self):
-        '''
-        Plays init frame, sets all motor values to 0
-        '''
-        self.set_all_joints_stiff()
-
-        if self._widget.frameList.currentItem().text() == "#CURRENT_FRAME":
-            for k, v in self._workingValues.items():
-                self._workingValues[k] = 0.0
-        for k, v in self._currentGoals.items():
-            self._currentGoals[k] = 0.0
-        self.set_sliders_and_text_fields(manual=False)
-
-        pos_msg = JointCommand()
-        pos_msg.joint_names = self._initial_joints.name
-        pos_msg.velocities = [1.0] * len(self._initial_joints.name)
-        pos_msg.positions = [0.0] * len(self._initial_joints.name)
-        pos_msg.accelerations = [-1.0] * len(self._initial_joints.name)
-        pos_msg.max_currents = [-1.0] * len(self._initial_joints.name)
-
-        self._joint_pub.publish(pos_msg)
-
-    def set_all_joints_stiff(self):
-        '''
-        Enables torque for all motors
-        '''
-        if self._widget.frameList.currentItem().text() == '#CURRENT_FRAME':
-            for k, v in self._treeItems.items():
-                v.setCheckState(0, Qt.Checked)
-
-        torque_msg = JointTorque()
-        torque_msg.joint_names = []
-        torque_msg.on = []
-
-        for k, v in sorted(self._treeItems.items()):
-            torque_msg.joint_names.append(k)
-            torque_msg.on.append(True)
-
-        self.effort_pub.publish(torque_msg)
-
-    def duplicate(self):
-        '''
-        Creates a copy of the selected frame
-        '''
-        try:
-            frame = self._widget.frameList.selectedItems()[0].text()
-        except:
-            return
-        if frame:
-            if not frame == "#CURRENT_FRAME":
-                self._recorder.duplicate(frame)
-                self._widget.statusBar.showMessage("Duplicated frame "+ frame)
-            else:
-                self._widget.statusBar.showMessage("Cannot duplicate current frame. Record first.")
-            self.update_frames()
-
-    def delete(self):
-        '''
-        Deletes a frame
-        '''
-        try:
-            frame = self._widget.frameList.selectedItems()[0].text()
-        except:
-            return
-        if frame:
-            if not frame == "#CURRENT_FRAME":
-                self._recorder.delete(frame)
-                self._widget.statusBar.showMessage("Deleted frame "+ frame)
-            else: 
-                self._widget.statusBar.showMessage("Cannot delete current frame.")
-            self.update_frames()
-
-    def record(self, keep=False):
-        '''
-        Records a frame
-        '''
-        if not self._widget.frameList.currentItem() == None:
-            if self._widget.frameList.currentItem().text() == "#CURRENT_FRAME":
-                x = True
-                n = 0
-                for state in self._recorder.get_animation_state():
-                    if self._workingName == state["name"]:
-                        while(x):
-                            x = False
-                            for state in self._recorder.get_animation_state():
-                                if self._workingName+str(n) == state["name"]:
-                                    n+=1
-                                    x = True
-                        self._workingName = self._workingName+str(n)
-
-                self.set_sliders_and_text_fields(manual=True)
-
-                self._checkBoxesPower[self._workingName] = {}
-                initTorque = {}
-                for k, v in self._workingValues.items():
-                    initTorque[k] = 2
-
-                self._checkBoxesPower[self._workingName] = initTorque
-
-                self._recorder.record(self._workingValues,
-                                      initTorque,
-                                      self._widget.lineFrameName.text(),
-                                      self._widget.spinBoxDuration.value(),
-                                      self._widget.spinBoxPause.value())
-                self._currentGoals = deepcopy(self._workingValues)
-            else:
-                current_row = self._widget.frameList.currentRow()
-
-                self._recorder.record(self._workingValues,
-                                      self._checkBoxesPower[self._widget.frameList.currentItem().text()],
-                                      self._widget.lineFrameName.text(),
-                                      self._widget.spinBoxDuration.value(),
-                                      self._widget.spinBoxPause.value(),
-                                      current_row,
-                                      True)
-
- 
-            self._widget.statusBar.showMessage("Recorded frame "+ self._workingName)
-        self.update_frames(keep)
-
-
-    def undo(self):
-        '''
-        Undos the previous action
-        '''
-        status = self._recorder.undo()
-        self._widget.statusBar.showMessage(status)
-        self.update_frames()
-
-    def redo(self):
-        '''
-        Redos an action
-        '''
-        status = self._recorder.redo()
-        self._widget.statusBar.showMessage(status)
-        self.update_frames()
-
-    def mirrorFrame(self, direction):
-        '''
-        Copies all motor values from one side of the robot to the other. Inverts values, if necessary
-        '''
-        opposite = "L"
-        if direction == "L":
-            opposite = "R"
-        for k, v in self._workingValues.items():
-            if k[0] == opposite:
-                for k1, v1 in self._workingValues.items():
-                    if k1 == str(direction)+k[1:]:
-                        self._workingValues[k1] = v * -1
-
-        boxmode = 0
-        if self._widget.treeModeSelector.currentIndex() == 0:
-            boxmode = self._checkBoxesPower[self._widget.frameList.currentItem().text()]
-        elif self._widget.treeModeSelector.currentIndex() == 1:
-            boxmode = self._checkBoxesSave[self._widget.frameList.currentItem().text()]
-
-        for k, v in boxmode.items():
-            if k[0] == opposite:
-                for k1, v1 in boxmode.items():
-                    if k1 == str(direction)+k[1:]:
-                        if boxmode[k] == 0:
-                            boxmode[k1] = 0
-                        elif boxmode[k] ==2:
-                            boxmode[k1] = 2
-
-        self.updateTreeConfig(self._widget.treeModeSelector.currentIndex())
-        self.box_ticked()
-        self._widget.statusBar.showMessage("Mirrored frame to "+ direction)
-        
-
-    def invertFrame(self):
-        '''
-        Copies all values from the left side to the right and all values from the right side to the left. 
-        Inverts values, if necessary
-        '''
-        tempDict={}
-        for k, v in self._workingValues.items():
-            if k[0] == "L":
-                tempDict["R"+k[1:]] = -v
-            elif k[0] == "R":
-                tempDict["L"+k[1:]] = -v
-        for k, v in tempDict.items():
-            self._workingValues[k] = v
-
-        boxmode = 0
-        if self._widget.treeModeSelector.currentIndex() == 0:
-            boxmode = self._checkBoxesPower
-        elif self._widget.treeModeSelector.currentIndex() == 1:
-            boxmode = self._checkBoxesSave
-
-        for k, v in boxmode[self._widget.frameList.currentItem().text()].items():
-
-            if k[0] == "L":
-                if v == 2:
-                    tempDict["R"+k[1:]] = 2
-                elif v == 0:
-                    tempDict["R"+k[1:]] = 0
-            elif k[0] == "R":
-                if v == 2:
-                    tempDict["L"+k[1:]] = 2
-                elif v == 0:
-                    tempDict["L"+k[1:]] = 0
-
-        boxmode[self._widget.frameList.currentItem().text()] = deepcopy(tempDict)
-        self.updateTreeConfig(self._widget.treeModeSelector.currentIndex())
-        self.box_ticked()
-        self._widget.statusBar.showMessage("Inverted frame")
-
-    def frame_list(self):
-        '''
-        Connects triggers from the frame list to their callback methods.
-        '''
-        self._widget.frameList.itemSelectionChanged.connect(self.frame_select)
-        self._widget.lineFrameName.textEdited.connect(self.frame_meta_update)
-        self._widget.spinBoxPause.valueChanged.connect(self.frame_meta_update)
-        self._widget.spinBoxDuration.valueChanged.connect(self.frame_meta_update)
-
-    def frame_meta_update(self):
-        '''
-        Updates the respective values for the two spin boxes and the frame name, when they are changed
-        '''
-        self._workingDuration = self._widget.spinBoxDuration.value()
-        self._workingPause = self._widget.spinBoxPause.value()
-        self._workingName = self._widget.lineFrameName.text()
-
-    def frame_select(self):
-        '''
-        Loads all information on a specific frame into the working values, if the frame selection changes
-        '''
-        if not (self._widget.frameList.currentItem() == None):
-            self.copyOldTreeConfig()
-            selected_frame_name = self._widget.frameList.currentItem().text()
-            self._selected_frame = None
-
-
-            for v in self._recorder.get_animation_state():
-                if v["name"] == selected_frame_name:
-                    self._selected_frame = v
-                    break
-
-        #save current values to _currentValues if switching from current frame to different one
-        #when switching from current to different, save current values
-
-
-            if selected_frame_name == "#CURRENT_FRAME":
-                self._widget.treeModeSelector.setCurrentIndex(0)
-                self.updateTreeConfig(0)
-                self._widget.treeModeSelector.setEnabled(False)
-                self._workingValues = deepcopy(self._currentGoals)
-                self._workingName = deepcopy(self._currentName)
-                self._workingDuration = deepcopy(self._currentDuration)
-                self._workingPause = deepcopy(self._currentPause)
-
-                self._current = True
-            else:
-                if self._selected_frame == None:
-                    return
-                self._widget.treeModeSelector.setEnabled(True)
-                if self._current:
-                    self._currentGoals = deepcopy(self._workingValues)
-                    self._currentName = deepcopy(self._workingName)
-                    self._currentDuration = deepcopy(self._workingDuration)
-                    self._currentPause = deepcopy(self._workingPause)
-
-                self._workingValues = self._selected_frame["goals"]
-                self._workingName = self._selected_frame["name"]
-                self._workingPause = self._selected_frame["pause"]
-                self._workingDuration = float(self._selected_frame["duration"])
-
-                self._widget.lineFrameName.setText(self._widget.frameList.currentItem().text())
-                self._current = False
-                self.updateTreeConfig(self._previousTreeMode)
-            
-            if  self._widget.treeModeSelector.currentIndex() == 0:
-                for k, v in self._treeItems.items():
-                    self._motorSwitched[k] = (v.checkState(0) == 2)
-
-
-            for k, v in self._motorSwitched.items():
-                self._textFields[k].setEnabled(v)
-                self._sliders[k].setEnabled(v)
-
-        self.box_ticked()
-
-    def motor_switcher(self):
-        '''
-        Loads the motors into the tree and adds the checkboxes
-        '''
-        self._widget.motorTree.setHeaderLabel("Stiff Motors")
-        self._motorCheckBody.setText(0, "Body")
-        self._motorCheckBody.setFlags(self._motorCheckBody.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckBody.setExpanded(True)
-        self._motorCheckHead.setText(0, "Head")
-        self._motorCheckHead.setFlags(self._motorCheckHead.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckHead.setExpanded(True)
-        self._motorCheckArms.setText(0, "Arms")
-        self._motorCheckArms.setFlags(self._motorCheckArms.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckArms.setExpanded(True)
-        self._motorCheckLegs.setText(0, "Legs")
-        self._motorCheckLegs.setFlags(self._motorCheckLegs.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckLegs.setExpanded(True)
-        self._motorCheckLArm.setText(0, "Left Arm")
-        self._motorCheckLArm.setFlags(self._motorCheckLArm.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckLArm.setExpanded(True)
-        self._motorCheckRArm.setText(0, "Right Arm")
-        self._motorCheckRArm.setFlags(self._motorCheckRArm.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckRArm.setExpanded(True)
-        self._motorCheckLLeg.setText(0, "Left Leg")
-        self._motorCheckLLeg.setFlags(self._motorCheckLLeg.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckLLeg.setExpanded(True)
-        self._motorCheckRLeg.setText(0, "Right Leg")
-        self._motorCheckRLeg.setFlags(self._motorCheckRLeg.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
-        self._motorCheckRLeg.setExpanded(True)
-
-        for k, v in self._currentGoals.items():
-            parent = None
-            if 'LHip' in k or 'LKnee' in k or 'LAnkle' in k:
-                parent = self._motorCheckLLeg
-            elif 'RHip' in k or 'RKnee' in k or 'RAnkle' in k:
-                parent = self._motorCheckRLeg
-            elif 'LShoulder' in k or 'LElbow' in k:
-                parent = self._motorCheckLArm
-            elif 'RShoulder' in k or 'RElbow' in k:
-                parent = self._motorCheckRArm
-            elif 'Head' in k:
-                parent = self._motorCheckHead
-            child = QTreeWidgetItem(parent)
-            child.setText(0, k)
-            child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
-            child.setCheckState(0, Qt.Checked)
-            self._treeItems[k] = child
-
-        self._widget.motorTree.itemClicked.connect(self.box_ticked)
-
-    def copyOldTreeConfig(self):
-        '''
-        Saves the current configuration of the motor tree checkboxes into the corresponding dictionary
-        '''
-        if not self._selected_frame == None:
-            tempDict={}
-            for k, v in self._treeItems.items():
-                tempDict[k]= self._treeItems[k].checkState(0)
-
-            if self._previousTreeMode == 1:
-                self._checkBoxesSave[self._selected_frame["name"]] = deepcopy(tempDict)
-            elif self._previousTreeMode == 0:
-                self._checkBoxesPower[self._selected_frame["name"]] = deepcopy(tempDict)
-
-    def updateTreeConfig(self, index):
-        '''
-        Loads the new configuration of the motor tree depending on the change
-        '''
-        tempDict2={}
-        if not self._widget.frameList.currentItem() == None:
-            if not self._widget.frameList.currentItem().text() == "#CURRENT_FRAME":
-                if index == 1:
-                    if self._selected_frame["name"] in self._checkBoxesSave.keys():
-                        tempDict2 = deepcopy(self._checkBoxesSave[self._selected_frame["name"]])
-                    else:
-                        for k in self._workingValues:
-                            tempDict2[k] = 2
-                elif index == 0:
-                    if self._selected_frame["name"] in self._checkBoxesPower.keys():
-                        tempDict2 = deepcopy(self._checkBoxesPower[self._selected_frame["name"]])
-                    else:
-                        for k in self._workingValues:
-                            tempDict2[k] = 2
-            else:
-                for k in self._workingValues:
-                    tempDict2[k] = 2
-            self._previousTreeMode = index
-            for k, v in tempDict2.items():
-                if v == 0:
-                    self._treeItems[k].setCheckState(0, Qt.Unchecked)
-                elif v == 1:
-                    self._treeItems[k].setCheckState(0, Qt.PartiallyChecked)
-                elif v == 2:
-                    self._treeItems[k].setCheckState(0, Qt.Checked)
-
-    def treeModeChanged(self, index):
-        self.copyOldTreeConfig()
-        self.updateTreeConfig(index)
-
-
-    def slider_update(self):
-        '''
-        Updates all sliders, checks whether a value is too large, then replaces it
-        '''
-        for k, v in self._sliders.items():
-            self._workingValues[k] = math.radians(v.value())
-            if self._workingValues[k] < -math.pi:
-                self._workingValues[k] = -math.pi
-            elif self._workingValues[k] > math.pi:
-                self._workingValues[k] = math.pi
-        self.set_sliders_and_text_fields(manual=True)
-
-    def textfield_update(self):
-        '''
-        Updates all textfields.
-        '''
-        for k, v in self._textFields.items():
-            try:
-                self._workingValues[k] = math.radians(float(v.text()))
-            except ValueError:
-                continue
-        self.set_sliders_and_text_fields(manual=True)
-
-    def set_sliders_and_text_fields(self, manual):
-        '''
-        Updates the text fields and sliders in self._sliders and self._textfields and also frame name and duration and pause 
-        to the values in self._workingValues. 
-        '''
-        for k, v in self._workingValues.items():
-            try:
-                if not self._treeItems[k].checkState(0) == 0:
-                    self._textFields[k].setText(str(int(round(math.degrees(v)))))
-                    self._sliders[k].setValue(int(round(math.degrees(v))))
-
-            except KeyError:
-                rospy.logwarn("Found a key-value pair for motor (%s), which doesn't seem to exist (yet). Ignoring it." % k)
-                self._widget.statusBar.showMessage("Found a key-value pair for motor (%s), which doesn't seem to exist (yet). Ignoring it.")
-                continue
-            except RuntimeError:
-                rospy.logwarn("Tried to access a PyQt element that no longer exists. This happens when you close the framework.")
-                self._widget.statusBar.showMessage("Tried to access a PyQt element that no longer exists. This happens when you close the framework.")
-                break
-        if manual:
-            self._widget.lineFrameName.setText(self._workingName)
-            self._widget.spinBoxDuration.setValue(self._workingDuration)
-            self._widget.spinBoxPause.setValue(self._workingPause)
-
-    def box_ticked(self):
-        
-        '''
-        Controls whether a checkbox has been clicked, and reacts.
-        '''
-        for k, v in self._treeItems.items():
-            self._motorSwitched[k] = (v.checkState(0) == 2)
-
-
-        for k, v in self._motorSwitched.items():
-            self._textFields[k].setEnabled(v)
-            self._sliders[k].setEnabled(v)
-
-        self.set_sliders_and_text_fields(manual=False)
-
-        torque_msg = JointTorque()
-        torque_msg.joint_names = []
-        torque_msg.on = []
-
-        if  self._widget.treeModeSelector.currentIndex() == 0:
-            for k, v in sorted(self._treeItems.items()):
-                torque_msg.joint_names.append(k)
-                torque_msg.on.append(v.checkState(0) == 2)
-
-
-        pos_msg = JointCommand()
-        pos_msg.joint_names = []
-        pos_msg.velocities = [1.0] * 20
-        pos_msg.positions = []
-        pos_msg.accelerations = [-1.0] * 20
-        pos_msg.max_currents = [-1.0] * 20
-
-        for k,v in self._workingValues.items():
-            pos_msg.joint_names.append(k)
-            pos_msg.positions.append(v)
-
-        self._joint_pub.publish(pos_msg)
-        self.effort_pub.publish(torque_msg)
-        if not self._widget.frameList.currentItem() == None:
-            if not self._widget.frameList.currentItem().text() == "#CURRENT_FRAME":
-                self.treeModeChanged(self._widget.treeModeSelector.currentIndex())
-
-    def update_frames(self, keep=False):
-        
-        '''
-        updates the list of frames present in the current animation
-        :return: 
-        '''
-        current_index = self._widget.frameList.currentIndex()
-        current_mode = self._widget.treeModeSelector.currentIndex()
-        current_state = self._recorder.get_animation_state()
-        while self._widget.frameList.takeItem(0):
-            continue
-
-        for i in range(0, len(current_state)):
-            item = QListWidgetItem()
-            if "name" in current_state[i]:
-                item.setText(current_state[i]["name"])
-            else: #older animations without names for the frames
-                item.setText(str(i))
-            self._widget.frameList.addItem(item)
-
-        current = QListWidgetItem()
-        current.setText("#CURRENT_FRAME")
-        self._widget.frameList.addItem(current)
-        if keep:    
-            self._widget.frameList.setCurrentIndex(current_index)
-            self._widget.treeModeSelector.setCurrentIndex(current_mode)
-        else:
-            self._widget.frameList.setCurrentItem(current)
-            self._current = True
-
-    def change_frame_order(self, new_order):
-        ''' Calls the recorder to update frame order and updates the gui'''
-        self._recorder.change_frame_order(new_order)
-        self.update_frames()
-
-    def shutdown_plugin(self):
-        '''Clean up by sending the HCM a signal that we are no longer recording'''
-        self._joint_pub.publish(JointCommand())
-        rospy.sleep(1)

From b7adbee0eeb08ae8fbee28a2393121707ed8cfd2 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 19 Sep 2023 21:59:22 +0200
Subject: [PATCH 19/74] Cleanup headmover

---
 bitbots_head_mover/src/move_head.cpp | 308 +++++++++++++++++++--------
 1 file changed, 220 insertions(+), 88 deletions(-)

diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index 3b46695e4..231b17992 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -227,11 +227,19 @@ class HeadMover {
       [this] {behave();});
   }
 
+
+  /**
+   * @brief Callback used to update the head mode
+   */
   void head_mode_callback(
     const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
     head_mode_ = msg->head_mode;
   }
 
+
+  /**
+   * @brief Callback used to get updates of the current joint states of the robot
+   */
   void joint_state_callback(const sensor_msgs::msg::JointState::SharedPtr msg) {
     current_joint_state_ = msg;
   }
@@ -284,6 +292,12 @@ class HeadMover {
     return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
   }
 
+  /**
+   * @brief Handles the cancel request for the look at action
+   *
+   * @param goal_handle
+   * @return rclcpp_action::CancelResponse
+   */
   rclcpp_action::CancelResponse handle_cancel(
     const std::shared_ptr<LookAtGoalHandle> goal_handle) {
     // Avoid unused parameter warning
@@ -294,6 +308,11 @@ class HeadMover {
     return rclcpp_action::CancelResponse::ACCEPT;
   }
 
+  /**
+   * @brief Handles the accepted request for the look at action
+   *
+   * @param goal_handle
+   */
   void handle_accepted(const std::shared_ptr<LookAtGoalHandle> goal_handle) {
     // Spawn a new thread that executes the look at action until we reach the goal
     std::thread{
@@ -302,6 +321,11 @@ class HeadMover {
     .detach();
   }
 
+  /**
+   * @brief Executes the look at action that looks at a specific point in a given frame until the goal is reached or the action is canceled
+   *
+   * @param goal_handle
+   */
   void execute_look_at(const std::shared_ptr<LookAtGoalHandle> goal_handle) {
     // Yeah seems like we are executing the action
     action_running_ = true;
@@ -348,12 +372,20 @@ class HeadMover {
   }
 
 
+  /**
+   * @brief Slows down the speed of the joint that needs to travel less distance so both joints reach the goal at the same time
+   *
+   * @param delta_fast_joint The delta of the joint that needs to travel less distance and therefore reaches the goal faster
+   * @param delta_my_joint The delta of the joint that needs to travel more distance and therefore reaches the goal slower
+   * @param speed The maximum speed of the faster joint (the joint that needs to travel less distance)
+   * @return double The adjusted speed of the faster joint
+   */
   double calculate_lower_speed(
     double delta_fast_joint,
     double delta_my_joint,
     double speed) {
     double estimated_time = delta_fast_joint / speed;
-    if (estimated_time) {
+    if (estimated_time != 0) {
       return delta_my_joint / estimated_time;
     } else {
       return 0;
@@ -361,6 +393,10 @@ class HeadMover {
   }
 
 
+  /**
+   * @brief Send the goal positions to the head motors, but resolve collisions with the body if necessary.
+   *
+   */
   bool send_motor_goals(
     double pan_position,
     double tilt_position,
@@ -370,19 +406,24 @@ class HeadMover {
     double current_pan_position = 0.0,
     double current_tilt_position = 0.0,
     bool clip = true) {
+
+    // Debug log the target pan and tilt position
     RCLCPP_DEBUG_STREAM(
       node_->get_logger(),
       "target pan/tilt: " << pan_position << "/" << tilt_position);
+
+    // Clip the target pan and tilt position at the maximum pan and tilt values as defined in the parameters
     if (clip) {
-      std::pair<double, double> clipped = pre_clip(pan_position, tilt_position);
-      pan_position = clipped.first;
-      tilt_position = clipped.second;
+      std::tie(pan_position, tilt_position) = pre_clip(pan_position, tilt_position);
     }
 
+    // Resolve collisions if necessary
     if (resolve_collision) {
+      // Call behavior that resolves collisions and might change the target pan and tilt position
       bool success = avoid_collision_on_path(
         pan_position, tilt_position, current_pan_position,
         current_tilt_position, pan_speed, tilt_speed);
+      // Report error message of we were not able to move to an alternative collision free position
       if (!success) {
         RCLCPP_ERROR_STREAM_THROTTLE(
           node_->get_logger(), *node_->get_clock(),
@@ -390,6 +431,7 @@ class HeadMover {
       }
       return success;
     } else {
+      // Move the head to the target position but adjust the speed of the joints so both reach the goal at the same time
       move_head_to_position_with_speed_adjustment(
         pan_position, tilt_position, current_pan_position,
         current_tilt_position, pan_speed, tilt_speed);
@@ -397,38 +439,21 @@ class HeadMover {
     }
   }
 
-  bool send_motor_goals(
-    double pan_position,
-    double tilt_position,
-    double pan_speed = 1.5,
-    double tilt_speed = 1.5,
-    bool clip = true) {
-    RCLCPP_DEBUG_STREAM(
-      node_->get_logger(),
-      "target pan/tilt: " << pan_position << "/" << tilt_position);
-    if (clip) {
-      std::pair<double, double> clipped = pre_clip(pan_position, tilt_position);
-      pan_position = clipped.first;
-      tilt_position = clipped.second;
-    }
-
-    pos_msg_.positions = {pan_position, tilt_position};
-    pos_msg_.velocities = {pan_speed, tilt_speed};
-
-    pos_msg_.accelerations = {params_.max_acceleration_pan,
-      params_.max_acceleration_pan};
-    pos_msg_.header.stamp = node_->get_clock()->now();
-    position_publisher_->publish(pos_msg_);
-    return true;
-  }
-
+  /**
+   * @brief Applies clipping to the pan and tilt values based on the loaded config parameters
+   *
+   */
   std::pair<double, double> pre_clip(double pan, double tilt) {
     double new_pan = std::clamp(pan, params_.max_pan[0], params_.max_pan[1]);
     double new_tilt =
       std::clamp(tilt, params_.max_tilt[0], params_.max_tilt[1]);
-    return std::make_pair(new_pan, new_tilt);
+    return {new_pan, new_tilt};
   }
-  
+
+  /**
+   * @brief Tries to move the head to the target position but resolves collisions with the body if necessary.
+   *
+   */
   bool avoid_collision_on_path(
     double goal_pan,
     double goal_tilt,
@@ -438,17 +463,21 @@ class HeadMover {
     double tilt_speed,
     int max_depth = 4,
     int depth = 0) {
+
+    // Check if we reached the maximum depth of the recursion and if so, return false
     if (depth > max_depth) {
-      move_head_to_position_with_speed_adjustment(
-        0.0, 0.0, current_pan, current_tilt, pan_speed, tilt_speed);
       return false;
     }
+
+    // Calculate the distance between the current and the goal position
     double distance =
       sqrt(pow(goal_pan - current_pan, 2) - pow(goal_tilt - current_tilt, 2));
 
-    int step_count = distance / 3 * DEG_TO_RAD;
+    // Calculate the number of steps we need to take to reach the goal position
+    // This assumes that we move 3 degrees per step
+    int step_count = distance / (3 * DEG_TO_RAD);
 
-    // calculate path
+    // Calculate path by performing linear interpolation between the current and the goal position
     std::vector<std::pair<double, double>> pan_and_tilt_steps;
     for (int i = 0; i < step_count; i++) {
       pan_and_tilt_steps[i].first =
@@ -456,23 +485,32 @@ class HeadMover {
       pan_and_tilt_steps[i].second =
         current_tilt + (goal_tilt - current_tilt) / step_count * i;
     }
-    // check if we have collisions on our path
+
+    // Check if we have collisions on our path
     for (int i = 0; i < step_count; i++) {
       if (check_head_collision(
           pan_and_tilt_steps[i].first,
           pan_and_tilt_steps[i].second))
       {
+        // If we have a collision, try to move the head to an alternative position
+        // The new position looks 10 degrees further up and is less likely to have a collision with the body
+        // Also increase the depth of the recursion as this is a new attempt to move the head to the goal position
         return avoid_collision_on_path(
           goal_pan, goal_tilt + 10 * DEG_TO_RAD,
           current_pan, current_tilt, pan_speed,
           tilt_speed, max_depth, depth + 1);
       }
     }
+
+    // We do not have any collisions on our path, so we can move the head to the goal position
     move_head_to_position_with_speed_adjustment(
       goal_pan, goal_tilt, current_pan, current_tilt, pan_speed, tilt_speed);
     return true;
   }
 
+  /**
+   * @brief Checks if the head collides with the body at a given pan and tilt position
+   */
   bool check_head_collision(double pan, double tilt) {
     collision_state_->setJointPositions("HeadPan", &pan);
     collision_state_->setJointPositions("HeadTilt", &tilt);
@@ -484,6 +522,9 @@ class HeadMover {
     return res.collision;
   }
 
+  /**
+   * @brief Move the head to the target position but adjust the speed of the joints so both reach the goal at the same time
+   */
   void move_head_to_position_with_speed_adjustment(
     double goal_pan,
     double goal_tilt,
@@ -491,27 +532,38 @@ class HeadMover {
     double current_tilt,
     double pan_speed,
     double tilt_speed) {
+    // Calculate the delta between the current and the goal positions
     double delta_pan = std::abs(goal_pan - current_pan);
     double delta_tilt = std::abs(goal_tilt - current_tilt);
-    if (delta_pan > 0) {
+    // Check which axis has to move further and adjust the speed of the other axis so both reach the goal at the same time
+    if (delta_pan > delta_tilt) {
+      // Slow down the tilt axis to match the time it takes for the pan axis to reach the goal
       tilt_speed = std::min(
         tilt_speed, calculate_lower_speed(delta_pan, delta_tilt, pan_speed));
     } else {
+      // Slow down the pan axis to match the time it takes for the tilt axis to reach the goal
       pan_speed = std::min(
         pan_speed, calculate_lower_speed(delta_tilt, delta_pan, tilt_speed));
     }
+
+    // Send the motor goals including the position, speed and acceleration
     pos_msg_.positions = {goal_pan, goal_tilt};
     pos_msg_.velocities = {pan_speed, tilt_speed};
-
     pos_msg_.accelerations = {params_.max_acceleration_pan,
       params_.max_acceleration_pan};
+
     pos_msg_.header.stamp = rclcpp::Clock().now();
     position_publisher_->publish(pos_msg_);
   }
 
+  /**
+   * @brief Returns the current position of the head motors
+   */
   std::pair<double, double> get_head_position() {
-    double head_pan;
-    double head_tilt;
+    double head_pan = 0.0;
+    double head_tilt = 0.0;
+
+    // Iterate over all joints and find the head pan and tilt joints
     for (size_t i = 0; i < current_joint_state_->name.size(); i++) {
       if (current_joint_state_->name[i] == "HeadPan") {
         head_pan = current_joint_state_->position[i];
@@ -522,40 +574,40 @@ class HeadMover {
     return {head_pan, head_tilt};
   }
 
+
+  /**
+   * @brief Converts a scanline number to a tilt angle
+   */
   double lineAngle(
     int line,
     int line_count,
     double min_angle,
     double max_angle) {
+    // Get the angular delta that is covered by the scanlines in the tilt axis
     double delta = std::abs(max_angle - min_angle);
-    int steps = delta / (line_count - 1);
-    double value = steps * line + min_angle;
-    return value;
-  }
-
-  double calculateHorizonAngle(
-    bool is_right,
-    double angle_right,
-    double angle_left) {
-    if (is_right) {
-      return angle_right;
-    } else {
-      return angle_left;
-    }
+    // Calculate the angular step size between two scanlines
+    double steps = delta / (line_count - 1);
+    // Calculate the tilt angle of the given scanline
+    return steps * line + min_angle;
   }
 
+  /**
+   * @brief Performs a linear interpolation between the min and max pan values and returns the interpolated steps
+   */
   std::vector<std::pair<double, double>> interpolatedSteps(
     int steps,
     double tilt,
     double min_pan,
     double max_pan) {
-    if (steps == 0) {
-      return {};
-    }
+    // Add one to the step count as we need to include the min and max pan values
     steps += 1;
+    // Create a vector that stores the interpolated steps
     std::vector<std::pair<double, double>> output_points;
+    // Calculate the delta between the min and max pan values
     double delta = std::abs(max_pan - min_pan);
+    // Calculate the step size between two interpolated steps
     double step_size = delta / steps;
+    // Iterate over all steps and calculate the interpolated pan values
     for (int i = 1; i <= steps; i++) {
       double pan = min_pan + step_size * i;
       output_points.emplace_back(pan, tilt);
@@ -563,6 +615,9 @@ class HeadMover {
     return output_points;
   }
 
+  /**
+   * @brief Generates a parameterized search pattern
+   */
   std::vector<std::pair<double, double>> generatePattern(
     int line_count,
     double max_horizontal_angle_left,
@@ -571,41 +626,61 @@ class HeadMover {
     double max_vertical_angle_down,
     int reduce_last_scanline = 0.2,    // TODO: needs to be changed to 1
     int interpolation_steps = 0) {
+    // Store the keyframes of the search pattern
     std::vector<std::pair<double, double>> keyframes;
-    bool down_direction = false;
-    bool right_side = false;
-    bool right_direction = true;
+    // Store the state of the generation process
+    bool down_direction = false; // true = down, false = up
+    bool right_side = false; // true = right, false = left
+    bool right_direction = true; // true = moving right, false = moving left
     int line = line_count - 1;
+    // Calculate the number of iterations that are needed to generate the search pattern
     int iterations = std::max(line_count * 4 - 4, 2);
+    // Iterate over all iterations and generate the search pattern
     for (int i = 0; i < iterations; i++) {
-      std::pair<double, double> current_point = {
-        calculateHorizonAngle(
-          right_side, max_horizontal_angle_right,
-          max_horizontal_angle_left),
-        lineAngle(
-          line, line_count, max_vertical_angle_down,
-          max_vertical_angle_up)};
-      keyframes.push_back(current_point);
+      // Get the maximum pan values (left and right) for the current pan position
+      // Select the relevant one based on the current side we are on
+      double current_pan;
+      if (right_side) {
+        current_pan = max_horizontal_angle_right;
+      } else {
+        current_pan = max_horizontal_angle_left;
+      }
+
+      // Get the current tilt angle based on the current line we are on
+      double current_tilt = lineAngle(
+        line, line_count, max_vertical_angle_down,
+        max_vertical_angle_up);
+
+      // Store the keyframe
+      keyframes.push_back({current_pan, current_tilt});
 
+      // Check if we move horizontally or vertically in the pattern
       if (right_side != right_direction) {
+        // We move horizontally, so we might need to interpolate between the current and the next keyframe
         std::vector<std::pair<double, double>> interpolated_points =
           interpolatedSteps(
-          interpolation_steps, current_point.second,
+          interpolation_steps, current_tilt,
           max_horizontal_angle_right,
           max_horizontal_angle_left);
+        // Reverse the order of the interpolated points if we are moving to the right
         if (right_direction) {
           std::reverse(interpolated_points.begin(), interpolated_points.end());
         }
+        // Add the interpolated points to the keyframes
         keyframes.insert(
           keyframes.end(), interpolated_points.begin(),
           interpolated_points.end());
+        // Change the direction we are moving in
         right_side = right_direction;
 
       } else {
+        // Change the horizontal direction we are moving in
         right_side = !right_direction;
+        // Check if we reached the top or bottom of the pattern and need to change the direction
         if (0 <= line && line <= line_count - 1) {
           down_direction = !down_direction;
         }
+        // Change the line we are on based on the direction we are moving in
         if (down_direction) {
           line -= 1;
         } else {
@@ -613,6 +688,8 @@ class HeadMover {
         }
       }
     }
+
+    // Reduce the last scanline by a given factor
     for (auto & keyframe : keyframes) {
       if (keyframe.second == max_vertical_angle_down) {
         keyframe = {keyframe.first * reduce_last_scanline,
@@ -622,21 +699,28 @@ class HeadMover {
     return keyframes;
   }
 
+
+  /**
+   * @brief Calculates the motor goals that are needed to look at a given point using the inverse kinematics
+   */
   std::pair<double, double> get_motor_goals_from_point(
     geometry_msgs::msg::Point point) {
+
+    // Create a new IK options object
     bio_ik::BioIKKinematicsQueryOptions ik_options;
     ik_options.return_approximate_solution = true;
     ik_options.replace = true;
 
-    bio_ik::LookAtGoal goal;
-    goal.setTarget({point.x, point.y, point.z});
-    goal.setWeight(1.0);
-    goal.setAxis({1.0, 0.0, 0.0});
-    goal.setLinkName("camera");
-    ik_options.goals.emplace_back(new bio_ik::LookAtGoal(goal));
+    // Create a new look at goal and set the target point as the position the camera link should look at
+    ik_options.goals.emplace_back(new bio_ik::LookAtGoal(
+      "camera",
+      {1.0, 0.0, 0.0},
+      {point.x, point.y, point.z}));
 
+    // Get the joint model group for the head
     auto joint_model_group = robot_model_->getJointModelGroup("Head");
 
+    // Try to calculate the inverse kinematics
     double timeout_seconds = 1.0;
     bool success = robot_state_->setFromIK(
       joint_model_group, EigenSTL::vector_Isometry3d(),
@@ -644,88 +728,118 @@ class HeadMover {
       moveit::core::GroupStateValidityCallbackFn(), ik_options);
     robot_state_->update();
 
+    // Get the solution from the IK response
     bio_ik_msgs::msg::IKResponse response;
     moveit::core::robotStateToRobotStateMsg(*robot_state_, response.solution);
     response.solution_fitness = ik_options.solution_fitness;
+    // Return the motor goals if the IK was successful
     if (success) {
-      std::pair<double, double> states = {
-        response.solution.joint_state.position[0],
-        response.solution.joint_state.position[1]};
-      return states;
+      return {response.solution.joint_state.position[0], response.solution.joint_state.position[1]};
     } else {
-      std::cout << "BioIK failed with error code: " << response.error_code.val
-                << std::endl;
-      std::pair<double, double> states = {0.0, 0.0};
-      return states;
+      RCLCPP_ERROR_STREAM_THROTTLE(
+          node_->get_logger(), *node_->get_clock(),
+          1000, "BioIK failed with error code: " << response.error_code.val);
+      return {0.0, 0.0};
     }
   }
 
+  /**
+   * @brief Looks at a given point and returns true if the goal position was reached
+   */
   bool look_at(
     geometry_msgs::msg::PointStamped point,
     double min_pan_delta = 0.02,
     double min_tilt_delta = 0.02) {
     try {
+      // Transform the point into the planning frame
       geometry_msgs::msg::PointStamped new_point =
         tf_buffer_->transform(
         point, planning_scene_->getPlanningFrame(),
         tf2::durationFromSec(0.9));
 
+      // Get the motor goals that are needed to look at the point from the inverse kinematics
       std::pair<double, double> pan_tilt =
         get_motor_goals_from_point(new_point.point);
+      // Get the current head position
       std::pair<double, double> current_pan_tilt = get_head_position();
 
+      // Check if we reached the goal position
       if (std::abs(pan_tilt.first - current_pan_tilt.first) > min_pan_delta ||
         std::abs(pan_tilt.second - current_pan_tilt.second) >
         min_tilt_delta)
       {
+        // Send the motor goals to the head motors
         send_motor_goals(
           pan_tilt.first, pan_tilt.second, true,
           params_.look_at.pan_speed, params_.look_at.tilt_speed);
+        // Return false as we did not reach the goal position yet
         return false;
       }
+      // Return true as we reached the goal position
       return true;
     } catch (tf2::TransformException & ex) {
+      // Report error message if we were not able to transform the point
       RCLCPP_ERROR(node_->get_logger(), "Transform error: %s", ex.what());
+      // We obviously did not reach the goal position
       return false;
     }
   }
 
+  /**
+   * @brief Returns the index of the pattern keypoint that is closest to the current head position
+   *
+   * @param pattern The search pattern
+   * @param pan The current pan position
+   * @param tilt The current tilt position
+   * @return int The index of the pattern keypoint that is closest to the current head position
+   */
   int get_near_pattern_position(
     std::vector<std::pair<double, double>> pattern,
     double pan,
     double tilt) {
+    // Store the index and distance of the closest keypoint
     std::pair<double, int> min_distance_point = {10000.0, -1};
+    // Iterate over all keypoints and calculate the distance to the current head position
     for (size_t i = 0; i < pattern.size(); i++) {
+      // Calculate the cartesian distance between the current head position and the keypoint
       double distance = std::sqrt(
         std::pow(pattern[i].first - pan, 2) +
         std::pow(pattern[i].second - tilt, 2));
+      // Check if the distance is smaller than the current minimum distance
+      // and if so, update the minimum distance accordingly
       if (distance < min_distance_point.first) {
         min_distance_point.first = distance;
         min_distance_point.second = i;
       }
     }
+    // Return the index of the closest keypoint
     return min_distance_point.second;
   }
 
+  /**
+   * @brief Performs the search pattern that is currently loaded
+   */
   void perform_search_pattern() {
+    // Do not perform the search pattern if it is empty
     if (pattern_.size() == 0) {
       return;
     }
+    // Wrap the index that points to the current keypoint around if necessary
     index_ = index_ % int(pattern_.size());
+    // Get the current keypoint and convert it to radians
     double head_pan = pattern_[index_].first * DEG_TO_RAD;
     double head_tilt = pattern_[index_].second * DEG_TO_RAD;
-    double current_head_pan;
-    double current_head_tilt;
-    std::pair<double, double> head_position = get_head_position();
-    current_head_pan = head_position.first;
-    current_head_tilt = head_position.second;
+    // Get the current head position
+    auto [current_head_pan, current_head_tilt] = get_head_position();
 
+    // Send the motor goals to the head motors
     bool success =
       send_motor_goals(
       head_pan, head_tilt, true, pan_speed_, tilt_speed_,
       current_head_pan, current_head_tilt);
 
     if (success) {
+      // Check if we reached the current keypoint and if so, increase the index
       double distance_to_goal =
         std::sqrt(
         std::pow(head_pan - current_head_pan, 2) +
@@ -734,15 +848,22 @@ class HeadMover {
         index_++;
       }
     } else {
+      // Skip the keypoint if we were not able to reach it (e.g. due to an unresolvable collision)
       index_++;
     }
   }
 
+  /**
+   * @brief Callback for the ticks of the main loop
+   */
   void behave() {
+    // Get the current head mode
     uint curr_head_mode = head_mode_;
 
+    // Pull the parameters from the parameter server
     params_ = param_listener_->get_params();
 
+    // Check if the head mode changed and if so, update the search pattern
     if (prev_head_mode_ != curr_head_mode) {
       switch (curr_head_mode) {
         case humanoid_league_msgs::msg::HeadMode::BALL_MODE:  // 0
@@ -809,26 +930,37 @@ class HeadMover {
         default:
           return;
       }
+
+      // Get the current head position
       std::pair<double, double> head_position = get_head_position();
 
+      // Select the closest keypoint in the search pattern as a starting point
       index_ = get_near_pattern_position(
         pattern_, head_position.first,
         head_position.second);
     }
+    // Check if no look at action is running or if the head mode is DONT_MOVE
+    // if this is not the case, perform the search pattern
     if (!action_running_ &&
       curr_head_mode !=
       humanoid_league_msgs::msg::HeadMode::DONT_MOVE)          // here DONT_MOVE
                                                                // is implemented
     {
+      // Store the current head mode as the previous head mode to detect changes
       prev_head_mode_ = curr_head_mode;
+      // Execute the search pattern
       perform_search_pattern();
     }
   }
 
+  /**
+   * @brief A getter that returns the node
+   */
   std::shared_ptr<rclcpp::Node> get_node() {return node_;}
 };
 }  // namespace move_head
 
+
 int main(int argc, char * argv[]) {
   rclcpp::init(argc, argv);
   rclcpp::experimental::executors::EventsExecutor exec;

From 17090d651a83eeff539464f886136d7c5958a74f Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 19 Sep 2023 22:03:21 +0200
Subject: [PATCH 20/74] Remove unused dep

---
 bitbots_head_mover/CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

diff --git a/bitbots_head_mover/CMakeLists.txt b/bitbots_head_mover/CMakeLists.txt
index cd2564639..4cc65fe7f 100644
--- a/bitbots_head_mover/CMakeLists.txt
+++ b/bitbots_head_mover/CMakeLists.txt
@@ -21,7 +21,6 @@ find_package(rclcpp REQUIRED)
 find_package(sensor_msgs REQUIRED)
 find_package(std_msgs REQUIRED)
 find_package(tf2_geometry_msgs REQUIRED)
-find_package(tf2_kdl REQUIRED)
 find_package(tf2_ros REQUIRED)
 
 set(CMAKE_BUILD_TYPE Debug)

From 07fd7c91173c1d0c8ddca1dab787463ef048f93b Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 19 Sep 2023 22:03:35 +0200
Subject: [PATCH 21/74] Sort imports in moveit bindings

---
 .../bitbots_moveit_bindings/__init__.py                | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/bitbots_moveit_bindings/bitbots_moveit_bindings/__init__.py b/bitbots_moveit_bindings/bitbots_moveit_bindings/__init__.py
index 92d1cdc54..3855b179a 100644
--- a/bitbots_moveit_bindings/bitbots_moveit_bindings/__init__.py
+++ b/bitbots_moveit_bindings/bitbots_moveit_bindings/__init__.py
@@ -1,10 +1,10 @@
+from bio_ik_msgs.msg import IKRequest
+from bio_ik_msgs.srv import GetIK
+from bitbots_moveit_bindings.libbitbots_moveit_bindings import \
+    BitbotsMoveitBindings
 from moveit_msgs.srv import GetPositionFK, GetPositionIK
-from bitbots_moveit_bindings.libbitbots_moveit_bindings import BitbotsMoveitBindings
-from rclpy.serialization import serialize_message, deserialize_message
 from rcl_interfaces.msg import Parameter
-from bio_ik_msgs.srv import GetIK
-from bio_ik_msgs.msg import IKRequest
-from sensor_msgs.msg import JointState
+from rclpy.serialization import deserialize_message, serialize_message
 
 # this state is only used for IK and FK calls and does not listen to current joint_states
 ik_fk_state = None

From e66c824f1d78dd785c5a56035be6c95bc4bc059c Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 19 Sep 2023 22:19:27 +0200
Subject: [PATCH 22/74] Fix fused angles

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py  | 2 +-
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
index 147b8b19f..e848f3ca8 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
@@ -31,7 +31,7 @@ def perform(self, reevaluate=False):
             return "NOT_FALLEN"
 
         # Convert quaternion to fused angles
-        fused_roll, fused_pitch, _ = quat2fused(self.blackboard.quaternion, order="xyzw")
+        fused_roll, fused_pitch, _, _ = quat2fused(self.blackboard.quaternion, order="xyzw")
 
         # Decides which side is facing downwards.
         if fused_pitch > self.fallen_orientation_thresh:
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
index 1021e13ad..7e1c8565d 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
@@ -47,7 +47,7 @@ def perform(self, reevaluate=False):
         angular_velocity = self.blackboard.gyro
 
         # Convert orientation to fused angles
-        fused_roll, fused_pitch, _ = quat2fused(self.blackboard.quaternion, order="xyzw")
+        fused_roll, fused_pitch, _, _ = quat2fused(self.blackboard.quaternion, order="xyzw")
 
         # setting the fall quantification function
         roll_fall_quantification = self.calc_fall_quantification(

From 3530ce359161c52510a0211ff04c252b54d11733 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 19 Sep 2023 22:19:40 +0200
Subject: [PATCH 23/74] Fix unused variable

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index 2b8b22f34..9dd7aa946 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -159,7 +159,7 @@ def start_animation(self):
             timeout_sec=self.blackboard.node.get_parameter('hcm.anim_server_wait_time').get_parameter_value().double_value)
         if not first_try:
             server_running = False
-            while not server_running and not self.blackboard.shut_down_request and rclpy.ok():
+            while not server_running and rclpy.ok():
                 self.blackboard.node.get_logger().warn(
                                       "Dynup Action Server not running! Dynup cannot work without dynup server!"
                                       "Will now wait until server is accessible!",

From 16a9f78f1f9d4146f3e3140f261f3740f548b07e Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 20 Sep 2023 22:01:22 +0200
Subject: [PATCH 24/74] Fix typo in use_sim_time

---
 bitbots_hcm/bitbots_hcm/humanoid_control_module.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index 271007d64..3f1bbc0ac 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -41,7 +41,7 @@ def __init__(self, use_sim_time, simulation_active, visualization_active):
         for parameter_msg in parameter_msgs:
             parameters.append(Parameter.from_parameter_msg(parameter_msg))
         if use_sim_time:
-            parameters.append(Parameter("use_sime_time", type_=Parameter.Type.BOOL, value=True))
+            parameters.append(Parameter("use_sim_time", type_=Parameter.Type.BOOL, value=True))
         if simulation_active:
             parameters.append(Parameter("simulation_active", type_=Parameter.Type.BOOL, value=True))
         if visualization_active:

From 93481e478c47ef10f88b9c52f5b4b9c59506a44b Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 20 Sep 2023 22:03:18 +0200
Subject: [PATCH 25/74] Add debug log for descision

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
index 51c9142fc..ea055f8d9 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
@@ -9,7 +9,11 @@ class RecentWalkingGoals(AbstractHCMDecisionElement):
     """
 
     def perform(self, reevaluate=False):
-        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_walking_goal_time.nanoseconds / 1e9 < 0.1:
+        time_delta = self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_walking_goal_time.nanoseconds / 1e9
+        # Log the time delta between now and the last walking goal
+        self.publish_debug_data("Last Walking Goal Time Delta", time_delta)
+        # If the time delta is smaller enough, we are still walking
+        if time_delta < 0.1:
             # we are walking and can stay like this
             return "STAY_WALKING"
         else:

From f26481b104750c77f0c320b39b338a50061d91e5 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 20 Sep 2023 22:17:06 +0200
Subject: [PATCH 26/74] Fix run animation script

---
 .../scripts/run_animation.py                  | 38 +++++++------------
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/bitbots_animation_server/scripts/run_animation.py b/bitbots_animation_server/scripts/run_animation.py
index 05e2593bd..c3aabd515 100755
--- a/bitbots_animation_server/scripts/run_animation.py
+++ b/bitbots_animation_server/scripts/run_animation.py
@@ -1,9 +1,11 @@
 #!/usr/bin/env python3
 import sys
+import threading
 
 import rclpy
 from actionlib_msgs.msg import GoalStatus
 from rclpy.action import ActionClient
+from rclpy.executors import MultiThreadedExecutor
 from rclpy.node import Node
 
 from humanoid_league_msgs.action import PlayAnimation
@@ -12,6 +14,12 @@
 def anim_run(anim=None, hcm=False):
     node = Node("run_animation")
 
+    # Create own executor for Python part
+    multi_executor = MultiThreadedExecutor(num_threads=4)
+    multi_executor.add_node(node)
+    spin_thread = threading.Thread(target=multi_executor.spin, args=(), daemon=True)
+    spin_thread.start()
+
     anim_client = ActionClient(node, PlayAnimation, 'animation')
 
     if anim is None or anim == "":
@@ -31,30 +39,12 @@ def anim_run(anim=None, hcm=False):
     goal.animation = anim
     goal.hcm = hcm
 
-    # todo not .send_goal does never return
-    state = anim_client.send_goal_async(goal)
-    if state == GoalStatus.PENDING:
-        print('Pending')
-    elif state == GoalStatus.ACTIVE:
-        print('Active')
-    elif state == GoalStatus.PREEMPTED:
-        print('Preempted')
-    elif state == GoalStatus.SUCCEEDED:
-        print('Succeeded')
-    elif state == GoalStatus.ABORTED:
-        print('Aborted')
-    elif state == GoalStatus.REJECTED:
-        print('Rejected')
-    elif state == GoalStatus.PREEMPTING:
-        print('Preempting')
-    elif state == GoalStatus.RECALLING:
-        print('Recalling')
-    elif state == GoalStatus.RECALLED:
-        print('Recalled')
-    elif state == GoalStatus.LOST:
-        print('Lost')
-    else:
-        print('Unknown state', state)
+    state: PlayAnimation.Result  = anim_client.send_goal(goal).result
+
+    print(f"Animation {anim} {['failed', 'successfully finished'][int(state.successful)]}.")
+
+    node.destroy_node()
+    rclpy.shutdown()
 
 
 if __name__ == '__main__':

From b74c7e6bf76ea0b964c000b1b066a4b300adc612 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 20 Sep 2023 23:53:55 +0200
Subject: [PATCH 27/74] Add printout at animation start

---
 bitbots_animation_server/scripts/run_animation.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/bitbots_animation_server/scripts/run_animation.py b/bitbots_animation_server/scripts/run_animation.py
index c3aabd515..7e6e56c41 100755
--- a/bitbots_animation_server/scripts/run_animation.py
+++ b/bitbots_animation_server/scripts/run_animation.py
@@ -39,6 +39,7 @@ def anim_run(anim=None, hcm=False):
     goal.animation = anim
     goal.hcm = hcm
 
+    print(f"Sending animation {anim} to {'hcm' if hcm else 'motion'}.")
     state: PlayAnimation.Result  = anim_client.send_goal(goal).result
 
     print(f"Animation {anim} {['failed', 'successfully finished'][int(state.successful)]}.")

From c01cbb5d1ac9be3678f2dba04547b73809b88503 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 20 Sep 2023 23:55:47 +0200
Subject: [PATCH 28/74] Fix kick, walking and animation feedback

---
 .../hcm_dsd/actions/play_animation.py         | 17 ++++++++++++-----
 .../bitbots_hcm/hcm_dsd/decisions/kicking.py  | 19 +++++++++++++++----
 .../bitbots_hcm/hcm_dsd/decisions/walking.py  |  7 +++++++
 .../bitbots_hcm/hcm_dsd/hcm_blackboard.py     |  4 ++--
 .../bitbots_hcm/humanoid_control_module.py    |  3 +++
 bitbots_hcm/src/hcm.cpp                       | 10 +++++++++-
 6 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index 9dd7aa946..de3e7ab67 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -75,14 +75,16 @@ def start_animation(self, anim):
         goal.animation = anim
         goal.hcm = True  # the animation is from the hcm
         self.blackboard.animation_action_current_goal = self.blackboard.animation_action_client.send_goal_async(
-            goal, feedback_callback=self.kick_feedback_cb)
+            goal, feedback_callback=self.animation_feedback_cb)
         return True
 
-    def kick_feedback_cb(self, msg: PlayAnimation.Feedback):
-        self.blackboard.last_kick_feedback = self.blackboard.node.get_clock().now()
+    def animation_feedback_cb(self, msg):
+        feedback: PlayAnimation.Feedback = msg.feedback
+        self.publish_debug_data("Animation Percent Done", str(feedback.percent_done))
 
     def animation_finished(self):
-        return self.blackboard.animation_action_current_goal.cancelled() or self.blackboard.animation_action_current_goal.done()
+        return (self.blackboard.animation_action_current_goal.done() and self.blackboard.animation_action_current_goal.result().status == GoalStatus.STATUS_SUCCEEDED) \
+                or self.blackboard.animation_action_current_goal.cancelled()
 
 
 class PlayAnimationFallingLeft(AbstractPlayAnimation):
@@ -173,9 +175,14 @@ def start_animation(self):
 
         goal = Dynup.Goal()
         goal.direction = self.direction
-        self.blackboard.dynup_action_current_goal = self.blackboard.dynup_action_client.send_goal_async(goal)
+        self.blackboard.dynup_action_current_goal = self.blackboard.dynup_action_client.send_goal_async(
+            goal, feedback_callback=self.animation_feedback_cb)
         return True
 
+    def animation_feedback_cb(self, msg):
+        feedback: Dynup.Feedback = msg.feedback
+        self.publish_debug_data("Dynup Percent Done", str(feedback.percent_done))
+
     def animation_finished(self):
         return (self.blackboard.dynup_action_current_goal.done() and self.blackboard.dynup_action_current_goal.result().status == GoalStatus.STATUS_SUCCEEDED) \
                 or self.blackboard.dynup_action_current_goal.cancelled()
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
index dcad299f8..6c3b4d2a7 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
@@ -9,11 +9,22 @@ class RecentKickGoals(AbstractHCMDecisionElement):
     """
 
     def perform(self, reevaluate=False):
-        if self.blackboard.last_kick_feedback is not None and \
-                (self.blackboard.node.get_clock().now() - self.blackboard.last_kick_feedback).nanoseconds / 1e9 < 0.2:
-            return 'KICKING'
+        # Check if we have received a kick goal at all
+        if self.blackboard.last_kick_goal_time is None:
+            return "NOT_KICKING"
+
+        # Calculate the time delta between now and the last kick goal
+        time_delta = self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_kick_goal_time.nanoseconds / 1e9
+
+        # Log the time delta between now and the last kick goal
+        self.publish_debug_data("Last Kick Goal Time Delta", time_delta)
+
+        # If the time delta is smaller enough, we are still kicking
+        if time_delta < 0.1:
+            # we are walking and can stay like this
+            return "KICKING"
         else:
-            return 'NOT_KICKING'
+            return "NOT_KICKING"
 
     def get_reevaluate(self):
         return True
\ No newline at end of file
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
index ea055f8d9..81be75737 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
@@ -9,9 +9,16 @@ class RecentWalkingGoals(AbstractHCMDecisionElement):
     """
 
     def perform(self, reevaluate=False):
+        # Check if we have received a walking goal at all
+        if self.blackboard.last_walking_goal_time is None:
+            return "NOT_WALKING"
+
+        # Calculate the time delta between now and the last walking goal
         time_delta = self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_walking_goal_time.nanoseconds / 1e9
+
         # Log the time delta between now and the last walking goal
         self.publish_debug_data("Last Walking Goal Time Delta", time_delta)
+        
         # If the time delta is smaller enough, we are still walking
         if time_delta < 0.1:
             # we are walking and can stay like this
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index d1a335de1..d4589aeb4 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -93,7 +93,7 @@ def __init__(self, node: Node):
         self.imu_timeout_duration: float = self.node.get_parameter("imu_timeout_duration").value
 
         # Walking state
-        self.last_walking_goal_time = self.node.get_clock().now()
+        self.last_walking_goal_time: Optional[Time] = None
 
         # Falling
         # Paramerters
@@ -102,7 +102,7 @@ def __init__(self, node: Node):
 
         # Kicking
         # State
-        self.last_kick_feedback: Optional[Time] = None
+        self.last_kick_goal_time: Optional[Time] = None
 
         # IMU state
         self.imu_msg: Optional[Imu] = None
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index 3f1bbc0ac..befe6f0b5 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -158,6 +158,9 @@ def set_last_animation_goal_time(self, time_msg_serialized: bytes):
     def set_last_walking_goal_time(self, time_msg_serialized: bytes):
         self.blackboard.last_walking_goal_time = Time.from_msg(deserialize_message(time_msg_serialized, TimeMsg))
 
+    def set_last_kick_goal_time(self, time_msg_serialized: bytes):
+        self.blackboard.last_kick_goal_time = Time.from_msg(deserialize_message(time_msg_serialized, TimeMsg))
+
     def set_last_motor_update_time(self, time_msg_serialized: bytes):
         self.blackboard.last_motor_update_time = deserialize_message(time_msg_serialized, TimeMsg)
 
diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index d8b473b42..185893b49 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -45,6 +45,9 @@ class HCM_CPP : public rclcpp::Node {
     // Walking state
     last_walking_time_ = builtin_interfaces::msg::Time();
 
+    // Kick state
+    last_kick_time_ = builtin_interfaces::msg::Time();
+
     // Animation state
     record_active_ = false;
     external_animation_running_ = false;
@@ -180,6 +183,7 @@ class HCM_CPP : public rclcpp::Node {
   }
 
   void kick_goal_callback(const bitbots_msgs::msg::JointCommand msg) {
+    last_kick_time_ = msg.header.stamp;
     if (current_state_ == humanoid_league_msgs::msg::RobotControlState::KICKING ||
         current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
       // we can perform a kick
@@ -196,7 +200,7 @@ class HCM_CPP : public rclcpp::Node {
       pub_controller_command_->publish(msg);
     }
   }
-  
+
   void walking_goal_callback(bitbots_msgs::msg::JointCommand msg) {
     last_walking_time_ = msg.header.stamp;
     if (current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
@@ -231,6 +235,7 @@ class HCM_CPP : public rclcpp::Node {
     hcm_py_.attr("set_last_motor_update_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(current_joint_state_.header.stamp));
     hcm_py_.attr("set_current_joint_state")(ros2_python_extension::toPython<sensor_msgs::msg::JointState>(current_joint_state_));
     hcm_py_.attr("set_last_walking_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_walking_time_));
+    hcm_py_.attr("set_last_kick_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_kick_time_));
     hcm_py_.attr("set_record_active")(record_active_);
     hcm_py_.attr("set_external_animation_running")(external_animation_running_);
     hcm_py_.attr("set_animation_requested")(animation_requested_);
@@ -267,6 +272,9 @@ class HCM_CPP : public rclcpp::Node {
   // Walking state
   builtin_interfaces::msg::Time last_walking_time_;
 
+  // Kick state
+  builtin_interfaces::msg::Time last_kick_time_;
+
   // Animation states
   bool record_active_;
   bool external_animation_running_;

From 01b0962c2da0f21f4d54a9b011cd22e232889141 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 20 Sep 2023 23:55:59 +0200
Subject: [PATCH 29/74] Fix foot reset service

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py
index 95ce01446..5241870b1 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/set_foot_zero.py
@@ -16,7 +16,7 @@ def perform(self, reevaluate=False):
             self.first_perform = False
             try:
                 self.blackboard.foot_zero_service.wait_for_service(0.5)
-                self.blackboard.foot_zero_service()
+                self.blackboard.foot_zero_service.call_async({})
             except:
                 self.blackboard.node.get_logger().warn("No foot zeroing service accessible, will not reset sensors")
 

From 18515dfd115e1cc88bd76f4495e55c77abb6fb07 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Tue, 26 Sep 2023 17:34:27 +0200
Subject: [PATCH 30/74] Cleanup kick deps

---
 bitbots_dynamic_kick/CMakeLists.txt | 3 ---
 bitbots_dynamic_kick/package.xml    | 7 +++++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/bitbots_dynamic_kick/CMakeLists.txt b/bitbots_dynamic_kick/CMakeLists.txt
index f232b08e6..a4e976ada 100644
--- a/bitbots_dynamic_kick/CMakeLists.txt
+++ b/bitbots_dynamic_kick/CMakeLists.txt
@@ -18,7 +18,6 @@ find_package(Eigen3 REQUIRED)
 find_package(geometry_msgs REQUIRED)
 find_package(humanoid_league_msgs REQUIRED)
 find_package(moveit_ros_planning_interface REQUIRED)
-find_package(nav_msgs REQUIRED)
 find_package(rclcpp REQUIRED)
 find_package(rosidl_default_generators REQUIRED)
 find_package(rot_conv REQUIRED)
@@ -63,7 +62,6 @@ ament_target_dependencies(KickNode
         geometry_msgs
         humanoid_league_msgs
         moveit_ros_planning_interface
-        nav_msgs
         rclcpp
         rot_conv
         sensor_msgs
@@ -94,7 +92,6 @@ target_link_libraries(KickNode "${cpp_typesupport_target}")
 #        geometry_msgs
 #        humanoid_league_msgs
 #        moveit_ros_planning_interface
-#        nav_msgs
 #        rclcpp
 #        ros2_python_extension
 #        rot_conv
diff --git a/bitbots_dynamic_kick/package.xml b/bitbots_dynamic_kick/package.xml
index 4438ac255..6bc0faf8b 100644
--- a/bitbots_dynamic_kick/package.xml
+++ b/bitbots_dynamic_kick/package.xml
@@ -22,6 +22,8 @@
     <buildtool_depend>rosidl_default_generators</buildtool_depend>
 
     <depend>bio_ik</depend>
+    <depend>backward_ros</depend>
+    <depend>biped_interfaces</depend>
     <depend>bitbots_docs</depend>
     <depend>bitbots_msgs</depend>
     <depend>bitbots_robot_description</depend>
@@ -32,16 +34,17 @@
     <depend>humanoid_league_msgs</depend>
     <depend>moveit_core</depend>
     <depend>moveit_ros_move_group</depend>
-    <depend>moveit_ros_robot_interaction</depend>
     <depend>moveit_ros_planning_interface</depend>
+    <depend>moveit_ros_robot_interaction</depend>
     <depend>rclcpp</depend>
     <depend>ros2_python_extension</depend>
     <depend>rot_conv</depend>
+    <depend>sensor_msgs</depend>
     <depend>std_msgs</depend>
-    <depend>tf2</depend>
     <depend>tf2_eigen</depend>
     <depend>tf2_geometry_msgs</depend>
     <depend>tf2_ros</depend>
+    <depend>tf2</depend>
 
     <member_of_group>rosidl_interface_packages</member_of_group>
 

From 6f4218dc23adce13caf33c5dfbf9c7e035ed9890 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Tue, 26 Sep 2023 17:49:55 +0200
Subject: [PATCH 31/74] Fix out of bounds access

---
 bitbots_head_mover/src/move_head.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index 231b17992..87b7250fc 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -480,10 +480,10 @@ class HeadMover {
     // Calculate path by performing linear interpolation between the current and the goal position
     std::vector<std::pair<double, double>> pan_and_tilt_steps;
     for (int i = 0; i < step_count; i++) {
-      pan_and_tilt_steps[i].first =
-        current_pan + (goal_pan - current_pan) / step_count * i;
-      pan_and_tilt_steps[i].second =
-        current_tilt + (goal_tilt - current_tilt) / step_count * i;
+      pan_and_tilt_steps.push_back({
+        current_pan + (goal_pan - current_pan) / step_count * i,
+        current_tilt + (goal_tilt - current_tilt) / step_count * i
+      });
     }
 
     // Check if we have collisions on our path

From dd3da96cf27c09319f6941c53be7bd71d9a06332 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Wed, 27 Sep 2023 22:32:08 +0200
Subject: [PATCH 32/74] Fix stuck head mode

---
 bitbots_head_mover/src/move_head.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index 87b7250fc..f282ec579 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -599,6 +599,10 @@ class HeadMover {
     double tilt,
     double min_pan,
     double max_pan) {
+    // Handle edge case where we do not need to interpolate
+    if (steps == 0) {
+      return {};
+    }
     // Add one to the step count as we need to include the min and max pan values
     steps += 1;
     // Create a vector that stores the interpolated steps

From edafe315853e24029f63850916721415422f88f7 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Tue, 17 Oct 2023 21:11:44 +0200
Subject: [PATCH 33/74] Remove hlm

---
 .../animation_node.py                         |  5 +-
 bitbots_animation_server/package.xml          |  2 +-
 .../scripts/animation_hcm_bridge.py           |  4 +-
 .../scripts/run_animation.py                  |  3 +-
 bitbots_dynamic_kick/CMakeLists.txt           |  3 -
 bitbots_dynamic_kick/package.xml              |  1 -
 bitbots_hcm/CMakeLists.txt                    |  2 -
 .../hcm_dsd/actions/play_animation.py         |  3 +-
 .../bitbots_hcm/hcm_dsd/actions/state.py      |  2 +-
 .../hcm_dsd/decisions/animation.py            |  2 -
 .../hcm_dsd/decisions/check_hardware.py       |  4 +-
 .../bitbots_hcm/hcm_dsd/decisions/fallen.py   |  4 +-
 .../bitbots_hcm/hcm_dsd/decisions/falling.py  |  2 +-
 .../bitbots_hcm/hcm_dsd/decisions/kicking.py  |  4 +-
 .../bitbots_hcm/hcm_dsd/decisions/pickup.py   |  4 +-
 .../bitbots_hcm/hcm_dsd/decisions/startup.py  |  2 +-
 .../bitbots_hcm/hcm_dsd/decisions/walking.py  |  4 +-
 .../bitbots_hcm/hcm_dsd/hcm_blackboard.py     | 10 ++--
 .../bitbots_hcm/humanoid_control_module.py    |  5 +-
 bitbots_hcm/docs/index.rst                    |  4 +-
 bitbots_hcm/package.xml                       |  1 -
 bitbots_hcm/scripts/hcm_led.py                |  2 +-
 bitbots_hcm/scripts/pause.py                  |  2 +-
 bitbots_hcm/src/hcm.cpp                       | 58 +++++++++----------
 bitbots_head_mover/CMakeLists.txt             |  3 +-
 bitbots_head_mover/package.xml                |  1 -
 bitbots_head_mover/src/move_head.cpp          | 24 ++++----
 bitbots_odometry/launch/odometry.launch       |  1 -
 bitbots_odometry/src/odometry_fuser.cpp       |  6 +-
 bitbots_quintic_walk/CMakeLists.txt           |  3 -
 .../include/bitbots_quintic_walk/walk_node.h  | 10 ++--
 .../bitbots_quintic_walk/walk_pywrapper.h     | 10 ++--
 bitbots_quintic_walk/package.xml              |  1 -
 bitbots_quintic_walk/src/walk_node.cpp        | 16 ++---
 bitbots_quintic_walk/src/walk_pywrapper.cpp   |  4 +-
 35 files changed, 94 insertions(+), 118 deletions(-)

diff --git a/bitbots_animation_server/bitbots_animation_server/animation_node.py b/bitbots_animation_server/bitbots_animation_server/animation_node.py
index 6d099073f..ccd0f8a3f 100755
--- a/bitbots_animation_server/bitbots_animation_server/animation_node.py
+++ b/bitbots_animation_server/bitbots_animation_server/animation_node.py
@@ -18,9 +18,8 @@
 from bitbots_animation_server.animation import parse
 from bitbots_animation_server.resource_manager import ResourceManager
 from bitbots_animation_server.spline_animator import SplineAnimator
-from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import Animation as AnimationMsg
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.action import PlayAnimation
+from bitbots_msgs.msg import Animation as AnimationMsg, RobotControlState
 
 
 class AnimationNode(Node):
diff --git a/bitbots_animation_server/package.xml b/bitbots_animation_server/package.xml
index 85ce516b3..be494fc64 100644
--- a/bitbots_animation_server/package.xml
+++ b/bitbots_animation_server/package.xml
@@ -15,10 +15,10 @@
   <license>MIT</license>
 
   <depend>bitbots_docs</depend>
+  <depend>bitbots_msgs</depend>
   <depend>bitbots_robot_description</depend>
   <depend>bitbots_splines</depend>
   <depend>bitbots_utils</depend>
-  <depend>humanoid_league_msgs</depend>
   <depend>rclpy</depend>
   <depend>std_msgs</depend>
 
diff --git a/bitbots_animation_server/scripts/animation_hcm_bridge.py b/bitbots_animation_server/scripts/animation_hcm_bridge.py
index c7b12e431..058c408c3 100755
--- a/bitbots_animation_server/scripts/animation_hcm_bridge.py
+++ b/bitbots_animation_server/scripts/animation_hcm_bridge.py
@@ -9,7 +9,7 @@
 from bitbots_msgs.msg import JointCommand
 
 # List of all joint names. Do not change the order as it is important for Gazebo
-from humanoid_league_msgs.msg import Animation
+from bitbots_msgs.msg import Animation
 
 JOINT_NAMES = ['HeadPan', 'HeadTilt', 'LShoulderPitch', 'LShoulderRoll', 'LElbow', 'RShoulderPitch',
                'RShoulderRoll', 'RElbow', 'LHipYaw', 'LHipRoll', 'LHipPitch', 'LKnee', 'LAnklePitch',
@@ -42,4 +42,4 @@ def animation_cb(self, msg: Animation):
 
 if __name__ == '__main__':
     bridge = AnimationHcmBridge()
-    rclpy.spin(bridge)
\ No newline at end of file
+    rclpy.spin(bridge)
diff --git a/bitbots_animation_server/scripts/run_animation.py b/bitbots_animation_server/scripts/run_animation.py
index 7e6e56c41..e45157f11 100755
--- a/bitbots_animation_server/scripts/run_animation.py
+++ b/bitbots_animation_server/scripts/run_animation.py
@@ -3,12 +3,11 @@
 import threading
 
 import rclpy
-from actionlib_msgs.msg import GoalStatus
 from rclpy.action import ActionClient
 from rclpy.executors import MultiThreadedExecutor
 from rclpy.node import Node
 
-from humanoid_league_msgs.action import PlayAnimation
+from bitbots_msgs.action import PlayAnimation
 
 
 def anim_run(anim=None, hcm=False):
diff --git a/bitbots_dynamic_kick/CMakeLists.txt b/bitbots_dynamic_kick/CMakeLists.txt
index a4e976ada..405825b00 100644
--- a/bitbots_dynamic_kick/CMakeLists.txt
+++ b/bitbots_dynamic_kick/CMakeLists.txt
@@ -16,7 +16,6 @@ find_package(control_msgs REQUIRED)
 find_package(control_toolbox REQUIRED)
 find_package(Eigen3 REQUIRED)
 find_package(geometry_msgs REQUIRED)
-find_package(humanoid_league_msgs REQUIRED)
 find_package(moveit_ros_planning_interface REQUIRED)
 find_package(rclcpp REQUIRED)
 find_package(rosidl_default_generators REQUIRED)
@@ -60,7 +59,6 @@ ament_target_dependencies(KickNode
         control_msgs
         control_toolbox
         geometry_msgs
-        humanoid_league_msgs
         moveit_ros_planning_interface
         rclcpp
         rot_conv
@@ -90,7 +88,6 @@ target_link_libraries(KickNode "${cpp_typesupport_target}")
 #        control_msgs
 #        control_toolbox
 #        geometry_msgs
-#        humanoid_league_msgs
 #        moveit_ros_planning_interface
 #        rclcpp
 #        ros2_python_extension
diff --git a/bitbots_dynamic_kick/package.xml b/bitbots_dynamic_kick/package.xml
index 6bc0faf8b..0c3c650db 100644
--- a/bitbots_dynamic_kick/package.xml
+++ b/bitbots_dynamic_kick/package.xml
@@ -31,7 +31,6 @@
     <depend>bitbots_utils</depend>
     <depend>control_toolbox</depend>
     <depend>geometry_msgs</depend>
-    <depend>humanoid_league_msgs</depend>
     <depend>moveit_core</depend>
     <depend>moveit_ros_move_group</depend>
     <depend>moveit_ros_planning_interface</depend>
diff --git a/bitbots_hcm/CMakeLists.txt b/bitbots_hcm/CMakeLists.txt
index ec932cf47..401ad901b 100644
--- a/bitbots_hcm/CMakeLists.txt
+++ b/bitbots_hcm/CMakeLists.txt
@@ -10,7 +10,6 @@ find_package(bitbots_docs REQUIRED)
 find_package(bitbots_msgs REQUIRED)
 find_package(builtin_interfaces REQUIRED)
 find_package(geometry_msgs REQUIRED)
-find_package(humanoid_league_msgs REQUIRED)
 find_package(pybind11 REQUIRED)
 find_package(Python3 REQUIRED)
 find_package(PythonLibs REQUIRED)
@@ -34,7 +33,6 @@ ament_target_dependencies(HCM
     bitbots_msgs
     builtin_interfaces
     geometry_msgs
-    humanoid_league_msgs
     rclcpp
     ros2_python_extension
     sensor_msgs
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index de3e7ab67..226d1e2e3 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -2,8 +2,7 @@
 from action_msgs.msg import GoalStatus
 from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-from bitbots_msgs.action import Dynup
-from humanoid_league_msgs.action import PlayAnimation
+from bitbots_msgs.action import Dynup, PlayAnimation
 
 
 class AbstractPlayAnimation(AbstractHCMActionElement):
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
index ab6d50113..e1a92b95c 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
@@ -1,6 +1,6 @@
 from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class AbstractRobotState(AbstractHCMActionElement):
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
index d07c95880..6915e0d09 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
@@ -1,7 +1,5 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from humanoid_league_msgs.msg import RobotControlState
-
 
 class Record(AbstractHCMDecisionElement):
     """
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
index 7b02632eb..fcbf40687 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
@@ -1,7 +1,7 @@
 from rclpy.time import Time
 
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class CheckMotors(AbstractHCMDecisionElement):
@@ -169,4 +169,4 @@ def perform(self, reevaluate=False):
         return "OKAY"
 
     def get_reevaluate(self):
-        return True
\ No newline at end of file
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
index e848f3ca8..e232a715d 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/fallen.py
@@ -4,7 +4,7 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 from bitbots_utils.transforms import quat2fused
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class Fallen(AbstractHCMDecisionElement):
@@ -53,4 +53,4 @@ def perform(self, reevaluate=False):
         return "NOT_FALLEN"
 
     def get_reevaluate(self):
-        return True
\ No newline at end of file
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
index 7e1c8565d..80c4d3b96 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
@@ -6,7 +6,7 @@
 from bitbots_utils.transforms import quat2fused
 from rclpy.duration import Duration
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class FallDirection(Enum):
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
index 6c3b4d2a7..f9e5e935a 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
@@ -1,6 +1,6 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class RecentKickGoals(AbstractHCMDecisionElement):
@@ -27,4 +27,4 @@ def perform(self, reevaluate=False):
             return "NOT_KICKING"
 
     def get_reevaluate(self):
-        return True
\ No newline at end of file
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
index be34ae8fa..1ac374a4a 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
@@ -1,7 +1,7 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 from humanoid_league_speaker.speaker import speak
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class PickedUp(AbstractHCMDecisionElement):
@@ -27,4 +27,4 @@ def perform(self, reevaluate=False):
         return "ON_GROUND"
 
     def get_reevaluate(self):
-        return True
\ No newline at end of file
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
index 8cebd08d4..913ce9dc2 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
@@ -2,7 +2,7 @@
 
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class StartHCM(AbstractHCMDecisionElement):
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
index 81be75737..de016e561 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
@@ -1,6 +1,6 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 class RecentWalkingGoals(AbstractHCMDecisionElement):
@@ -27,4 +27,4 @@ def perform(self, reevaluate=False):
             return "NOT_WALKING"
 
     def get_reevaluate(self):
-        return True
\ No newline at end of file
+        return True
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index d4589aeb4..b2382a837 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -7,17 +7,15 @@
 from geometry_msgs.msg import PointStamped, Twist
 from rclpy.action import ActionClient
 from rclpy.node import Node
-from rclpy.time import Time
 from rclpy.task import Future
+from rclpy.time import Time
 from sensor_msgs.msg import Imu, JointState
 from std_msgs.msg import Empty as EmptyMsg
 from std_srvs.srv import Empty as EmptySrv
 from std_srvs.srv import SetBool
 
-from bitbots_msgs.action import Dynup
-from bitbots_msgs.msg import JointCommand
-from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import Audio, RobotControlState
+from bitbots_msgs.action import Dynup, PlayAnimation
+from bitbots_msgs.msg import Audio, RobotControlState
 
 
 class HcmBlackboard():
@@ -114,4 +112,4 @@ def __init__(self, node: Node):
         self.pressure_diag_error: bool = False
 
     def cancel_path_planning(self):
-        self.cancel_path_planning_pub.publish(EmptyMsg())
\ No newline at end of file
+        self.cancel_path_planning_pub.publish(EmptyMsg())
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index befe6f0b5..e80477341 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -21,10 +21,9 @@
 from sensor_msgs.msg import Imu, JointState
 from std_msgs.msg import Bool
 
-from bitbots_msgs.msg import FootPressure
+from bitbots_msgs.action import PlayAnimation
+from bitbots_msgs.msg import FootPressure, RobotControlState
 from dynamic_stack_decider.dsd import DSD
-from humanoid_league_msgs.action import PlayAnimation
-from humanoid_league_msgs.msg import Audio, RobotControlState
 
 
 class HardwareControlManager:
diff --git a/bitbots_hcm/docs/index.rst b/bitbots_hcm/docs/index.rst
index e2ec73c46..0b9117344 100644
--- a/bitbots_hcm/docs/index.rst
+++ b/bitbots_hcm/docs/index.rst
@@ -53,7 +53,7 @@ How the HCM works
 
 The HCM uses a DSD to decide what the state of the robot is and to decide on the actions that should be performed.
 This state is then published as a ROS message (`/robot_state`).
-To see which state is which, you have to look at the message definition (`ros2 interface show humanoid_league_msgs/msg/RobotControlState`).
+To see which state is which, you have to look at the message definition (`ros2 interface show bitbots_msgs/msg/RobotControlState`).
 
 The HCM subscribes to all joint goal topics of the different software parts.
 Dependend on its state, it forwards the goals or not.
@@ -74,7 +74,7 @@ What to do when it does not work
 
 1. Is `ros_control` running? Do you recieve joint states (`/joint_states`) or IMU data (`/imu/data_raw`)?
 2. What is the state of the HCM (`rostopic echo /robot_state`)? The number has to be matched with the message
-   description (`ros2 interface show humanoid_league_msgs/msg/RobotControlState`).
+   description (`ros2 interface show bitbots_msgs/msg/RobotControlState`).
 3. The visualization of the DSD is possible with the standard DSD visualization using the rqt plugin.
    There you can see exactly which decision is responsible for the current behavior and then you can look into the code.
 
diff --git a/bitbots_hcm/package.xml b/bitbots_hcm/package.xml
index 33494f614..eb06dcddd 100644
--- a/bitbots_hcm/package.xml
+++ b/bitbots_hcm/package.xml
@@ -23,7 +23,6 @@
   <depend>bitbots_robot_description</depend>
   <depend>bitbots_utils</depend>
   <depend>geometry_msgs</depend>
-  <depend>humanoid_league_msgs</depend>
   <depend>pybind11-dev</depend>
   <depend>python3-numpy</depend>
   <depend>python3-sklearn</depend>
diff --git a/bitbots_hcm/scripts/hcm_led.py b/bitbots_hcm/scripts/hcm_led.py
index 7838ad2cc..9b3d49fd7 100755
--- a/bitbots_hcm/scripts/hcm_led.py
+++ b/bitbots_hcm/scripts/hcm_led.py
@@ -4,7 +4,7 @@
 from rclpy.node import Node
 from std_msgs.msg import ColorRGBA
 
-from humanoid_league_msgs.msg import RobotControlState
+from bitbots_msgs.msg import RobotControlState
 
 
 BLINK_DURATION = 0.2
diff --git a/bitbots_hcm/scripts/pause.py b/bitbots_hcm/scripts/pause.py
index 198db7649..5db912ffd 100755
--- a/bitbots_hcm/scripts/pause.py
+++ b/bitbots_hcm/scripts/pause.py
@@ -2,10 +2,10 @@
 # -*- coding:utf-8 -*-
 import rclpy
 from rclpy.node import Node
-from humanoid_league_msgs.msg import Audio
 from std_msgs.msg import Bool
 
 from bitbots_msgs.srv import ManualPenalize
+from bitbots_msgs.msg import Audio
 from humanoid_league_speaker.speaker import speak
 
 
diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index 185893b49..93894bf30 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -3,17 +3,17 @@
 #include <chrono>
 #include <thread>
 #include <rclcpp/rclcpp.hpp>
+#include "bitbots_msgs/msg/animation.hpp"
 #include "bitbots_msgs/msg/foot_pressure.hpp"
 #include "bitbots_msgs/msg/joint_command.hpp"
+#include "bitbots_msgs/msg/robot_control_state.hpp"
+#include "builtin_interfaces/msg/time.hpp"
 #include "geometry_msgs/msg/point_stamped.hpp"
-#include "humanoid_league_msgs/msg/animation.hpp"
-#include "humanoid_league_msgs/msg/robot_control_state.hpp"
-#include "sensor_msgs/msg/joint_state.hpp"
 #include "sensor_msgs/msg/imu.hpp"
-#include "builtin_interfaces/msg/time.hpp"
-#include <ros2_python_extension/serialization.hpp>
+#include "sensor_msgs/msg/joint_state.hpp"
 #include "std_msgs/msg/header.hpp"
 #include <rclcpp/experimental/executors/events_executor/events_executor.hpp>
+#include <ros2_python_extension/serialization.hpp>
 
 
 using std::placeholders::_1;
@@ -34,7 +34,7 @@ class HCM_CPP : public rclcpp::Node {
     this->get_parameter("visualization_active", visualization_active);
 
     // HCM state
-    current_state_ = humanoid_league_msgs::msg::RobotControlState::STARTUP;
+    current_state_ = bitbots_msgs::msg::RobotControlState::STARTUP;
 
     // Sensor states
     current_imu_ = sensor_msgs::msg::Imu();
@@ -65,10 +65,10 @@ class HCM_CPP : public rclcpp::Node {
 
     // Create publishers
     pub_controller_command_ = this->create_publisher<bitbots_msgs::msg::JointCommand>("DynamixelController/command", 1);
-    pub_robot_state_ = this->create_publisher<humanoid_league_msgs::msg::RobotControlState>("robot_state", 1);
+    pub_robot_state_ = this->create_publisher<bitbots_msgs::msg::RobotControlState>("robot_state", 1);
 
     // Create subscribers for goals
-    anim_sub_ = this->create_subscription<humanoid_league_msgs::msg::Animation>(
+    anim_sub_ = this->create_subscription<bitbots_msgs::msg::Animation>(
         "animation", 1, std::bind(&HCM_CPP::animation_callback, this, _1));
     dynup_sub_ = this->create_subscription<bitbots_msgs::msg::JointCommand>(
         "dynup_motor_goals", 1, std::bind(&HCM_CPP::dynup_callback, this, _1));
@@ -92,7 +92,7 @@ class HCM_CPP : public rclcpp::Node {
       "imu/data", 1, std::bind(&HCM_CPP::imu_callback, this, _1));
   }
 
-  void animation_callback(humanoid_league_msgs::msg::Animation msg) {
+  void animation_callback(bitbots_msgs::msg::Animation msg) {
     // The animation server is sending us goal positions for the next keyframe
     last_animation_goal_time_ = msg.header.stamp;
 
@@ -113,7 +113,7 @@ class HCM_CPP : public rclcpp::Node {
       } else {
         // Coming from outside
         // Check if we can run an animation now
-        if (current_state_ != humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
+        if (current_state_ != bitbots_msgs::msg::RobotControlState::CONTROLLABLE) {
           RCLCPP_WARN(this->get_logger(), "HCM is not controllable, animation refused.");
         } else {
           // We're already controllable, go to animation running
@@ -140,10 +140,10 @@ class HCM_CPP : public rclcpp::Node {
 
     // Forward joint positions to motors if there are any and we're in the right state
     if (msg.position.points.size() > 0 && (
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::ANIMATION_RUNNING ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::FALLING ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::FALLEN)) {
+        current_state_ == bitbots_msgs::msg::RobotControlState::CONTROLLABLE ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::ANIMATION_RUNNING ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::FALLING ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::FALLEN)) {
       bitbots_msgs::msg::JointCommand out_msg = bitbots_msgs::msg::JointCommand();
       out_msg.positions = msg.position.points[0].positions;
       out_msg.joint_names = msg.position.joint_names;
@@ -166,26 +166,26 @@ class HCM_CPP : public rclcpp::Node {
   }
 
   void dynup_callback(const bitbots_msgs::msg::JointCommand msg) {
-    if (current_state_ == humanoid_league_msgs::msg::RobotControlState::STARTUP ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::GETTING_UP ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::MOTOR_OFF ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::PICKED_UP ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
+    if (current_state_ == bitbots_msgs::msg::RobotControlState::STARTUP ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::GETTING_UP ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::MOTOR_OFF ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::PICKED_UP ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::CONTROLLABLE) {
       pub_controller_command_->publish(msg);
     }
   }
 
   void head_goal_callback(const bitbots_msgs::msg::JointCommand msg) {
-    if (current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::WALKING) {
+    if (current_state_ == bitbots_msgs::msg::RobotControlState::CONTROLLABLE ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::WALKING) {
       pub_controller_command_->publish(msg);
     }
   }
 
   void kick_goal_callback(const bitbots_msgs::msg::JointCommand msg) {
     last_kick_time_ = msg.header.stamp;
-    if (current_state_ == humanoid_league_msgs::msg::RobotControlState::KICKING ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE) {
+    if (current_state_ == bitbots_msgs::msg::RobotControlState::KICKING ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::CONTROLLABLE) {
       // we can perform a kick
       pub_controller_command_->publish(msg);
     }
@@ -203,8 +203,8 @@ class HCM_CPP : public rclcpp::Node {
 
   void walking_goal_callback(bitbots_msgs::msg::JointCommand msg) {
     last_walking_time_ = msg.header.stamp;
-    if (current_state_ == humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
-        current_state_ == humanoid_league_msgs::msg::RobotControlState::WALKING) {
+    if (current_state_ == bitbots_msgs::msg::RobotControlState::CONTROLLABLE ||
+        current_state_ == bitbots_msgs::msg::RobotControlState::WALKING) {
       pub_controller_command_->publish(msg);
     }
   }
@@ -250,7 +250,7 @@ class HCM_CPP : public rclcpp::Node {
     current_state_ = result.cast<int>();
 
     // Publish current robot state
-    humanoid_league_msgs::msg::RobotControlState state_msg = humanoid_league_msgs::msg::RobotControlState();
+    bitbots_msgs::msg::RobotControlState state_msg = bitbots_msgs::msg::RobotControlState();
     state_msg.state = current_state_;
     pub_robot_state_->publish(state_msg);
   }
@@ -283,10 +283,10 @@ class HCM_CPP : public rclcpp::Node {
 
   // Publishers
   rclcpp::Publisher<bitbots_msgs::msg::JointCommand>::SharedPtr pub_controller_command_;
-  rclcpp::Publisher<humanoid_league_msgs::msg::RobotControlState>::SharedPtr pub_robot_state_;
+  rclcpp::Publisher<bitbots_msgs::msg::RobotControlState>::SharedPtr pub_robot_state_;
 
   // Subscribers
-  rclcpp::Subscription<humanoid_league_msgs::msg::Animation>::SharedPtr anim_sub_;
+  rclcpp::Subscription<bitbots_msgs::msg::Animation>::SharedPtr anim_sub_;
   rclcpp::Subscription<bitbots_msgs::msg::JointCommand>::SharedPtr dynup_sub_;
   rclcpp::Subscription<bitbots_msgs::msg::JointCommand>::SharedPtr head_sub_;
   rclcpp::Subscription<bitbots_msgs::msg::JointCommand>::SharedPtr kick_sub_;
@@ -328,4 +328,4 @@ int main(int argc, char** argv) {
   }
 
   rclcpp::shutdown();
-}
\ No newline at end of file
+}
diff --git a/bitbots_head_mover/CMakeLists.txt b/bitbots_head_mover/CMakeLists.txt
index 4cc65fe7f..c8916ef36 100644
--- a/bitbots_head_mover/CMakeLists.txt
+++ b/bitbots_head_mover/CMakeLists.txt
@@ -12,7 +12,7 @@ find_package(bio_ik REQUIRED)
 find_package(bio_ik_msgs REQUIRED)
 find_package(bitbots_msgs REQUIRED)
 find_package(generate_parameter_library REQUIRED)
-find_package(humanoid_league_msgs REQUIRED)
+find_package(bitbots_msgs REQUIRED)
 find_package(moveit_core REQUIRED)
 find_package(moveit_msgs REQUIRED)
 find_package(moveit_ros_planning REQUIRED)
@@ -47,7 +47,6 @@ bio_ik
 bio_ik_msgs
 bitbots_msgs
 generate_parameter_library
-humanoid_league_msgs
 moveit_core
 moveit_msgs
 moveit_ros_planning
diff --git a/bitbots_head_mover/package.xml b/bitbots_head_mover/package.xml
index c33a83d1a..bef187136 100644
--- a/bitbots_head_mover/package.xml
+++ b/bitbots_head_mover/package.xml
@@ -22,7 +22,6 @@
   <depend>bitbots_robot_description</depend>
   <depend>bitbots_utils</depend>
   <depend>generate_parameter_library</depend>
-  <depend>humanoid_league_msgs</depend>
   <depend>moveit_core</depend>
   <depend>moveit_ros_planning_interface</depend>
   <depend>moveit_ros_planning</depend>
diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index f282ec579..80a848ab4 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -10,10 +10,10 @@
 #include <rclcpp/rclcpp.hpp>
 #include <rclcpp/time.hpp>
 
+#include <bitbots_msgs/msg/head_mode.hpp>
 #include <bitbots_msgs/msg/joint_command.hpp>
 #include <geometry_msgs/msg/pose_stamped.hpp>
 #include <geometry_msgs/msg/pose_with_covariance_stamped.hpp>
-#include <humanoid_league_msgs/msg/head_mode.hpp>
 #include <sensor_msgs/msg/joint_state.hpp>
 #include <std_msgs/msg/string.hpp>
 
@@ -49,7 +49,7 @@ class HeadMover {
   std::shared_ptr<rclcpp::Node> node_;
 
   // Declare subscriber
-  rclcpp::Subscription<humanoid_league_msgs::msg::HeadMode>::SharedPtr
+  rclcpp::Subscription<bitbots_msgs::msg::HeadMode>::SharedPtr
     head_mode_subscriber_;
   rclcpp::Subscription<sensor_msgs::msg::JointState>::SharedPtr
     joint_state_subscriber_;
@@ -109,9 +109,9 @@ class HeadMover {
 
     // Initialize subscriber for head mode
     head_mode_subscriber_ =
-      node_->create_subscription<humanoid_league_msgs::msg::HeadMode>(
+      node_->create_subscription<bitbots_msgs::msg::HeadMode>(
       "head_mode", 10,
-      [this](const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
+      [this](const bitbots_msgs::msg::HeadMode::SharedPtr msg) {
         head_mode_callback(msg);
       });
 
@@ -232,7 +232,7 @@ class HeadMover {
    * @brief Callback used to update the head mode
    */
   void head_mode_callback(
-    const humanoid_league_msgs::msg::HeadMode::SharedPtr msg) {
+    const bitbots_msgs::msg::HeadMode::SharedPtr msg) {
     head_mode_ = msg->head_mode;
   }
 
@@ -870,7 +870,7 @@ class HeadMover {
     // Check if the head mode changed and if so, update the search pattern
     if (prev_head_mode_ != curr_head_mode) {
       switch (curr_head_mode) {
-        case humanoid_league_msgs::msg::HeadMode::BALL_MODE:  // 0
+        case bitbots_msgs::msg::HeadMode::BALL_MODE:  // 0
           pan_speed_ = params_.search_pattern.pan_speed;
           tilt_speed_ = params_.search_pattern.tilt_speed;
           pattern_ =
@@ -882,7 +882,7 @@ class HeadMover {
             params_.search_pattern.tilt_max[1],
             params_.search_pattern.reduce_last_scanline);
           break;
-        case humanoid_league_msgs::msg::HeadMode::BALL_MODE_PENALTY:  // 11
+        case bitbots_msgs::msg::HeadMode::BALL_MODE_PENALTY:  // 11
           pan_speed_ = params_.search_pattern_penalty.pan_speed;
           tilt_speed_ = params_.search_pattern_penalty.tilt_speed;
           pattern_ =
@@ -895,7 +895,7 @@ class HeadMover {
             params_.search_pattern.reduce_last_scanline);
           break;
 
-        case humanoid_league_msgs::msg::HeadMode::FIELD_FEATURES:  // 3
+        case bitbots_msgs::msg::HeadMode::FIELD_FEATURES:  // 3
           pan_speed_ = params_.search_pattern_field_features.pan_speed;
           tilt_speed_ = params_.search_pattern_field_features.tilt_speed;
           pattern_ =
@@ -908,7 +908,7 @@ class HeadMover {
             params_.search_pattern.reduce_last_scanline);
           break;
 
-        case humanoid_league_msgs::msg::HeadMode::LOOK_FRONT:  // 13
+        case bitbots_msgs::msg::HeadMode::LOOK_FRONT:  // 13
           pan_speed_ = params_.front_search_pattern.pan_speed;
           tilt_speed_ = params_.front_search_pattern.tilt_speed;
           pattern_ =
@@ -921,7 +921,7 @@ class HeadMover {
             params_.search_pattern.reduce_last_scanline);
           break;
 
-        case humanoid_league_msgs::msg::HeadMode::LOOK_FORWARD:  // 7
+        case bitbots_msgs::msg::HeadMode::LOOK_FORWARD:  // 7
           pan_speed_ = params_.look_forward.pan_speed;
           tilt_speed_ = params_.look_forward.tilt_speed;
           pattern_ = generatePattern(
@@ -947,8 +947,8 @@ class HeadMover {
     // if this is not the case, perform the search pattern
     if (!action_running_ &&
       curr_head_mode !=
-      humanoid_league_msgs::msg::HeadMode::DONT_MOVE)          // here DONT_MOVE
-                                                               // is implemented
+      bitbots_msgs::msg::HeadMode::DONT_MOVE)          // here DONT_MOVE
+                                                       // is implemented
     {
       // Store the current head mode as the previous head mode to detect changes
       prev_head_mode_ = curr_head_mode;
diff --git a/bitbots_odometry/launch/odometry.launch b/bitbots_odometry/launch/odometry.launch
index 545c07314..df13a2816 100644
--- a/bitbots_odometry/launch/odometry.launch
+++ b/bitbots_odometry/launch/odometry.launch
@@ -20,7 +20,6 @@
         <param name="l_sole_frame" value="$(var tf_prefix)l_sole"/>
         <param name="odom_frame" value="$(var tf_prefix)odom"/>
         <param name="rotation_frame" value="$(var tf_prefix)rotation"/>
-        <param name="imu_frame" value="$(var tf_prefix)imu_frame"/>
         <param name="cop_frame" value="$(var tf_prefix)cop"/>
         <param name="use_sim_time" value="$(var sim)"/>
     </node>
diff --git a/bitbots_odometry/src/odometry_fuser.cpp b/bitbots_odometry/src/odometry_fuser.cpp
index 3411af15c..c5612f504 100644
--- a/bitbots_odometry/src/odometry_fuser.cpp
+++ b/bitbots_odometry/src/odometry_fuser.cpp
@@ -13,7 +13,7 @@ OdometryFuser::OdometryFuser() : Node("OdometryFuser"),
                                  tf_buffer_(std::make_unique<tf2_ros::Buffer>(this->get_clock())),
                                  tf_listener_(std::make_shared<tf2_ros::TransformListener>(*tf_buffer_, this)),
                                  support_state_cache_(100),
-                                 imu_sub_(this, "imu/data"),
+                                 imu_sub_(this, "imu_head/data"),
                                  motion_odom_sub_(this, "motion_odometry"),
                                  br_(std::make_unique<tf2_ros::TransformBroadcaster>(this)),
                                  sync_(message_filters::Synchronizer<SyncPolicy>(SyncPolicy(50), imu_sub_, motion_odom_sub_)){
@@ -28,8 +28,6 @@ OdometryFuser::OdometryFuser() : Node("OdometryFuser"),
   this->get_parameter("odom_frame", odom_frame_);
   this->declare_parameter<std::string>("rotation_frame", "rotation");
   this->get_parameter("rotation_frame", rotation_frame_);
-  this->declare_parameter<std::string>("imu_frame", "imu_frame");
-  this->get_parameter("imu_frame", imu_frame_);
 
   walk_support_state_sub_ =
       this->create_subscription<biped_interfaces::msg::Phase>("walk_support_state",
@@ -89,7 +87,7 @@ void OdometryFuser::loop() {
   tf2::Transform imu_mounting_offset;
   try {
     geometry_msgs::msg::TransformStamped imu_mounting_transform = tf_buffer_->lookupTransform(
-        base_link_frame_, imu_frame_, fused_time_);
+        imu_data_.header.frame_id, base_link_frame_, fused_time_);
     fromMsg(imu_mounting_transform.transform, imu_mounting_offset);
   } catch (tf2::TransformException &ex) {
     RCLCPP_ERROR(this->get_logger(), "Not able to use the IMU%s", ex.what());
diff --git a/bitbots_quintic_walk/CMakeLists.txt b/bitbots_quintic_walk/CMakeLists.txt
index f4bddc506..fb0e87230 100644
--- a/bitbots_quintic_walk/CMakeLists.txt
+++ b/bitbots_quintic_walk/CMakeLists.txt
@@ -18,7 +18,6 @@ find_package(control_msgs REQUIRED)
 find_package(control_toolbox REQUIRED)
 find_package(generate_parameter_library REQUIRED)
 find_package(geometry_msgs REQUIRED)
-find_package(humanoid_league_msgs REQUIRED)
 find_package(moveit_ros_planning_interface REQUIRED)
 find_package(nav_msgs REQUIRED)
 find_package(rclcpp REQUIRED)
@@ -70,7 +69,6 @@ ament_target_dependencies(WalkNode
         control_msgs
         control_toolbox
         geometry_msgs
-        humanoid_league_msgs
         moveit_ros_planning_interface
         nav_msgs
         rclcpp
@@ -99,7 +97,6 @@ ament_target_dependencies(libpy_quintic_walk PUBLIC
         control_msgs
         control_toolbox
         geometry_msgs
-        humanoid_league_msgs
         moveit_ros_planning_interface
         nav_msgs
         rclcpp
diff --git a/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_node.h b/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_node.h
index f9bdca41b..02d6a28ae 100644
--- a/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_node.h
+++ b/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_node.h
@@ -27,10 +27,10 @@ The original files can be found at:
 #include <sensor_msgs/msg/imu.hpp>
 #include <nav_msgs/msg/odometry.hpp>
 #include <moveit_msgs/msg/robot_state.hpp>
-#include "humanoid_league_msgs/msg/robot_control_state.hpp"
-#include "bitbots_msgs/msg/joint_command.hpp"
-#include "bitbots_msgs/msg/foot_pressure.hpp"
 #include "biped_interfaces/msg/phase.hpp"
+#include "bitbots_msgs/msg/foot_pressure.hpp"
+#include "bitbots_msgs/msg/joint_command.hpp"
+#include "bitbots_msgs/msg/robot_control_state.hpp"
 
 #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
 #include <tf2/LinearMath/Vector3.h>
@@ -102,7 +102,7 @@ class WalkNode : public rclcpp::Node {
    * Sets the current state of the robot
    * @param msg The current state
    */
-  void robotStateCb(humanoid_league_msgs::msg::RobotControlState::SharedPtr msg);
+  void robotStateCb(bitbots_msgs::msg::RobotControlState::SharedPtr msg);
 
   WalkEngine *getEngine();
   WalkIK *getIk();
@@ -175,7 +175,7 @@ class WalkNode : public rclcpp::Node {
 
   rclcpp::Subscription<geometry_msgs::msg::Twist>::SharedPtr step_sub_;
   rclcpp::Subscription<geometry_msgs::msg::Twist>::SharedPtr cmd_vel_sub_;
-  rclcpp::Subscription<humanoid_league_msgs::msg::RobotControlState>::SharedPtr robot_state_sub_;
+  rclcpp::Subscription<bitbots_msgs::msg::RobotControlState>::SharedPtr robot_state_sub_;
   rclcpp::Subscription<sensor_msgs::msg::JointState>::SharedPtr joint_state_sub_;
   rclcpp::Subscription<std_msgs::msg::Bool>::SharedPtr kick_sub_;
   rclcpp::Subscription<sensor_msgs::msg::Imu>::SharedPtr imu_sub_;
diff --git a/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_pywrapper.h b/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_pywrapper.h
index 4f4996622..1eece0a40 100644
--- a/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_pywrapper.h
+++ b/bitbots_quintic_walk/include/bitbots_quintic_walk/walk_pywrapper.h
@@ -5,16 +5,16 @@
 #include <map>
 #include <iostream>
 #include "bitbots_quintic_walk/walk_utils.h"
-#include <geometry_msgs/msg/pose_array.hpp>
-#include <geometry_msgs/msg/twist.hpp>
 #include <bitbots_msgs/msg/foot_pressure.hpp>
 #include <bitbots_msgs/msg/joint_command.hpp>
-#include <humanoid_league_msgs/msg/robot_control_state.hpp>
+#include <bitbots_msgs/msg/robot_control_state.hpp>
+#include <cmath>
+#include <geometry_msgs/msg/pose_array.hpp>
+#include <geometry_msgs/msg/twist.hpp>
+#include <pybind11/complex.h>
 #include <pybind11/pybind11.h>
 #include <pybind11/stl.h>
-#include <pybind11/complex.h>
 #include <ros2_python_extension/serialization.hpp>
-#include <cmath>
 
 namespace py = pybind11;
 using namespace ros2_python_extension;
diff --git a/bitbots_quintic_walk/package.xml b/bitbots_quintic_walk/package.xml
index a47906110..e91791448 100644
--- a/bitbots_quintic_walk/package.xml
+++ b/bitbots_quintic_walk/package.xml
@@ -33,7 +33,6 @@
     <depend>control_toolbox</depend>
     <depend>generate_parameter_library</depend>
     <depend>geometry_msgs</depend>
-    <depend>humanoid_league_msgs</depend>
     <depend>moveit_core</depend>
     <depend>moveit_ros_move_group</depend>
     <depend>moveit_ros_planning_interface</depend>
diff --git a/bitbots_quintic_walk/src/walk_node.cpp b/bitbots_quintic_walk/src/walk_node.cpp
index 8b27651ba..2b80c3054 100644
--- a/bitbots_quintic_walk/src/walk_node.cpp
+++ b/bitbots_quintic_walk/src/walk_node.cpp
@@ -74,7 +74,7 @@ WalkNode::WalkNode(const std::string ns, std::vector<rclcpp::Parameter> paramete
   this->get_parameter("odom_frame", odom_frame_);
 
   // init variables
-  robot_state_ = humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE;
+  robot_state_ = bitbots_msgs::msg::RobotControlState::CONTROLLABLE;
   current_request_.linear_orders = {0, 0, 0};
   current_request_.angular_z = 0;
   current_request_.stop_walk = true;
@@ -104,7 +104,7 @@ WalkNode::WalkNode(const std::string ns, std::vector<rclcpp::Parameter> paramete
     "cmd_vel",
     1,
     std::bind(&WalkNode::cmdVelCb, this, _1));
-  robot_state_sub_ = this->create_subscription<humanoid_league_msgs::msg::RobotControlState>(
+  robot_state_sub_ = this->create_subscription<bitbots_msgs::msg::RobotControlState>(
     "robot_state",
     1,
     std::bind(&WalkNode::robotStateCb, this, _1));
@@ -164,8 +164,8 @@ void WalkNode::run() {
   double dt = getTimeDelta();
   // necessary as timer in simulation does not work correctly https://github.com/ros2/rclcpp/issues/465
   if (dt != 0.0) {
-    if (robot_state_==humanoid_league_msgs::msg::RobotControlState::FALLING
-        || robot_state_==humanoid_league_msgs::msg::RobotControlState::GETTING_UP) {
+    if (robot_state_==bitbots_msgs::msg::RobotControlState::FALLING
+        || robot_state_==bitbots_msgs::msg::RobotControlState::GETTING_UP) {
       // the robot fell, we have to reset everything and do nothing else
       walk_engine_.reset();
       stabilizer_.reset();
@@ -174,9 +174,9 @@ void WalkNode::run() {
       /* Our robots will soon^TM be able to sit down and stand up autonomously, when sitting down the motors are
        * off but will turn on automatically which is why MOTOR_OFF is a valid walkable state. */
       // TODO Figure out a better way than having integration knowledge that HCM will play an animation to stand up
-      current_request_.walkable_state = robot_state_==humanoid_league_msgs::msg::RobotControlState::CONTROLLABLE ||
-          robot_state_==humanoid_league_msgs::msg::RobotControlState::WALKING ||
-          robot_state_==humanoid_league_msgs::msg::RobotControlState::MOTOR_OFF;
+      current_request_.walkable_state = robot_state_==bitbots_msgs::msg::RobotControlState::CONTROLLABLE ||
+          robot_state_==bitbots_msgs::msg::RobotControlState::WALKING ||
+          robot_state_==bitbots_msgs::msg::RobotControlState::MOTOR_OFF;
 
       // reset when we start walking, otherwise PID controller will use old I value
       if ((last_request_.linear_orders[0]==0 && last_request_.linear_orders[1]==0 && last_request_.angular_z==0)
@@ -534,7 +534,7 @@ void WalkNode::checkPhaseRestAndReset() {
   }
 }
 
-void WalkNode::robotStateCb(const humanoid_league_msgs::msg::RobotControlState::SharedPtr msg) {
+void WalkNode::robotStateCb(const bitbots_msgs::msg::RobotControlState::SharedPtr msg) {
   robot_state_ = msg->state;
 }
 
diff --git a/bitbots_quintic_walk/src/walk_pywrapper.cpp b/bitbots_quintic_walk/src/walk_pywrapper.cpp
index ea6e9b2cd..79cbce560 100644
--- a/bitbots_quintic_walk/src/walk_pywrapper.cpp
+++ b/bitbots_quintic_walk/src/walk_pywrapper.cpp
@@ -147,9 +147,9 @@ bool PyWalkWrapper::is_left_support(){
 }
 
 void PyWalkWrapper::set_robot_state(int state) {
-  humanoid_league_msgs::msg::RobotControlState state_msg;
+  bitbots_msgs::msg::RobotControlState state_msg;
   state_msg.state = state;
-  walk_node_->robotStateCb(std::make_shared<humanoid_league_msgs::msg::RobotControlState>(state_msg));
+  walk_node_->robotStateCb(std::make_shared<bitbots_msgs::msg::RobotControlState>(state_msg));
 }
 
 void PyWalkWrapper::set_parameter(py::bytes parameter_msg) {

From 8420b72c8750e6413b79eed2d906e7cc487eebf6 Mon Sep 17 00:00:00 2001
From: Jan Gutsche <github@jaagut.de>
Date: Thu, 19 Oct 2023 19:06:33 +0200
Subject: [PATCH 34/74] Fix typos

---
 bitbots_splines/include/bitbots_splines/polynom.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/bitbots_splines/include/bitbots_splines/polynom.h b/bitbots_splines/include/bitbots_splines/polynom.h
index 640b36416..093ae874a 100644
--- a/bitbots_splines/include/bitbots_splines/polynom.h
+++ b/bitbots_splines/include/bitbots_splines/polynom.h
@@ -15,7 +15,7 @@ namespace bitbots_splines {
 /**
  * Polynom
  *
- * Simple one dimentional 
+ * Simple one dimensional 
  * polynom class for spline 
  * generation
  */
@@ -23,7 +23,7 @@ class Polynom {
  public:
 
   /**
-   * Default and inital degree initialization
+   * Default and initial degree initialization
    */
   Polynom();
   explicit Polynom(unsigned int degree);
@@ -73,7 +73,7 @@ class Polynom {
  private:
 
   /**
-   * Polynom coeficients
+   * Polynom coefficients
    */
   std::vector<double> coefs_;
 };

From 054fac9686fb29970d53bf7b8902583ba96612a6 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Fri, 20 Oct 2023 18:13:29 +0200
Subject: [PATCH 35/74] Wait for all tfs (less warnings at startup)

---
 bitbots_odometry/src/odometry_fuser.cpp | 54 +++++++++++++++++++------
 1 file changed, 42 insertions(+), 12 deletions(-)

diff --git a/bitbots_odometry/src/odometry_fuser.cpp b/bitbots_odometry/src/odometry_fuser.cpp
index c5612f504..50a28deee 100644
--- a/bitbots_odometry/src/odometry_fuser.cpp
+++ b/bitbots_odometry/src/odometry_fuser.cpp
@@ -13,7 +13,7 @@ OdometryFuser::OdometryFuser() : Node("OdometryFuser"),
                                  tf_buffer_(std::make_unique<tf2_ros::Buffer>(this->get_clock())),
                                  tf_listener_(std::make_shared<tf2_ros::TransformListener>(*tf_buffer_, this)),
                                  support_state_cache_(100),
-                                 imu_sub_(this, "imu_head/data"),
+                                 imu_sub_(this, "imu/data"),
                                  motion_odom_sub_(this, "motion_odometry"),
                                  br_(std::make_unique<tf2_ros::TransformBroadcaster>(this)),
                                  sync_(message_filters::Synchronizer<SyncPolicy>(SyncPolicy(50), imu_sub_, motion_odom_sub_)){
@@ -43,19 +43,46 @@ OdometryFuser::OdometryFuser() : Node("OdometryFuser"),
   fused_time_ = rclcpp::Time(0, 0, RCL_ROS_TIME);
 }
 
+
+/**
+ * @brief Waits for the transforms to be available
+ * @return true if the transforms are not available yet and we need to wait
+ */
 bool OdometryFuser::wait_for_tf() {
-  // wait for transforms from joints
-  if (!tf_buffer_->canTransform(l_sole_frame_,
-                                   base_link_frame_,
-                                   rclcpp::Time(0, 0, RCL_ROS_TIME),
-                                   rclcpp::Duration::from_nanoseconds(1*1e9))
-      && rclcpp::ok()) {
-    // don't spam directly with warnings, since it is normal that it will take a second to get the transform
-    if ((this->now() - start_time_).seconds() > 10) {
-      RCLCPP_WARN_THROTTLE(this->get_logger(), *this->get_clock(), 30000, "Waiting for transforms from robot joints");
+  try {
+    // Frames to check
+    std::vector<std::string> frames = {base_link_frame_, l_sole_frame_, r_sole_frame_};
+
+    // Apply tf_buffer->_frameExists to all frames and check if all are available otherwise return false (functional)
+    if(!std::all_of(frames.begin(), frames.end(), [this](std::string frame) {return tf_buffer_->_frameExists(frame);})) {
+      // Wait for 1 second
+      rclcpp::sleep_for(std::chrono::seconds(1));
+      // Return true to indicate that we need to wait
+      return true;
+    }
+
+    // Check if we can transform from base_link to all other frames
+    if(!std::all_of(
+      frames.begin(), 
+      frames.end(), 
+      [this](std::string frame) {
+        return tf_buffer_->canTransform(
+          base_link_frame_,
+          frame, 
+          rclcpp::Time(0), 
+          rclcpp::Duration::from_nanoseconds(1e9));
+      })){
+      // Return that we need to wait
+      return true;
     }
     return false;
   }
+  catch(const std::exception& e)
+  {
+    RCLCPP_ERROR(this->get_logger(), "Error while waiting for transforms: %s \n", e.what());
+  }
+  // Wait for 1 second
+  rclcpp::sleep_for(std::chrono::seconds(1));
   return true;
 }
 
@@ -90,7 +117,7 @@ void OdometryFuser::loop() {
         imu_data_.header.frame_id, base_link_frame_, fused_time_);
     fromMsg(imu_mounting_transform.transform, imu_mounting_offset);
   } catch (tf2::TransformException &ex) {
-    RCLCPP_ERROR(this->get_logger(), "Not able to use the IMU%s", ex.what());
+    RCLCPP_ERROR(this->get_logger(), "Not able to use the IMU: %s", ex.what());
   }
 
   // get imu transform without yaw
@@ -249,8 +276,11 @@ int main(int argc, char **argv) {
   auto node = std::make_shared<OdometryFuser>();
   rclcpp::experimental::executors::EventsExecutor exec;
   exec.add_node(node);
-  while(!node->wait_for_tf()){
+  for(int i = 0; node->wait_for_tf() && rclcpp::ok(); i++) {
      exec.spin_some();
+     if (i > 0) {
+      RCLCPP_ERROR(node->get_logger(), "Waiting for transforms\n");
+     }
   }
   rclcpp::Duration timer_duration = rclcpp::Duration::from_seconds(1.0 / 100.0);
   rclcpp::TimerBase::SharedPtr timer = rclcpp::create_timer(node, node->get_clock(), timer_duration, [node]() -> void {node->loop();});

From 91d32e18ab09a5a72a1c5da71c7daf5bfafeb065 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 09:51:36 +0200
Subject: [PATCH 36/74] Fix naming

---
 bitbots_head_mover/src/move_head.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index 80a848ab4..7343baf14 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -375,18 +375,18 @@ class HeadMover {
   /**
    * @brief Slows down the speed of the joint that needs to travel less distance so both joints reach the goal at the same time
    *
-   * @param delta_fast_joint The delta of the joint that needs to travel less distance and therefore reaches the goal faster
-   * @param delta_my_joint The delta of the joint that needs to travel more distance and therefore reaches the goal slower
+   * @param delta_faster_joint The delta of the joint that needs to travel less distance and therefore reaches the goal faster
+   * @param delta_joint The delta of the joint that needs to travel more distance and therefore reaches the goal slower
    * @param speed The maximum speed of the faster joint (the joint that needs to travel less distance)
    * @return double The adjusted speed of the faster joint
    */
   double calculate_lower_speed(
-    double delta_fast_joint,
-    double delta_my_joint,
+    double delta_faster_joint,
+    double delta_joint,
     double speed) {
     double estimated_time = delta_fast_joint / speed;
     if (estimated_time != 0) {
-      return delta_my_joint / estimated_time;
+      return delta_joint / estimated_time;
     } else {
       return 0;
     }

From 7ca387321cd34da6ea372a9ee38e0abc13bdf939 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 10:20:36 +0200
Subject: [PATCH 37/74] Make param exchange more reliable

---
 bitbots_dynup/src/dynup_engine.cpp | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/bitbots_dynup/src/dynup_engine.cpp b/bitbots_dynup/src/dynup_engine.cpp
index bd8eac13a..f0e11d8a8 100644
--- a/bitbots_dynup/src/dynup_engine.cpp
+++ b/bitbots_dynup/src/dynup_engine.cpp
@@ -678,19 +678,18 @@ void DynupEngine::setGoals(const DynupRequest &goals) {
   // we re-request the values every time because they can be changed by dynamic reconfigure
   // and re-requesting them is fast enough
   double foot_distance, trunk_x_final, trunk_pitch, trunk_height;
-  bool walking_running = false;
   std::vector<rclcpp::Parameter> walking_params;
-  if (walking_param_client_->service_is_ready()) {
-    walking_params = walking_param_client_->get_parameters({"engine.trunk_pitch",
-                                                            "engine.trunk_height",
-                                                            "engine.foot_distance",
-                                                            "engine.trunk_x_offset"},
-                                                           std::chrono::duration<int64_t, std::milli>(10));
-    // when the walking was killed, service_is_ready is still true but the parameters come back empty
-    walking_running = !walking_params.empty();
-  }
-
-  if (walking_running) {
+  // Gat params and wait for walking to be ready
+  walking_params = walking_param_client_->get_parameters({"engine.trunk_pitch",
+                                                          "engine.trunk_height",
+                                                          "engine.foot_distance",
+                                                          "engine.trunk_x_offset"},
+                                                          std::chrono::seconds(10));
+
+  // when the walking was killed, service_is_ready is still true but the parameters come back empty
+  if (walking_params.empty()) {
+    RCLCPP_WARN(node_->get_logger(), "Walking is not running, using default parameters for walkready.");
+  } else {
     for (auto &param: walking_params) {
       if (param.get_name() == "engine.trunk_pitch") {
         trunk_pitch = param.get_value<double>();
@@ -709,8 +708,6 @@ void DynupEngine::setGoals(const DynupRequest &goals) {
     params_["trunk_height"] = rclcpp::Parameter("trunk_height", trunk_height);
     params_["foot_distance"] = rclcpp::Parameter("foot_distance", foot_distance);
     params_["trunk_x_final"] = rclcpp::Parameter("trunk_x_final", trunk_x_final);
-  } else {
-    RCLCPP_WARN(node_->get_logger(), "Walking is not running, using default parameters for walkready.");
   }
 
   if (goals.direction == "front") {

From c46b5f5c203f7afb07b8b40f17dda8f0803c3bff Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 10:20:56 +0200
Subject: [PATCH 38/74] Fix stop step

---
 bitbots_quintic_walk/src/walk_engine.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/bitbots_quintic_walk/src/walk_engine.cpp b/bitbots_quintic_walk/src/walk_engine.cpp
index c7ee603d3..bbc02edbb 100644
--- a/bitbots_quintic_walk/src/walk_engine.cpp
+++ b/bitbots_quintic_walk/src/walk_engine.cpp
@@ -365,7 +365,7 @@ void WalkEngine::reset(WalkState state,
       buildStartStepTrajectories();
     } else if (state == WalkState::STOP_MOVEMENT) {
       buildStopMovementTrajectories();
-    } else if (state == WalkState::START_STEP) {
+    } else if (state == WalkState::STOP_STEP) {
       buildStopStepTrajectories();
     } else if (state == WalkState::KICK) {
       buildKickTrajectories();
@@ -399,7 +399,7 @@ void WalkEngine::reset(WalkState state,
       buildStartStepTrajectories();
     } else if (state == WalkState::STOP_MOVEMENT) {
       buildStopMovementTrajectories();
-    } else if (state == WalkState::START_STEP) {
+    } else if (state == WalkState::STOP_STEP) {
       buildStopStepTrajectories();
     } else if (state == WalkState::KICK) {
       buildKickTrajectories();
@@ -1114,4 +1114,4 @@ tf2::Transform WalkEngine::getLeft() {
 tf2::Transform WalkEngine::getRight() {
   return right_in_world_;
 }
-} // namespace bitbots_quintic_walk
\ No newline at end of file
+} // namespace bitbots_quintic_walk

From cc44f8e8fb362c2eca3948d2548fbc15238f35f5 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 10:28:38 +0200
Subject: [PATCH 39/74] Fix dynup hcm warning

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py | 6 +++---
 bitbots_hcm/config/hcm_wolfgang.yaml                      | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index 226d1e2e3..ce5a3e2d9 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -56,7 +56,7 @@ def start_animation(self, anim):
             self.blackboard.node.get_logger().warn("Tried to play an animation with an empty name!")
             return False
         first_try = self.blackboard.animation_action_client.wait_for_server(
-            timeout_sec=self.blackboard.node.get_parameter('hcm.anim_server_wait_time').get_parameter_value().double_value)
+            timeout_sec=self.blackboard.node.get_parameter('hcm.anim_server_wait_time').value)
         if not first_try:
             server_running = False
             while not server_running and rclpy.ok():
@@ -157,12 +157,12 @@ def start_animation(self):
         """
 
         first_try = self.blackboard.dynup_action_client.wait_for_server(
-            timeout_sec=self.blackboard.node.get_parameter('hcm.anim_server_wait_time').get_parameter_value().double_value)
+            timeout_sec=self.blackboard.node.get_parameter('hcm.anim_server_wait_time').value)
         if not first_try:
             server_running = False
             while not server_running and rclpy.ok():
                 self.blackboard.node.get_logger().warn(
-                                      "Dynup Action Server not running! Dynup cannot work without dynup server!"
+                                      "Dynup Action Server not running! Dynup cannot work without dynup server! "
                                       "Will now wait until server is accessible!",
                                       throttle_duration_sec=10.0)
                 server_running = self.blackboard.dynup_action_client.wait_for_server(timeout_sec=1)
diff --git a/bitbots_hcm/config/hcm_wolfgang.yaml b/bitbots_hcm/config/hcm_wolfgang.yaml
index e1d21fe42..6a63d8f6f 100644
--- a/bitbots_hcm/config/hcm_wolfgang.yaml
+++ b/bitbots_hcm/config/hcm_wolfgang.yaml
@@ -10,8 +10,8 @@
     motor_off_time: 30000000.0 # time of no use or updates when the hcm goes to soft off
     motor_timeout_duration: 0.5 # time without messages from the servos till error is produced [s]
 
-    #Animations
-    anim_server_wait_time: 1.0 # time the hcm waits for animation server
+    # Animations
+    anim_server_wait_time: 10.0 # time the hcm waits for animation server
     animations:
       falling_front: "falling_front"
       falling_back: "falling_back"

From fd8ae456e2d7082da9cfff4e66e40402dabd2a15 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 10:57:39 +0200
Subject: [PATCH 40/74] Also build config

---
 bitbots_odometry/CMakeLists.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/bitbots_odometry/CMakeLists.txt b/bitbots_odometry/CMakeLists.txt
index 4bd17893b..b7cc162b1 100644
--- a/bitbots_odometry/CMakeLists.txt
+++ b/bitbots_odometry/CMakeLists.txt
@@ -88,4 +88,7 @@ install(TARGETS odometry_fuser
 install(DIRECTORY launch
         DESTINATION share/${PROJECT_NAME})
 
+install(DIRECTORY config
+        DESTINATION share/${PROJECT_NAME})
+
 ament_package()

From 83cba4c3c3cdee543068873161f5edbf28c0c73e Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 10:57:52 +0200
Subject: [PATCH 41/74] Increase timeouts

---
 bitbots_dynup/src/dynup_node.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/bitbots_dynup/src/dynup_node.cpp b/bitbots_dynup/src/dynup_node.cpp
index d8472dec3..637ef92bd 100644
--- a/bitbots_dynup/src/dynup_node.cpp
+++ b/bitbots_dynup/src/dynup_node.cpp
@@ -341,10 +341,10 @@ bitbots_dynup::msg::DynupPoses DynupNode::getCurrentPoses() {
   bitbots_dynup::msg::DynupPoses msg;
   try {
     //0.2 second timeout for transformations
-    geometry_msgs::msg::Transform l_foot_transformed = tf_buffer_->lookupTransform(r_sole_frame_, l_sole_frame_, time, tf2::durationFromSec(0.2)).transform;
-    geometry_msgs::msg::Transform r_foot_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_sole_frame_, time, tf2::durationFromSec(0.2)).transform;
-    geometry_msgs::msg::Transform l_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, l_wrist_frame_, time, tf2::durationFromSec(0.2)).transform;
-    geometry_msgs::msg::Transform r_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_wrist_frame_, time, tf2::durationFromSec(0.2)).transform;
+    geometry_msgs::msg::Transform l_foot_transformed = tf_buffer_->lookupTransform(r_sole_frame_, l_sole_frame_, time, tf2::durationFromSec(1.0)).transform;
+    geometry_msgs::msg::Transform r_foot_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_sole_frame_, time, tf2::durationFromSec(1.0)).transform;
+    geometry_msgs::msg::Transform l_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, l_wrist_frame_, time, tf2::durationFromSec(1.0)).transform;
+    geometry_msgs::msg::Transform r_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_wrist_frame_, time, tf2::durationFromSec(1.0)).transform;
 
     std::function transform2pose =  [](geometry_msgs::msg::Transform transform) {
       geometry_msgs::msg::Pose pose;

From a181af5e3c6ea98fd726bf19ecbef52b006c3acf Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 11:00:09 +0200
Subject: [PATCH 42/74] Cleanup timeout

---
 bitbots_dynup/src/dynup_node.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/bitbots_dynup/src/dynup_node.cpp b/bitbots_dynup/src/dynup_node.cpp
index 637ef92bd..e14fab146 100644
--- a/bitbots_dynup/src/dynup_node.cpp
+++ b/bitbots_dynup/src/dynup_node.cpp
@@ -340,11 +340,14 @@ bitbots_dynup::msg::DynupPoses DynupNode::getCurrentPoses() {
   /* Transform the left foot into the right foot frame and all other splines into the base link frame*/
   bitbots_dynup::msg::DynupPoses msg;
   try {
-    //0.2 second timeout for transformations
-    geometry_msgs::msg::Transform l_foot_transformed = tf_buffer_->lookupTransform(r_sole_frame_, l_sole_frame_, time, tf2::durationFromSec(1.0)).transform;
-    geometry_msgs::msg::Transform r_foot_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_sole_frame_, time, tf2::durationFromSec(1.0)).transform;
-    geometry_msgs::msg::Transform l_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, l_wrist_frame_, time, tf2::durationFromSec(1.0)).transform;
-    geometry_msgs::msg::Transform r_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_wrist_frame_, time, tf2::durationFromSec(1.0)).transform;
+    // Timeout for transformations
+    auto timeout = tf2::durationFromSec(1.0);
+
+    // Get the transforms of the end effectors
+    geometry_msgs::msg::Transform l_foot_transformed = tf_buffer_->lookupTransform(r_sole_frame_, l_sole_frame_, time, timeout).transform;
+    geometry_msgs::msg::Transform r_foot_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_sole_frame_, time, timeout).transform;
+    geometry_msgs::msg::Transform l_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, l_wrist_frame_, time, timeout).transform;
+    geometry_msgs::msg::Transform r_hand_transformed = tf_buffer_->lookupTransform(base_link_frame_, r_wrist_frame_, time, timeout).transform;
 
     std::function transform2pose =  [](geometry_msgs::msg::Transform transform) {
       geometry_msgs::msg::Pose pose;

From e73552357a5bb810c90177179ee2f9d8d8dc01ef Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 11:00:20 +0200
Subject: [PATCH 43/74] Cleaner imu active check

---
 .../include/bitbots_odometry/odometry_fuser.h |  1 +
 bitbots_odometry/src/odometry_fuser.cpp       | 81 ++++++++++---------
 2 files changed, 45 insertions(+), 37 deletions(-)

diff --git a/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h b/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h
index 6fd92317b..0d1aa8f41 100644
--- a/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h
+++ b/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h
@@ -40,6 +40,7 @@ class OdometryFuser : public rclcpp::Node {
   std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
   rclcpp::Time fused_time_;
   std::string base_link_frame_, r_sole_frame_, l_sole_frame_, odom_frame_, rotation_frame_, imu_frame_;
+  bool imu_data_received_ = false;
 
   rclcpp::Subscription<biped_interfaces::msg::Phase>::SharedPtr walk_support_state_sub_;
   rclcpp::Subscription<biped_interfaces::msg::Phase>::SharedPtr kick_support_state_sub_;
diff --git a/bitbots_odometry/src/odometry_fuser.cpp b/bitbots_odometry/src/odometry_fuser.cpp
index 50a28deee..779b3d9c9 100644
--- a/bitbots_odometry/src/odometry_fuser.cpp
+++ b/bitbots_odometry/src/odometry_fuser.cpp
@@ -87,50 +87,56 @@ bool OdometryFuser::wait_for_tf() {
 }
 
 void OdometryFuser::loop() {
-  // get roll an pitch from imu
-  tf2::Quaternion imu_orientation;
-  tf2::fromMsg(imu_data_.orientation, imu_orientation);
-
   // get motion_odom transform
   tf2::Transform motion_odometry;
   tf2::fromMsg(odom_data_.pose.pose, motion_odometry);
 
   // combine orientations to new quaternion if IMU is active, use purely odom otherwise
-  tf2::Transform fused_odometry;
-
-  // compute the point of rotation (in base_link frame)
-  tf2::Transform rotation_point_in_base = getCurrentRotationPoint();
-  // get base_link in rotation point frame
-  tf2::Transform base_link_in_rotation_point = rotation_point_in_base.inverse();
-
-  // get only translation and yaw from motion odometry
-  tf2::Quaternion odom_orientation_yaw = getCurrentMotionOdomYaw(
-      motion_odometry.getRotation());
-  tf2::Transform motion_odometry_yaw;
-  motion_odometry_yaw.setRotation(odom_orientation_yaw);
-  motion_odometry_yaw.setOrigin(motion_odometry.getOrigin());
-
-  // Get the rotation offset between the IMU and the baselink
-  tf2::Transform imu_mounting_offset;
-  try {
-    geometry_msgs::msg::TransformStamped imu_mounting_transform = tf_buffer_->lookupTransform(
-        imu_data_.header.frame_id, base_link_frame_, fused_time_);
-    fromMsg(imu_mounting_transform.transform, imu_mounting_offset);
-  } catch (tf2::TransformException &ex) {
-    RCLCPP_ERROR(this->get_logger(), "Not able to use the IMU: %s", ex.what());
-  }
+  tf2::Transform fused_odometry {motion_odometry};
+
+  // Check if the imu is active
+  if (imu_data_received_) {
+
+    // get roll an pitch from imu
+    tf2::Quaternion imu_orientation;
+    tf2::fromMsg(imu_data_.orientation, imu_orientation);
+
+    // compute the point of rotation (in base_link frame)
+    tf2::Transform rotation_point_in_base = getCurrentRotationPoint();
+    // get base_link in rotation point frame
+    tf2::Transform base_link_in_rotation_point = rotation_point_in_base.inverse();
 
-  // get imu transform without yaw
-  tf2::Quaternion imu_orientation_without_yaw_component = getCurrentImuRotationWithoutYaw(
-      imu_orientation * imu_mounting_offset.getRotation());
-  tf2::Transform imu_without_yaw_component;
-  imu_without_yaw_component.setRotation(imu_orientation_without_yaw_component);
-  imu_without_yaw_component.setOrigin({0, 0, 0});
+    // get only translation and yaw from motion odometry
+    tf2::Quaternion odom_orientation_yaw = getCurrentMotionOdomYaw(
+        motion_odometry.getRotation());
+    tf2::Transform motion_odometry_yaw;
+    motion_odometry_yaw.setRotation(odom_orientation_yaw);
+    motion_odometry_yaw.setOrigin(motion_odometry.getOrigin());
 
-  // transformation chain to get correctly rotated odom frame
-  // go to the rotation point in the odom frame. rotate the transform to the base link at this point
-  fused_odometry =
-      motion_odometry_yaw * rotation_point_in_base * imu_without_yaw_component * base_link_in_rotation_point;
+    // Get the rotation offset between the IMU and the baselink
+    tf2::Transform imu_mounting_offset;
+    try {
+      geometry_msgs::msg::TransformStamped imu_mounting_transform = tf_buffer_->lookupTransform(
+          imu_data_.header.frame_id, base_link_frame_, fused_time_);
+      fromMsg(imu_mounting_transform.transform, imu_mounting_offset);
+    } catch (tf2::TransformException &ex) {
+      RCLCPP_ERROR(this->get_logger(), "Not able to fuse IMU data with odometry due to a tf problem: %s", ex.what());
+    }
+
+    // get imu transform without yaw
+    tf2::Quaternion imu_orientation_without_yaw_component = getCurrentImuRotationWithoutYaw(
+        imu_orientation * imu_mounting_offset.getRotation());
+    tf2::Transform imu_without_yaw_component;
+    imu_without_yaw_component.setRotation(imu_orientation_without_yaw_component);
+    imu_without_yaw_component.setOrigin({0, 0, 0});
+
+    // transformation chain to get correctly rotated odom frame
+    // go to the rotation point in the odom frame. rotate the transform to the base link at this point
+    fused_odometry =
+        motion_odometry_yaw * rotation_point_in_base * imu_without_yaw_component * base_link_in_rotation_point;
+  } else {
+    fused_odometry = motion_odometry;
+  }
 
   // combine it all into a tf
   tf_.header.stamp = fused_time_;
@@ -269,6 +275,7 @@ void OdometryFuser::imuCallback(
   // Use the time of the imu as a baseline to do transforms and stuff because it is more timecritical than the walking odometry.
   // The walking odom stamp is also close to this timestamp due to the Synchronizer policy.
   fused_time_ = imu_data_.header.stamp;
+  imu_data_received_ = true;
 }
 
 int main(int argc, char **argv) {

From c130413241feb412fc95ce06120bd9b3e4ffb2cc Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 15:06:40 +0200
Subject: [PATCH 44/74] Fix sim sleep

---
 .../include/bitbots_dynamic_kick/kick_node.h  |  5 --
 bitbots_dynamic_kick/src/kick_node.cpp        | 64 +++++++++----------
 2 files changed, 30 insertions(+), 39 deletions(-)

diff --git a/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h b/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h
index bd56fc123..580759cdd 100644
--- a/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h
+++ b/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h
@@ -133,11 +133,6 @@ class KickNode : public rclcpp::Node{
    */
   void publishSupportFoot(bool is_left_kick);
 
-  /**
-   * Helper method to achieve correctly sampled rate
-   */
-  double getTimeDelta();
-
   /**
    * Get JointCommand message for JointGoals
    */
diff --git a/bitbots_dynamic_kick/src/kick_node.cpp b/bitbots_dynamic_kick/src/kick_node.cpp
index 807b43e28..981a6e590 100644
--- a/bitbots_dynamic_kick/src/kick_node.cpp
+++ b/bitbots_dynamic_kick/src/kick_node.cpp
@@ -314,54 +314,50 @@ void KickNode::executeCb(const std::shared_ptr<KickGoalHandle> goal_handle) {
   }
 }
 
-double KickNode::getTimeDelta() {
-  // compute actual time delta that happened
-  double dt;
-  double current_ros_time = this->get_clock()->now().seconds();
-
-  // first call needs to be handled specially
-  if (last_ros_update_time_ == 0) {
-    last_ros_update_time_ = current_ros_time;
-    return 0.001;
-  }
+void KickNode::loopEngine(const std::shared_ptr<rclcpp_action::ServerGoalHandle<bitbots_msgs::action::Kick>> goal_handle) {
+  // Store the time of the last execution
+  auto last_time = this->get_clock()->now();
+  auto next_execution_time {last_time};
 
-  dt = current_ros_time - last_ros_update_time_;
-  // this can happen due to floating point precision or in simulation
-  if (dt == 0) {
-    RCLCPP_WARN(this->get_logger(), "dynamic kick: dt was 0");
-    dt = 0.001;
-  }
-  last_ros_update_time_ = current_ros_time;
+  // Loop to perform the kick trajectory
+  while (rclcpp::ok()) {
+    // Store time of this step
+    auto step_time = this->get_clock()->now();
 
-  return dt;
-}
+    // Check if enough time has passed to execute the next step
+    if (step_time >= next_execution_time) {
+      
+      // Determine the next execution time
+      next_execution_time = step_time + rclcpp::Duration::from_seconds(1.0 / engine_rate_);
 
-void KickNode::loopEngine(const std::shared_ptr<rclcpp_action::ServerGoalHandle<bitbots_msgs::action::Kick>> goal_handle) {
-  /* Do the loop as long as nothing cancels it */
-  double dt;
-  rclcpp::Time next_loop_time;
-  rclcpp::Time last_time = this->get_clock()->now();
-  while (rclcpp::ok()) {
-    next_loop_time = last_time + rclcpp::Duration::from_seconds(1.0 / engine_rate_);
-    last_time = this->get_clock()->now();
-    if (this->get_clock()->sleep_until(next_loop_time)) {
-      dt = getTimeDelta();
-      std::optional<bitbots_splines::JointGoals> motor_goals = kickStep(dt);
+      // Get the time since the last execution
+      auto dt = step_time - last_time;
 
-      /* Publish feedback to the client */
+      // Calculate the kick joint goals
+      std::optional<bitbots_splines::JointGoals> motor_goals = kickStep(dt.seconds());
+
+      // Publish feedback to the client
       auto feedback = std::make_shared<bitbots_msgs::action::Kick::Feedback>();
       feedback->percent_done = engine_.getPercentDone();
       feedback->chosen_foot = engine_.isLeftKick() ?
                               bitbots_msgs::action::Kick::Feedback::FOOT_LEFT
-                                                   : bitbots_msgs::action::Kick::Feedback::FOOT_RIGHT;
+                                                    : bitbots_msgs::action::Kick::Feedback::FOOT_RIGHT;
       goal_handle->publish_feedback(feedback);
 
+      // Send the joint goals to the robot
+      joint_goal_publisher_->publish(getJointCommand(motor_goals.value()));
+
+      // Break if the kick is finished
       if (feedback->percent_done >= 100) {
         break;
       }
-      joint_goal_publisher_->publish(getJointCommand(motor_goals.value()));
+
+      // Store the time of this execution
+      last_time = step_time;
+
     } else {
-      usleep(1);
+      // Sleep one millisecond to avoid busy waiting
+      std::this_thread::sleep_for(std::chrono::milliseconds(1));
     }
   }
 }

From 6d2bb6461c2a72dc07cc6af94060fb074459920f Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 19:01:37 +0200
Subject: [PATCH 45/74] Fix crashing kick after duplicate call

---
 .../include/bitbots_dynamic_kick/kick_node.h              | 1 +
 bitbots_dynamic_kick/src/kick_node.cpp                    | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h b/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h
index 580759cdd..99243e596 100644
--- a/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h
+++ b/bitbots_dynamic_kick/include/bitbots_dynamic_kick/kick_node.h
@@ -101,6 +101,7 @@ class KickNode : public rclcpp::Node{
   moveit::core::RobotStatePtr goal_state_;
   moveit::core::RobotStatePtr current_state_;
   OnSetParametersCallbackHandle::SharedPtr callback_handle_;
+  bool currently_kicking_ = false;
 
   std::string base_link_frame_, base_footprint_frame_, l_sole_frame_, r_sole_frame_;
 
diff --git a/bitbots_dynamic_kick/src/kick_node.cpp b/bitbots_dynamic_kick/src/kick_node.cpp
index 981a6e590..7694f7cca 100644
--- a/bitbots_dynamic_kick/src/kick_node.cpp
+++ b/bitbots_dynamic_kick/src/kick_node.cpp
@@ -260,6 +260,8 @@ rclcpp_action::CancelResponse KickNode::cancelCb(std::shared_ptr<rclcpp_action::
 }
 
 void KickNode::acceptedCb(const std::shared_ptr<KickGoalHandle> goal) {
+  // Set flag so no other goal can be accepted
+  currently_kicking_ = true;
   // this needs to return quickly to avoid blocking the executor, so spin up a new thread
   std::thread{std::bind(&KickNode::executeCb, this, std::placeholders::_1), goal}.detach();
 }
@@ -269,6 +271,10 @@ rclcpp_action::GoalResponse KickNode::goalCb(
     std::shared_ptr<const bitbots_msgs::action::Kick::Goal> goal) {
   RCLCPP_INFO(this->get_logger(), "Received goal request");
   (void) uuid;
+  if (currently_kicking_) {
+    RCLCPP_INFO(this->get_logger(), "Already kicking, rejecting new goal");
+    return rclcpp_action::GoalResponse::REJECT;
+  }
   return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
 }
 
@@ -312,6 +318,8 @@ void KickNode::executeCb(const std::shared_ptr<KickGoalHandle> goal_handle) {
     result->result = bitbots_msgs::action::Kick::Result::SUCCESS;
     goal_handle->succeed(result);
   }
+  // Reset flag so new goals can be accepted
+  currently_kicking_ = false;
 }
 
 void KickNode::loopEngine(const std::shared_ptr<rclcpp_action::ServerGoalHandle<bitbots_msgs::action::Kick>> goal_handle) {

From b9396a324a978035e1534d2c80cfd600368e26f2 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 19:02:46 +0200
Subject: [PATCH 46/74] Use wait for tf instead of waiting for joint states

---
 bitbots_odometry/CMakeLists.txt               |  41 ++--
 .../bitbots_odometry/motion_odometry.h        |  19 +-
 .../include/bitbots_odometry/odometry_fuser.h |  36 +--
 bitbots_odometry/package.xml                  |  13 +-
 bitbots_odometry/src/motion_odometry.cpp      | 219 +++++++++---------
 bitbots_odometry/src/odometry_fuser.cpp       |  59 +----
 6 files changed, 172 insertions(+), 215 deletions(-)

diff --git a/bitbots_odometry/CMakeLists.txt b/bitbots_odometry/CMakeLists.txt
index b7cc162b1..52e3a64f6 100644
--- a/bitbots_odometry/CMakeLists.txt
+++ b/bitbots_odometry/CMakeLists.txt
@@ -6,10 +6,11 @@ if (NOT CMAKE_CXX_STANDARD)
     set(CMAKE_CXX_STANDARD 17)
 endif ()
 
-find_package(Eigen3 REQUIRED)
 find_package(ament_cmake REQUIRED)
 find_package(biped_interfaces REQUIRED)
 find_package(bitbots_docs REQUIRED)
+find_package(bitbots_utils REQUIRED)
+find_package(Eigen3 REQUIRED)
 find_package(generate_parameter_library REQUIRED)
 find_package(geometry_msgs REQUIRED)
 find_package(message_filters REQUIRED)
@@ -43,38 +44,40 @@ target_link_libraries(
 ## Specify libraries to link a library or executable target against
 ament_target_dependencies(
   motion_odometry
-  tf2_eigen
-  tf2
-  nav_msgs
-  message_filters
-  tf2_geometry_msgs
+  ament_cmake
   biped_interfaces
-  geometry_msgs
   bitbots_docs
+  bitbots_utils
+  generate_parameter_library
+  geometry_msgs
+  message_filters
+  nav_msgs
+  rclcpp
   rot_conv
   sensor_msgs
+  tf2
+  tf2_eigen
+  tf2_geometry_msgs
   tf2_ros
-  ament_cmake
-  generate_parameter_library
-  rclcpp
 )
 
 ament_target_dependencies(
   odometry_fuser
-  tf2_eigen
-  tf2
-  nav_msgs
-  message_filters
-  tf2_geometry_msgs
+  ament_cmake
   biped_interfaces
-  geometry_msgs
   bitbots_docs
+  bitbots_utils
+  Eigen3
+  geometry_msgs
+  message_filters
+  nav_msgs
+  rclcpp
   rot_conv
   sensor_msgs
+  tf2
+  tf2_eigen
+  tf2_geometry_msgs
   tf2_ros
-  ament_cmake
-  rclcpp
-  Eigen3
 )
 
 enable_bitbots_docs()
diff --git a/bitbots_odometry/include/bitbots_odometry/motion_odometry.h b/bitbots_odometry/include/bitbots_odometry/motion_odometry.h
index 2456dfd30..9de619119 100644
--- a/bitbots_odometry/include/bitbots_odometry/motion_odometry.h
+++ b/bitbots_odometry/include/bitbots_odometry/motion_odometry.h
@@ -1,16 +1,18 @@
 #include <rclcpp/rclcpp.hpp>
+#include "odometry_parameters.hpp"
+
+#include <biped_interfaces/msg/phase.hpp>
+#include <bitbots_utils/utils.hpp>
+#include <nav_msgs/msg/odometry.hpp>
+#include <rclcpp/experimental/executors/events_executor/events_executor.hpp>
 #include <sensor_msgs/msg/joint_state.hpp>
 #include <std_msgs/msg/char.hpp>
-#include <tf2_ros/transform_broadcaster.h>
 #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
+#include <tf2_ros/buffer.h>
+#include <tf2_ros/transform_broadcaster.h>
 #include <tf2_ros/transform_listener.h>
 #include <tf2/utils.h>
-#include <nav_msgs/msg/odometry.hpp>
-#include <biped_interfaces/msg/phase.hpp>
 #include <unistd.h>
-#include <tf2_ros/buffer.h>
-#include <rclcpp/experimental/executors/events_executor/events_executor.hpp>
-#include "odometry_parameters.hpp"
 
 using std::placeholders::_1;
 
@@ -25,15 +27,12 @@ class MotionOdometry : public rclcpp::Node {
   char current_support_state_;
   char previous_support_state_;
   rclcpp::Time current_support_state_time_{rclcpp::Time(0, 0, RCL_ROS_TIME)};
-  sensor_msgs::msg::JointState current_joint_states_;
   nav_msgs::msg::Odometry current_odom_msg_;
   tf2::Transform odometry_to_support_foot_;
-  std::unique_ptr<tf2_ros::Buffer> tf_buffer_;
   std::string base_link_frame_, r_sole_frame_, l_sole_frame_, odom_frame_;
   rclcpp::Publisher<nav_msgs::msg::Odometry>::SharedPtr pub_odometry_;
   rclcpp::Subscription<biped_interfaces::msg::Phase>::SharedPtr walk_support_state_sub_;
   rclcpp::Subscription<biped_interfaces::msg::Phase>::SharedPtr kick_support_state_sub_;
-  rclcpp::Subscription<sensor_msgs::msg::JointState>::SharedPtr joint_state_sub_;
   rclcpp::Subscription<nav_msgs::msg::Odometry>::SharedPtr odom_subscriber_;
 
   // Declare parameter listener and struct from the generate_parameter_library
@@ -42,9 +41,9 @@ class MotionOdometry : public rclcpp::Node {
   motion_odometry::Params config_;
 
   void supportCallback(const biped_interfaces::msg::Phase::SharedPtr msg);
-  void jointStateCb(const sensor_msgs::msg::JointState::SharedPtr msg);
   void odomCallback(const nav_msgs::msg::Odometry::SharedPtr msg);
 
+  std::shared_ptr<tf2_ros::Buffer> tf_buffer_;
   std::unique_ptr<tf2_ros::TransformBroadcaster> br_;
   std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
   rclcpp::Time foot_change_time_;
diff --git a/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h b/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h
index 0d1aa8f41..1c9a7a9b4 100644
--- a/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h
+++ b/bitbots_odometry/include/bitbots_odometry/odometry_fuser.h
@@ -1,30 +1,33 @@
 #include <rclcpp/rclcpp.hpp>
 
-#include <sensor_msgs/msg/imu.hpp>
-#include <tf2_ros/transform_broadcaster.h>
-#include <tf2_eigen/tf2_eigen.hpp>
+#include <biped_interfaces/msg/phase.hpp>
+#include <bitbots_utils/utils.hpp>
+#include <builtin_interfaces/msg/time.hpp>
+#include <Eigen/Geometry>
 #include <geometry_msgs/msg/transform_stamped.hpp>
+#include <message_filters/cache.h>
+#include <message_filters/subscriber.h>
+#include <message_filters/sync_policies/approximate_time.h>
+#include <message_filters/synchronizer.h>
 #include <nav_msgs/msg/odometry.hpp>
+#include <rclcpp/experimental/executors/events_executor/events_executor.hpp>
+#include <rot_conv/rot_conv.h>
+#include <sensor_msgs/msg/imu.hpp>
 #include <std_msgs/msg/char.hpp>
-#include <builtin_interfaces/msg/time.hpp>
-#include <tf2/utils.h>
+#include <tf2_eigen/tf2_eigen.hpp>
 #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
+#include <tf2_ros/buffer.h>
+#include <tf2_ros/transform_broadcaster.h>
 #include <tf2_ros/transform_listener.h>
-#include <tf2/LinearMath/Vector3.h>
-#include <tf2/LinearMath/Scalar.h>
 #include <tf2/LinearMath/Quaternion.h>
+#include <tf2/LinearMath/Scalar.h>
 #include <tf2/LinearMath/Transform.h>
-#include <Eigen/Geometry>
-#include <rot_conv/rot_conv.h>
-#include <message_filters/cache.h>
-#include <message_filters/subscriber.h>
-#include <message_filters/synchronizer.h>
-#include <message_filters/sync_policies/approximate_time.h>
-#include <biped_interfaces/msg/phase.hpp>
+#include <tf2/LinearMath/Vector3.h>
+#include <tf2/utils.h>
 #include <unistd.h>
-#include <rclcpp/experimental/executors/events_executor/events_executor.hpp>
 
 using std::placeholders::_1;
+using bitbots_utils::wait_for_tf;
 
 typedef message_filters::sync_policies::ApproximateTime<sensor_msgs::msg::Imu, nav_msgs::msg::Odometry> SyncPolicy;
 
@@ -32,11 +35,10 @@ class OdometryFuser : public rclcpp::Node {
  public:
   OdometryFuser();
   void loop();
-  bool wait_for_tf();
  private:
   sensor_msgs::msg::Imu imu_data_;
   nav_msgs::msg::Odometry odom_data_;
-  std::unique_ptr<tf2_ros::Buffer> tf_buffer_;
+  std::shared_ptr<tf2_ros::Buffer> tf_buffer_;
   std::shared_ptr<tf2_ros::TransformListener> tf_listener_;
   rclcpp::Time fused_time_;
   std::string base_link_frame_, r_sole_frame_, l_sole_frame_, odom_frame_, rotation_frame_, imu_frame_;
diff --git a/bitbots_odometry/package.xml b/bitbots_odometry/package.xml
index 3a93cbe77..c3db876be 100644
--- a/bitbots_odometry/package.xml
+++ b/bitbots_odometry/package.xml
@@ -14,16 +14,17 @@
   <author email="jasper@bit-bots.de">Jasper Güldenstein</author>
 
   <buildtool_depend>ament_cmake</buildtool_depend>
-  <depend>nav_msgs</depend>
+  <depend>biped_interfaces</depend>
+  <depend>bitbots_docs</depend>
+  <depend>bitbots_utils</depend>
+  <depend>generate_parameter_library</depend>
   <depend>message_filters</depend>
+  <depend>nav_msgs</depend>
+  <depend>rot_conv</depend>
   <depend>sensor_msgs</depend>
+  <depend>tf2_eigen</depend>
   <depend>tf2_geometry_msgs</depend>
   <depend>tf2</depend>
-  <depend>tf2_eigen</depend>
-  <depend>rot_conv</depend>
-  <depend>bitbots_docs</depend>
-  <depend>biped_interfaces</depend>
-  <depend>generate_parameter_library</depend>
 
   <export>
     <bitbots_documentation>
diff --git a/bitbots_odometry/src/motion_odometry.cpp b/bitbots_odometry/src/motion_odometry.cpp
index 9c469bab3..26231793c 100644
--- a/bitbots_odometry/src/motion_odometry.cpp
+++ b/bitbots_odometry/src/motion_odometry.cpp
@@ -5,7 +5,7 @@ namespace bitbots_odometry {
 MotionOdometry::MotionOdometry() : Node("MotionOdometry"),
     param_listener_(get_node_parameters_interface()) {
 
-  tf_buffer_ = std::make_unique<tf2_ros::Buffer>(this->get_clock());
+  tf_buffer_ = std::make_shared<tf2_ros::Buffer>(this->get_clock());
   tf_listener_ = std::make_shared<tf2_ros::TransformListener>(*tf_buffer_, this);
   br_ = std::make_unique<tf2_ros::TransformBroadcaster>(this);
   config_ = param_listener_.get_params();
@@ -19,9 +19,10 @@ MotionOdometry::MotionOdometry() : Node("MotionOdometry"),
   this->declare_parameter<std::string>("odom_frame", "odom");
   this->get_parameter("odom_frame", odom_frame_);
 
-  joint_update_time_ = rclcpp::Time(0, 0, RCL_ROS_TIME);
+  joint_update_time_ = rclcpp::Time(0);
   current_support_state_ = -1;
   previous_support_state_ = -1;
+
   walk_support_state_sub_ =
       this->create_subscription<biped_interfaces::msg::Phase>("walk_support_state",
                                                               1,
@@ -32,10 +33,6 @@ MotionOdometry::MotionOdometry() : Node("MotionOdometry"),
                                                               1,
                                                               std::bind(&MotionOdometry::supportCallback,
                                                                         this, _1));
-  joint_state_sub_ =
-      this->create_subscription<sensor_msgs::msg::JointState>("joint_states",
-                                                              1,
-                                                              std::bind(&MotionOdometry::jointStateCb, this, _1));
   odom_subscriber_ =
       this->create_subscription<nav_msgs::msg::Odometry>("walk_engine_odometry",
                                                          1,
@@ -52,125 +49,125 @@ MotionOdometry::MotionOdometry() : Node("MotionOdometry"),
 }
 
 void MotionOdometry::loop() {
-  rclcpp::Time cycle_start_time = this->now();
-  config_ = param_listener_.get_params();
-
-  //check if joint states were received, otherwise we can't provide odometry
-  rclcpp::Duration joints_delta_t = this->now() - joint_update_time_;
-  if (joints_delta_t.seconds() > 0.1) {
-    // only warn if we did not just start as this results in unecessary warnings
-    if ((this->now() - start_time_).seconds() > 10) {
-      RCLCPP_WARN_THROTTLE(this->get_logger(), *this->get_clock(), 30000,
-                           "No joint states received. Will not provide odometry.");
-    }
-  } else {
-    // check if step finished, meaning left->right or right->left support. double support is skipped
-    // the support foot change is published when the joint goals for the last movements are published.
-    // it takes some time till the joints actually reach this position, this can create some offset
-    // but since we skip the double support phase, we basically take the timepoint when the double support phase is
-    // finished. This means both feet did not move and this should create no offset.
-    if ((current_support_state_ == biped_interfaces::msg::Phase::LEFT_STANCE
-         && previous_support_state_ == biped_interfaces::msg::Phase::RIGHT_STANCE) ||
-        (current_support_state_ == biped_interfaces::msg::Phase::RIGHT_STANCE
-         && previous_support_state_ == biped_interfaces::msg::Phase::LEFT_STANCE)) {
-      foot_change_time_ = current_support_state_time_;
-      if (previous_support_state_ == biped_interfaces::msg::Phase::LEFT_STANCE) {
-        previous_support_link_ = l_sole_frame_;
-        current_support_link_ = r_sole_frame_;
-      } else {
-        previous_support_link_ = r_sole_frame_;
-        current_support_link_ = l_sole_frame_;
-      }
+  // Wait for tf to be available
+  bitbots_utils::wait_for_tf(
+    this->get_logger(),
+    this->get_clock(),
+    tf_buffer_, 
+    {base_link_frame_, r_sole_frame_, l_sole_frame_},
+    base_link_frame_);
 
-      try {
-        // add the transform between previous and current support link to the odometry transform.
-        // we wait a bit for the transform as the joint messages are maybe a bit behind
-        geometry_msgs::msg::TransformStamped previous_to_current_support_msg =
-            tf_buffer_->lookupTransform(previous_support_link_,
-                                        current_support_link_,
-                                        foot_change_time_,
-                                        rclcpp::Duration::from_nanoseconds(0.1 * 1e9));
-        tf2::Transform previous_to_current_support = tf2::Transform();
-        tf2::fromMsg(previous_to_current_support_msg.transform, previous_to_current_support);
-        // setting translation in z axis, pitch and roll to zero to stop the robot from lifting up
-        // scale odometry based on parameters
-        double x = previous_to_current_support.getOrigin().x();
-        if (x > 0) {
-          x = x * config_.x_forward_scaling;
-        } else {
-          x = x * config_.x_backward_scaling;
-        }
-        double y = previous_to_current_support.getOrigin().y() * config_.y_scaling;
-        double yaw = tf2::getYaw(previous_to_current_support.getRotation()) * config_.yaw_scaling;
-        previous_to_current_support.setOrigin({x, y, 0});
-        tf2::Quaternion q;
-        q.setRPY(0, 0, yaw);
-        previous_to_current_support.setRotation(q);
-        odometry_to_support_foot_ = odometry_to_support_foot_ * previous_to_current_support;
-      } catch (tf2::TransformException &ex) {
-        RCLCPP_WARN(this->get_logger(), "%s", ex.what());
-        rclcpp::sleep_for(std::chrono::milliseconds(1000));
-        return;
-      }
 
-      // update current support link for transform from foot to base link
-      previous_support_link_ = current_support_link_;
+  rclcpp::Time cycle_start_time = this->now();
+  config_ = param_listener_.get_params();
 
-      // remember the support state change but skip the double support phase
-      if (current_support_state_ != biped_interfaces::msg::Phase::DOUBLE_STANCE) {
-        previous_support_state_ = current_support_state_;
-      }
+  // check if step finished, meaning left->right or right->left support. double support is skipped
+  // the support foot change is published when the joint goals for the last movements are published.
+  // it takes some time till the joints actually reach this position, this can create some offset
+  // but since we skip the double support phase, we basically take the timepoint when the double support phase is
+  // finished. This means both feet did not move and this should create no offset.
+  if ((current_support_state_ == biped_interfaces::msg::Phase::LEFT_STANCE
+        && previous_support_state_ == biped_interfaces::msg::Phase::RIGHT_STANCE) ||
+      (current_support_state_ == biped_interfaces::msg::Phase::RIGHT_STANCE
+        && previous_support_state_ == biped_interfaces::msg::Phase::LEFT_STANCE)) {
+    foot_change_time_ = current_support_state_time_;
+    if (previous_support_state_ == biped_interfaces::msg::Phase::LEFT_STANCE) {
+      previous_support_link_ = l_sole_frame_;
+      current_support_link_ = r_sole_frame_;
+    } else {
+      previous_support_link_ = r_sole_frame_;
+      current_support_link_ = l_sole_frame_;
     }
 
-    //publish odometry and if wanted transform to base_link
     try {
-      geometry_msgs::msg::TransformStamped
-          current_support_to_base_msg =
-          tf_buffer_->lookupTransform(previous_support_link_, base_link_frame_, rclcpp::Time(0, 0, RCL_ROS_TIME));
-      tf2::Transform current_support_to_base;
-      tf2::fromMsg(current_support_to_base_msg.transform, current_support_to_base);
-      double x = current_support_to_base.getOrigin().x();
-      if (current_odom_msg_.twist.twist.linear.x > 0) {
+      // add the transform between previous and current support link to the odometry transform.
+      // we wait a bit for the transform as the joint messages are maybe a bit behind
+      geometry_msgs::msg::TransformStamped previous_to_current_support_msg =
+          tf_buffer_->lookupTransform(previous_support_link_,
+                                      current_support_link_,
+                                      foot_change_time_,
+                                      rclcpp::Duration::from_nanoseconds(0.1 * 1e9));
+      tf2::Transform previous_to_current_support = tf2::Transform();
+      tf2::fromMsg(previous_to_current_support_msg.transform, previous_to_current_support);
+      // setting translation in z axis, pitch and roll to zero to stop the robot from lifting up
+      // scale odometry based on parameters
+      double x = previous_to_current_support.getOrigin().x();
+      if (x > 0) {
         x = x * config_.x_forward_scaling;
       } else {
         x = x * config_.x_backward_scaling;
       }
-      double y = current_support_to_base.getOrigin().y() * config_.y_scaling;
-      double yaw = tf2::getYaw(current_support_to_base.getRotation()) * config_.yaw_scaling;
-      current_support_to_base.setOrigin({x, y, current_support_to_base.getOrigin().z()});
+      double y = previous_to_current_support.getOrigin().y() * config_.y_scaling;
+      double yaw = tf2::getYaw(previous_to_current_support.getRotation()) * config_.yaw_scaling;
+      previous_to_current_support.setOrigin({x, y, 0});
       tf2::Quaternion q;
       q.setRPY(0, 0, yaw);
-      current_support_to_base.setRotation(q);
-
-      tf2::Transform odom_to_base_link = odometry_to_support_foot_ * current_support_to_base;
-      geometry_msgs::msg::TransformStamped odom_to_base_link_msg = geometry_msgs::msg::TransformStamped();
-      odom_to_base_link_msg.transform = tf2::toMsg(odom_to_base_link);
-      odom_to_base_link_msg.header.stamp = current_support_to_base_msg.header.stamp;
-      odom_to_base_link_msg.header.frame_id = odom_frame_;
-      odom_to_base_link_msg.child_frame_id = base_link_frame_;
-      if (config_.publish_walk_odom_tf) {
-        RCLCPP_WARN_ONCE(this->get_logger(), "Sending Tf from walk odometry directly");
-        br_->sendTransform(odom_to_base_link_msg);
-      }
-
-      // odometry as message
-      nav_msgs::msg::Odometry odom_msg;
-      odom_msg.header.stamp = current_support_to_base_msg.header.stamp;
-      odom_msg.header.frame_id = odom_frame_;
-      odom_msg.child_frame_id = base_link_frame_;
-      odom_msg.pose.pose.position.x = odom_to_base_link_msg.transform.translation.x;
-      odom_msg.pose.pose.position.y = odom_to_base_link_msg.transform.translation.y;
-      odom_msg.pose.pose.position.z = odom_to_base_link_msg.transform.translation.z;
-      odom_msg.pose.pose.orientation = odom_to_base_link_msg.transform.rotation;
-      odom_msg.twist = current_odom_msg_.twist;
-      pub_odometry_->publish(odom_msg);
-
+      previous_to_current_support.setRotation(q);
+      odometry_to_support_foot_ = odometry_to_support_foot_ * previous_to_current_support;
     } catch (tf2::TransformException &ex) {
       RCLCPP_WARN(this->get_logger(), "%s", ex.what());
       rclcpp::sleep_for(std::chrono::milliseconds(1000));
       return;
     }
+
+    // update current support link for transform from foot to base link
+    previous_support_link_ = current_support_link_;
+
+    // remember the support state change but skip the double support phase
+    if (current_support_state_ != biped_interfaces::msg::Phase::DOUBLE_STANCE) {
+      previous_support_state_ = current_support_state_;
+    }
   }
+
+  //publish odometry and if wanted transform to base_link
+  try {
+    geometry_msgs::msg::TransformStamped
+        current_support_to_base_msg =
+        tf_buffer_->lookupTransform(previous_support_link_, base_link_frame_, rclcpp::Time(0, 0, RCL_ROS_TIME));
+    tf2::Transform current_support_to_base;
+    tf2::fromMsg(current_support_to_base_msg.transform, current_support_to_base);
+    double x = current_support_to_base.getOrigin().x();
+    if (current_odom_msg_.twist.twist.linear.x > 0) {
+      x = x * config_.x_forward_scaling;
+    } else {
+      x = x * config_.x_backward_scaling;
+    }
+    double y = current_support_to_base.getOrigin().y() * config_.y_scaling;
+    double yaw = tf2::getYaw(current_support_to_base.getRotation()) * config_.yaw_scaling;
+    current_support_to_base.setOrigin({x, y, current_support_to_base.getOrigin().z()});
+    tf2::Quaternion q;
+    q.setRPY(0, 0, yaw);
+    current_support_to_base.setRotation(q);
+
+    tf2::Transform odom_to_base_link = odometry_to_support_foot_ * current_support_to_base;
+    geometry_msgs::msg::TransformStamped odom_to_base_link_msg = geometry_msgs::msg::TransformStamped();
+    odom_to_base_link_msg.transform = tf2::toMsg(odom_to_base_link);
+    odom_to_base_link_msg.header.stamp = current_support_to_base_msg.header.stamp;
+    odom_to_base_link_msg.header.frame_id = odom_frame_;
+    odom_to_base_link_msg.child_frame_id = base_link_frame_;
+    if (config_.publish_walk_odom_tf) {
+      RCLCPP_WARN_ONCE(this->get_logger(), "Sending Tf from walk odometry directly");
+      br_->sendTransform(odom_to_base_link_msg);
+    }
+
+    // odometry as message
+    nav_msgs::msg::Odometry odom_msg;
+    odom_msg.header.stamp = current_support_to_base_msg.header.stamp;
+    odom_msg.header.frame_id = odom_frame_;
+    odom_msg.child_frame_id = base_link_frame_;
+    odom_msg.pose.pose.position.x = odom_to_base_link_msg.transform.translation.x;
+    odom_msg.pose.pose.position.y = odom_to_base_link_msg.transform.translation.y;
+    odom_msg.pose.pose.position.z = odom_to_base_link_msg.transform.translation.z;
+    odom_msg.pose.pose.orientation = odom_to_base_link_msg.transform.rotation;
+    odom_msg.twist = current_odom_msg_.twist;
+    pub_odometry_->publish(odom_msg);
+
+  } catch (tf2::TransformException &ex) {
+    RCLCPP_WARN(this->get_logger(), "%s", ex.what());
+    rclcpp::sleep_for(std::chrono::milliseconds(1000));
+    return;
+  }
+  
 }
 
 void MotionOdometry::supportCallback(const biped_interfaces::msg::Phase::SharedPtr msg) {
@@ -205,11 +202,6 @@ void MotionOdometry::supportCallback(const biped_interfaces::msg::Phase::SharedP
   }
 }
 
-void MotionOdometry::jointStateCb(const sensor_msgs::msg::JointState::SharedPtr msg) {
-  current_joint_states_ = *msg;
-  joint_update_time_ = msg->header.stamp;
-}
-
 void MotionOdometry::odomCallback(const nav_msgs::msg::Odometry::SharedPtr msg) {
   current_odom_msg_ = *msg;
 }
@@ -221,10 +213,11 @@ int main(int argc, char **argv) {
   auto node = std::make_shared<bitbots_odometry::MotionOdometry>();
 
   rclcpp::Duration timer_duration = rclcpp::Duration::from_seconds(1.0 / 200.0);
-  rclcpp::TimerBase::SharedPtr timer = rclcpp::create_timer(node, node->get_clock(), timer_duration, [node]() -> void {node->loop();});
   rclcpp::experimental::executors::EventsExecutor exec;
   exec.add_node(node);
 
+  rclcpp::TimerBase::SharedPtr timer = rclcpp::create_timer(node, node->get_clock(), timer_duration, [node]() -> void {node->loop();});
+
   exec.spin();
   rclcpp::shutdown();
 }
diff --git a/bitbots_odometry/src/odometry_fuser.cpp b/bitbots_odometry/src/odometry_fuser.cpp
index 779b3d9c9..23a8180ce 100644
--- a/bitbots_odometry/src/odometry_fuser.cpp
+++ b/bitbots_odometry/src/odometry_fuser.cpp
@@ -10,7 +10,7 @@ imu (rX, rY)
 // TODO Doku
 
 OdometryFuser::OdometryFuser() : Node("OdometryFuser"),
-                                 tf_buffer_(std::make_unique<tf2_ros::Buffer>(this->get_clock())),
+                                 tf_buffer_(std::make_shared<tf2_ros::Buffer>(this->get_clock())),
                                  tf_listener_(std::make_shared<tf2_ros::TransformListener>(*tf_buffer_, this)),
                                  support_state_cache_(100),
                                  imu_sub_(this, "imu/data"),
@@ -43,50 +43,14 @@ OdometryFuser::OdometryFuser() : Node("OdometryFuser"),
   fused_time_ = rclcpp::Time(0, 0, RCL_ROS_TIME);
 }
 
-
-/**
- * @brief Waits for the transforms to be available
- * @return true if the transforms are not available yet and we need to wait
- */
-bool OdometryFuser::wait_for_tf() {
-  try {
-    // Frames to check
-    std::vector<std::string> frames = {base_link_frame_, l_sole_frame_, r_sole_frame_};
-
-    // Apply tf_buffer->_frameExists to all frames and check if all are available otherwise return false (functional)
-    if(!std::all_of(frames.begin(), frames.end(), [this](std::string frame) {return tf_buffer_->_frameExists(frame);})) {
-      // Wait for 1 second
-      rclcpp::sleep_for(std::chrono::seconds(1));
-      // Return true to indicate that we need to wait
-      return true;
-    }
-
-    // Check if we can transform from base_link to all other frames
-    if(!std::all_of(
-      frames.begin(), 
-      frames.end(), 
-      [this](std::string frame) {
-        return tf_buffer_->canTransform(
-          base_link_frame_,
-          frame, 
-          rclcpp::Time(0), 
-          rclcpp::Duration::from_nanoseconds(1e9));
-      })){
-      // Return that we need to wait
-      return true;
-    }
-    return false;
-  }
-  catch(const std::exception& e)
-  {
-    RCLCPP_ERROR(this->get_logger(), "Error while waiting for transforms: %s \n", e.what());
-  }
-  // Wait for 1 second
-  rclcpp::sleep_for(std::chrono::seconds(1));
-  return true;
-}
-
 void OdometryFuser::loop() {
+  bitbots_utils::wait_for_tf(
+    this->get_logger(),
+    this->get_clock(),
+    this->tf_buffer_, 
+    {base_link_frame_, r_sole_frame_, l_sole_frame_}, 
+    base_link_frame_);
+
   // get motion_odom transform
   tf2::Transform motion_odometry;
   tf2::fromMsg(odom_data_.pose.pose, motion_odometry);
@@ -283,12 +247,7 @@ int main(int argc, char **argv) {
   auto node = std::make_shared<OdometryFuser>();
   rclcpp::experimental::executors::EventsExecutor exec;
   exec.add_node(node);
-  for(int i = 0; node->wait_for_tf() && rclcpp::ok(); i++) {
-     exec.spin_some();
-     if (i > 0) {
-      RCLCPP_ERROR(node->get_logger(), "Waiting for transforms\n");
-     }
-  }
+
   rclcpp::Duration timer_duration = rclcpp::Duration::from_seconds(1.0 / 100.0);
   rclcpp::TimerBase::SharedPtr timer = rclcpp::create_timer(node, node->get_clock(), timer_duration, [node]() -> void {node->loop();});
 

From 7c60fb76852e786382968dd5b61d0844b8a4fb5e Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 19:42:44 +0200
Subject: [PATCH 47/74] Fix head mover

---
 bitbots_head_mover/src/move_head.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_head_mover/src/move_head.cpp b/bitbots_head_mover/src/move_head.cpp
index 7343baf14..374dd335e 100644
--- a/bitbots_head_mover/src/move_head.cpp
+++ b/bitbots_head_mover/src/move_head.cpp
@@ -384,7 +384,7 @@ class HeadMover {
     double delta_faster_joint,
     double delta_joint,
     double speed) {
-    double estimated_time = delta_fast_joint / speed;
+    double estimated_time = delta_faster_joint / speed;
     if (estimated_time != 0) {
       return delta_joint / estimated_time;
     } else {

From 6ca5d6a8bac48200f7877a94b06fee13f7fa68b6 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Mon, 23 Oct 2023 19:43:23 +0200
Subject: [PATCH 48/74] Fix possible uninit mem error

---
 bitbots_dynup/src/dynup_engine.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/bitbots_dynup/src/dynup_engine.cpp b/bitbots_dynup/src/dynup_engine.cpp
index f0e11d8a8..920de50fa 100644
--- a/bitbots_dynup/src/dynup_engine.cpp
+++ b/bitbots_dynup/src/dynup_engine.cpp
@@ -677,7 +677,6 @@ void DynupEngine::setGoals(const DynupRequest &goals) {
   // get parameters from walking. If walking is not running, use default values
   // we re-request the values every time because they can be changed by dynamic reconfigure
   // and re-requesting them is fast enough
-  double foot_distance, trunk_x_final, trunk_pitch, trunk_height;
   std::vector<rclcpp::Parameter> walking_params;
   // Gat params and wait for walking to be ready
   walking_params = walking_param_client_->get_parameters({"engine.trunk_pitch",
@@ -687,9 +686,11 @@ void DynupEngine::setGoals(const DynupRequest &goals) {
                                                           std::chrono::seconds(10));
 
   // when the walking was killed, service_is_ready is still true but the parameters come back empty
-  if (walking_params.empty()) {
+  if (walking_params.size() != 4) {
     RCLCPP_WARN(node_->get_logger(), "Walking is not running, using default parameters for walkready.");
   } else {
+    // Placeholders for the parameters, we assure that we have all parameters before, so we can use -1 as a placeholder
+    double foot_distance = -1, trunk_x_final = -1, trunk_pitch = -1, trunk_height = -1;
     for (auto &param: walking_params) {
       if (param.get_name() == "engine.trunk_pitch") {
         trunk_pitch = param.get_value<double>();
@@ -701,6 +702,7 @@ void DynupEngine::setGoals(const DynupRequest &goals) {
         trunk_x_final = param.get_value<double>();
       }
     }
+
     // walking uses a different coordinate system for the trunk
     trunk_height = trunk_height * std::cos(trunk_pitch);
     trunk_x_final = trunk_x_final - std::sin(trunk_pitch) * trunk_height;

From 34133c83087eb22d2a5e4447166bc53dc08ca40d Mon Sep 17 00:00:00 2001
From: Jan Gutsche <github@jaagut.de>
Date: Thu, 26 Oct 2023 21:23:51 +0200
Subject: [PATCH 49/74] hcm config: remove unused param and fix typos

---
 bitbots_hcm/config/hcm_wolfgang.yaml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/bitbots_hcm/config/hcm_wolfgang.yaml b/bitbots_hcm/config/hcm_wolfgang.yaml
index 6a63d8f6f..422a9f8f9 100644
--- a/bitbots_hcm/config/hcm_wolfgang.yaml
+++ b/bitbots_hcm/config/hcm_wolfgang.yaml
@@ -19,11 +19,10 @@
       falling_right: "falling_right"
       turning_back_left: "turning_back_left"
       turning_back_right: "turning_back_right"
-      anim_package: "wolfgang_animations"
 
     # Falling
     stand_up_active: true # Enables the robot to stand up automatically
-    falling_active: true # Enables the check for falling and coresponding counter meassurements
+    falling_active: true # Enables the check for falling and corresponding counter measurements
     # Threshold tighter --> earlier reaction but more false positives, e.g. while walking
     # Threshold softer --> too late reaction
     falling_thresh_gyro_pitch: 7.0 # > gyroY

From b5b1bf4e9e699358577130d1fd453ed377d8b3dc Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 27 Oct 2023 13:13:20 +0200
Subject: [PATCH 50/74] Update bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py
index a2defafbe..75859cba3 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/wait.py
@@ -12,7 +12,7 @@
 
 class Wait(AbstractHCMActionElement):
     """
-    This action does nothing. If a time is given, it will wait for that time.before it pops itself.
+    This action does nothing. If a time is given, it will wait for that time before it pops itself.
     """
 
     def __init__(self, blackboard, dsd, parameters=None):

From 4de97d3ec8a4b560b25d86a0151e63a082243c79 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 27 Oct 2023 13:16:47 +0200
Subject: [PATCH 51/74] Update bitbots_hcm/docs/index.rst

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/docs/index.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/docs/index.rst b/bitbots_hcm/docs/index.rst
index 0b9117344..ccea79bcf 100644
--- a/bitbots_hcm/docs/index.rst
+++ b/bitbots_hcm/docs/index.rst
@@ -73,7 +73,7 @@ What to do when it does not work
 --------------------------------
 
 1. Is `ros_control` running? Do you recieve joint states (`/joint_states`) or IMU data (`/imu/data_raw`)?
-2. What is the state of the HCM (`rostopic echo /robot_state`)? The number has to be matched with the message
+2. What is the state of the HCM (`ros2 topic echo /robot_state`)? The number has to be matched with the message
    description (`ros2 interface show bitbots_msgs/msg/RobotControlState`).
 3. The visualization of the DSD is possible with the standard DSD visualization using the rqt plugin.
    There you can see exactly which decision is responsible for the current behavior and then you can look into the code.

From 3eff13df52b882423fca8f567f3f847f24d38a3a Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 27 Oct 2023 13:17:08 +0200
Subject: [PATCH 52/74] Update bitbots_hcm/package.xml

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/package.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/bitbots_hcm/package.xml b/bitbots_hcm/package.xml
index eb06dcddd..0a52aa034 100644
--- a/bitbots_hcm/package.xml
+++ b/bitbots_hcm/package.xml
@@ -25,7 +25,6 @@
   <depend>geometry_msgs</depend>
   <depend>pybind11-dev</depend>
   <depend>python3-numpy</depend>
-  <depend>python3-sklearn</depend>
   <depend>python3-transforms3d</depend>
   <depend>rclpy</depend>
   <depend>ros2_numpy</depend>

From 25665a698c9b90c9606ab9cea6d1dccf0818ce8b Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 27 Oct 2023 13:18:10 +0200
Subject: [PATCH 53/74] Update bitbots_head_mover/CMakeLists.txt

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_head_mover/CMakeLists.txt | 2 --
 1 file changed, 2 deletions(-)

diff --git a/bitbots_head_mover/CMakeLists.txt b/bitbots_head_mover/CMakeLists.txt
index c8916ef36..a6b08d30c 100644
--- a/bitbots_head_mover/CMakeLists.txt
+++ b/bitbots_head_mover/CMakeLists.txt
@@ -57,8 +57,6 @@ std_msgs
 tf2_geometry_msgs
 tf2_kdl
 tf2_ros
-
-
 )
 
 install(TARGETS

From 30569bedf4aba9026c537a44a57e431300045bc6 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Fri, 27 Oct 2023 16:51:01 +0200
Subject: [PATCH 54/74] Fix typo

---
 bitbots_dynup/src/dynup_engine.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_dynup/src/dynup_engine.cpp b/bitbots_dynup/src/dynup_engine.cpp
index 920de50fa..3f20406ca 100644
--- a/bitbots_dynup/src/dynup_engine.cpp
+++ b/bitbots_dynup/src/dynup_engine.cpp
@@ -678,7 +678,7 @@ void DynupEngine::setGoals(const DynupRequest &goals) {
   // we re-request the values every time because they can be changed by dynamic reconfigure
   // and re-requesting them is fast enough
   std::vector<rclcpp::Parameter> walking_params;
-  // Gat params and wait for walking to be ready
+  // Get params and wait for walking to be ready
   walking_params = walking_param_client_->get_parameters({"engine.trunk_pitch",
                                                           "engine.trunk_height",
                                                           "engine.foot_distance",

From d4ed38be9cfcfd0e2b2a0a8d59694cf2915e8585 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:06:58 +0100
Subject: [PATCH 55/74] Fix robot type parameter

---
 bitbots_dynup/launch/test.launch | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/bitbots_dynup/launch/test.launch b/bitbots_dynup/launch/test.launch
index d3ef04b31..3ac4513f9 100644
--- a/bitbots_dynup/launch/test.launch
+++ b/bitbots_dynup/launch/test.launch
@@ -3,17 +3,18 @@
   <let name="tf_prefix" value="$(eval '\'$(env ROS_NAMESPACE not_defined)\' if \'$(env ROS_NAMESPACE not_defined)\' != \'not_defined\' else \'\'')"/>
   <arg name="sim" default="false"/>
   <arg name="viz" default="false"/>
+  <arg name="robot_type" default="wolfgang"/>
 
   <let if="$(env IS_ROBOT false)" name="taskset" value="taskset -c 3,4"/>
   <let unless="$(env IS_ROBOT false)" name="taskset" value=""/>
 
   <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch" >
     <arg name="sim" value="$(var sim)"/>
-    <arg name="robot_type" value="$(var robot_type)"/>
   </include>
 
   <include file="$(find-pkg-share bitbots_robot_description)/launch/load_robot_description.launch" >
-      <arg name="sim" value="$(var sim)"/>
+    <arg name="sim" value="$(var sim)"/>
+    <arg name="robot_type" value="$(var robot_type)"/>
   </include>
 
   <group unless="$(var sim)">

From 1940fe6f72ab973baf2cdb867e882fd603047665 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:11:25 +0100
Subject: [PATCH 56/74] Use abc

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
index e1a92b95c..ca1971897 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
@@ -1,18 +1,22 @@
-from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
+from abc import abstractmethod, ABC
 
 from bitbots_msgs.msg import RobotControlState
 
+from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
+
 
-class AbstractRobotState(AbstractHCMActionElement):
+class AbstractRobotState(AbstractHCMActionElement, ABC):
     """
     Abstract class to create actions which just stay on top of the stack
     and set the robot state accordingly.
     """
+
+    @abstractmethod
     def get_state(self) -> RobotControlState:
         """
         Returns the state which should be set. This will be implemented by the subclasses.
         """
-        raise NotImplementedError
+        pass
 
     def perform(self, reevaluate=False):
         # Just to be sure, we do not reevaluate

From 6c66df32c049239e0042535a58ad735bb7e6ea08 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:12:20 +0100
Subject: [PATCH 57/74] Still raise error

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
index ca1971897..63f6eb5dd 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/state.py
@@ -16,7 +16,7 @@ def get_state(self) -> RobotControlState:
         """
         Returns the state which should be set. This will be implemented by the subclasses.
         """
-        pass
+        raise NotImplementedError()
 
     def perform(self, reevaluate=False):
         # Just to be sure, we do not reevaluate

From a7298a29b575ed15611c71c31017081e0e5475ba Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:14:01 +0100
Subject: [PATCH 58/74] Remove old ref to head_capsule

---
 bitbots_head_mover/CMakeLists.txt | 32 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/bitbots_head_mover/CMakeLists.txt b/bitbots_head_mover/CMakeLists.txt
index a6b08d30c..e4bf11c54 100644
--- a/bitbots_head_mover/CMakeLists.txt
+++ b/bitbots_head_mover/CMakeLists.txt
@@ -41,23 +41,21 @@ target_link_libraries(move_head
 
 ament_target_dependencies(
   move_head
-#head_capsule
-backward_ros
-bio_ik
-bio_ik_msgs
-bitbots_msgs
-generate_parameter_library
-moveit_core
-moveit_msgs
-moveit_ros_planning
-moveit_ros_planning_interface
-rclcpp
-sensor_msgs
-std_msgs
-tf2_geometry_msgs
-tf2_kdl
-tf2_ros
-)
+  backward_ros
+  bio_ik
+  bio_ik_msgs
+  bitbots_msgs
+  generate_parameter_library
+  moveit_core
+  moveit_msgs
+  moveit_ros_planning
+  moveit_ros_planning_interface
+  rclcpp
+  sensor_msgs
+  std_msgs
+  tf2_geometry_msgs
+  tf2_kdl
+  tf2_ros)
 
 install(TARGETS
   move_head

From 54ecb046d6f4caf75fcbbd1396402a6e80111bc2 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:18:44 +0100
Subject: [PATCH 59/74] Remove unused param

---
 bitbots_head_mover/launch/head_mover_standalone.launch | 2 --
 bitbots_head_mover/launch/test.launch                  | 9 +++------
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/bitbots_head_mover/launch/head_mover_standalone.launch b/bitbots_head_mover/launch/head_mover_standalone.launch
index 10e847597..dfa7fc650 100644
--- a/bitbots_head_mover/launch/head_mover_standalone.launch
+++ b/bitbots_head_mover/launch/head_mover_standalone.launch
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
 <launch>
-    <arg name="depends_only" default="false" />
     <arg name="sim" default="false" />
 
     <include file="$(find-pkg-share bitbots_utils)/launch/parameter_blackboard.launch">
@@ -12,7 +11,6 @@
     </include>
 
     <include file="$(find-pkg-share bitbots_head_mover)/launch/head_mover.launch">
-        <arg name="depends_only" value="$(var depends_only)"/>
         <param name="use_sim_time" value="$(var sim)" />
     </include>
 
diff --git a/bitbots_head_mover/launch/test.launch b/bitbots_head_mover/launch/test.launch
index f6b81bad9..debef203f 100644
--- a/bitbots_head_mover/launch/test.launch
+++ b/bitbots_head_mover/launch/test.launch
@@ -1,7 +1,6 @@
 <launch>
     <arg name="sim" default="false"/>
     <arg name="viz" default="false"/>
-    <arg name="depends_only" default="false" />
     <arg name="tf_prefix" default=""/>
 
     <group unless="$(var sim)">
@@ -53,9 +52,7 @@
         </include>
     </group>
 
-    <group unless="$(var depends_only)">
-        <include file="$(find-pkg-share bitbots_head_mover)/launch/head_mover.launch" >
-            <arg name="sim" value="$(var sim)"/>
-        </include>
-    </group>
+    <include file="$(find-pkg-share bitbots_head_mover)/launch/head_mover.launch" >
+        <arg name="sim" value="$(var sim)"/>
+    </include>
 </launch>

From 4455e2ce6136f3f6812597f300c4f835df548a35 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:20:39 +0100
Subject: [PATCH 60/74] Fix sim param

---
 bitbots_head_mover/launch/head_mover_standalone.launch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_head_mover/launch/head_mover_standalone.launch b/bitbots_head_mover/launch/head_mover_standalone.launch
index dfa7fc650..912732901 100644
--- a/bitbots_head_mover/launch/head_mover_standalone.launch
+++ b/bitbots_head_mover/launch/head_mover_standalone.launch
@@ -11,7 +11,7 @@
     </include>
 
     <include file="$(find-pkg-share bitbots_head_mover)/launch/head_mover.launch">
-        <param name="use_sim_time" value="$(var sim)" />
+        <arg name="sim" value="$(var sim)"/>
     </include>
 
 </launch>

From 3ad616d7b1b75fdb0528bb622140971dc075b966 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:22:22 +0100
Subject: [PATCH 61/74] Remove old interactive markers

---
 bitbots_head_mover/launch/test.launch | 2 --
 1 file changed, 2 deletions(-)

diff --git a/bitbots_head_mover/launch/test.launch b/bitbots_head_mover/launch/test.launch
index debef203f..fcdd3a8ea 100644
--- a/bitbots_head_mover/launch/test.launch
+++ b/bitbots_head_mover/launch/test.launch
@@ -37,8 +37,6 @@
         <node pkg="bitbots_utils" exec="motor_goals_viz_helper.py" args="--head"/>
         <!-- fake IMU needed for odometry-->
         <node pkg="bitbots_utils" exec="dummy_imu.py"/>
-        <!-- add some visualization tools -->
-        <include file="$(find-pkg-share humanoid_league_interactive_marker)/launch/interactive_marker.launch" />
         <!-- create fake tf from map to robot -->
         <node pkg="tf2_ros" exec="static_transform_publisher" name="static_map2odom_tf" args="--x -0.0 --y -0.0 --z 0.0 --qx 0.0 --qy 0.0 --qz 0.0 --qw 1.0 --frame-id map --child-frame-id odom" />
     </group>

From daf4d38086d1495ad0eb02038504dba2122884ab Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 15:33:00 +0100
Subject: [PATCH 62/74] Fix old transformer call

---
 bitbots_head_mover/launch/test.launch | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/bitbots_head_mover/launch/test.launch b/bitbots_head_mover/launch/test.launch
index fcdd3a8ea..ab05df59a 100644
--- a/bitbots_head_mover/launch/test.launch
+++ b/bitbots_head_mover/launch/test.launch
@@ -42,10 +42,13 @@
     </group>
 
     <group unless="$(var viz)">
-        <include file="$(find-pkg-share bitbots_vision)/launch/vision_startup.launch" >
-            <arg name="sim" value="$(var sim)"/>
+        <!-- launch vision -->
+        <include file="$(find-pkg-share bitbots_bringup)/launch/vision.launch">
+            <arg name="sim" value="$(var sim)" />
         </include>
-        <include file="$(find-pkg-share soccer_ipm)/launch/transformer.launch" >
+
+        <!-- launch inverse perspective mapping (ipm) -->
+        <include file="$(find-pkg-share bitbots_ipm)/launch/ipm.launch">
             <arg name="sim" value="$(var sim)"/>
         </include>
     </group>

From 6976f0804efbdd16ed30e99b62afb3b3984d7aa7 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Thu, 2 Nov 2023 19:46:39 +0100
Subject: [PATCH 63/74] Remove jenkinsfile

---
 Jenkinsfile | 9 ---------
 1 file changed, 9 deletions(-)
 delete mode 100644 Jenkinsfile

diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index e9431714e..000000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,9 +0,0 @@
-@Library('bitbots_jenkins_library') import de.bitbots.jenkins.*;
-
-defineProperties()
-
-def pipeline = new BitbotsPipeline(this, env, currentBuild, scm)
-pipeline.configurePipelineForPackage(new PackagePipelineSettings(new PackageDefinition("bitbots_moveit_bindings")))
-pipeline.configurePipelineForPackage(new PackagePipelineSettings(new PackageDefinition("bitbots_odometry")))
-pipeline.configurePipelineForPackage(new PackagePipelineSettings(new PackageDefinition("bitbots_splines")))
-pipeline.execute()

From 34cda8fbc4c14603d78f92ea2c72369062667a32 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Sun, 5 Nov 2023 14:29:49 +0100
Subject: [PATCH 64/74] Update
 bitbots_animation_server/bitbots_animation_server/animation_node.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 .../bitbots_animation_server/animation_node.py                  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_animation_server/bitbots_animation_server/animation_node.py b/bitbots_animation_server/bitbots_animation_server/animation_node.py
index ccd0f8a3f..69caa5d9f 100755
--- a/bitbots_animation_server/bitbots_animation_server/animation_node.py
+++ b/bitbots_animation_server/bitbots_animation_server/animation_node.py
@@ -83,7 +83,7 @@ def execute_cb(self, goal: ServerGoalHandle):
             num_tries = 0
             while rclpy.ok() and self.hcm_state != 0 and num_tries < 10:
                 num_tries += 1
-                self.get_logger().info("HCM not controllable. Waiting... (try " + str(num_tries) + ")")
+                self.get_logger().info(f"HCM not controllable. Waiting... (try {num_tries})")
                 self.get_clock().sleep_until(self.get_clock().now() + Duration(seconds=0.1))
 
             if self.hcm_state != 0:

From 35e3f1f21ccfb0faa1d027467fae91f290cefd20 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Sun, 5 Nov 2023 14:31:05 +0100
Subject: [PATCH 65/74] Update
 bitbots_animation_server/bitbots_animation_server/spline_animator.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 .../bitbots_animation_server/spline_animator.py                 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_animation_server/bitbots_animation_server/spline_animator.py b/bitbots_animation_server/bitbots_animation_server/spline_animator.py
index 63de5edb8..fada74daa 100644
--- a/bitbots_animation_server/bitbots_animation_server/spline_animator.py
+++ b/bitbots_animation_server/bitbots_animation_server/spline_animator.py
@@ -1,6 +1,6 @@
 import math
 
-from rclpy.impl.rcutils_logger import RcutilsLogger as Logger#
+from rclpy.impl.rcutils_logger import RcutilsLogger as Logger
 from rclpy.clock import Clock
 
 from sensor_msgs.msg import JointState

From 31fd89ac04811ca08234c3924c785a97f6993b82 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Sun, 5 Nov 2023 14:34:12 +0100
Subject: [PATCH 66/74] Update
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index ce5a3e2d9..b6022f5a1 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -112,7 +112,7 @@ def chose_animation(self):
 
 class PlayAnimationTurningBackLeft(AbstractPlayAnimation):
     def chose_animation(self):
-        self.blackboard.node.get_logger().info("TURNING LYING ON THE LEFT SIDE AND TURNING BACK TO GET UP")
+        self.blackboard.node.get_logger().info("LYING ON THE LEFT SIDE AND TURNING TO THE BACK TO GET UP")
         return self.blackboard.animation_name_turning_back_left
 
 class PlayAnimationTurningBackRight(AbstractPlayAnimation):

From 9591c10cdfeeda8b8d6176ac800df67f85aa2b09 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Sun, 5 Nov 2023 14:34:49 +0100
Subject: [PATCH 67/74] Update
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index b6022f5a1..fb7246999 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -117,7 +117,7 @@ def chose_animation(self):
 
 class PlayAnimationTurningBackRight(AbstractPlayAnimation):
     def chose_animation(self):
-        self.blackboard.node.get_logger().info("TURNING LYING ON THE RIGHT SIDE AND TURNING BACK TO GET UP")
+        self.blackboard.node.get_logger().info("LYING ON THE RIGHT SIDE AND TURNING TO THE BACK TO GET UP")
         return self.blackboard.animation_name_turning_back_right
 
 

From ace9136d67a73f325a3444748c222ffab100ff80 Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Sun, 5 Nov 2023 14:42:59 +0100
Subject: [PATCH 68/74] Update
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
index 80c4d3b96..c6e1e64f1 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
@@ -38,7 +38,7 @@ def __init__(self, blackboard, dsd, parameters=None):
 
 
     def perform(self, reevaluate=False):
-        """Checks if the robot is currently falling and in which direction. """
+        """Checks if the robot is currently falling and in which direction."""
         # Check if detection is active
         if not self.blackboard.falling_detection_active:
             return "NOT_FALLING"

From f34864c71e07e405c827a52dacb69a71215f63be Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Sun, 12 Nov 2023 17:25:38 +0100
Subject: [PATCH 69/74] Apply feedback

---
 .../hcm_dsd/actions/cancel_goals.py           |  1 -
 .../hcm_dsd/actions/play_animation.py         |  5 +-
 .../hcm_dsd/decisions/animation.py            |  2 +-
 .../hcm_dsd/decisions/check_hardware.py       | 95 +++++++++----------
 .../bitbots_hcm/hcm_dsd/decisions/falling.py  |  2 -
 .../bitbots_hcm/hcm_dsd/decisions/kicking.py  |  4 +-
 .../bitbots_hcm/hcm_dsd/decisions/pickup.py   |  2 -
 .../bitbots_hcm/hcm_dsd/decisions/startup.py  |  4 -
 .../bitbots_hcm/hcm_dsd/decisions/walking.py  |  2 -
 bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd       | 11 +--
 .../bitbots_hcm/hcm_dsd/hcm_blackboard.py     | 18 ++--
 .../bitbots_hcm/humanoid_control_module.py    |  9 +-
 bitbots_hcm/src/hcm.cpp                       |  1 -
 13 files changed, 69 insertions(+), 87 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
index f8eb177e5..d01ce52ad 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/cancel_goals.py
@@ -23,4 +23,3 @@ def perform(self):
 
         self.blackboard.cancel_path_planning()
         self.pop()
-
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
index ce5a3e2d9..d74950c55 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/actions/play_animation.py
@@ -1,3 +1,5 @@
+from abc import abstractmethod, ABC
+
 import rclpy
 from action_msgs.msg import GoalStatus
 from bitbots_hcm.hcm_dsd.actions import AbstractHCMActionElement
@@ -5,7 +7,7 @@
 from bitbots_msgs.action import Dynup, PlayAnimation
 
 
-class AbstractPlayAnimation(AbstractHCMActionElement):
+class AbstractPlayAnimation(AbstractHCMActionElement, ABC):
     """
     Abstract class to create actions for playing animations
     """
@@ -38,6 +40,7 @@ def perform(self, reevaluate=False):
             # we are finished playing this animation
             return self.pop()
 
+    @abstractmethod
     def chose_animation(self):
         # this is what has to be implemented returning the animation to play
         raise NotImplementedError
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
index 6915e0d09..05690041c 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/animation.py
@@ -1,7 +1,7 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
 
-class Record(AbstractHCMDecisionElement):
+class RecordAnimation(AbstractHCMDecisionElement):
     """
     Decides if the robot is currently recording animations
     """
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
index fcbf40687..3a6d934ce 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
@@ -1,5 +1,3 @@
-from rclpy.time import Time
-
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 from bitbots_msgs.msg import RobotControlState
 
@@ -13,50 +11,44 @@ class CheckMotors(AbstractHCMDecisionElement):
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
         self.had_problem = False
 
     def perform(self, reevaluate=False):
         self.clear_debug_data()
-        if self.blackboard.visualization_active:
-            # we will have no problems with hardware in visualization
-            return "OKAY"
 
-        # we check if the values are actually changing, since the joint_state controller will publish the same message
+        # we check if the joint state values are actually changing, since the joint_state controller will publish the same message
         # even if there is no connection anymore. But we don't want to go directly to hardware error if we just
         # have a small break, since this can happen often due to loose cabling
         if self.blackboard.previous_joint_state is not None and self.blackboard.current_joint_state is not None \
                 and (self.blackboard.previous_joint_state.effort != self.blackboard.current_joint_state.effort
                 or self.blackboard.previous_joint_state.position != self.blackboard.current_joint_state.position) \
                 and not self.blackboard.servo_diag_error:
-            self.last_different_msg_time = self.blackboard.node.get_clock().now()
+            self.blackboard.last_different_joint_state_time = self.blackboard.node.get_clock().now()
+
+        if self.blackboard.visualization_active:
+            # we will have no problems with hardware in visualization
+            return "OKAY"
 
         if self.blackboard.simulation_active:
-            # Some simulators will give exact same joint messages which look like errors, so ignore this case
-            if self.blackboard.last_motor_update_time != Time(seconds=int(0), nanoseconds=0 % 1 * 1e9):
-                return "OKAY"
-            else:
+            # Some simulators will give exact same joint messages could look like errors, 
+            # as the real world ros controller will always publish the same message if there is no connection
+            # so we will just the check if the message is changing in simulation
+            if self.blackboard.current_joint_state is None:
                 return "MOTORS_NOT_STARTED"
-        else:
-            if self.blackboard.servo_overload:
-                return "OVERLOAD"
-
-        # check if we want to turn the motors off after not using them for a longer time
-        if self.blackboard.last_motor_goal_time is not None \
-                and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9 \
-                > self.blackboard.motor_off_time:
-            self.blackboard.node.get_logger().warn("Didn't recieve goals for " + str(
-                self.blackboard.motor_off_time) + " seconds. Will shut down the motors and wait for commands.", throttle_duration_sec=5)
-            self.publish_debug_data("Time since last motor goals",
-                                    self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.last_motor_goal_time.nanoseconds / 1e9)
-            # we do an action sequence to turn off the motors and stay in motor off
-            return "TURN_OFF"
-
-        # see if we get no messages or always the exact same
-        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > self.blackboard.motor_timeout_duration:
+            else:
+                return "OKAY"
+        
+        if self.blackboard.servo_overload:
+            return "OVERLOAD"
+            
+        # Check if we get no messages or always the exact same
+        if self.blackboard.last_different_joint_state_time is None or  self.blackboard.node.get_clock().now().nanoseconds - \
+                self.blackboard.last_different_joint_state_time.nanoseconds > self.blackboard.motor_timeout_duration * 1e9:
+            # Check if the motors have power
             if self.blackboard.is_power_on:
+                # If we are currently in startup phase, we will wait a bit before we complain
                 if (self.blackboard.current_state == RobotControlState.STARTUP and
-                        self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.blackboard.start_time.nanoseconds / 1e9 < 10):
+                        self.blackboard.node.get_clock().now().nanoseconds - self.blackboard.start_time.nanoseconds < 10 * 1e9):
                     # we are still in startup phase, just wait and dont complain
                     return "MOTORS_NOT_STARTED"
                 else:
@@ -88,8 +80,6 @@ class CheckIMU(AbstractHCMDecisionElement):
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.last_msg = None
-        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
         self.had_problem = False
 
     def perform(self, reevaluate=False):
@@ -98,22 +88,22 @@ def perform(self, reevaluate=False):
             return "OKAY"
 
         # we will get always the same message if there is no connection, so check if it differs
-        if self.last_msg is not None and self.blackboard.imu_msg is not None \
-                and not self.last_msg.orientation == self.blackboard.imu_msg.orientation \
-                and not self.blackboard.imu_diag_error:
-            self.last_different_msg_time = self.blackboard.node.get_clock().now()
-        self.last_msg = self.blackboard.imu_msg
+        if self.blackboard.previous_imu_msg is not None and self.blackboard.imu_msg is not None \
+                and not self.blackboard.previous_imu_msg.orientation == self.blackboard.imu_msg.orientation \
+                and not self.blackboard.imu_diag_error: 
+            self.blackboard.last_different_imu_state_time = self.blackboard.node.get_clock().now()
 
         if self.blackboard.simulation_active:
             # Some simulators will give exact same IMU messages which look like errors, so ignore this case
-            if self.last_msg:
-                return "OKAY"
-            else:
+            if self.blackboard.imu_msg is None:
                 return "IMU_NOT_STARTED"
+            else:
+                return "OKAY"
 
-        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > self.blackboard.imu_timeout_duration:
-            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - \
-                    self.blackboard.start_time.nanoseconds / 1e9 < 10:
+        if self.blackboard.previous_imu_msg is None or (self.blackboard.node.get_clock().now().nanoseconds - \
+                self.blackboard.last_different_imu_state_time.nanoseconds > self.blackboard.imu_timeout_duration * 1e9):
+            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds - \
+                    self.blackboard.start_time.nanoseconds < 10 * 1e9:
                 # wait for the IMU to start
                 return "IMU_NOT_STARTED"
             else:
@@ -138,8 +128,6 @@ class CheckPressureSensor(AbstractHCMDecisionElement):
 
     def __init__(self, blackboard, dsd, parameters=None):
         super().__init__(blackboard, dsd, parameters)
-        self.last_pressure_values = None
-        self.last_different_msg_time = Time(seconds=int(0), nanoseconds=0 % 1 * 1e9)
         self.had_problem = False
 
     def perform(self, reevaluate=False):
@@ -150,12 +138,17 @@ def perform(self, reevaluate=False):
         if not self.blackboard.pressure_sensors_installed:
             # no pressure sensors installed, no check necessary
             return "OKAY"
-        if not self.blackboard.pressure_diag_error:
-            self.last_different_msg_time = self.blackboard.node.get_clock().now()
-
-        if self.blackboard.node.get_clock().now().nanoseconds / 1e9 - self.last_different_msg_time.nanoseconds / 1e9 > 0.1:
-            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds / 1e9 - \
-                    self.blackboard.start_time.nanoseconds / 1e9 < 10:
+        
+        # Check if we get no messages due to an error or always the exact same one (no connection)
+        if not self.blackboard.pressure_diag_error and not self.blackboard.previous_pressures == self.blackboard.pressures:        
+            self.blackboard.last_different_pressure_state_time = self.blackboard.node.get_clock().now()
+
+        # Check if we get no messages for a while
+        if  self.blackboard.last_different_pressure_state_time is None or self.blackboard.node.get_clock().now().nanoseconds -  \
+                self.blackboard.last_different_pressure_state_time.nanoseconds > 0.1 * 1e9:
+            # Check if we are in the startup phase (not too long tho)
+            if self.blackboard.current_state == RobotControlState.STARTUP and self.blackboard.node.get_clock().now().nanoseconds  - \
+                    self.blackboard.start_time.nanoseconds < 10 * 1e9:
                 # wait for the pressure sensors to start
                 return "PRESSURE_NOT_STARTED"
             else:
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
index 80c4d3b96..86aae663e 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/falling.py
@@ -6,8 +6,6 @@
 from bitbots_utils.transforms import quat2fused
 from rclpy.duration import Duration
 
-from bitbots_msgs.msg import RobotControlState
-
 
 class FallDirection(Enum):
     STABLE = 0
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
index f9e5e935a..b1000255a 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/kicking.py
@@ -1,7 +1,5 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from bitbots_msgs.msg import RobotControlState
-
 
 class RecentKickGoals(AbstractHCMDecisionElement):
     """
@@ -21,7 +19,7 @@ def perform(self, reevaluate=False):
 
         # If the time delta is smaller enough, we are still kicking
         if time_delta < 0.1:
-            # we are walking and can stay like this
+            # we are kicking and can stay like this
             return "KICKING"
         else:
             return "NOT_KICKING"
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
index 1ac374a4a..8d3d690a1 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/pickup.py
@@ -1,8 +1,6 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 from humanoid_league_speaker.speaker import speak
 
-from bitbots_msgs.msg import RobotControlState
-
 
 class PickedUp(AbstractHCMDecisionElement):
     """
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
index 913ce9dc2..51f3de903 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/startup.py
@@ -1,9 +1,5 @@
-import math
-
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from bitbots_msgs.msg import RobotControlState
-
 
 class StartHCM(AbstractHCMDecisionElement):
     """
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
index de016e561..d406e3a04 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/walking.py
@@ -1,7 +1,5 @@
 from bitbots_hcm.hcm_dsd.decisions import AbstractHCMDecisionElement
 
-from bitbots_msgs.msg import RobotControlState
-
 
 class RecentWalkingGoals(AbstractHCMDecisionElement):
     """
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
index b511babe3..f6ea5b920 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm.dsd
@@ -1,16 +1,15 @@
 -->HCM
 $StartHCM
-    START_UP --> @RobotStateStartup, @Wait + time:0.1 + r:false, @PlayAnimationDynup + direction:walkready + r:false
+    START_UP --> @RobotStateStartup, @Wait + time:0.1 + r:false, @PlayAnimationDynup + direction:walkready, @Wait
     RUNNING --> $Stop
-        STOPPED --> @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:walkready + r:false, @Wait
-        FREE -->$Record
+        STOPPED --> @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:walkready, @Wait
+        FREE -->$RecordAnimation
             RECORD_ACTIVE --> @RobotStateRecord, @Wait
             FREE --> $CheckMotors
                 MOTORS_NOT_STARTED --> @RobotStateStartup, @WaitForMotorStartup
-                OVERLOAD --> @RobotStateMotorOff, @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
+                OVERLOAD --> @RobotStateMotorOff, @CancelGoals, @StopWalking, @PlayAnimationFallingFront, @TurnMotorsOff, @Wait
                 PROBLEM --> @RobotStateHardwareProblem, @WaitForMotors
-                TURN_OFF --> @RobotStateMotorOff, @CancelGoals, @StopWalking, @PlayAnimationDynup + direction:descend, @TurnMotorsOff, @Wait
-                TURN_ON --> @TurnMotorsOn, @PlayAnimationDynup + direction:rise
+                TURN_ON --> @TurnMotorsOn, @PlayAnimationDynup + direction:walkready, @Wait
                 OKAY --> $CheckIMU
                     IMU_NOT_STARTED --> @RobotStateStartup, @WaitForIMUStartup
                     PROBLEM --> @RobotStateHardwareProblem, @WaitForIMU
diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index b2382a837..19631f95a 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -32,7 +32,7 @@ def __init__(self, node: Node):
         # Get parameters
         self.simulation_active: bool = self.node.get_parameter('simulation_active').value
         self.visualization_active: bool = self.node.get_parameter('visualization_active').value
-        self.pickup_accel_threshold: float = 1000.0  # TODO: make this a parameter
+        self.pickup_accel_threshold: float = self.node.get_parameter('pick_up_accel_threshold').value
         self.pressure_sensors_installed: bool = self.node.get_parameter('pressure_sensors_installed').value
 
         # Create services
@@ -58,10 +58,6 @@ def __init__(self, node: Node):
         self.not_much_smoothed_gyro = numpy.array([0, 0, 0])
         self.quaternion = numpy.array([0, 0, 0, 1.0])
 
-        # Pressure sensors
-        # Initialize values high to prevent wrongly thinking the robot is picked up during start or in simulation
-        self.pressures: List[float] = [100.0] * 8
-
         # Animation
         # Animation states
         self.animation_requested: bool = False
@@ -78,11 +74,9 @@ def __init__(self, node: Node):
         self.animation_name_turning_back_right: str = self.node.get_parameter("animations.turning_back_right").value
 
         # Motor State
-        # Initialize with current time, or motors will be turned off on start
-        self.last_motor_goal_time: Time = self.node.get_clock().now()
-        self.last_motor_update_time =  Time()
         self.current_joint_state: Optional[JointState] = None
         self.previous_joint_state: Optional[JointState] = None
+        self.last_different_joint_state_time: Optional[Time] = None
         self.is_power_on: bool = False
 
         # Motor Parameters
@@ -104,6 +98,14 @@ def __init__(self, node: Node):
 
         # IMU state
         self.imu_msg: Optional[Imu] = None
+        self.previous_imu_msg: Optional[Imu] = None
+        self.last_different_imu_state_time: Optional[Time] = None
+
+        # Pressure sensors
+        # Initialize values high to prevent wrongly thinking the robot is picked up during start or in simulation
+        self.pressures: List[float] = [100.0] * 8
+        self.previous_pressures: List[float] = self.pressures.copy()
+        self.last_different_pressure_state_time: Optional[Time] = None
 
         # Diagnostics state
         self.servo_diag_error: bool = False
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index e80477341..c13d17462 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -31,8 +31,6 @@ def __init__(self, use_sim_time, simulation_active, visualization_active):
         rclpy.init(args=None)
         node_name = "hcm_py"
 
-        self.simulation_active = simulation_active
-
         # Load parameters from yaml file because this is a hacky cpp python hybrid node for performance reasons
         parameter_msgs: list(ParameterMsg) = get_parameters_from_ros_yaml(
             node_name, f"{get_package_share_directory('bitbots_hcm')}/config/hcm_wolfgang.yaml", use_wildcard=True)
@@ -160,15 +158,13 @@ def set_last_walking_goal_time(self, time_msg_serialized: bytes):
     def set_last_kick_goal_time(self, time_msg_serialized: bytes):
         self.blackboard.last_kick_goal_time = Time.from_msg(deserialize_message(time_msg_serialized, TimeMsg))
 
-    def set_last_motor_update_time(self, time_msg_serialized: bytes):
-        self.blackboard.last_motor_update_time = deserialize_message(time_msg_serialized, TimeMsg)
-
     def set_current_joint_state(self, joint_state_msg_serialized: bytes):
         self.blackboard.previous_joint_state = self.blackboard.current_joint_state
         self.blackboard.current_joint_state = deserialize_message(joint_state_msg_serialized, JointState)
 
     def set_pressure_left(self, pressure_msg_serialized: bytes):
         msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
+        self.blackboard.previous_pressures = self.blackboard.pressures
         self.blackboard.pressures[0] = msg.left_front
         self.blackboard.pressures[1] = msg.left_back
         self.blackboard.pressures[2] = msg.right_front
@@ -176,12 +172,15 @@ def set_pressure_left(self, pressure_msg_serialized: bytes):
 
     def set_pressure_right(self, pressure_msg_serialized: bytes):
         msg: FootPressure = deserialize_message(pressure_msg_serialized, FootPressure)
+        self.blackboard.previous_pressures = self.blackboard.pressures
         self.blackboard.pressures[4] = msg.left_front
         self.blackboard.pressures[5] = msg.left_back
         self.blackboard.pressures[6] = msg.right_front
         self.blackboard.pressures[7] = msg.right_back
 
     def set_imu(self, imu_msg_serialized: bytes):
+        self.blackboard.previous_imu_msg = self.blackboard.imu_msg
+        
         msg: Imu = deserialize_message(imu_msg_serialized, Imu)
 
         self.blackboard.accel = numpify(msg.linear_acceleration)
diff --git a/bitbots_hcm/src/hcm.cpp b/bitbots_hcm/src/hcm.cpp
index 93894bf30..63ebe3548 100644
--- a/bitbots_hcm/src/hcm.cpp
+++ b/bitbots_hcm/src/hcm.cpp
@@ -232,7 +232,6 @@ class HCM_CPP : public rclcpp::Node {
     hcm_py_.attr("set_imu")(ros2_python_extension::toPython(current_imu_));
     hcm_py_.attr("set_pressure_left")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_left_));
     hcm_py_.attr("set_pressure_right")(ros2_python_extension::toPython<bitbots_msgs::msg::FootPressure>(current_pressure_right_));
-    hcm_py_.attr("set_last_motor_update_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(current_joint_state_.header.stamp));
     hcm_py_.attr("set_current_joint_state")(ros2_python_extension::toPython<sensor_msgs::msg::JointState>(current_joint_state_));
     hcm_py_.attr("set_last_walking_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_walking_time_));
     hcm_py_.attr("set_last_kick_goal_time")(ros2_python_extension::toPython<builtin_interfaces::msg::Time>(last_kick_time_));

From a6c218da8f79e089f7182b97f3fdb64049196144 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Sun, 12 Nov 2023 20:05:13 +0100
Subject: [PATCH 70/74] Fix hcm dsd location

---
 bitbots_hcm/CMakeLists.txt                         | 6 ++++--
 bitbots_hcm/bitbots_hcm/humanoid_control_module.py | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/bitbots_hcm/CMakeLists.txt b/bitbots_hcm/CMakeLists.txt
index 401ad901b..6d732886d 100644
--- a/bitbots_hcm/CMakeLists.txt
+++ b/bitbots_hcm/CMakeLists.txt
@@ -53,9 +53,11 @@ install(DIRECTORY config
 
 install(DIRECTORY scripts/ USE_SOURCE_PERMISSIONS DESTINATION lib/${PROJECT_NAME})
 
-install(DIRECTORY bitbots_hcm/hcm_dsd/actions DESTINATION share/${PROJECT_NAME} FILES_MATCHING PATTERN "*.py")
+install(DIRECTORY bitbots_hcm/hcm_dsd/actions DESTINATION share/${PROJECT_NAME}/hcm_dsd FILES_MATCHING PATTERN "*.py")
 
-install(DIRECTORY bitbots_hcm/hcm_dsd/decisions DESTINATION share/${PROJECT_NAME} FILES_MATCHING PATTERN "*.py")
+install(DIRECTORY bitbots_hcm/hcm_dsd/decisions DESTINATION share/${PROJECT_NAME}/hcm_dsd FILES_MATCHING PATTERN "*.py")
+
+install(FILES bitbots_hcm/hcm_dsd/hcm.dsd DESTINATION share/${PROJECT_NAME}/hcm_dsd)
 
 install(FILES bitbots_hcm/hcm_dsd/hcm.dsd DESTINATION share/${PROJECT_NAME})
 
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index c13d17462..9e821f311 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -65,7 +65,7 @@ def __init__(self, use_sim_time, simulation_active, visualization_active):
         # Create Dynamic Stack Decider
         self.dsd = DSD(self.blackboard, "debug/dsd/hcm", node=self.node)
         # Get the path to the python actions and decisions
-        dirname = os.path.dirname(os.path.realpath(__file__)) + "/hcm_dsd"
+        dirname = os.path.join(get_package_share_directory('bitbots_hcm'), "hcm_dsd")
         # Register actions and decisions
         self.dsd.register_actions(os.path.join(dirname, 'actions'))
         self.dsd.register_decisions(os.path.join(dirname, 'decisions'))

From b21364e30a93a53e439ae70e54827dd136669d33 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Sun, 12 Nov 2023 20:05:23 +0100
Subject: [PATCH 71/74] Fix missing deps

---
 bitbots_hcm/package.xml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/bitbots_hcm/package.xml b/bitbots_hcm/package.xml
index 0a52aa034..40e25f4d0 100644
--- a/bitbots_hcm/package.xml
+++ b/bitbots_hcm/package.xml
@@ -22,7 +22,9 @@
   <depend>bitbots_msgs</depend>
   <depend>bitbots_robot_description</depend>
   <depend>bitbots_utils</depend>
+  <depend>dynamic_stack_decider</depend>
   <depend>geometry_msgs</depend>
+  <depend>humanoid_league_speaker</depend>
   <depend>pybind11-dev</depend>
   <depend>python3-numpy</depend>
   <depend>python3-transforms3d</depend>

From 4fbf755c68b37b4000aba3e7c4f99041b9c85de6 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Sun, 12 Nov 2023 20:05:45 +0100
Subject: [PATCH 72/74] Remove unused imports

---
 bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py  | 5 +----
 bitbots_hcm/bitbots_hcm/humanoid_control_module.py | 1 -
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
index 19631f95a..f79154a04 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/hcm_blackboard.py
@@ -1,10 +1,7 @@
-import json
-import os
 from typing import List, Optional
 
 import numpy
-from ament_index_python import get_package_share_directory
-from geometry_msgs.msg import PointStamped, Twist
+from geometry_msgs.msg import Twist
 from rclpy.action import ActionClient
 from rclpy.node import Node
 from rclpy.task import Future
diff --git a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
index 9e821f311..d2184a359 100755
--- a/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
+++ b/bitbots_hcm/bitbots_hcm/humanoid_control_module.py
@@ -21,7 +21,6 @@
 from sensor_msgs.msg import Imu, JointState
 from std_msgs.msg import Bool
 
-from bitbots_msgs.action import PlayAnimation
 from bitbots_msgs.msg import FootPressure, RobotControlState
 from dynamic_stack_decider.dsd import DSD
 

From 25d29f6f710445595f9c1712f542e51e374c78c4 Mon Sep 17 00:00:00 2001
From: Florian Vahl <7vahl@informatik.uni-hamburg.de>
Date: Sun, 12 Nov 2023 20:06:23 +0100
Subject: [PATCH 73/74] Add hcm dsd test

---
 bitbots_hcm/CMakeLists.txt                |  8 +++++++-
 bitbots_hcm/test/pytest/test_dsd_valid.py | 24 +++++++++++++++++++++++
 bitbots_head_mover/CMakeLists.txt         | 11 -----------
 3 files changed, 31 insertions(+), 12 deletions(-)
 create mode 100644 bitbots_hcm/test/pytest/test_dsd_valid.py

diff --git a/bitbots_hcm/CMakeLists.txt b/bitbots_hcm/CMakeLists.txt
index 6d732886d..0bb80a6ea 100644
--- a/bitbots_hcm/CMakeLists.txt
+++ b/bitbots_hcm/CMakeLists.txt
@@ -59,8 +59,14 @@ install(DIRECTORY bitbots_hcm/hcm_dsd/decisions DESTINATION share/${PROJECT_NAME
 
 install(FILES bitbots_hcm/hcm_dsd/hcm.dsd DESTINATION share/${PROJECT_NAME}/hcm_dsd)
 
-install(FILES bitbots_hcm/hcm_dsd/hcm.dsd DESTINATION share/${PROJECT_NAME})
+if(BUILD_TESTING)
+  find_package(ament_cmake_pytest REQUIRED)
 
+  ament_add_pytest_test(hcm_py_test test/pytest
+    PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}"
+    APPEND_ENV PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}
+  )
+endif()
 
 ament_python_install_package(${PROJECT_NAME})
 ament_package()
diff --git a/bitbots_hcm/test/pytest/test_dsd_valid.py b/bitbots_hcm/test/pytest/test_dsd_valid.py
new file mode 100644
index 000000000..7b445c1cd
--- /dev/null
+++ b/bitbots_hcm/test/pytest/test_dsd_valid.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+import glob
+import os
+
+from ament_index_python import get_package_share_directory
+from dynamic_stack_decider import DSD
+
+
+def test_dsd_valid():
+    # Create empty blackboard
+    DummyBlackboard = object
+    # Create DSD
+    dsd = DSD(DummyBlackboard())
+
+    # Find install path of package where the dsd and python files are located
+    dirname = os.path.join(get_package_share_directory("bitbots_hcm"), "hcm_dsd")
+
+    # Register actions and decisions
+    dsd.register_actions(os.path.join(dirname, "actions"))
+    dsd.register_decisions(os.path.join(dirname, "decisions"))
+
+    # Load all dsd files to check if they are valid\
+    for dsd_file in glob.glob(os.path.join(dirname, "*.dsd")):
+        dsd.load_behavior(dsd_file)
diff --git a/bitbots_head_mover/CMakeLists.txt b/bitbots_head_mover/CMakeLists.txt
index e4bf11c54..909e0c8ef 100644
--- a/bitbots_head_mover/CMakeLists.txt
+++ b/bitbots_head_mover/CMakeLists.txt
@@ -60,17 +60,6 @@ ament_target_dependencies(
 install(TARGETS
   move_head
   DESTINATION lib/${PROJECT_NAME})
-if(BUILD_TESTING)
-  find_package(ament_lint_auto REQUIRED)
-  # the following line skips the linter which checks for copyrights
-  # comment the line when a copyright and license is added to all source files
-  set(ament_cmake_copyright_FOUND TRUE)
-  # the following line skips cpplint (only works in a git repo)
-  # comment the line when this package is in a git repo and when
-  # a copyright and license is added to all source files
-  set(ament_cmake_cpplint_FOUND TRUE)
-  ament_lint_auto_find_test_dependencies()
-endif()
 
 install(DIRECTORY config
         DESTINATION share/${PROJECT_NAME})

From a3f27bee555d1b5c5c79b91d35dac17f465ef00b Mon Sep 17 00:00:00 2001
From: Florian Vahl <git@flova.de>
Date: Tue, 14 Nov 2023 00:59:51 +0100
Subject: [PATCH 74/74] Update
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py

Co-authored-by: Jan Gutsche <34797331+jaagut@users.noreply.github.com>
---
 bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
index 3a6d934ce..6f4e1a492 100644
--- a/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
+++ b/bitbots_hcm/bitbots_hcm/hcm_dsd/decisions/check_hardware.py
@@ -30,7 +30,7 @@ def perform(self, reevaluate=False):
             return "OKAY"
 
         if self.blackboard.simulation_active:
-            # Some simulators will give exact same joint messages could look like errors, 
+            # Some simulators will give the exact same joint messages, which could look like errors,
             # as the real world ros controller will always publish the same message if there is no connection
             # so we will just the check if the message is changing in simulation
             if self.blackboard.current_joint_state is None: