NEXTAGE Open - stopping a motion during its execution

83 views
Skip to first unread message

Damien Sallé

unread,
May 8, 2015, 1:54:56 PM5/8/15
to rtm-ros-...@googlegroups.com
Hi all,
In Tecnalia, we are using both Hiro and Nextage Open robots with the open source controller.

We need to be able to pause or interrupt a motion during its execution. The motion is executed using either moveit or setTargetPose().

As far as I understand, both are using a lower-level joint interpolation.

Is there a way to stop/interrupt this interpolation?

The best would be to be able to:
1. Pause the current trajectory and continue it later on
2. Stop and delete the current trajectory to send a new one...

Any idea about how to do this?
Does it need changes in the ros bridge? in openRTM components?

Thanks a lot for your feedback.

Damien Salle
Tecnalia


Kei Okada

unread,
May 8, 2015, 10:18:40 PM5/8/15
to rtm-ros-robotics
Due to many similar request, we already have proposal for this feature
in https://github.com/fkanehiro/hrpsys-base/pull/573 (sorry that we
discussed in japan, but the code is C++/python so you can read it)
--
◉ Kei Okada
> --
> You received this message because you are subscribed to the Google Groups
> "rtm-ros-robotics" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rtm-ros-roboti...@googlegroups.com.
> To post to this group, send email to rtm-ros-...@googlegroups.com.
> Visit this group at http://groups.google.com/group/rtm-ros-robotics.
> For more options, visit https://groups.google.com/d/optout.

Damien Sallé

unread,
May 9, 2015, 5:10:42 AM5/9/15
to rtm-ros-...@googlegroups.com
Thank you Kei for your rapid answer.

Some more need for clarification:
- This is still a feature in development? or is it already integrated (I see a pull request on th git...)
- This will update both the RTC openRTM component and the hrpsys library, right?
- So we will be able to call this function through the python interface, I understand.
- BUT what we are using is more in cartesian space: SetTargetPose(). Will SetTargetPose() now implement the setJointAnglesSequence() in a lower level?
- Will you add a function such as InterruptMotion() to interrupt all motions?
- How does this affects the MoveIt interface? Will you also implement the MoveIt trajectory execution with setJointAnglesSequence()?
- And will you then implement the MoveIT move_group.cancel() function in the ros bridge?

Sorry for so many questions, but I would like to understand if this is something that you will implement at JSK or I have also to implement on our side...

Thanks a lot for your support.

Damien

Isaac I.Y. Saito

unread,
May 11, 2015, 12:23:55 PM5/11/15
to rtm-ros-...@googlegroups.com
> - This is still a feature in development? or is it already integrated (I see a pull request on th git...)

Developed, but not yet integrated.

> - This will update both the RTC openRTM component and the hrpsys library, right?

I do not know what you meant by "hrpsys library", but it updates RTC component.

> - So we will be able to call this function through the python interface, I understand.

Yes.

> - BUT what we are using is more in cartesian space: SetTargetPose(). Will SetTargetPose() now implement the setJointAnglesSequence() in a lower level?

No, `setTargetPose` uses old version of `setJointAnglesSequence`, and
once everyone confirms that the new version of
`setJointAngelsSequence` is stable, we'll rewrite setTargetpose using
new version. So you do not have to rewrite your code. Good point.

> - Will you add a function such as InterruptMotion() to interrupt all motions?

Looks like the developers have not decided yet, at this moment they
expect users send new trajectory and that override current target, so
if you send current position as a new target, then the robot stops.

> - How does this affects the MoveIt interface? Will you also implement the MoveIt trajectory execution with setJointAnglesSequence()?
> - And will you then implement the MoveIT move_group.cancel() function in the ros bridge?

That is related to hrpsys ros bridge, which uses old version of
setJointAnglesSequence and we'll also rewrite this using new version,
and also enable cancellation behavior of actionlib.

Cheers,
--Isaac, TORK

Kei Okada

unread,
May 12, 2015, 9:55:05 AM5/12/15
to rtm-ros-robotics
Thanks, Issac's comment is correct 
regarding InterruptMotion(), we have long discussion on https://github.com/fkanehiro/hrpsys-base/issues/215

just stop motion and (forget subsequent motion) is not so difficult,
if you wish to "interrupt" current motion and back to subsequent motion may difficult
if you use other features, such as impedance control and stop not only trajectory following but also stop impedance control may difficult.

what is your use case?


--
 Kei Okada

Message has been deleted

Damien Sallé

unread,
May 22, 2015, 4:12:56 AM5/22/15
to rtm-ros-...@googlegroups.com
Thanks Kei and Isaac.

I've just seen a Jenkins test validated for this issue... so I understand that it is going on the right track. Good work! :-)
Do you have an estimate of time when this feature should be available at the level of the ROS bridge and moveit? 
So that we can organize internally.

Also, respecting Kei's question on InterruptMotion() was only during trajectory execution: some function that by itself reads current position and sends the new sequencePlayer with the correct value to stop. 
I didn't have in mind compliant control because in Tecnalia we didn't install force sensors on the arms and thus cannnot use impedance control...
But in this scenario, I guess that I would agree that I would expect the robot to stop the trajectory motion while maintaing the compliance (in case of contact with human or even if working in contact with a moving object...) that would avoid any structural damage to the robot....

So in Tecnalia, our basic and most important need is quite "basic": stop a motion during its execution. So the new SequencePlayer (from what I understand) should do the job perfectly.

Damien


Kei Okada

unread,
May 24, 2015, 12:23:32 PM5/24/15
to rtm-ros-robotics
Hi,

good news : Isaac is working on canceling motion on ROS-Bridge side
and he'll be send PR soon.
bad news: since the largest uses of hrpsys is now truckling on DRC and
this type of new feature will not merged until the mid June.

Thanks for your patience
--
◉ Kei Okada

Kei Okada

unread,
Jul 9, 2015, 9:28:25 PM7/9/15
to rtm-ros-robotics
sorry for late, I think we have finished implementing "stopping motion during its execution" on latest release 315.6.0, which is now building on ros build firm and will be available shadow-fixed by tomorrow, 

We're working on ROS interface side but that's big change for joint trajectory action server from old sequencer to newer sequencer so, before merging that if you can confirm it is working correctly, that would be very helpful, so please try this: 

--
 Kei Okada

Reply all
Reply to author
Forward
0 new messages