Message for cartesian space trajectory

278 views
Skip to first unread message

Antoine Rennuit

unread,
Nov 7, 2014, 7:38:12 AM11/7/14
to moveit...@googlegroups.com

Hi all,

I need to describe a cartesian trajectory using messages. This trajectory description should contain:

  • a reference frame
  • an array of waypoints

and each waypoint should contain:

  • a time
  • a cartesian position (i.e. a transform or say a frame)
  • a cartesian velocity
  • a cartesian acceleration

The closest I could find in MoveIt is moveit_msgs/RobotTrajectory, but this describes configuration space, not the cartesian space. In common_msgs, I have stumbled accross:

  • trajectory_msgs/MultiDOFJointTrajectory: which does what I want but for (multiple) joints, I could use it for my case but this would be kind of a hack as this is supposed to describe joints, no?
  • nav_msgs/Path: only includes positions (no speed, nor acceleration)

Should I use any of the above messages? Another message not mentioned in my mail? Or a custom message?

Thanks,

Antoine.

Moises Estrada

unread,
Nov 7, 2014, 12:26:04 PM11/7/14
to moveit...@googlegroups.com
Hi,

I use std::vector<geometry_msgs::Pose> waypoints to create my Cartesian trajectories, however it does not specify information about velocity or acceleration.

Then I use: group.computeCartesianPath(waypoints,
                                               0.05,  // eef_step
                                               0.0,   // jump_threshold
                                               trajectory);

To create the trajectory. However in my case the trajectory is incomplete as it does not contain time, velocity nor acceleration. So I use this to add it:

  // Adding time parametrization to the "trajectory"
  robot_trajectory::RobotTrajectory rt(group.getCurrentState()->getRobotModel(), "arm_gp");
  rt.setRobotTrajectoryMsg(*group.getCurrentState(), trajectory);
  trajectory_processing::IterativeParabolicTimeParameterization iptp;
  bool success = iptp.computeTimeStamps(rt);
  ROS_INFO("Computed time stamp %s",success?"SUCCEDED":"FAILED");
  rt.getRobotTrajectoryMsg(trajectory);

No I have the my trajectory well defined.

Hope that works out for you.

Moises.

Jonathan Bohren

unread,
Nov 7, 2014, 4:44:32 PM11/7/14
to Moises Estrada, moveit...@googlegroups.com

There were a bunch of discussions about standardizing a Cartesian trajectory message specification about a year ago. If you're interested in restarting the conversion it would definitely benefit the community.

Check out the thread here:


https://groups.google.com/forum/m/#!forum/ros-sig-robot-control

-j

On Fri, Nov 7, 2014, 12:26 Moises Estrada <moi...@gmail.com> wrote:

Hi,

I use std::vector<geometry_msgs::Pose> waypoints to create my Cartesian trajectories, however it does not specify information about velocity or acceleration.

Then I use: group.computeCartesianPath(waypoints,
                                               0.05,  // eef_step
                                               0.0,   // jump_threshold
                                               trajectory);

To create the trajectory. However in my case the trajectory is incomplete as it does not contain time, velocity nor acceleration. So I use this to add it:

  // Adding time parametrization to the "trajectory"
  robot_trajectory::RobotTrajectory rt(group.getCurrentState()->getRobotModel(), "arm_gp");
  rt.setRobotTrajectoryMsg(*group.getCurrentState(), trajectory);
  trajectory_processing::IterativeParabolicTimeParameterization iptp;
  bool success = iptp.computeTimeStamps(rt);
  ROS_INFO("Computed time stamp %s",success?"SUCCEDED":"FAILED");
  rt.getRobotTrajectoryMsg(trajectory);

No I have the my trajectory well defined.

Hope that works out for you.

Moises.

On 11/07/2014 04:38 AM, Antoine Rennuit wrote:

Hi all,

I need to describe a cartesian trajectory using messages. This trajectory description should contain:

a reference framean array of waypoints

and each waypoint should contain:

a timea cartesian position (i.e. a transform or say a frame)a cartesian velocitya cartesian acceleration

The closest I could find in MoveIt is moveit_msgs/RobotTrajectory, but this describes configuration space, not the cartesian space. In common_msgs, I have stumbled accross:

trajectory_msgs/MultiDOFJointTrajectory: which does what I want but for (multiple) joints, I could use it for my case but this would be kind of a hack as this is supposed to describe joints, no?nav_msgs/Path: only includes positions (no speed, nor acceleration)

Shaun Edwards

unread,
Nov 8, 2014, 3:37:17 PM11/8/14
to Jonathan Bohren, Moises Estrada, moveit-users
All,
  
We are actively developing a library called Descartes for cartesian path planning.  A high level description can be found here.  I think this library may address Antoine's needs.  It certainly fills in some gaps that exist in the current Moveit architecture when it comes to cartesian paths.

Our current focus is on developing the underlying library.  Our current use case are industrial (painting and machining), but we are interested to hear other's use cases as well.

Once we have nailed down the library we intend on addressing the ROS message structure.  We'd like to invite the community to participate in both the library development and certainly the ROS message discussion.

Our time line is to finish up the first library implementation by early 2015, and then address the ROS API side thereafter.    
If anybody is interested in learning more, please don't hesitate to email me directly.

-Shaun

Antoine Rennuit

unread,
Nov 10, 2014, 5:18:06 AM11/10/14
to moveit...@googlegroups.com
@Moises: good to start with, as a workaround. Thanks ;)

Antoine Rennuit

unread,
Nov 10, 2014, 5:43:57 AM11/10/14
to moveit...@googlegroups.com, jonatha...@gmail.com, moi...@gmail.com
@Jonathan, Shaun:

Hi guys,

And thanks for your respective relevant inputs. As far as understand rep-I0003 is a superset of the 2013 API review. Shaun, you were in the initial discussions for the API review (back in 2010). Did you somehow relied on the review to go forward on the REP?

Antoine.
Reply all
Reply to author
Forward
0 new messages