-
ARE seems to be quite inconsistent in the reaction times. The time for a command to start being executed can vary quite a lot. I understand that difference commands have different processing times etc, but often the waiting time for the same command (e.g. simple look at point command) is quite varied. Is there an easy fix for that? And regarding my code, is it a good idea to replace it with a normal port and not an RPC port, at least for the command port? My point is that I try to get consistent reaction times for my actions. |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments
-
The commits done to the Cartesian Controller on Oct 21, 2014 come to my mind that can somehow explain the changes in However, we are using If you replace the rpc communication with a send-and-forget command you won't be notified by the end-of-action event. If this is viable depends mainly on your application. |
Beta Was this translation helpful? Give feedback.
-
The config file was the one in the repository. The sequence of commands on which I test this a simple: On the tests above I am using the stock ARE. Having said that, the software version is from somewhere in December 2014, so it doesn't include the bug fix. On my own stuff, I am also using a modified ARE, but the only difference is that has additional actions. I was thinking of replacing the RPC ports with normal ports and having an internal bool variable for checking if a command has finished (i.e., not having to wait though the whole RPC command->action-> action done-> RPC reply cycle, in order to shave off some time. |
Beta Was this translation helpful? Give feedback.
-
Well, the fix is from October 2014 hence I'd say it's in, right? Concerning the blocking queries sent to the I'll set up tests to experiment on the timing problem. Stay tuned. |
Beta Was this translation helpful? Give feedback.
-
@pattacini, sorry, my mistyping, It does include the October 2014 fix. I had in my mind that it doesn't include the fix you mentioned for iKinGazeCtrl (issue #12) |
Beta Was this translation helpful? Give feedback.
-
For testing, I've gone through the following steps:
if(!motorThr->point(command))
{
reply.addVocab(NACK);
break;
} with double t0=Time::now();
if(!motorThr->point(command))
{
reply.addVocab(NACK);
break;
}
double t1=Time::now();
yDebug("---------- point = %g [s]",t1-t0);
They seem to be quite consistent. |
Beta Was this translation helpful? Give feedback.
-
@kt10aan: bugs asides, this discussion makes me realize that experiments with HRI can be a nice scenario in which to evaluate the new extensions that @apaikan and @drdanz have introduced in YARP to improve determinism in scheduling and communication. |
Beta Was this translation helpful? Give feedback.
-
Closing the issue. |
Beta Was this translation helpful? Give feedback.
For testing, I've gone through the following steps:
ARE
is hacked at this code line, by replacingwith
ARE
is launched with this context.ARE
10 times in a row with the commandpoint (-0.35 0.0 -0.1) left
sent to/ARE/cmd:io
port, getting the timing reported hereafter:They seem to …