|
From: Arndt T. <tw...@us...> - 2008-09-17 15:12:04
|
Hi Robert, Nice to hear that yars including the camera sensor is finally running on your system. Robert Märtin schrieb: > The camera sensor appears to work fine now. Unfortunately, there > appears to be an upper limit to the number of sensors & effectors > used. Apparently this limit stems from packet size constraints. This is correct. The communication protocol is documented in the Wiki (which unfortunately is down due to Sourceforge datacenter migration and which might take a couple of days to be back up). To minimize communication time all sensor and motor data is packed into one single UDP packet respectively. Out of my head the limits are calculated as follows: maxUDPPacketSize = 1024 Bytes, 4 Byte per Sensor/Motor value, minus overhead --> approx. 250 sensor and 250 motor values upper limit. This applies to EXTENDED_COMMUNICATION method because in STANDARD_COMMUNICATION mode additionaly the simulation structure is transmitted during handshake in one single packet which reduces the possible number of sensors/motors. In extended mode during handshake each sensor and motor is communicated in its own packet because it carries a name with it. EXTENDED_COMMUNICATION is up to know only implemented in the C++ client but changes should be easily portable to the Java Client. Up to now no one was working with this many sensor values, even people working with the camera sensor, but I think the communication protocol is easily extendible. I planned on adding some functionality to the protocol over the next couple of days anyhow so I will take a look at adding support for more (unlimited) sensors/motors. As soon as I know more I will let you know. > camera with too few pixels does not make a lot of sense, I'd like to > know whether there is a way to bypass this constraint. Cameras with up to 250 sensor values might already make a lot of sense but this of course depends on the task at hand ;-) Bypassing is possible by either using the EXTENDED_COMMUNICATION for up to 250 sensor values or by dynamic library control method and implementing your own communication with Matlab there, or by changing the communication protocol as explained above. Cheers, Arndt |