ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

ros_canopen driver for schunk_lwa4p does not execute trajectory

asked 2015-02-26 11:12:21 -0500

Marcel Usai gravatar image

Hi,

I want to move my schunk lwa4p arm. I am using ros_canopen and schunk_robots, as well as a self-written action client to interact with the joint_trajectory_controller.

My goal requests seem to arrive at the action server, so there should be no communication error. I suggest, there is something wrong with my message formatting.

I have tried several things:

First: single waypoint, only fill in desired joint positions and stamp header with ros::Time::now(). Driver node shows a warning:

[ WARN] [1424969414.252450021]: Dropping all 1 trajectory point(s), as they occur before the current time.
Last point is 0.008s in the past.

Then, same setting, but no manual time stamp:

[ WARN] [1424969347.854240213]: Dropping all 1 trajectory point(s), as they occur before the current time.
Last point is 0.000s in the past.

Why is the trajectory not executed when the last waypoint is not in the past and is not executed when it lies in the past? Where should my waypoint lie? When I change the time stamp to be ros::Time::now() + ros::Duration(0.01), the warning does not show but the trajectory is not executed anyway.

I thought, maybe it has to do with the time_from_start parameter set in the trajectory_msgs::JointTrajectoryPoint message for each waypoint. But this parameter seems to have no influence in my case.

When I send a message containing multiple waypoints, I get an error:

[ERROR] [1424969209.710584142]: Trajectory message contains waypoints that are not strictly increasing in time.

Could somebody please tell me, what I am doing wrong? I think, I am missing some detail but have no idea, what. Thank you in advance, Marcel

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
0

answered 2015-06-22 09:35:46 -0500

Mathias Lüdtke gravatar image

ros_canopen does not execute the trajectory, it just forwards commands from ros_control to CANopen hardware.

The trajectory controller (from ros_controllers) will try to reach/pass along each trajectory point at the given time from the trajectory start. So you should specify a valid duration for it with respect to the maximum joint speed. The exact behaviour is described in detail here: http://wiki.ros.org/joint_trajectory_...

edit flag offensive delete link more

Comments

The key was the valid duration for it with respect to the maximum joint speed

Marcel Usai gravatar image Marcel Usai  ( 2015-06-25 05:49:16 -0500 )edit
1

answered 2015-03-12 10:01:16 -0500

Marcel Usai gravatar image

updated 2015-06-25 05:45:03 -0500

Figured it out:

First time_from_start parameter must be >= 0.05, then the controller accepts my trajectories.

edit flag offensive delete link more

Comments

I am also working on an action client to interact with the joint_trajectory_controller of a schunk lwa4p arm. Could you send me your client self-written code? jhonytavares@yahoo.com.br Thank you.

Jhony Ferreira gravatar image Jhony Ferreira  ( 2016-10-13 14:29:41 -0500 )edit

Where do you have trouble? The Simple Action Client tutorial should be sufficient to make it run.

Marcel Usai gravatar image Marcel Usai  ( 2016-10-17 04:17:16 -0500 )edit

Question Tools

4 followers

Stats

Asked: 2015-02-26 11:12:21 -0500

Seen: 1,136 times

Last updated: Jun 25 '15