From 59527c8ba4a8e1c95006c03d23e599a2235e68c8 Mon Sep 17 00:00:00 2001 From: hanjun Date: Sun, 27 Apr 2025 16:57:04 +0800 Subject: [PATCH 1/2] fix: when sub'num is not equal to the pub, coredump --- .../subscriber/joint_actuator_subscriber.cc | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc b/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc index 578f89e..c35d543 100644 --- a/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc +++ b/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc @@ -97,9 +97,16 @@ void JointActuatorSubscriber::EventHandle(const std::shared_ptrjoints_size(); + + if (joint_num_ != joint_num_real) [[unlikely]] { + AIMRT_WARN("The number of joints (topci: {}, expected: {}, actual: {}) in the options and the received message are different.", + subscriber_.GetTopic(), joint_num_, joint_num_real); + } + auto* new_command_array = new double[joint_num_]; - for (size_t ii = 0; ii < joint_num_; ++ii) { + for (size_t ii = 0; ii < joint_num_real; ++ii) { const auto& joint_options = options_.joints[ii]; const auto& command = commands->joints()[ii]; @@ -147,9 +154,16 @@ void JointActuatorRos2Subscriber::EventHandle(const std::shared_ptrjoints.size(); + + if (joint_num_ != joint_num_real) [[unlikely]] { + AIMRT_WARN("The number of joints (topci: {}, expected: {}, actual: {}) in the options and the received message are different.", + subscriber_.GetTopic(), joint_num_, joint_num_real); + } + auto* new_command_array = new double[joint_num_]; - for (size_t ii = 0; ii < joint_num_; ++ii) { + for (size_t ii = 0; ii < joint_num_real; ++ii) { const auto& joint_options = options_.joints[ii]; const auto command = commands->joints[ii]; From c71a721471e5f606cc31e5827be87d29b7103260 Mon Sep 17 00:00:00 2001 From: hanjun Date: Sun, 27 Apr 2025 17:03:38 +0800 Subject: [PATCH 2/2] fix --- .../mujoco_sim_module/subscriber/joint_actuator_subscriber.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc b/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc index c35d543..1bb96f3 100644 --- a/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc +++ b/src/module/mujoco_sim_module/subscriber/joint_actuator_subscriber.cc @@ -102,6 +102,7 @@ void JointActuatorSubscriber::EventHandle(const std::shared_ptr