-
Notifications
You must be signed in to change notification settings - Fork 74
Feature/joint wrench msgs #221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 7 commits
003f9b2
2ddf8a0
d826b89
f1ea3b4
7b5efc6
4ecc473
a365fdf
8efa4e5
d41b7b2
d374e54
c80f747
635fc77
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# The joint trajectory to follow | ||
control_msgs/JointWrenchTrajectory trajectory | ||
|
||
# Tolerances for the trajectory. If the measured joint values fall | ||
# outside the tolerances the trajectory goal is aborted. Any | ||
# tolerances that are not specified (by being omitted or set to 0) are | ||
# set to the defaults for the action server (often taken from the | ||
# parameter server). | ||
|
||
# Tolerances applied to the joints as the trajectory is executed. If | ||
# violated, the goal aborts with error_code set to | ||
# PATH_TOLERANCE_VIOLATED. | ||
control_msgs/JointTolerance[] path_tolerance | ||
|
||
# To report success, the joints must be within goal_tolerance of the | ||
# final trajectory value. The goal must be achieved by time the | ||
# trajectory ends plus goal_time_tolerance. (goal_time_tolerance | ||
# allows some leeway in time, so that the trajectory goal can still | ||
# succeed even if the joints reach the goal some time after the | ||
# precise end time of the trajectory). | ||
# | ||
# If the joints are not within goal_tolerance after "trajectory finish | ||
# time" + goal_time_tolerance, the goal aborts with error_code set to | ||
# GOAL_TOLERANCE_VIOLATED | ||
control_msgs/JointTolerance[] goal_tolerance | ||
builtin_interfaces/Duration goal_time_tolerance | ||
|
||
--- | ||
int32 error_code | ||
int32 SUCCESSFUL = 0 | ||
int32 INVALID_GOAL = -1 | ||
int32 INVALID_JOINTS = -2 | ||
int32 OLD_HEADER_TIMESTAMP = -3 | ||
int32 PATH_TOLERANCE_VIOLATED = -4 | ||
int32 GOAL_TOLERANCE_VIOLATED = -5 | ||
int32 TRAJECTORY_ABORTED = -6 | ||
|
||
# Human readable description of the error code. Contains complementary | ||
# information that is especially useful when execution fails, for instance: | ||
# - INVALID_GOAL: The reason for the invalid goal (e.g., the requested | ||
# trajectory requires a command that differ significantly from the | ||
# robot's current state). | ||
# - INVALID_JOINTS: The mismatch between the expected controller joints | ||
# and those provided in the goal. | ||
# - PATH_TOLERANCE_VIOLATED and GOAL_TOLERANCE_VIOLATED: Which joint | ||
# violated which tolerance, and by how much. | ||
string error_string | ||
|
||
--- | ||
std_msgs/Header header | ||
string[] joint_names | ||
control_msgs/JointWrenchTrajectoryPoint desired | ||
control_msgs/JointWrenchTrajectoryPoint actual | ||
control_msgs/JointWrenchTrajectoryPoint error | ||
my-rice marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# The header is used to specify the reference time for the trajectory durations | ||
std_msgs/Header header | ||
|
||
# The names of the active joints in each trajectory point. These names are | ||
# ordered and must correspond to the values in each trajectory point. | ||
string[] joint_names | ||
|
||
# Array of trajectory points, which describe the joint positions, velocities, | ||
# accelerations and/or efforts, and task space wrenches at each time point. | ||
control_msgs/JointWrenchTrajectoryPoint[] points | ||
saikishor marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change | ||||||
---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,7 @@ | ||||||||
# A joint-wrench trajectory point defines joint positions, joint velocities, joint accelerations, joint efforts, and a task space wrench, typically used by controllers. | ||||||||
# Note: The time_from_start field is included in the joint trajectory point. | ||||||||
my-rice marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||
trajectory_msgs/JointTrajectoryPoint point | ||||||||
|
||||||||
# The wrench is expressed in this reference frame. | ||||||||
string wrench_frame | ||||||||
geometry_msgs/Wrench wrench | ||||||||
Comment on lines
+6
to
+7
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we use the WrenchStamped here instead? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree with you, but I'm not sure about separating it as a Any other proposals? Or thoughts? @my-rice @christophfroehlich There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I understand your point, but would be happy with the current approach as well. To avoid duplicate header, we could add another layer with a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Introducing a new message like There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, I wrote an item in the 'New Business' section of the agenda. Feel free to revise it or move it to a different section. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @saikishor as we discussed in yesterday’s PMC meeting, the proposed solution is to introduce the
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please add a description to TRAJECTORY_ABORTED (this is new compared to FollowTrajectory action)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we also add PREEMPTED or it doesn't make sense?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added
TRAJECTORY_ABORTED
as a general message to cover most (if not all) possible reasons a trajectory might be aborted. The idea is that the specific reason can go in theerror_string
field.Does that sound reasonable to you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aborted is when the goal is aborted by the controller itself right?
Is preempted somehow handled in ROS 2 actions?. I'm not sure about it. If it is handled. All good
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes,
TRAJECTORY_ABORTED
indicates that the trajectory was aborted by the controller.Regarding preemption in ROS 2 actions: from what I’ve seen, existing action messages don’t explicitly handle preemption using an error code. This is the first message to introduce an error code like
TRAJECTORY_ABORTED
as a general indicator of an aborted trajectory. That said, new controllers can choose to use this error code if other codes don’t suit their case.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok 👍