Skip to content

Commit 9fb21fe

Browse files
committed
Merge branch 'main' into feature/jazzy-ubuntu2404-devcontainer
2 parents 2594e44 + 2736cef commit 9fb21fe

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

  • bitbots_behavior/bitbots_body_behavior/bitbots_body_behavior/behavior_dsd/actions
  • bitbots_motion/bitbots_hcm/src

bitbots_behavior/bitbots_body_behavior/bitbots_body_behavior/behavior_dsd/actions/turn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def __init__(self, blackboard, dsd, parameters):
5959
self.max_speed = parameters.get("max_speed", 0.4)
6060

6161
# Check if the have a duration
62-
self.duration: Optional[float] = float(parameters.get("duration", None))
62+
self.duration: Optional[float] = float(parameters["duration"]) if "duration" in parameters else None
6363
self.start_time = self.blackboard.node.get_clock().now()
6464

6565
def perform(self, reevaluate=False):

bitbots_motion/bitbots_hcm/src/hcm.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,21 @@ class HCM_CPP : public rclcpp::Node {
6161

6262
// Create subscriber for high frequency sensor data
6363
joint_state_sub_ = this->create_subscription<sensor_msgs::msg::JointState>(
64-
"joint_states", 1, std::bind(&HCM_CPP::joint_state_callback, this, _1));
64+
"joint_states", 1, std::bind(&HCM_CPP::joint_state_callback, this, _1), high_hz_sub_options());
6565
pressure_l_sub_ = this->create_subscription<bitbots_msgs::msg::FootPressure>(
66-
"foot_pressure_left/filtered", 1, std::bind(&HCM_CPP::pressure_l_callback, this, _1));
66+
"foot_pressure_left/filtered", 1, std::bind(&HCM_CPP::pressure_l_callback, this, _1), high_hz_sub_options());
6767
pressure_r_sub_ = this->create_subscription<bitbots_msgs::msg::FootPressure>(
68-
"foot_pressure_right/filtered", 1, std::bind(&HCM_CPP::pressure_r_callback, this, _1));
69-
imu_sub_ =
70-
this->create_subscription<sensor_msgs::msg::Imu>("imu/data", 1, std::bind(&HCM_CPP::imu_callback, this, _1));
68+
"foot_pressure_right/filtered", 1, std::bind(&HCM_CPP::pressure_r_callback, this, _1), high_hz_sub_options());
69+
imu_sub_ = this->create_subscription<sensor_msgs::msg::Imu>(
70+
"imu/data", 1, std::bind(&HCM_CPP::imu_callback, this, _1), high_hz_sub_options());
71+
}
72+
73+
rclcpp::SubscriptionOptions high_hz_sub_options() {
74+
// Setup a MutuallyExclusive callback group for each high frequency
75+
// subscription so that they don't block each other
76+
rclcpp::SubscriptionOptions options;
77+
options.callback_group = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive);
78+
return options;
7179
}
7280

7381
void animation_callback(bitbots_msgs::msg::Animation msg) {

0 commit comments

Comments
 (0)