Skip to content

Commit 309b10a

Browse files
authored
update to new waypointmode msg (#691)
* update to new waypointmode msg * update to new waypoint mode msg * update waypoint mode def in node test
1 parent 4fba8ee commit 309b10a

5 files changed

Lines changed: 24 additions & 18 deletions

File tree

guidance/reference_filter_dp/include/reference_filter_dp/ros/reference_filter_ros_utils.hpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,30 @@
77
#include <vortex/utils/types.hpp>
88
#include <vortex_msgs/msg/reference_filter.hpp>
99
#include <vortex_msgs/msg/waypoint.hpp>
10+
#include <vortex_msgs/msg/waypoint_mode.hpp>
1011
#include "reference_filter_dp/lib/eigen_typedefs.hpp"
1112
#include "reference_filter_dp/lib/waypoint_types.hpp"
1213

1314
namespace vortex::guidance {
1415

15-
/// @brief Convert a ROS waypoint mode to a WaypointMode enum.
16-
/// @throws std::invalid_argument if the mode value is not recognized.
17-
inline WaypointMode waypoint_mode_from_ros(uint8_t mode) {
18-
switch (mode) {
19-
case vortex_msgs::msg::Waypoint::FULL_POSE:
16+
/**
17+
* @brief Convert a ROS waypoint mode to a WaypointMode enum.
18+
* @throws std::invalid_argument if the mode value is not recognized.
19+
*/
20+
inline WaypointMode waypoint_mode_from_ros(
21+
const vortex_msgs::msg::WaypointMode& mode_msg) {
22+
switch (mode_msg.mode) {
23+
case vortex_msgs::msg::WaypointMode::FULL_POSE:
2024
return WaypointMode::FULL_POSE;
21-
case vortex_msgs::msg::Waypoint::ONLY_POSITION:
25+
case vortex_msgs::msg::WaypointMode::ONLY_POSITION:
2226
return WaypointMode::ONLY_POSITION;
23-
case vortex_msgs::msg::Waypoint::FORWARD_HEADING:
27+
case vortex_msgs::msg::WaypointMode::FORWARD_HEADING:
2428
return WaypointMode::FORWARD_HEADING;
25-
case vortex_msgs::msg::Waypoint::ONLY_ORIENTATION:
29+
case vortex_msgs::msg::WaypointMode::ONLY_ORIENTATION:
2630
return WaypointMode::ONLY_ORIENTATION;
2731
default:
2832
throw std::invalid_argument("Invalid ROS waypoint mode: " +
29-
std::to_string(mode));
33+
std::to_string(mode_msg.mode));
3034
}
3135
}
3236

@@ -36,7 +40,7 @@ inline vortex::guidance::Waypoint waypoint_from_ros(
3640
Waypoint wp;
3741
wp.pose =
3842
vortex::utils::ros_conversions::ros_pose_to_pose_euler(ros_wp.pose);
39-
wp.mode = waypoint_mode_from_ros(ros_wp.mode);
43+
wp.mode = waypoint_mode_from_ros(ros_wp.waypoint_mode);
4044
return wp;
4145
}
4246

mission/landmark_server/include/landmark_server/landmark_server_ros.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <vortex_msgs/action/reference_filter_waypoint.hpp>
2222
#include <vortex_msgs/msg/landmark_array.hpp>
2323
#include <vortex_msgs/msg/landmark_track_array.hpp>
24+
#include <vortex_msgs/msg/waypoint_mode.hpp>
2425

2526
#include <pose_filtering/lib/pose_track_manager.hpp>
2627

@@ -183,7 +184,7 @@ class LandmarkServerNode : public rclcpp::Node {
183184
uint64_t convergence_session_id_{0};
184185
bool convergence_active_{false};
185186
bool convergence_dead_reckoning_handoff_{false};
186-
uint8_t convergence_mode_{0};
187+
vortex_msgs::msg::WaypointMode convergence_mode_;
187188
std::optional<vortex::filtering::Track> convergence_last_known_track_;
188189

189190
bool convergence_track_lost_{false};

mission/landmark_server/src/landmark_server_convergence.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include <rclcpp_action/client.hpp>
33
#include <vortex/utils/ros/ros_conversions.hpp>
44
#include <vortex_msgs/msg/waypoint.hpp>
5+
#include <vortex_msgs/msg/waypoint_mode.hpp>
56
#include "landmark_server/landmark_server_ros.hpp"
67

78
namespace vortex::mission {
@@ -98,7 +99,7 @@ void LandmarkServerNode::handle_landmark_convergence_accepted(
9899
convergence_goal()->subtype.value,
99100
convergence_goal()->convergence_threshold,
100101
convergence_goal()->dead_reckoning_threshold,
101-
convergence_goal()->track_loss_timeout_sec, convergence_mode_);
102+
convergence_goal()->track_loss_timeout_sec, convergence_mode_.mode);
102103

103104
const auto track = get_convergence_track();
104105
if (!track) {
@@ -291,7 +292,7 @@ LandmarkServerNode::make_rf_goal(const geometry_msgs::msg::Pose& target,
291292
vortex_msgs::action::ReferenceFilterWaypoint::Goal rf_goal;
292293
vortex_msgs::msg::Waypoint wp;
293294
wp.pose = target;
294-
wp.mode = convergence_mode_;
295+
wp.waypoint_mode = convergence_mode_;
295296
rf_goal.waypoint = wp;
296297
rf_goal.convergence_threshold = convergence_threshold;
297298
return rf_goal;
@@ -379,7 +380,7 @@ void LandmarkServerNode::handle_rf_result(
379380
convergence_session_id_, static_cast<int>(resultCode));
380381
active_landmark_convergence_goal_->canceled(make_result(false));
381382
convergence_active_ = false;
382-
convergence_mode_ = vortex_msgs::msg::Waypoint::FULL_POSE;
383+
convergence_mode_.mode = vortex_msgs::msg::WaypointMode::FULL_POSE;
383384
return;
384385
}
385386

@@ -411,7 +412,7 @@ void LandmarkServerNode::handle_rf_result(
411412
}
412413

413414
convergence_active_ = false;
414-
convergence_mode_ = vortex_msgs::msg::Waypoint::FULL_POSE;
415+
convergence_mode_.mode = vortex_msgs::msg::WaypointMode::FULL_POSE;
415416
}
416417

417418
std::optional<vortex::filtering::Track>

mission/waypoint_manager/test/test_single_waypoint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from rclpy.action import ActionClient
1616
from rclpy.qos import qos_profile_sensor_data
1717
from vortex_msgs.action import WaypointManager
18-
from vortex_msgs.msg import Waypoint
18+
from vortex_msgs.msg import Waypoint, WaypointMode
1919

2020
from auv_setup.launch_arg_common import (
2121
declare_drone_and_namespace_args,
@@ -131,7 +131,7 @@ def test_accepts_and_executes_goal(self):
131131

132132
goal_msg = WaypointManager.Goal()
133133
wp = Waypoint()
134-
wp.mode = Waypoint.FULL_POSE
134+
wp.waypoint_mode.mode = WaypointMode.FULL_POSE
135135
wp.pose.position.x = 0.0
136136
wp.pose.position.y = 0.0
137137
wp.pose.position.z = 1.0

tests/ros_node_tests/reference_filter_node_test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ fi
2929
# Send action goal
3030
echo "Sending goal..."
3131
ros2 action send_goal /orca/reference_filter vortex_msgs/action/ReferenceFilterWaypoint \
32-
"{waypoint: {pose: {position: {x: 1.0,y: 0.0,z: 0.0}, orientation:{x: 0,y: 0,z: 0,w: 1}}, mode: 0}}" &
32+
"{waypoint: {pose: {position: {x: 1.0,y: 0.0,z: 0.0}, orientation:{x: 0,y: 0,z: 0,w: 1}}, waypoint_mode: {mode: 0}}}" &
3333

3434
sleep 2
3535

0 commit comments

Comments
 (0)