Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions auv_control_demos/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Changelog for package auv_control_demos

## 0.4.0 (2025-08-01)

## 0.3.3 (2025-07-29)

## 0.3.2 (2025-07-22)
Expand Down
Empty file added auv_control_demos/COLCON_IGNORE
Empty file.
2 changes: 1 addition & 1 deletion auv_control_demos/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>auv_control_demos</name>
<version>0.3.3</version>
<version>0.4.0</version>
<description>Example package that includes demos for using auv_controllers in individual and chained modes</description>

<maintainer email="mitchcol@oregonstate.edu">Colin Mitchell</maintainer>
Expand Down
16 changes: 12 additions & 4 deletions auv_control_msgs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog for package auv_control_msgs

## 0.4.0 (2025-08-01)

- Renames the Trajectory message to CartesianTrajectory
- Renames the TrajectoryPoint message to CartesianTrajectoryPoint
- Renames the TrajectoryControllerState message to CartesianTrajectoryControllerStateStamped
- Renames the FollowTrajectory action to FollowCartesianTrajectory
- Implements the ImpedanceCommand message

## 0.3.3 (2025-07-29)

## 0.3.2 (2025-07-22)
Expand All @@ -12,10 +20,10 @@

## 0.2.0 (2025-05-03)

- Implements the EndEffectorTrajectory message
- Implements the EndEffectorTrajectoryPoint message
- Implements the EndEffectorTrajectoryControllerState message
- Adds the FollowEndEffectorTrajectory action
- Implements the Trajectory message
- Implements the TrajectoryPoint message
- Implements the TrajectoryControllerState message
- Adds the FollowTrajectory action

## 0.1.0 (2025-04-27)

