Ask Your Question
2

How do I disable execution_duration_monitoring ?

asked 2014-11-03 09:26:18 -0500

VictorLamoine gravatar image

updated 2017-01-12 07:46:26 -0500

I'm using the fanuc package for ROS-Industrial and when launching the moveit_planning_execution.launch I get the following error:

[ERROR] [1415027195.809289492]: Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 4.992567 seconds). Stopping trajectory.

The error is explained here. What I understand is that I have to add a line in one of the launch file, something like:

<param name="execution_duration_monitoring" value="false"/>

I tried 2 things without success:

trajectory_execution.launch.xml

  <!-- When determining the expected duration of a trajectory, this multiplicative factor is applied to get the allowed duration of execution -->
  <param name="allowed_execution_duration_scaling" value="1.2"/> <!-- default 1.2 -->
  <!-- Allow more than the expected execution time before triggering a trajectory cancel (applied after scaling) -->
  <param name="allowed_goal_duration_margin" value="0.5"/> <!-- default 0.5 -->
  <param name="execution_duration_monitoring" value="false"/>

And move_group.launch

<!-- Start the actual move_group node/action server -->
<node name="move_group" launch-prefix="$(arg launch_prefix)" pkg="moveit_ros_move_group" type="move_group" respawn="false" output="screen" args="$(arg command_args)">
<!-- Set the display variable, in case OpenGL code is used internally -->
<env name="DISPLAY" value="$(optenv DISPLAY :0)" />
<param name="allow_trajectory_execution" value="$(arg allow_trajectory_execution)"/>
<param name="max_safe_path_cost" value="$(arg max_safe_path_cost)"/>
<param name="jiggle_fraction" value="$(arg jiggle_fraction)" />
<param name="execution_duration_monitoring" value="false" />

What am I doing wrong?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2014-11-06 11:38:07 -0500

jowave gravatar image

updated 2014-11-12 05:34:59 -0500

From looking at the code, i think the parameter is in a sub namespace "trajectory_execution/". (Found in trajectory_execution_manager.cpp line 57)

The following should work in trajectory_execution.launch.xml

<param name="trajectory_execution/execution_duration_monitoring" value="false" />

Instead of disabling execution duration monitoring you can increase the time for your manipulator.

<param name="allowed_execution_duration_scaling" value="3.0"/>

Though, this param seems to exist in both namespaces?!

edit flag offensive delete link more

Comments

How did you find that the parameter is in a sub namespace?

VictorLamoine gravatar imageVictorLamoine ( 2014-11-12 02:39:01 -0500 )edit

the dynamic_reconfigure member is created with ros::NodeHandle("~/trajectory_execution")

jowave gravatar imagejowave ( 2014-11-12 05:35:25 -0500 )edit
2

answered 2016-06-06 16:03:44 -0500

MahdiehNejati gravatar image

We had the same issue with controlling a Kinova MICO arm using MoveIt!. Placing the following lines in our launch file seems to have fixed all issues related to controller time-out as well as goal tolerances.

<param name="move_group/trajectory_execution/allowed_execution_duration_scaling" value="4.0" />
<param name="move_group/trajectory_execution/execution_duration_monitoring" value="false" />

We found this by looking at the namespaces in rqt_reconfigure for move_group -> trajectory_execution.

Hope this helps!

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2014-11-03 09:15:19 -0500

Seen: 3,948 times

Last updated: Jan 12 '17