Skip to content

Commit 6287011

Browse files
authored
added feedforward to bridge, controller msgs are now printed only once (#895)
1 parent acd21f9 commit 6287011

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

submitted_models/ctu_cras_norlab_x500_sensor_config_1/launch/vehicle_topics.launch

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@
5050
args="/model/$(arg name)/cmd_vel@geometry_msgs/Twist]ignition.msgs.Twist">
5151
<remap from="/model/$(arg name)/cmd_vel" to="cmd_vel"/>
5252
</node>
53+
<node
54+
pkg="ros_ign_bridge"
55+
type="parameter_bridge"
56+
name="ros_ign_bridge_feedforward"
57+
args="/model/$(arg name)/feedforward@geometry_msgs/Twist]ignition.msgs.Twist">
58+
<remap from="/model/$(arg name)/feedforward" to="feedforward"/>
59+
</node>
5360
<node
5461
pkg="ros_ign_bridge"
5562
type="parameter_bridge"

submitted_models/ctu_cras_norlab_x500_sensor_config_1/src/MRSMultirotorController.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class IGNITION_GAZEBO_VISIBLE MRSMultirotorController : public System, public IS
8080
std::string _robot_namespace_;
8181
std::string _cmd_vel_topic_{"cmd_vel"};
8282
std::string _enable_topic_{"enable"};
83+
std::string _feedforward_topic_{"feedforward"};
8384

8485
std::string _gazebo_model_entity_name_;
8586

@@ -112,6 +113,7 @@ class IGNITION_GAZEBO_VISIBLE MRSMultirotorController : public System, public IS
112113

113114
std::optional<msgs::Twist> cmd_vel_;
114115
std::mutex mutex_cmd_vel_;
116+
bool cmd_vel_received_ = false;
115117

116118
// --------------------------------------------------------------
117119
// | subscriber for feedforward reference |
@@ -121,6 +123,7 @@ class IGNITION_GAZEBO_VISIBLE MRSMultirotorController : public System, public IS
121123

122124
std::optional<msgs::Twist> feedforward_;
123125
std::mutex mutex_feedforward_;
126+
bool feedforward_received_ = false;
124127
};
125128

126129
} // namespace systems
@@ -330,10 +333,9 @@ void MRSMultirotorController::Configure(const Entity &entity, const std::shared_
330333
// | custom Ignition subscribers |
331334
// --------------------------------------------------------------
332335

333-
std::string robot_name = _gazebo_model_.Name(ecm);
334-
335-
ignition_node_.Subscribe(robot_name + "/feedforward",
336-
&MRSMultirotorController::callbackFeedForward, this);
336+
std::string feedforwardTopic{_robot_namespace_ + "/" + _feedforward_topic_};
337+
ignition_node_.Subscribe(feedforwardTopic, &MRSMultirotorController::callbackFeedForward, this);
338+
ignmsg << "MRSMultirotorController subscribing to Twist messages on [" << feedforwardTopic << "]" << std::endl;
337339

338340
// | ---------------- finish the initialization --------------- |
339341

@@ -373,8 +375,6 @@ void MRSMultirotorController::PreUpdate(const ignition::gazebo::UpdateInfo &_inf
373375

374376
if (feedforward_.has_value()) {
375377
feedforward = feedforward_.value();
376-
ignmsg << "[mrs_multirotor_controller]: using the feedforward for control"
377-
<< std::endl;
378378
}
379379
}
380380

@@ -459,8 +459,11 @@ void MRSMultirotorController::OnTwist(const msgs::Twist &msg) {
459459

460460
cmd_vel_ = msg;
461461
}
462-
463-
ignmsg << "[mrs_multirotor_controller]: MRS controller at work" << std::endl;
462+
463+
if (!cmd_vel_received_) {
464+
ignmsg << "[mrs_multirotor_controller]: MRS controller at work" << std::endl;
465+
cmd_vel_received_ = true;
466+
}
464467
}
465468

466469
//}
@@ -525,8 +528,11 @@ void MRSMultirotorController::callbackFeedForward(const msgs::Twist &msg) {
525528
feedforward_ = msg;
526529
}
527530

528-
ignmsg << "[mrs_multirotor_controller]: getting feedforward reference"
529-
<< std::endl;
531+
if (!feedforward_received_) {
532+
ignmsg << "[mrs_multirotor_controller]: getting feedforward reference"
533+
<< std::endl;
534+
feedforward_received_ = true;
535+
}
530536
}
531537

532538
//}

0 commit comments

Comments
 (0)