[Rock-dev] Rock Performances on Gumstix
Alexander Duda
Alexander.Duda at dfki.de
Wed Aug 1 20:46:59 CEST 2012
Am 01.08.2012 um 18:56 schrieb Chris Mueller:
> Hi,
>
> i've currently a very specific szenario using the Vizkit TaskInspector,
> where you could help me very much by sharing some of your performance
> experiences.
>
> I have currently a minimal rock autoproj setup on one of our gumstix
> system that starts by default
> an deployment via roby at startup. The deployment contains a
> camera_usb::Task using jpeg compression
> that captures images from a microsoft usb camera attached to the gumstix
> system.
>
> On that system 'orops' outputs that the task is running.
>
> I would like to open the current image frame from this task via
> TaskInspector through a wireless connection. It's possible to catch
> the TaskContext in rock-display, that is not unreachable. Unfortanetely,
> the TaskInspector has horrible problems to open the task contents
> (property, input- and output ports) and receiving samples from the
> ports. It has horrible lag of several minutes only to open the status
> for the task,
> its properties or its ports through the gui.
The current ruby implementation uses directly the remote task for all operations like each_port, each_property etc which are heavily used by the TaskInspector. If the network connection is bad you cannot use the TaskInspector so far. I am currently working on a ruby binding for a TaskContextProxy which will solve the freezing problem.
> And i always receive
> warnings continously of:
>
> Vizkit[WARN]: ReaderWriterProxy for port payloaditem_3_cam_emi.state:
> ignoring method read because port is not reachable.
> Vizkit[WARN]: ReaderWriterProxy for portPerformance issues /
> TaskInspector / Port not reachable payloaditem_3_cam_emi.frame: ignoring
> method read because port is not reachable.
> Vizkit[WARN]: ReaderWriterProxy for port Performance issues /
> TaskInspector / Port not reachablepayloaditem_3_cam_emi.frame_raw:
> ignoring method read because port is not reachable.
You are running into a connection timeout which is set to around 2 sec for rock-display.
>
> 'top' outputs for the gumstix the following performance values:
> 4976 root cpu 60.4 mem 10.9 18:59.56 payload_cameras (varies
> between 45.0 and 65.0)
> 4925 root cpu 24.6 mem 23.7 10:47.76 ruby1.9.1
> 4982 root cpu 7.0 mem 14.6 2:40.66 TELEMETRYPROVIDER
> Other processes varies between 0.0 and 1.0 for cpu and memory.
>
> For another hint: an open bash via ssh to that system seems to work
> flawlessly without any interrupts / lags.
>
> 'ping' executed during these steps outputs the following stats for the
> wireless connection (DFKI-LAB):
> avg 22.093 ms
> dev 11.393 ms
> min 9.22.093 ms
> max 66.864 ms
>
> Could it be the system is completely overstrained handling the camera
> process and is too slow for remote connections?
> Network latency seems to be okay on the first naive view.
There are a number of calls to read the hole interface therefore 22ms can be quite hight.
I guess you need more than 30 calls to get the hole camera interface.
>
> Unfortanetely, i can not test rock-display on that system itself,
> because we didn't install vizkit there for reducing compilation time.
start the camera and write a small script which is just connecting to the remote task and displaying the camera frame. This is the best you will get with your current setup.
camera = Orocos::TaskContext.get "camera"
Vizkit.display camera.frame
If you need more help, let me know.
Alex
>
> Chris
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
More information about the Rock-dev
mailing list