From: Radu B. R. <ve...@in...> - 2005-04-13 14:18:37
|
Hellos, Just wondering if the PTZ code is complete for the CMUcam2. While trying to use the basic... driver ( name "cmucam2" provides ["ptz:0" "blobfinder:0"] ... ) ...Player 1.6.2 reports: Parsing configuration file "cmucam.cfg" cmucam.cfg:6 warning: field [provides] has unused element 0 Using device table: ------------------------------------------------------------ 0 driver cmucam2 id 6665:blobfinder:0 ------------------------------------------------------------ listening on port 6665 Of course, if I remove ptz:0, the blobfinder works fine. So I'm assuming no PTZ yet. I browsed the code (also latest CVS), and I found the following in cmucam2.cc: // Outgoing laser fiducual interface memset(&this->ptz_id, 0, sizeof(this->ptz_id)); if (cf->ReadDeviceId(&(this->ptz_id), section, "provides", PLAYER_PTZ_CODE, -1, "laser") == 0) { if(this->AddInterface(this->ptz_id, PLAYER_ALL_MODE, sizeof(player_ptz_data_t), 0, 5, 5) != 0) { this->SetError(-1); return; } } Is the CMUcam2 or the PTZ, laser related? Sorry if this is a well known bug or if this has been answered before. I just checked the SF mailing lists and found nothing on the above subject. -- Yours sincerely, Radu Bogdan Rusu -- | Radu Bogdan 'veedee' Rusu | http://www.rbrusu.com | Javaclient for P/S/G | http://java-player.sf.net | The optimist sees a task in every problem. | The pessimist sees a problem in every task. |
From: Radu B. R. <ve...@in...> - 2005-04-20 16:33:00
|
Sorry, just re-sending the CMUcam2-PTZ e-mail in case you guys skipped it :) ...unintentionally, of course :D Thanks. Cheers, Radu. On Wed, Apr 13, 2005 at 05:18:43PM +0300, Radu Bogdan Rusu wrote: > > Hellos, > > Just wondering if the PTZ code is complete for the CMUcam2. While trying to > use the basic... > driver > ( > name "cmucam2" > provides ["ptz:0" "blobfinder:0"] > ... > ) > > ...Player 1.6.2 reports: > Parsing configuration file "cmucam.cfg" > cmucam.cfg:6 warning: field [provides] has unused element 0 > Using device table: > ------------------------------------------------------------ > 0 driver cmucam2 id 6665:blobfinder:0 > ------------------------------------------------------------ > listening on port 6665 > > Of course, if I remove ptz:0, the blobfinder works fine. So I'm assuming no > PTZ yet. I browsed the code (also latest CVS), and I found the following in > cmucam2.cc: > // Outgoing laser fiducual interface > memset(&this->ptz_id, 0, sizeof(this->ptz_id)); > if (cf->ReadDeviceId(&(this->ptz_id), section, "provides", > PLAYER_PTZ_CODE, -1, "laser") == 0) > { > if(this->AddInterface(this->ptz_id, PLAYER_ALL_MODE, > sizeof(player_ptz_data_t), 0, 5, 5) != 0) > { > this->SetError(-1); > return; > } > } > > Is the CMUcam2 or the PTZ, laser related? > > Sorry if this is a well known bug or if this has been answered before. I > just checked the SF mailing lists and found nothing on the above subject. > Yours sincerely, Radu Bogdan Rusu -- | Radu Bogdan 'veedee' Rusu | http://www.rbrusu.com | Javaclient for P/S/G | http://java-player.sf.net | The optimist sees a task in every problem. | The pessimist sees a problem in every task. |
From: Brian G. <ge...@ai...> - 2005-04-21 06:50:41
|
Radu Bogdan Rusu wrote: >>Just wondering if the PTZ code is complete for the CMUcam2. While trying to >>use the basic... Looks like a cut-n-paste bug from another driver. Try: driver ( name "cmucam2" provides ["blobfinder:0" "laser::ptz:0"] ) brian. |
From: Radu B. R. <ve...@in...> - 2005-04-21 20:10:39
|
Thanks Brian, that got the PTZ started. It seems that we got another bug though: Parsing configuration file "cmucam.cfg" Using device table: ------------------------------------------------------------ 0 driver cmucam2 id 6665:blobfinder:0 1 id 6665:ptz:0 ------------------------------------------------------------ listening on port 6665 ** Player [port 6665] client accepted from 127.0.0.1 on socket 5 ** player: driver.cc:254: virtual void Driver::PutCommand(player_device_id, void*, unsigned int, timeval*): Assertion en <= device->command_size' failed. Aborted ...whenever I attempt to set the PTZ values. I tried the client_libs/c++/test too, same results. device [ptz] index [0] subscribing (read) ... pass reading data (attempt 0) ... pass ptz: [0 0 45] writing data (attempt 0) ... pass reading data (attempt 1) ... fail recv on stx failed with error [Success] writing data (attempt 1) ... pass unsubscribing ... fail recv on stx failed with error [Success] disconnecting ... pass Thanks, Radu. On Wed, Apr 20, 2005 at 11:50:34PM -0700, Brian Gerkey wrote: > Radu Bogdan Rusu wrote: > > >>Just wondering if the PTZ code is complete for the CMUcam2. While trying > >>to > >>use the basic... > > Looks like a cut-n-paste bug from another driver. Try: > > driver > ( > name "cmucam2" > provides ["blobfinder:0" "laser::ptz:0"] > ) > > brian. Yours sincerely, Radu Bogdan Rusu -- | Radu Bogdan 'veedee' Rusu | http://www.rbrusu.com | Javaclient for P/S/G | http://java-player.sf.net | The optimist sees a task in every problem. | The pessimist sees a problem in every task. |
From: Brian G. <ge...@ai...> - 2005-04-22 00:09:10
|
Radu Bogdan Rusu wrote: > Thanks Brian, that got the PTZ started. Ok, good. I've fixed that bug in CVS, so you won't have to specify "laser::" any more. > It seems that we got another bug > though: > > Parsing configuration file "cmucam.cfg" > Using device table: > ------------------------------------------------------------ > 0 driver cmucam2 id 6665:blobfinder:0 > 1 id 6665:ptz:0 > ------------------------------------------------------------ > listening on port 6665 > ** Player [port 6665] client accepted from 127.0.0.1 on socket 5 ** > player: driver.cc:254: virtual void Driver::PutCommand(player_device_id, > void*, unsigned int, timeval*): Assertion en <= device->command_size' > failed. > Aborted Ok, that's because when the driver adds a ptz interface, it gives 0 (instead of sizeof(player_ptz_cmd_t)) for the size of its command buffer. That means it can't accept any commands. A simple enough bug to fix. Make the second call to AddInterface look like this: if(this->AddInterface(this->ptz_id, PLAYER_ALL_MODE, sizeof(player_ptz_data_t), sizeof(player_ptz_cmd_t), 5, 5) != 0) Sorry I don't have time to make a patch right now. I've made this fix in CVS. brian. |
From: Radu B. R. <ve...@in...> - 2005-04-24 18:03:16
Attachments:
cmucam2_tilt.patch
|
Okay, one final bug (let's hope). The CMUcam2 driver wasn't dealing with the tilt servo output at all. This fixes things though: + int tilt_position = 0; + + if(tilt_position != (short)ntohs((unsigned short)(command.tilt))) + { + tilt_position = (short)ntohs((unsigned short)(command.tilt)); + if( abs(tilt_position) <= 90 ) + set_servo_position(fd, 1, -1*tilt_position); // Tilt value must be negated. + } I don't have commit rights. Maybe somebody could commit this to the CVS repo? The patch is attached. Thanks. Cheers, Radu On Thu, Apr 21, 2005 at 05:09:03PM -0700, Brian Gerkey wrote: > Radu Bogdan Rusu wrote: > >Thanks Brian, that got the PTZ started. > > Ok, good. I've fixed that bug in CVS, so you won't have to specify > "laser::" any more. > > >It seems that we got another bug > >though: > > > >Parsing configuration file "cmucam.cfg" > >Using device table: > >------------------------------------------------------------ > >0 driver cmucam2 id 6665:blobfinder:0 > >1 id 6665:ptz:0 > >------------------------------------------------------------ > >listening on port 6665 > >** Player [port 6665] client accepted from 127.0.0.1 on socket 5 ** > >player: driver.cc:254: virtual void Driver::PutCommand(player_device_id, > >void*, unsigned int, timeval*): Assertion en <= device->command_size' > >failed. > >Aborted > > Ok, that's because when the driver adds a ptz interface, it gives 0 > (instead of sizeof(player_ptz_cmd_t)) for the size of its command > buffer. That means it can't accept any commands. A simple enough bug > to fix. Make the second call to AddInterface look like this: > if(this->AddInterface(this->ptz_id, PLAYER_ALL_MODE, > sizeof(player_ptz_data_t), > sizeof(player_ptz_cmd_t), 5, 5) != 0) > Sorry I don't have time to make a patch right now. I've made this fix > in CVS. > > brian. > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Playerstage-developers mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-developers -- Yours sincerely, Radu Bogdan Rusu -- | Radu Bogdan 'veedee' Rusu | http://www.rbrusu.com | PhD student/teaching assistant | Faculty of Automation & Computer Science @ UTCluj , Romania | The optimist sees a task in every problem. | The pessimist sees a problem in every task. |
From: Brian G. <ge...@ai...> - 2005-04-24 19:08:00
|
Radu Bogdan Rusu wrote: > Okay, one final bug (let's hope). The CMUcam2 driver wasn't dealing with the > tilt servo output at all. > > This fixes things though: > + int tilt_position = 0; > + > + if(tilt_position != (short)ntohs((unsigned short)(command.tilt))) > + { > + tilt_position = (short)ntohs((unsigned short)(command.tilt)); > + if( abs(tilt_position) <= 90 ) > + set_servo_position(fd, 1, -1*tilt_position); // Tilt value must be negated. > + } > > I don't have commit rights. Maybe somebody could commit this to the CVS > repo? The patch is attached. Thanks. Applied in CVS. Thanks for the patch. brian. -- Brian P. Gerkey ge...@ai... Stanford AI Lab http://ai.stanford.edu/~gerkey |