File tree Expand file tree Collapse file tree
include/rmf_robot_sim_common Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ find_package(eigen3_cmake_module REQUIRED)
2020find_package (Eigen3 REQUIRED )
2121find_package (ament_cmake REQUIRED )
2222find_package (rclcpp REQUIRED )
23+ find_package (std_msgs REQUIRED )
2324find_package (geometry_msgs REQUIRED )
2425find_package (tf2_ros REQUIRED )
2526find_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
9193ament_export_dependencies (
9294 Eigen3
9395 rclcpp
96+ std_msgs
9497 geometry_msgs
9598 tf2_ros
9699 rmf_fleet_msgs
Original file line number Diff line number Diff line change 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;
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff 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 << " ]" );
You can’t perform that action at this time.
0 commit comments