diff --git a/mvsim_node_src/include/mvsim/mvsim_node_core.h b/mvsim_node_src/include/mvsim/mvsim_node_core.h index 79750c9a..e47ac2f7 100644 --- a/mvsim_node_src/include/mvsim/mvsim_node_core.h +++ b/mvsim_node_src/include/mvsim/mvsim_node_core.h @@ -9,13 +9,13 @@ #pragma once -#if PACKAGE_ROS_VERSION == 1 -#include -#include -#endif +#include +#include #include #include +#include +#include #include #include #include @@ -26,31 +26,65 @@ #include #if PACKAGE_ROS_VERSION == 1 -#include #include #include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include #include #include #include + +// usings: +using Msg_Polygon = geometry_msgs::Polygon; +using Msg_PoseArray = geometry_msgs::PoseArray; +using Msg_PoseWithCovarianceStamped = geometry_msgs::PoseWithCovarianceStamped; +using Msg_Twist = geometry_msgs::Twist; +using Msg_Twist_CSPtr = geometry_msgs::Twist::ConstPtr; +using Msg_OccupancyGrid = nav_msgs::OccupancyGrid; +using Msg_Odometry = nav_msgs::Odometry; +using Msg_MapMetaData = nav_msgs::MapMetaData; +using Msg_Bool = std_msgs::Bool; +using Msg_TFMessage = tf2_msgs::TFMessage; +using Msg_MarkerArray = visualization_msgs::MarkerArray; #else +#include +#include +#include + #include #include #include -#include +#include #include #include +#include #include #include -#include "rclcpp/clock.hpp" -#include "rclcpp/rclcpp.hpp" -#include "rclcpp/time_source.hpp" - #include "wrapper/publisher_wrapper.h" -#endif -#include -#include +// usings: +using Msg_Polygon = geometry_msgs::msg::Polygon; +using Msg_PoseArray = geometry_msgs::msg::PoseArray; +using Msg_PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped; +using Msg_Twist = geometry_msgs::msg::Twist; +using Msg_Twist_CSPtr = geometry_msgs::msg::Twist::ConstSharedPtr; +using Msg_OccupancyGrid = nav_msgs::msg::OccupancyGrid; +using Msg_Odometry = nav_msgs::msg::Odometry; +using Msg_MapMetaData = nav_msgs::msg::MapMetaData; +using Msg_Bool = std_msgs::msg::Bool; +using Msg_TFMessage = tf2_msgs::msg::TFMessage; +using Msg_MarkerArray = visualization_msgs::msg::MarkerArray; +#endif namespace mvsim_node { #if PACKAGE_ROS_VERSION == 1 @@ -141,8 +175,8 @@ class MVSimNode mvsim_node::shared_ptr pub_map_ros_, pub_map_metadata_; // mvsim_node::shared_ptr pub_clock_; #else - rclcpp::Publisher::SharedPtr pub_map_ros_; - rclcpp::Publisher::SharedPtr pub_map_metadata_; + rclcpp::Publisher::SharedPtr pub_map_ros_; + rclcpp::Publisher::SharedPtr pub_map_metadata_; rclcpp::TimeSource ts_{n_}; rclcpp::Clock::SharedPtr clock_; #endif @@ -176,38 +210,38 @@ class MVSimNode mvsim_node::shared_ptr pub_tf; //!< "/tf" mvsim_node::shared_ptr pub_tf_static; //!< "/tf_static" - visualization_msgs::MarkerArray chassis_shape_msg; + Msg_MarkerArray chassis_shape_msg; #else /// Subscribers vehicle's "cmd_vel" topic - rclcpp::Subscription::SharedPtr sub_cmd_vel; + rclcpp::Subscription::SharedPtr sub_cmd_vel; /// Publisher of "odom" topic - rclcpp::Publisher::SharedPtr pub_odom; + rclcpp::Publisher::SharedPtr pub_odom; /// "base_pose_ground_truth" topic - rclcpp::Publisher::SharedPtr pub_ground_truth; + rclcpp::Publisher::SharedPtr pub_ground_truth; /// "fake_localization" pubs: - rclcpp::Publisher:: + rclcpp::Publisher:: SharedPtr pub_amcl_pose; - rclcpp::Publisher::SharedPtr + rclcpp::Publisher::SharedPtr pub_particlecloud; /// Map => publisher std::map> pub_sensors; /// "/chassis_markers" - rclcpp::Publisher::SharedPtr + rclcpp::Publisher::SharedPtr pub_chassis_markers; /// "/chassis_shape" - rclcpp::Publisher::SharedPtr + rclcpp::Publisher::SharedPtr pub_chassis_shape; /// "/collision" - rclcpp::Publisher::SharedPtr pub_collision; + rclcpp::Publisher::SharedPtr pub_collision; /// "/tf", "/tf_static" - rclcpp::Publisher::SharedPtr pub_tf; - rclcpp::Publisher::SharedPtr pub_tf_static; + rclcpp::Publisher::SharedPtr pub_tf; + rclcpp::Publisher::SharedPtr pub_tf_static; - visualization_msgs::msg::MarkerArray chassis_shape_msg; + Msg_MarkerArray chassis_shape_msg; #endif }; @@ -224,11 +258,7 @@ class MVSimNode // === ROS Hooks ==== void onROSMsgCmdVel( -#if PACKAGE_ROS_VERSION == 1 - const geometry_msgs::Twist::ConstPtr& cmd, -#else - const geometry_msgs::msg::Twist::ConstSharedPtr& cmd, -#endif + Msg_Twist_CSPtr cmd, mvsim::VehicleBase* veh); // === End ROS Hooks==== diff --git a/mvsim_node_src/mvsim_node.cpp b/mvsim_node_src/mvsim_node.cpp index 41eb7106..b40f3b94 100644 --- a/mvsim_node_src/mvsim_node.cpp +++ b/mvsim_node_src/mvsim_node.cpp @@ -8,18 +8,13 @@ +-------------------------------------------------------------------------+ */ #include -#include -#include -#include -#include #include #include // kbhit() #include #include -#include "mvsim/mvsim_node_core.h" +#include -#include -#include +#include "rapidxml_utils.hpp" #if MRPT_VERSION >= 0x020b04 // >=2.11.4? #define HAVE_POINTS_XYZIRT @@ -40,44 +35,24 @@ #include #include -#include -#include -#include #include #include #include #include -#include #include -#include -#include -#include - // usings: -using Msg_Bool = std_msgs::Bool; using Msg_Header = std_msgs::Header; -using Msg_Polygon = geometry_msgs::Polygon; using Msg_Pose = geometry_msgs::Pose; -using Msg_PoseArray = geometry_msgs::PoseArray; -using Msg_PoseWithCovarianceStamped = geometry_msgs::PoseWithCovarianceStamped; using Msg_TransformStamped = geometry_msgs::TransformStamped; -using Msg_Twist = geometry_msgs::Twist; - -using Msg_MapMetaData = nav_msgs::MapMetaData; -using Msg_OccupancyGrid = nav_msgs::OccupancyGrid; -using Msg_Odometry = nav_msgs::Odometry; using Msg_Image = sensor_msgs::Image; using Msg_Imu = sensor_msgs::Imu; using Msg_LaserScan = sensor_msgs::LaserScan; using Msg_PointCloud2 = sensor_msgs::PointCloud2; -using Msg_TFMessage = tf2_msgs::TFMessage; - using Msg_Marker = visualization_msgs::Marker; -using Msg_MarkerArray = visualization_msgs::MarkerArray; #else // =========================================== // ROS 2 @@ -89,14 +64,10 @@ using Msg_MarkerArray = visualization_msgs::MarkerArray; #include #include -#include -#include -#include #include #include #include #include -#include // see: https://github.com/ros2/geometry2/pull/416 #if defined(MVSIM_HAS_TF2_GEOMETRY_MSGS_HPP) @@ -106,29 +77,17 @@ using Msg_MarkerArray = visualization_msgs::MarkerArray; #endif // usings: -using Msg_Bool = std_msgs::msg::Bool; using Msg_Header = std_msgs::msg::Header; -using Msg_Polygon = geometry_msgs::msg::Polygon; using Msg_Pose = geometry_msgs::msg::Pose; -using Msg_PoseArray = geometry_msgs::msg::PoseArray; -using Msg_PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped; using Msg_TransformStamped = geometry_msgs::msg::TransformStamped; -using Msg_Twist = geometry_msgs::msg::Twist; - -using Msg_MapMetaData = nav_msgs::msg::MapMetaData; -using Msg_OccupancyGrid = nav_msgs::msg::OccupancyGrid; -using Msg_Odometry = nav_msgs::msg::Odometry; using Msg_Image = sensor_msgs::msg::Image; using Msg_Imu = sensor_msgs::msg::Imu; using Msg_LaserScan = sensor_msgs::msg::LaserScan; using Msg_PointCloud2 = sensor_msgs::msg::PointCloud2; -using Msg_TFMessage = tf2_msgs::msg::TFMessage; - using Msg_Marker = visualization_msgs::msg::Marker; -using Msg_MarkerArray = visualization_msgs::msg::MarkerArray; #endif #if PACKAGE_ROS_VERSION == 1 @@ -645,7 +604,7 @@ void MVSimNode::initPubSubs(TPubSubPerVehicle& pubsubs, mvsim::VehicleBase* veh) #else pubsubs.sub_cmd_vel = n_->create_subscription( vehVarName("cmd_vel", *veh), 10, - [this, veh](const geometry_msgs::msg::Twist::ConstSharedPtr& msg) + [this, veh](Msg_Twist_CSPtr msg) { return this->onROSMsgCmdVel(msg, veh); }); #endif @@ -850,11 +809,7 @@ void MVSimNode::initPubSubs(TPubSubPerVehicle& pubsubs, mvsim::VehicleBase* veh) } void MVSimNode::onROSMsgCmdVel( -#if PACKAGE_ROS_VERSION == 1 - const geometry_msgs::Twist::ConstPtr& cmd, -#else - const geometry_msgs::msg::Twist::ConstSharedPtr& cmd, -#endif + Msg_Twist_CSPtr cmd, mvsim::VehicleBase* veh) { mvsim::ControllerBaseInterface* controller = veh->getControllerInterface();