Skip to content

Commit ce52822

Browse files
committed
feat: publish collision string message during emergency stop (Resolves #159)
1 parent 9c9462a commit ce52822

4 files changed

Lines changed: 16 additions & 0 deletions

File tree

rmf_robot_sim_common/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ find_package(eigen3_cmake_module REQUIRED)
2020
find_package(Eigen3 REQUIRED)
2121
find_package(ament_cmake REQUIRED)
2222
find_package(rclcpp REQUIRED)
23+
find_package(std_msgs REQUIRED)
2324
find_package(geometry_msgs REQUIRED)
2425
find_package(tf2_ros REQUIRED)
2526
find_package(rmf_fleet_msgs REQUIRED)
@@ -74,6 +75,7 @@ target_link_libraries(slotcar_common
7475
Eigen3::Eigen
7576
rclcpp::rclcpp
7677
${geometry_msgs_TARGETS}
78+
${std_msgs_TARGETS}
7779
${rmf_fleet_msgs_TARGETS}
7880
${rmf_building_map_msgs_TARGETS}
7981
tf2_ros::tf2_ros
@@ -91,6 +93,7 @@ target_include_directories(slotcar_common
9193
ament_export_dependencies(
9294
Eigen3
9395
rclcpp
96+
std_msgs
9497
geometry_msgs
9598
tf2_ros
9699
rmf_fleet_msgs

rmf_robot_sim_common/include/rmf_robot_sim_common/slotcar_common.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <tf2_ros/transform_broadcaster.h>
2626

2727
#include <geometry_msgs/msg/transform_stamped.hpp>
28+
#include <std_msgs/msg/string.hpp>
2829
#include <rmf_fleet_msgs/msg/robot_mode.hpp>
2930
#include <rmf_fleet_msgs/msg/robot_state.hpp>
3031
#include <rmf_fleet_msgs/msg/path_request.hpp>
@@ -174,6 +175,7 @@ class SlotcarCommon
174175

175176
std::shared_ptr<tf2_ros::TransformBroadcaster> _tf2_broadcaster;
176177
rclcpp::Publisher<rmf_fleet_msgs::msg::RobotState>::SharedPtr _robot_state_pub;
178+
rclcpp::Publisher<std_msgs::msg::String>::SharedPtr _collision_pub;
177179

178180
rclcpp::Subscription<rmf_fleet_msgs::msg::PathRequest>::SharedPtr _traj_sub;
179181
rclcpp::Subscription<rmf_fleet_msgs::msg::PauseRequest>::SharedPtr _pause_sub;

rmf_robot_sim_common/package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<depend>eigen</depend>
1717
<depend>rclcpp</depend>
1818
<depend>geometry_msgs</depend>
19+
<depend>std_msgs</depend>
1920
<depend>tf2_ros</depend>
2021
<depend>rmf_fleet_msgs</depend>
2122
<depend>rmf_building_map_msgs</depend>

rmf_robot_sim_common/src/slotcar_common.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,10 @@ void SlotcarCommon::init_ros_node(const rclcpp::Node::SharedPtr node)
211211
_ros_node->create_publisher<rmf_fleet_msgs::msg::RobotState>(
212212
"/robot_state", 10);
213213

214+
_collision_pub =
215+
_ros_node->create_publisher<std_msgs::msg::String>(
216+
"/robot_collisions", 10);
217+
214218
auto qos_profile = rclcpp::QoS(10);
215219
qos_profile.transient_local();
216220
_building_map_sub =
@@ -842,8 +846,14 @@ bool SlotcarCommon::emergency_stop(
842846
// TODO flush logger here
843847
// TODO get collision object name
844848
if (need_to_stop)
849+
{
845850
RCLCPP_INFO_STREAM(logger(), "Stopping [" << _model_name <<
846851
"] to avoid a collision");
852+
853+
std_msgs::msg::String msg;
854+
msg.data = _model_name;
855+
_collision_pub->publish(msg);
856+
}
847857
else
848858
RCLCPP_INFO_STREAM(logger(), "No more obstacles; resuming course for [" <<
849859
_model_name << "]");

0 commit comments

Comments
 (0)