Robotics StackExchange | Archived questions

Trajectory filter computation time

Dear All,

I'm trying to create a package for controlling industrial robots on a desktop workspace.

Currently, I'm modifying planningenvironment and movearmwarehouse for my work. Everything works as expected except the trajectoryfilter_server.

From my experiment, if I input a small displacement planned path (2- 3 points) to the filter server (e.g. end effector was commanded to move 1 - 2 cm.) the filter server will not finish the computation until timeout. The filter, however, works fine with large displacement target (e.g > 5 cm)

Filter name: CubicSplineShortCutterFilterJointTrajectoryWithConstraints

I would like to ask if anyone has experienced this problem? Any suggestion will be very thankful.

If any clarification is needed please let me know.

ROS version Fuerte on Ubuntu 12.04

Update: I added the following check to my code to

if(filter_req.trajectory.points.size() < 10)
{
  ROS_INFO_THROTTLE(1.0, "Hacked for short path");
  filter_req.allowed_time = ros::Duration(0.01);
}
else
  filter_req.allowed_time = ros::Duration(0.1);

Asked by Mahisorn on 2012-09-09 19:04:11 UTC

Comments

i also find this problem. the trajectory_filter_server will always use up all the allowed_time even the trajectory to be filtered is very simple.

Asked by yangyangcv on 2012-11-04 02:28:19 UTC

Filtering will always have the duration specified in the trajectory_filter_allowed_time parameter, regardless of the trajectory length or complexity (at least the filter you are using). In fact, the doc does not state that this is a timeout.

Asked by Adolfo Rodriguez T on 2012-11-04 23:58:43 UTC

...although I have to confess that it did strike me the first time that it was not an upper time bound, but rather a fixed duration that is always used.

Asked by Adolfo Rodriguez T on 2012-11-05 00:00:48 UTC

Answers