Expand Down
9 changes: 5 additions & 4 deletions auv_control_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ find_package(trajectory_msgs REQUIRED)
rosidl_generate_interfaces(auv_control_msgs
"msg/MultiActuatorStateStamped.msg"
"msg/IKControllerStateStamped.msg"
"msg/EndEffectorTrajectoryPoint.msg"
"msg/EndEffectorTrajectory.msg"
"msg/EndEffectorTrajectoryControllerState.msg"
"action/FollowEndEffectorTrajectory.action"
"msg/CartesianTrajectoryPoint.msg"
"msg/CartesianTrajectory.msg"
"msg/CartesianTrajectoryControllerStateStamped.msg"
"msg/ImpedanceCommand.msg"
"action/FollowCartesianTrajectory.action"
DEPENDENCIES builtin_interfaces std_msgs geometry_msgs trajectory_msgs
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# The trajectory header stamp is used to set the trajectory start time. This can be
# set to zero to indicate that the controller should start following the trajectory
# now.
auv_control_msgs/EndEffectorTrajectory trajectory
auv_control_msgs/CartesianTrajectory trajectory

# The maximum error that the controller is allowed when following the trajectory.
# When this is set to 0, the tolerance will not be applied during control.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
std_msgs/Header header

# The sequence of end effector points to track.
auv_control_msgs/EndEffectorTrajectoryPoint[] points
auv_control_msgs/CartesianTrajectoryPoint[] points
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ std_msgs/Header header
# for error calculation.
geometry_msgs/Pose reference

# The current end effector state.
# The current state.
geometry_msgs/Pose feedback

# The squared Euclidean norm of the geodesic distance between the reference state and end effector state.
# The squared Euclidean norm of the geodesic distance between the reference state and state.
float64 error

# The trajectory controller command. This is the trajectory sample from the next time instance.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# The sequence of end effector poses.
# The sequence of poses.
geometry_msgs/Pose point

# The time that this point should be reached, measured from the start of the trajectory.
Expand Down
9 changes: 9 additions & 0 deletions auv_control_msgs/msg/ImpedanceCommand.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
std_msgs/Header header

string child_frame_id

geometry_msgs/Pose pose

geometry_msgs/Twist twist

geometry_msgs/Wrench wrench
2 changes: 1 addition & 1 deletion auv_control_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>auv_control_msgs</name>
<version>0.3.3</version>
<version>0.4.0</version>
<description>Custom messages for AUV controllers</description>

<maintainer email="rakeshvivek97@gmail.com">Rakesh Vivekanandan</maintainer>
Expand Down
6 changes: 6 additions & 0 deletions auv_controllers/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog for package auv_controllers

## 0.4.0 (2025-08-01)

- Implements the impedance controller
- Refactors the `end_effector_trajectory_controller` to be `cartesian_trajectory_controller`
- Implements the trajectory controllers package

## 0.3.3 (2025-07-29)

## 0.3.2 (2025-07-22)
Expand Down
2 changes: 1 addition & 1 deletion auv_controllers/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>auv_controllers</name>
<version>0.3.3</version>
<version>0.4.0</version>
<description>Meta package for auv_controllers</description>

<maintainer email="evanp922@gmail.com">Evan Palmer</maintainer>
Expand Down
4 changes: 4 additions & 0 deletions controller_common/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog for package controller_common

## 0.4.0 (2025-08-01)

- Adds API support for the ImpedanceCommand message type

## 0.3.3 (2025-07-29)

## 0.3.2 (2025-07-22)
Expand Down
9 changes: 7 additions & 2 deletions controller_common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(auv_control_msgs REQUIRED)

add_library(controller_common SHARED)
target_sources(
Expand All @@ -25,7 +26,11 @@ target_sources(
target_compile_features(controller_common PUBLIC cxx_std_23)
target_link_libraries(
controller_common
PUBLIC rclcpp::rclcpp ${geometry_msgs_TARGETS} ${nav_msgs_TARGETS}
PUBLIC
rclcpp::rclcpp
${geometry_msgs_TARGETS}
${nav_msgs_TARGETS}
${auv_control_msgs_TARGETS}
)

install(
Expand All @@ -38,6 +43,6 @@ install(
)

ament_export_targets(export_controller_common HAS_LIBRARY_TARGET)
ament_export_dependencies("rclcpp" "geometry_msgs" "nav_msgs")
ament_export_dependencies("rclcpp" "geometry_msgs" "nav_msgs" "auv_control_msgs")

ament_package()
7 changes: 7 additions & 0 deletions controller_common/include/controller_common/common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

#include <vector>

#include "auv_control_msgs/msg/impedance_command.hpp"
#include "geometry_msgs/msg/pose.hpp"
#include "geometry_msgs/msg/twist.hpp"
#include "geometry_msgs/msg/wrench.hpp"
Expand All @@ -41,10 +42,14 @@ auto to_vector(const geometry_msgs::msg::Wrench & wrench) -> std::vector<double>

auto to_vector(const nav_msgs::msg::Odometry & odom) -> std::vector<double>;

auto to_vector(const auv_control_msgs::msg::ImpedanceCommand & command) -> std::vector<double>;

auto to_msg(const std::vector<double> & data, geometry_msgs::msg::Pose * msg) -> void;

auto to_msg(const std::vector<double> & data, geometry_msgs::msg::Twist * msg) -> void;

auto to_msg(const std::vector<double> & data, geometry_msgs::msg::Wrench * msg) -> void;

auto reset_message(geometry_msgs::msg::Pose * msg) -> void;

auto reset_message(geometry_msgs::msg::Twist * msg) -> void;
Expand All @@ -53,6 +58,8 @@ auto reset_message(geometry_msgs::msg::Wrench * msg) -> void;

auto reset_message(nav_msgs::msg::Odometry * msg) -> void;

auto reset_message(auv_control_msgs::msg::ImpedanceCommand * msg) -> void;

} // namespace messages

namespace math
Expand Down
3 changes: 2 additions & 1 deletion controller_common/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>controller_common</name>
<version>0.3.3</version>
<version>0.4.0</version>
<description>Common interfaces for controllers used in this project</description>

<maintainer email="evanp922@gmail.com">Evan Palmer</maintainer>
Expand All @@ -19,6 +19,7 @@
<depend>rclcpp</depend>
<depend>geometry_msgs</depend>
<depend>nav_msgs</depend>
<depend>auv_control_msgs</depend>

<export>
<build_type>ament_cmake</build_type>
Expand Down
30 changes: 30 additions & 0 deletions controller_common/src/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,19 @@ auto to_vector(const nav_msgs::msg::Odometry & odom) -> std::vector<double>
odom.twist.twist.angular.z};
}

auto to_vector(const auv_control_msgs::msg::ImpedanceCommand & command) -> std::vector<double>
{
std::vector<double> data;
auto pose = to_vector(command.pose);
auto twist = to_vector(command.twist);
auto wrench = to_vector(command.wrench);
data.reserve(pose.size() + twist.size() + wrench.size());
std::ranges::copy(pose, std::back_inserter(data));
std::ranges::copy(twist, std::back_inserter(data));
std::ranges::copy(wrench, std::back_inserter(data));
return data;
}

auto to_msg(const std::vector<double> & data, geometry_msgs::msg::Pose * msg) -> void
{
msg->position.x = data[0];
Expand All @@ -98,6 +111,16 @@ auto to_msg(const std::vector<double> & data, geometry_msgs::msg::Twist * msg) -
msg->angular.z = data[5];
}

auto to_msg(const std::vector<double> & data, geometry_msgs::msg::Wrench * msg) -> void
{
msg->force.x = data[0];
msg->force.y = data[1];
msg->force.z = data[2];
msg->torque.x = data[3];
msg->torque.y = data[4];
msg->torque.z = data[5];
}

auto reset_message(geometry_msgs::msg::Pose * msg) -> void
{
msg->position.x = nan;
Expand Down Expand Up @@ -146,6 +169,13 @@ auto reset_message(nav_msgs::msg::Odometry * msg) -> void
msg->twist.twist.angular.z = nan;
}

auto reset_message(auv_control_msgs::msg::ImpedanceCommand * msg) -> void
{
reset_message(&msg->pose);
reset_message(&msg->twist);
reset_message(&msg->wrench);
}

} // namespace messages

namespace math
Expand Down
2 changes: 2 additions & 0 deletions controller_coordinator/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Changelog for package controller_coordinator

## 0.4.0 (2025-08-01)

## 0.3.3 (2025-07-29)

- Enabled activating and deactivating multiple hardware interfaces.
Expand Down
2 changes: 1 addition & 1 deletion controller_coordinator/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>controller_coordinator</name>
<version>0.3.3</version>
<version>0.4.0</version>
<description>A high-level node used to load and activate/deactivate control systems</description>

<maintainer email="evanp922@gmail.com">Evan Palmer</maintainer>
Expand Down
30 changes: 0 additions & 30 deletions end_effector_trajectory_controller/README.md

This file was deleted.

This file was deleted.

2 changes: 2 additions & 0 deletions ik_solvers/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Changelog for package ik_solvers

## 0.4.0 (2025-08-01)

## 0.3.3 (2025-07-29)

## 0.3.2 (2025-07-22)
Expand Down
2 changes: 1 addition & 1 deletion ik_solvers/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package format="3">

<name>ik_solvers</name>
<version>0.3.3</version>
<version>0.4.0</version>
<description>Inverse kinematics solvers used for whole-body control</description>

<maintainer email="evanp922@gmail.com">Evan Palmer</maintainer>
Expand Down
5 changes: 5 additions & 0 deletions impedance_controller/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Changelog for package impedance_controller

## 0.4.0 (2025-08-01)

- Implements an impedance controller for underwater vehicle control
Loading
Loading