Modified rne algorithm

209 views
Skip to first unread message

Hancheol Choi

unread,
Sep 25, 2018, 4:54:32 AM9/25/18
to Robotics & Machine Vision Toolboxes
Sometimes, we need to computed Coriolis matrix separated from velocity term.

M(q)*qdd + C(q,qd)*qd + g(q) = tau

But, we can only get vector c(q,qd) ( = C(q,qd)*qd ) in rne algorithm.
Of course, we can use symbolic method (coriolis function) already implemented in Robotics Toolbox.

I found a paper solves this problem effectively.

Alessandro De Luca, 2009, A Modified Newton-Euler Method for Dynamic Computations in Robot Fault Detection and Control.

In this paper, two algorithms want to get Coriolis matrix separately; passivity-control (which motivated me to start this) and momentum observer (used for collision detection)

This algorithm is simple.

Normal rne needs 3 inputs, q, qd, qdd, but modified rne needs 4 inputs q, qd, qda, qdd.

Via this algorithm we compute like this.

M(q)*qdd + C(q,qd)*qda + g(q) = rne_modified(q, qd, qda, qdd)

I attached two files modifying original rne.

I already finished testing this algorithm with passivity-control in my own code.

But, I don't know how to integrate these code in robotics toolbox.

I met error like this.

'rne_modifed_dh' is not defined in 'SerialLink' type.

Should I include class methods somewhere?

If you give some tips about including new methods in SerialLink class, I can proceed to integrate modified rne methtod.

Thank you!
rne_modified_dh.m
rne_modified_mdh.m

Erik van Oene

unread,
Sep 25, 2018, 9:11:58 AM9/25/18
to Robotics & Machine Vision Toolboxes
You are correct. The function should be correctly integrated in the SerialLink class before it is recognized as an method.

I would suggest to use the current RNE function as an example. It should be located in de @SerialLink folder where you should put you function as well.

Erik

Hancheol Choi

unread,
Sep 25, 2018, 6:22:14 PM9/25/18
to Robotics & Machine Vision Toolboxes
Thank you. I could finish test putting my code in SerialLink folder.

I made additional three files rne_modified, rne_modified_dh, rne_modified_mdh .

And test code is test_modified_rne_dh, test_modified_rne_mdh.

How can I contribute or pull-request this code to robotics toolbox?

2018년 9월 25일 화요일 오후 10시 11분 58초 UTC+9, Erik van Oene 님의 말:
rne_modified.m
rne_modified_dh.m
rne_modified_mdh.m
test_modified_rne_dh.m
test_modified_rne_mdh.m

Peter Corke

unread,
Oct 27, 2018, 8:36:25 PM10/27/18
to Robotics & Machine Vision Toolboxes
The coriolis() method gives you the matrix, not a vector.  Why can't you use that?

최한철

unread,
Oct 27, 2018, 10:01:11 PM10/27/18
to robotics...@googlegroups.com
Of course, I can use coriolis() method, but it is computationally slow as you also mentioned in the comment of coriolis method.
It needs N^2/2 invocations of RNE. But modified one needs N+1 invocations of modified RNE.
And, of course, if we use coriolis() function only for simulation; no real-time consideration, it doesn't matter at all. We can just wait to be computed..
But I think most of control engineers are using this toolbox to apply their algorithm in the real-time application after simulation.
I just point out this coriolis() method could not be a good reference that can be used in the 1kHz real-time application.

2018년 10월 28일 (일) 오전 9:36, Peter Corke <peter....@gmail.com>님이 작성:
--
You received this message because you are subscribed to a topic in the Google Groups "Robotics & Machine Vision Toolboxes" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/robotics-tool-box/7J8aEsmBl3s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to robotics-tool-...@googlegroups.com.
To post to this group, send email to robotics...@googlegroups.com.
Visit this group at https://groups.google.com/group/robotics-tool-box.
For more options, visit https://groups.google.com/d/optout.

Peter Corke

unread,
Oct 28, 2018, 1:57:17 AM10/28/18
to Robotics & Machine Vision Toolboxes
Getting MATLAB code to run at 1kHz is going to be challenging anyway, MATLAB Coder won't compile RTB classes.

I'm glad you got it working, but for now I don't think it's a high priority to include into the toolbox.

peter
To unsubscribe from this group and all its topics, send an email to robotics-tool-box+unsubscribe@googlegroups.com.
To post to this group, send email to robotics-tool-box@googlegroups.com.

최한철

unread,
Oct 28, 2018, 2:35:35 AM10/28/18
to robotics...@googlegroups.com
Ok, i also agree with you. it's not a high priority.
Anyway, thank you for listening to my opinion~

2018년 10월 28일 (일) 오후 2:57, Peter Corke <peter....@gmail.com>님이 작성:
To unsubscribe from this group and all its topics, send an email to robotics-tool-...@googlegroups.com.
To post to this group, send email to robotics...@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Robotics & Machine Vision Toolboxes" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/robotics-tool-box/7J8aEsmBl3s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to robotics-tool-...@googlegroups.com.
To post to this group, send email to robotics...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages