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

the acc of last trajectory point in FollowJointTrajectory is not zero

asked 2021-06-23 05:22:05 -0500

xibeisiber gravatar image

Hi, all, I'm using MoveIt to plan a trajectory to reach certain. The trajectory is sent via FollowJointTrajectory action. I intend to receive the goal in FollowJointTrajectory and interpolate between the traj points in follow_joint_trajectory/goal using quintic spline, then send these points to motor.

But I found the acceleration of the last trajectory point is not zero, while the velocity is zero, the joint position is desired position. I don't know why the last acc is not zero. This would cause oscillation after this point.

Thanks for any help!

edit retag flag offensive close merge delete

Comments

I'd suggest to check whether MoveIt master version (or anything newer than Kinetic) has this problem.

gvdhoorn gravatar image gvdhoorn  ( 2021-06-23 05:27:49 -0500 )edit

checked using the demo.launch in panda_moveit_config on ros noetic. The problem still exists.

xibeisiber gravatar image xibeisiber  ( 2021-06-23 23:52:07 -0500 )edit

This depends on the retiming algorithm you use (IPTP, TOTG, TOPPRA...). Did you try different ones? IIRC the ones that are open-source aren't jerk-limited.

fvd gravatar image fvd  ( 2021-06-24 00:37:27 -0500 )edit

TOPPRA

do we already have a MoveIt integration for that?

gvdhoorn gravatar image gvdhoorn  ( 2021-06-24 02:30:15 -0500 )edit

I tried to use AddIterativeSplineParameterization instead of the default AddTimeParameterization just now. seems it works. the acc of last point is 0.

I don't have TOPPRA currently.

Thanks very much@gvdhoorn@fvd

xibeisiber gravatar image xibeisiber  ( 2021-06-24 02:41:30 -0500 )edit

There's no MoveIt integration for TOPPRA yet. I'll post an answer.

fvd gravatar image fvd  ( 2021-06-24 03:06:37 -0500 )edit

BTW: Is there any retiming algorithm that can consider the max jerk? The trajectory given by "AddIterativeSplineParameterization" has a large jerk.

xibeisiber gravatar image xibeisiber  ( 2021-06-26 00:02:45 -0500 )edit

I don't know about open-source ones, but there are at least some commercial options.

fvd gravatar image fvd  ( 2021-06-26 04:36:27 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-06-24 03:07:51 -0500

fvd gravatar image

This a function of the time parameterization algorithm that you use. This tutorial describes how to apply different time parameterization methods to your plans manually. The default time parametrization is added by the AddTimeParameterization planning adapter (add_time_parametrization.cpp), which you can replace with the AddTimeOptimalParameterization or AddIterativeSplineParameterization in your moveit_config's launch files.

Pull requests to add new methods such as TOPPRA are very welcome. A recent discussion on Github is here.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2021-06-23 05:22:05 -0500

Seen: 176 times

Last updated: Jun 24 '21