You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
(33) |
Jun
(5) |
Jul
(13) |
Aug
(28) |
Sep
(6) |
Oct
(3) |
Nov
(20) |
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(1) |
Feb
(17) |
Mar
(35) |
Apr
(1) |
May
(4) |
Jun
(8) |
Jul
(5) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2007 |
Jan
(6) |
Feb
(6) |
Mar
|
Apr
(4) |
May
(1) |
Jun
(1) |
Jul
|
Aug
(9) |
Sep
(3) |
Oct
(2) |
Nov
(4) |
Dec
(9) |
2008 |
Jan
|
Feb
(7) |
Mar
(2) |
Apr
(14) |
May
(9) |
Jun
(1) |
Jul
(2) |
Aug
|
Sep
(1) |
Oct
|
Nov
(8) |
Dec
(2) |
2009 |
Jan
(3) |
Feb
(5) |
Mar
(4) |
Apr
(13) |
May
|
Jun
(1) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2010 |
Jan
(3) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(3) |
Oct
|
Nov
(8) |
Dec
(4) |
2011 |
Jan
(3) |
Feb
(4) |
Mar
(7) |
Apr
(2) |
May
(7) |
Jun
(1) |
Jul
|
Aug
|
Sep
(10) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Radu B. R. <ru...@cs...> - 2006-06-29 17:21:01
|
Hi Shawn, You haven't replied to my last e-mail, and although I said I will reply with a longer e-mail (I just re-read my email), I completely forgot about it. So please accept my apologies in that sense. :) I started to work on Javaclient2 again today, to bring it up to date, fix some bugs, and so on, and ran over your e-mail again. Here are my "2 cents" on the matter: Shawn Lavelle wrote: > The problem we've encountered here pertains to requesting > interfaces. At the end of this note I included a copy of > requestGripperInterface for reference. My first question is, what > version of Java this is compiled against and why are generics not used, > or a general requestInterface where you pass in the interface you want? > Since all these functions are identical save for > "PLAYER_<interface>_CODE" or such they could easily be combined into one > method. First, I don't know if that is appropriate, since we want to keep a certain compatibility with the C and C++ clients, which both use the playerc_X_create(client, index)/XProxy cp(client, index) format. But, you're right, since the code is somehow redundant, I included the following in PlayerClient.java: /** * Request a generic device. Don't forget to cast the result to the * appropriate interface type. * @param type the interface type * @param index the device index * @param access access mode * @return a generic device if successful, null otherwise */ public PlayerDevice requestInterface (int type, int index, int access) { requestDeviceAccess (type, index, access); if (isReadyRequestDevice ()) return newpd; else return null; } So, on the user side, this: ... CameraInterface cam = robot.requestInterfaceCamera (0, PlayerConstants.PLAYER_OPEN_MODE); can be replaced by this: ... CameraInterface cam = (CameraInterface)robot.requestInterface(PlayerConstants.PLAYER_CAMERA_CODE, 0, PlayerConstants.PLAYER_OPEN_MODE); Both versions will be available from now, so the user can choose whatever (s)he wants. So thanks for pointing this one out. :) > > The second question is more of a bug and also is of more > consequence. Similar to the referenced post concerning reading, the > two methods requestDeviceAccess and isReadyRequestDevice come > immediately after each other. However, there is no guarantee that stage > has returned the device yet, especially in a resource limited platform. > This call then returns null. Let's assume, for a minute, that the > programmer decides to assume things have succeeded and a request is then > made for a different device. It executes the requestDeviceAccess method > but before isReadyRequestDevice is called, stage returns the first > interface while the 2nd is now delayed. isReadyRequestDevice now > returns true but the wrong interface is stored in newpd. With how this > is coded, the 2nd requestInterface will attempt to cast newpd as the 2nd > interface. This will throw the ClassCastException as newpd contains the > first interface. Okay, I haven't manage to replicate this one, so I might need some help from you (or anyone else who is willing to test and report). But first, let me explain how the mechanism of subscribing to a device works: - client issues a requestInterfaceX () - requestInterfaceX () calls requestDeviceAccess () with the appropriate interface:index and access types - requestDeviceAccess () packs the actual request in XDR-format and it sends it to the Player server. After that, it waits in a loop until the Player replies with an ACK (if NACK then an exception will be generated), by read ()-ing continuously and checking for the message/submessage type. - read() does a bunch of stuff (BTW: some checks like if the header size is smaller than X could be added to prevent using corrupt packets), but when it encounters ACK it checks for the subtype, and if PLAYER_REQ_DEV is found, it will actually add the device to the list by calling requestSatisfy () - in requestSatisfy () the global newpd object gets instantiated with the correct type and after that, in read() readyRequestDevice is set to true - back to the requestInterfaceX (), readyRequestDevice is checked and then the "casted" newpd object is returned to the client It's not the best scheme in the world, but it worked so far (at least I haven't manage to encounter a situation where it didn't - otherwise I would have already fixed it :). But I do see its weaknesses, thus I thought about the following improvements: - when requestDeviceAccess () calls read () it should also transmit the appropriate requested interface type, and the loop should keep on going until read returns ACK (for that interface type)... - requestSatisfy () could return newpd instead of short (which is not used now anyway). This way we stop using a global variable (which is sort of bad anyway). - I am not sure if the requesting of the devices should be done in a very relaxed manner (eg. sending bursts of requests and trying to see which one is which at the client end), but maybe with some small changes (see above), we could reach that point too. Best, Radu. -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-06-23 15:49:58
|
Of course, I forgot to mention that you can always just create a new instance of PlayerClient to the same port on your robot and request that additional device. A bit of a hack but it should work. So, something along the lines of: ... PlayerClient robot1 = new PlayerClient ("localhost", 6665); PtzInterface ptzi1 = robot1.requestInterfacePtz (0, PlayerConstants.PLAYER_OPEN_MODE); robot1.runThreaded (-1, -1); ... PlayerClient robot2 = new PlayerClient ("localhost", 6665); PtzInterface ptzi2 = robot2.requestInterfacePtz (1, PlayerConstants.PLAYER_OPEN_MODE); robot2.setNotThreaded (); .. R. Radu Bogdan Rusu wrote: > Yup, you're right Kurt, that part needs to be recoded. > > There was an earlier mail from Shawn Lavelle a couple of weeks ago about the problem of > requesting interfaces. > > R. > > Kurt Konolige wrote: >> Hmm, not much traffic on this user group... >> >> requestInterfaceXXXX() functions can't be called after runThreaded() is >> invoked, they hang or return the wrong result, or do other bad things >> like run out of heap space if called repeatedly. >> >> Cheers --Kurt > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-06-23 15:34:00
|
Yup, you're right Kurt, that part needs to be recoded. There was an earlier mail from Shawn Lavelle a couple of weeks ago about the problem of requesting interfaces. R. Kurt Konolige wrote: > Hmm, not much traffic on this user group... > > requestInterfaceXXXX() functions can't be called after runThreaded() is > invoked, they hang or return the wrong result, or do other bad things > like run out of heap space if called repeatedly. > > Cheers --Kurt -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Kurt K. <kon...@AI...> - 2006-06-23 03:40:02
|
Hmm, not much traffic on this user group... requestInterfaceXXXX() functions can't be called after runThreaded() is invoked, they hang or return the wrong result, or do other bad things like run out of heap space if called repeatedly. Cheers --Kurt |
From: Radu B. R. <ru...@cs...> - 2006-05-27 08:18:19
|
Hi Shawn, Sorry for replying so late. Always good to see new users on this list! Keeps the Javaclient development sort of... ermm, alive. :) Shawn Lavelle wrote: > Hello All, > > I'm new to the list, so please forgive me if this has been > addressed. It is quite similar to the issue Radu encoutered in this > thread: > "http://sourceforge.net/mailarchive/forum.php?thread_id=9923107&forum_id=44859". > Hugo presented a dirty hack to fix it, but it seems, well, dirty. > > The problem we've encountered here pertains to requesting > interfaces. At the end of this note I included a copy of > requestGripperInterface for reference. My first question is, what > version of Java this is compiled against and why are generics not > used, or a general requestInterface where you pass in the interface > you want? Since all these functions are identical save for > "PLAYER_<interface>_CODE" or such they could easily be combined into > one method. That is a good idea, and I thought about it for some time now. I will try to implement something like that maybe right after Player 2.0.2 comes out. > > The second question is more of a bug and also is of more > consequence. Similar to the referenced post concerning reading, the > two methods requestDeviceAccess and isReadyRequestDevice come > immediately after each other. However, there is no guarantee that > stage has returned the device yet, especially in a resource limited > platform. This call then returns null. Let's assume, for a minute, > that the programmer decides to assume things have succeeded and a > request is then made for a different device. It executes the > requestDeviceAccess method but before isReadyRequestDevice is called, > stage returns the first interface while the 2nd is now delayed. > isReadyRequestDevice now returns true but the wrong interface is > stored in newpd. With how this is coded, the 2nd requestInterface > will attempt to cast newpd as the 2nd interface. This will throw the > ClassCastException as newpd contains the first interface. > > Possible solutions: > 1) Typecheck! > 2) Wait/Sleep for 100ms before checking isReadyRequestDevice > 3) Poll newpd, saving them as they come in. On future requests for the > device with same parameters use the already returned devices listing. > > What are your thoughts on this? Is this better handled by the > developer's alias instead of this user's alias? Thank you for your > assistance! Yup. That is an ugly piece of code and we need to change it ASAP. For the last few weeks/months I didn't do any real Javaclient development since I am not using it for my current project. I would gladly accept any tested patches for that! I will have a look at the code and see if I can come up with something too. Thanks a lot, Radu. > > ~ Shawn M Lavelle > ATCorp R&D > > > public GripperInterface requestInterfaceGripper (int index, int access) { > requestDeviceAccess (PLAYER_GRIPPER_CODE, index, access); > if (isReadyRequestDevice ()) > return (GripperInterface)newpd; > else > return null; > } -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-05-27 08:13:47
|
krike wrote: > while (true) > { > always check for isDataReady() before getting an image, especially in an infinite while loop. > imageData = CamData.getImage(); > writeJPG(imageData, "frame_" + countFrame + ".jpg"); > countFrame++; > } > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: krike <kri...@gm...> - 2006-05-24 00:41:17
|
Hi, i'm new here and i'm working with javaclient2 and player 2.0.1. So far I'm doing all right except for a little problem. The code works well, and I get an image but when I try to get the second image, it is the same as the first one. I don't know what's wrong. Anyone can help? Thanks. /************************************************************************************** int width, height, bpp, format, compr, isize; PlayerCameraData CamData = null; PlayerClient robot = null; CameraInterface cam = null; try { robot = new PlayerClient (ip, port); cam = robot.requestInterfaceCamera (IDCamera, PlayerConstants.PLAYER_OPEN_MODE); } catch (PlayerException e) { System.err.println ("Camera module: -> ERROR: "); System.err.println (" [ " + e.toString() + " ]"); System.exit (1); } robot.runThreaded (-1, -1); //Wait connection. while (!cam.isDataReady ()) { try { Thread.sleep (100); } catch (Exception e) {} } CamData = cam.getData(); width = CamData.getWidth (); height = CamData.getHeight (); bpp = CamData.getBpp (); format = CamData.getFormat (); compr = CamData.getCompression (); isize = CamData.getImage_count (); //bpp*width*height int countFrame = 0; while (true) { imageData = CamData.getImage(); writeJPG(imageData, "frame_" + countFrame + ".jpg"); countFrame++; } -- View this message in context: http://www.nabble.com/Missing+data+in+images--t1286033.html#a4533431 Sent from the java-player-users forum at Nabble.com. |
From: Shawn L. <sla...@at...> - 2006-05-20 16:59:18
|
Hello All, I'm new to the list, so please forgive me if this has been addressed. It is quite similar to the issue Radu encoutered in this thread: "http://sourceforge.net/mailarchive/forum.php?thread_id=9923107&forum_id=44859". Hugo presented a dirty hack to fix it, but it seems, well, dirty. The problem we've encountered here pertains to requesting interfaces. At the end of this note I included a copy of requestGripperInterface for reference. My first question is, what version of Java this is compiled against and why are generics not used, or a general requestInterface where you pass in the interface you want? Since all these functions are identical save for "PLAYER_<interface>_CODE" or such they could easily be combined into one method. The second question is more of a bug and also is of more consequence. Similar to the referenced post concerning reading, the two methods requestDeviceAccess and isReadyRequestDevice come immediately after each other. However, there is no guarantee that stage has returned the device yet, especially in a resource limited platform. This call then returns null. Let's assume, for a minute, that the programmer decides to assume things have succeeded and a request is then made for a different device. It executes the requestDeviceAccess method but before isReadyRequestDevice is called, stage returns the first interface while the 2nd is now delayed. isReadyRequestDevice now returns true but the wrong interface is stored in newpd. With how this is coded, the 2nd requestInterface will attempt to cast newpd as the 2nd interface. This will throw the ClassCastException as newpd contains the first interface. Possible solutions: 1) Typecheck! 2) Wait/Sleep for 100ms before checking isReadyRequestDevice 3) Poll newpd, saving them as they come in. On future requests for the device with same parameters use the already returned devices listing. What are your thoughts on this? Is this better handled by the developer's alias instead of this user's alias? Thank you for your assistance! ~ Shawn M Lavelle ATCorp R&D public GripperInterface requestInterfaceGripper (int index, int access) { requestDeviceAccess (PLAYER_GRIPPER_CODE, index, access); if (isReadyRequestDevice ()) return (GripperInterface)newpd; else return null; } |
From: Radu B. R. <ru...@cs...> - 2006-04-04 11:04:24
|
Hi all, Just wanted to let you know that I migrated the project to SVN from CVS on SourceForge. CVS has been down so many times and has so many issues that it's just not worthy to keep on using it, especially since SF has a SVN option now. While the CVS code will still be accessible (I am not removing it for now), it won't be updated anymore. Please use the instructions from: http://sourceforge.net/svn/?group_id=135304 to access it. I will also put an announcement on the main web page. I'll also see if Brian would like to convert Player/Stage to SVN as well. Thanks, Radu. -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Marques, H. G <hg...@es...> - 2006-03-28 22:15:17
|
Hi Radu... I solved the issue for the current version of player; everything was = fine in your code apart from the fact that you were using the number of = points to fix the size, when in the "dirty fix" your proposed the number = of points is always 64 (see code bellow). I think it would be a good = idea for now to extend the change to the other methods drawPoligon and = drawPoints and leave it like that until the new version of player comes = out... hope this helps... Cheers... Hugo ************************************ BEGIN OF CODE = ************************ public void drawPolyline (PlayerGraphics2dCmdPolyline pgcp) { try { short points =3D pgcp.getCount (); // int size =3D 4 + 4 + (points * 8) + 16; int size =3D 4 + (64 * 8) + 16; // ADDED BY HGM // int size =3D 4 + (points * 8) + 16; // COMENTED BY HGM sendHeader (PLAYER_MSGTYPE_CMD, PLAYER_GRAPHICS2D_CMD_POLYLINE, size); XdrBufferEncodingStream xdr =3D new XdrBufferEncodingStream (size); xdr.beginEncoding (null, 0); xdr.xdrEncodeShort (points); // xdr.xdrEncodeInt (points); =20 for (int i =3D 0; i < points; i++) { xdr.xdrEncodeFloat (pgcp.getPoints ()[i].getPx ()); xdr.xdrEncodeFloat (pgcp.getPoints ()[i].getPy ()); } =20 for (int i =3D points; i < 64; i++) { xdr.xdrEncodeFloat (0); xdr.xdrEncodeFloat (0); } xdr.xdrEncodeByte ((byte)(pgcp.getColor ().getAlpha () & 0x000000FF)); xdr.xdrEncodeByte ((byte)(pgcp.getColor ().getRed () & 0x000000FF)); xdr.xdrEncodeByte ((byte)(pgcp.getColor ().getGreen () & 0x000000FF)); xdr.xdrEncodeByte ((byte)(pgcp.getColor ().getBlue () & 0x000000FF)); xdr.endEncoding (); os.write (xdr.getXdrData (), 0, xdr.getXdrLength ()); xdr.close (); os.flush (); } catch (IOException e) { throw new PlayerException ("[Graphics2D] : Couldn't send draw command: " + e.toString(), e); } catch (OncRpcException e) { throw new PlayerException ("[Graphics2D] : Error while XDR-encoding draw command: " + e.toString(), e); } } =09 ****************************************** END OF CODE = ***************************************** ---------------------------------------------------- Hugo Gravato Marques, University of Essex, PhD Student PHONE: +44 (0)7854917241, England or +351 962482416, Portugal ADDRESS: University of Essex, Department of Computer Science, Wivenhoe Park, Colchester Essex, CO4 3SQ, UK WEB: http://privatewww.essex.ac.uk/~hgmarq/ =20 -----Original Message----- From: jav...@li... on behalf of = Marques, Hugo G Sent: Tue 28/03/2006 15:37 To: jav...@li... Subject: RE: [Java-player-users] Graphics2D interface =20 Hi Radu... I downloaded the changes you made to the CVS but now I have a = javaclient2.xdr.OncRpcException (see bellow). I tried the new code in my = yesterday's example (lineSize =3D 32, if you remember) and I also made a = simpler example (see code bellow) but I keep having the exception. The = example you sent me in the weekend works fine, but that is because the = number of points you used is >=3D 64. I tried to see what was the = problem in the Graphics2DInterface but the manipulation of the bytes you = used for encoding the information is a bit confusing for me as I'm not = familiar with the neither the xdr encoding nor the format of the = messages exchanged with player/stage. =20 sorry about the insistence man... :( cheers, hugo ******************************************** BEGINNING OF CODE = ********************************* robot =3D new PlayerClient (host,port); graphicsInterface =3D robot.requestInterfaceGraphics2D(0, 1); robot.runThreaded(-1, -1); =20 graphicsInterface.clearScreen (); PlayerGraphics2dCmdPolyline p =3D new PlayerGraphics2dCmdPolyline (); PlayerColor color =3D new PlayerColor (); color.setAlpha (0); color.setRed (0); color.setGreen (0); color.setBlue (0xff); p.setCount (2); PlayerPoint2d[] points =3D new PlayerPoint2d[2]; points[0] =3D new PlayerPoint2d (); points[0].setPx (-1.0f); points[0].setPy (-1.0f); points[1] =3D new PlayerPoint2d (); points[1].setPx (1.0f); points[1].setPy (1.0f); p.setPoints (points); p.setColor (color); graphicsInterface.drawPolyline (p); try { Thread.sleep (100); } catch (Exception e) { e.printStackTrace(); } ******************************************** END CODE ***** BEGINNING OF = EXCEPTION ********************************* Exception in thread "main" javaclient2.PlayerException: [Graphics2D] : = Error while XDR-encoding draw command: javaclient2.xdr.OncRpcException: = ONC/RPC buffer overflow at = javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:181= ) at Agent.testGraphics(Agent.java:368) at Agent.initRobot(Agent.java:305) at Agent.initialize(Agent.java:136) at Agent.main(Agent.java:441) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Caused by: javaclient2.xdr.OncRpcException: ONC/RPC buffer overflow at = javaclient2.xdr.XdrBufferEncodingStream.xdrEncodeInt(XdrBufferEncodingStr= eam.java:181) at = javaclient2.xdr.XdrEncodingStream.xdrEncodeFloat(XdrEncodingStream.java:3= 34) at = javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:156= ) ... 9 more ******************************************** END OF EXCEPTION = ********************************* ---------------------------------------------------- Hugo Gravato Marques, University of Essex, PhD Student PHONE: +44 (0)7854917241, England or +351 962482416, Portugal ADDRESS: University of Essex, Department of Computer Science, Wivenhoe Park, Colchester Essex, CO4 3SQ, UK WEB: http://privatewww.essex.ac.uk/~hgmarq/ =20 -----Original Message----- From: jav...@li... on behalf of Radu = Bogdan Rusu Sent: Mon 27/03/2006 23:12 To: jav...@li... Subject: Re: [Java-player-users] Graphics2D interface =20 Ok, since the fix seems to affect more than one file (Player-wise),=20 ignore changing your player distribution for now, and use the latest=20 Javaclient2 CVS version. I just commited the latest changes which should = work with the *current* Player version (CVS). Once Player 2.1 is out, I=20 will change it. Best, Radu. Radu Bogdan Rusu wrote: > Aham!!! Evrika! ;) > > We just found another Player bug. The fix for this one is trivial=20 > though. I envision Player in a few months being 99.99% bug free at=20 > this rate! :) > > Unfortunately I don't have commit rights to that part of the=20 > repository (libplayercore)... so I'll ask Brian to do it for us now. > > If you don't want to "cvs" Player... go into player.h yourself, search = > for the player_graphics2d_cmd_points_t,=20 > player_graphics2d_cmd_polyline_t and player_graphics2d_cmd_polygon_t=20 > structures, and modify the first member from "uint16_t count;" to=20 > "uint16_t points_count;". Then recompile Player, and that should be = it. > > There is one small fix for Javaclient2 as well... I am committing it=20 > now, and then waiting for Brian to patch Player, and probably test=20 > again in the morning. > > Cheers, > Radu. > > Marques, Hugo G wrote: > >> Hi Radu... >> >> first of all thank's for the quick implementation of the interface... = >> I really needed it in order to continue my experiments... >> >> I tryed to run your code and it works perfectly... but if I try to=20 >> use an PlayerGraphics2dCmdPolyline object with the number of lines=20 >> smaller than 64 it simply does not show anything... I tryed to show a = >> simple line on Stage with only 2 points using the same idea you used=20 >> in the example and it did not work... Then I hacked slightly your=20 >> code (see bellow) in order to print only part of the circles and it=20 >> did not worked as well... >> >> I then tried to solve the issue with the class=20 >> PlayerGraphics2dCmdPolygon but I had the same problem. I tried to=20 >> went through the source code of playerclient and the=20 >> graphics2DInterface and it seemed fine to me... >> Another thing that you might want to have a look in the class=20 >> PlayerGraphics2dCmdPolygon is that if you do not setFill_color it=20 >> gives an exception, when it could probably use a default=20 >> (transparent?) value... >> >> Thank you very much Regards... >> Hugo >> >> ************************************* CODE ******************* >> >> PlayerClient robot; >> Graphics2DInterface graphicsInterface; >> >> robot =3D new PlayerClient ("localhost", 6665); >> graphicsInterface =3D robot.requestInterfaceGraphics2D(0, 1); >> robot.runThreaded(-1, -1); >> >> graphicsInterface.clearScreen (); >> >> PlayerGraphics2dCmdPolyline p =3D new PlayerGraphics2dCmdPolyline (); >> >> PlayerColor color =3D new PlayerColor (); >> color.setAlpha (0); >> color.setRed (0); color.setGreen (0); color.setBlue (0xff); >> int lineSize =3D 32; >> p.setCount (lineSize); >> >> for (double r =3D 0; r < 1.0; r +=3D 0.05) { >> PlayerPoint2d[] points =3D new PlayerPoint2d[lineSize]; >> for (int j =3D 0; j < lineSize; j++) { >> points[j] =3D new PlayerPoint2d (); >> points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); >> points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); >> System.out.println(" Point: "+points[j].getPx()+",=20 >> "+points[j].getPy()); >> } >> >> p.setPoints (points); >> p.setColor (color); >> >> graphicsInterface.drawPolyline (p); >> >> try { Thread.sleep (100); } catch (Exception e) { >> e.printStackTrace(); } >> >> ************************************* END CODE ******************* >> >> >> >> ---------------------------------------------------- >> Hugo Gravato Marques, University of Essex, PhD Student >> PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >> ADDRESS: University of Essex, Department of Computer Science, >> Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >> WEB: http://privatewww.essex.ac.uk/~hgmarq/ >> =20 >> > --=20 | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting = language that extends applications into web and mobile media. Attend the live = webcast and join the prime developer group breaking into this new coding = territory! http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=110944&bid$1720&dat=121642 _______________________________________________ Java-player-users mailing list Jav...@li... https://lists.sourceforge.net/lists/listinfo/java-player-users |
From: Radu B. R. <ru...@cs...> - 2006-03-28 15:34:33
|
Okie dokes... You were right, I forgot to modify something. I just committed the changes to CVS and tested with 2.0.1. I am attaching Graphics2DInterface.java to this e-mail so you don't have to wait until anonymous CVS gets a shot at it. Please tell me if you encounter any more problems. Best, Radu. Marques, Hugo G wrote: >Hi Radu... > >I downloaded the changes you made to the CVS but now I have a javaclient2.xdr.OncRpcException (see bellow). I tried the new code in my yesterday's example (lineSize = 32, if you remember) and I also made a simpler example (see code bellow) but I keep having the exception. The example you sent me in the weekend works fine, but that is because the number of points you used is >= 64. I tried to see what was the problem in the Graphics2DInterface but the manipulation of the bytes you used for encoding the information is a bit confusing for me as I'm not familiar with the neither the xdr encoding nor the format of the messages exchanged with player/stage. > >sorry about the insistence man... :( > >cheers, >hugo > > >******************************************** BEGINNING OF CODE ********************************* > >robot = new PlayerClient (host,port); >graphicsInterface = robot.requestInterfaceGraphics2D(0, 1); >robot.runThreaded(-1, -1); > >graphicsInterface.clearScreen (); >PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); >PlayerColor color = new PlayerColor (); >color.setAlpha (0); >color.setRed (0); color.setGreen (0); color.setBlue (0xff); > >p.setCount (2); > >PlayerPoint2d[] points = new PlayerPoint2d[2]; >points[0] = new PlayerPoint2d (); >points[0].setPx (-1.0f); >points[0].setPy (-1.0f); > >points[1] = new PlayerPoint2d (); >points[1].setPx (1.0f); >points[1].setPy (1.0f); > >p.setPoints (points); >p.setColor (color); >graphicsInterface.drawPolyline (p); > >try { Thread.sleep (100); } catch (Exception e) { >e.printStackTrace(); } > > >******************************************** END CODE ***** BEGINNING OF EXCEPTION ********************************* > > >Exception in thread "main" javaclient2.PlayerException: [Graphics2D] : Error while XDR-encoding draw command: javaclient2.xdr.OncRpcException: ONC/RPC buffer overflow > at javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:181) > at Agent.testGraphics(Agent.java:368) > at Agent.initRobot(Agent.java:305) > at Agent.initialize(Agent.java:136) > at Agent.main(Agent.java:441) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) >Caused by: javaclient2.xdr.OncRpcException: ONC/RPC buffer overflow > at javaclient2.xdr.XdrBufferEncodingStream.xdrEncodeInt(XdrBufferEncodingStream.java:181) > at javaclient2.xdr.XdrEncodingStream.xdrEncodeFloat(XdrEncodingStream.java:334) > at javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:156) > ... 9 more > > >******************************************** END OF EXCEPTION ********************************* > > > > > >---------------------------------------------------- >Hugo Gravato Marques, University of Essex, PhD Student >PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >ADDRESS: University of Essex, Department of Computer Science, >Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >WEB: http://privatewww.essex.ac.uk/~hgmarq/ > > > > > > > >-----Original Message----- >From: jav...@li... on behalf of Radu Bogdan Rusu >Sent: Mon 27/03/2006 23:12 >To: jav...@li... >Subject: Re: [Java-player-users] Graphics2D interface > >Ok, since the fix seems to affect more than one file (Player-wise), >ignore changing your player distribution for now, and use the latest >Javaclient2 CVS version. I just commited the latest changes which should >work with the *current* Player version (CVS). Once Player 2.1 is out, I >will change it. > >Best, >Radu. > >Radu Bogdan Rusu wrote: > > > >>Aham!!! Evrika! ;) >> >>We just found another Player bug. The fix for this one is trivial >>though. I envision Player in a few months being 99.99% bug free at >>this rate! :) >> >>Unfortunately I don't have commit rights to that part of the >>repository (libplayercore)... so I'll ask Brian to do it for us now. >> >>If you don't want to "cvs" Player... go into player.h yourself, search >>for the player_graphics2d_cmd_points_t, >>player_graphics2d_cmd_polyline_t and player_graphics2d_cmd_polygon_t >>structures, and modify the first member from "uint16_t count;" to >>"uint16_t points_count;". Then recompile Player, and that should be it. >> >>There is one small fix for Javaclient2 as well... I am committing it >>now, and then waiting for Brian to patch Player, and probably test >>again in the morning. >> >>Cheers, >>Radu. >> >>Marques, Hugo G wrote: >> >> >> >>>Hi Radu... >>> >>>first of all thank's for the quick implementation of the interface... >>>I really needed it in order to continue my experiments... >>> >>>I tryed to run your code and it works perfectly... but if I try to >>>use an PlayerGraphics2dCmdPolyline object with the number of lines >>>smaller than 64 it simply does not show anything... I tryed to show a >>>simple line on Stage with only 2 points using the same idea you used >>>in the example and it did not work... Then I hacked slightly your >>>code (see bellow) in order to print only part of the circles and it >>>did not worked as well... >>> >>>I then tried to solve the issue with the class >>>PlayerGraphics2dCmdPolygon but I had the same problem. I tried to >>>went through the source code of playerclient and the >>>graphics2DInterface and it seemed fine to me... >>>Another thing that you might want to have a look in the class >>>PlayerGraphics2dCmdPolygon is that if you do not setFill_color it >>>gives an exception, when it could probably use a default >>>(transparent?) value... >>> >>>Thank you very much Regards... >>>Hugo >>> >>>************************************* CODE ******************* >>> >>>PlayerClient robot; >>>Graphics2DInterface graphicsInterface; >>> >>>robot = new PlayerClient ("localhost", 6665); >>>graphicsInterface = robot.requestInterfaceGraphics2D(0, 1); >>>robot.runThreaded(-1, -1); >>> >>>graphicsInterface.clearScreen (); >>> >>>PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); >>> >>>PlayerColor color = new PlayerColor (); >>>color.setAlpha (0); >>>color.setRed (0); color.setGreen (0); color.setBlue (0xff); >>>int lineSize = 32; >>>p.setCount (lineSize); >>> >>>for (double r = 0; r < 1.0; r += 0.05) { >>> PlayerPoint2d[] points = new PlayerPoint2d[lineSize]; >>> for (int j = 0; j < lineSize; j++) { >>> points[j] = new PlayerPoint2d (); >>> points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); >>> points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); >>> System.out.println(" Point: "+points[j].getPx()+", >>>"+points[j].getPy()); >>> } >>> >>>p.setPoints (points); >>>p.setColor (color); >>> >>>graphicsInterface.drawPolyline (p); >>> >>>try { Thread.sleep (100); } catch (Exception e) { >>> e.printStackTrace(); } >>> >>>************************************* END CODE ******************* >>> >>> >>> >>>---------------------------------------------------- >>>Hugo Gravato Marques, University of Essex, PhD Student >>>PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >>>ADDRESS: University of Essex, Department of Computer Science, >>>Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >>>WEB: http://privatewww.essex.ac.uk/~hgmarq/ >>> >>> >>> >>> > > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-03-28 14:58:17
|
No problem Hugo... :) Hmm, it is directly related to your Player version. Let me try with 2.0.1 (stock) now and get back to you. Radu. Marques, Hugo G wrote: >Hi Radu... > >I downloaded the changes you made to the CVS but now I have a javaclient2.xdr.OncRpcException (see bellow). I tried the new code in my yesterday's example (lineSize = 32, if you remember) and I also made a simpler example (see code bellow) but I keep having the exception. The example you sent me in the weekend works fine, but that is because the number of points you used is >= 64. I tried to see what was the problem in the Graphics2DInterface but the manipulation of the bytes you used for encoding the information is a bit confusing for me as I'm not familiar with the neither the xdr encoding nor the format of the messages exchanged with player/stage. > >sorry about the insistence man... :( > >cheers, >hugo > > >******************************************** BEGINNING OF CODE ********************************* > >robot = new PlayerClient (host,port); >graphicsInterface = robot.requestInterfaceGraphics2D(0, 1); >robot.runThreaded(-1, -1); > >graphicsInterface.clearScreen (); >PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); >PlayerColor color = new PlayerColor (); >color.setAlpha (0); >color.setRed (0); color.setGreen (0); color.setBlue (0xff); > >p.setCount (2); > >PlayerPoint2d[] points = new PlayerPoint2d[2]; >points[0] = new PlayerPoint2d (); >points[0].setPx (-1.0f); >points[0].setPy (-1.0f); > >points[1] = new PlayerPoint2d (); >points[1].setPx (1.0f); >points[1].setPy (1.0f); > >p.setPoints (points); >p.setColor (color); >graphicsInterface.drawPolyline (p); > >try { Thread.sleep (100); } catch (Exception e) { >e.printStackTrace(); } > > >******************************************** END CODE ***** BEGINNING OF EXCEPTION ********************************* > > >Exception in thread "main" javaclient2.PlayerException: [Graphics2D] : Error while XDR-encoding draw command: javaclient2.xdr.OncRpcException: ONC/RPC buffer overflow > at javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:181) > at Agent.testGraphics(Agent.java:368) > at Agent.initRobot(Agent.java:305) > at Agent.initialize(Agent.java:136) > at Agent.main(Agent.java:441) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) >Caused by: javaclient2.xdr.OncRpcException: ONC/RPC buffer overflow > at javaclient2.xdr.XdrBufferEncodingStream.xdrEncodeInt(XdrBufferEncodingStream.java:181) > at javaclient2.xdr.XdrEncodingStream.xdrEncodeFloat(XdrEncodingStream.java:334) > at javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:156) > ... 9 more > > >******************************************** END OF EXCEPTION ********************************* > > > > > >---------------------------------------------------- >Hugo Gravato Marques, University of Essex, PhD Student >PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >ADDRESS: University of Essex, Department of Computer Science, >Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >WEB: http://privatewww.essex.ac.uk/~hgmarq/ > > > > > > > >-----Original Message----- >From: jav...@li... on behalf of Radu Bogdan Rusu >Sent: Mon 27/03/2006 23:12 >To: jav...@li... >Subject: Re: [Java-player-users] Graphics2D interface > >Ok, since the fix seems to affect more than one file (Player-wise), >ignore changing your player distribution for now, and use the latest >Javaclient2 CVS version. I just commited the latest changes which should >work with the *current* Player version (CVS). Once Player 2.1 is out, I >will change it. > >Best, >Radu. > >Radu Bogdan Rusu wrote: > > > >>Aham!!! Evrika! ;) >> >>We just found another Player bug. The fix for this one is trivial >>though. I envision Player in a few months being 99.99% bug free at >>this rate! :) >> >>Unfortunately I don't have commit rights to that part of the >>repository (libplayercore)... so I'll ask Brian to do it for us now. >> >>If you don't want to "cvs" Player... go into player.h yourself, search >>for the player_graphics2d_cmd_points_t, >>player_graphics2d_cmd_polyline_t and player_graphics2d_cmd_polygon_t >>structures, and modify the first member from "uint16_t count;" to >>"uint16_t points_count;". Then recompile Player, and that should be it. >> >>There is one small fix for Javaclient2 as well... I am committing it >>now, and then waiting for Brian to patch Player, and probably test >>again in the morning. >> >>Cheers, >>Radu. >> >>Marques, Hugo G wrote: >> >> >> >>>Hi Radu... >>> >>>first of all thank's for the quick implementation of the interface... >>>I really needed it in order to continue my experiments... >>> >>>I tryed to run your code and it works perfectly... but if I try to >>>use an PlayerGraphics2dCmdPolyline object with the number of lines >>>smaller than 64 it simply does not show anything... I tryed to show a >>>simple line on Stage with only 2 points using the same idea you used >>>in the example and it did not work... Then I hacked slightly your >>>code (see bellow) in order to print only part of the circles and it >>>did not worked as well... >>> >>>I then tried to solve the issue with the class >>>PlayerGraphics2dCmdPolygon but I had the same problem. I tried to >>>went through the source code of playerclient and the >>>graphics2DInterface and it seemed fine to me... >>>Another thing that you might want to have a look in the class >>>PlayerGraphics2dCmdPolygon is that if you do not setFill_color it >>>gives an exception, when it could probably use a default >>>(transparent?) value... >>> >>>Thank you very much Regards... >>>Hugo >>> >>>************************************* CODE ******************* >>> >>>PlayerClient robot; >>>Graphics2DInterface graphicsInterface; >>> >>>robot = new PlayerClient ("localhost", 6665); >>>graphicsInterface = robot.requestInterfaceGraphics2D(0, 1); >>>robot.runThreaded(-1, -1); >>> >>>graphicsInterface.clearScreen (); >>> >>>PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); >>> >>>PlayerColor color = new PlayerColor (); >>>color.setAlpha (0); >>>color.setRed (0); color.setGreen (0); color.setBlue (0xff); >>>int lineSize = 32; >>>p.setCount (lineSize); >>> >>>for (double r = 0; r < 1.0; r += 0.05) { >>> PlayerPoint2d[] points = new PlayerPoint2d[lineSize]; >>> for (int j = 0; j < lineSize; j++) { >>> points[j] = new PlayerPoint2d (); >>> points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); >>> points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); >>> System.out.println(" Point: "+points[j].getPx()+", >>>"+points[j].getPy()); >>> } >>> >>>p.setPoints (points); >>>p.setColor (color); >>> >>>graphicsInterface.drawPolyline (p); >>> >>>try { Thread.sleep (100); } catch (Exception e) { >>> e.printStackTrace(); } >>> >>>************************************* END CODE ******************* >>> >>> >>> >>>---------------------------------------------------- >>>Hugo Gravato Marques, University of Essex, PhD Student >>>PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >>>ADDRESS: University of Essex, Department of Computer Science, >>>Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >>>WEB: http://privatewww.essex.ac.uk/~hgmarq/ >>> >>> >>> >>> > > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Marques, H. G <hg...@es...> - 2006-03-28 14:37:54
|
Hi Radu... I downloaded the changes you made to the CVS but now I have a = javaclient2.xdr.OncRpcException (see bellow). I tried the new code in my = yesterday's example (lineSize =3D 32, if you remember) and I also made a = simpler example (see code bellow) but I keep having the exception. The = example you sent me in the weekend works fine, but that is because the = number of points you used is >=3D 64. I tried to see what was the = problem in the Graphics2DInterface but the manipulation of the bytes you = used for encoding the information is a bit confusing for me as I'm not = familiar with the neither the xdr encoding nor the format of the = messages exchanged with player/stage. =20 sorry about the insistence man... :( cheers, hugo ******************************************** BEGINNING OF CODE = ********************************* robot =3D new PlayerClient (host,port); graphicsInterface =3D robot.requestInterfaceGraphics2D(0, 1); robot.runThreaded(-1, -1); =20 graphicsInterface.clearScreen (); PlayerGraphics2dCmdPolyline p =3D new PlayerGraphics2dCmdPolyline (); PlayerColor color =3D new PlayerColor (); color.setAlpha (0); color.setRed (0); color.setGreen (0); color.setBlue (0xff); p.setCount (2); PlayerPoint2d[] points =3D new PlayerPoint2d[2]; points[0] =3D new PlayerPoint2d (); points[0].setPx (-1.0f); points[0].setPy (-1.0f); points[1] =3D new PlayerPoint2d (); points[1].setPx (1.0f); points[1].setPy (1.0f); p.setPoints (points); p.setColor (color); graphicsInterface.drawPolyline (p); try { Thread.sleep (100); } catch (Exception e) { e.printStackTrace(); } ******************************************** END CODE ***** BEGINNING OF = EXCEPTION ********************************* Exception in thread "main" javaclient2.PlayerException: [Graphics2D] : = Error while XDR-encoding draw command: javaclient2.xdr.OncRpcException: = ONC/RPC buffer overflow at = javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:181= ) at Agent.testGraphics(Agent.java:368) at Agent.initRobot(Agent.java:305) at Agent.initialize(Agent.java:136) at Agent.main(Agent.java:441) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at = sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java= :39) at = sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI= mpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Caused by: javaclient2.xdr.OncRpcException: ONC/RPC buffer overflow at = javaclient2.xdr.XdrBufferEncodingStream.xdrEncodeInt(XdrBufferEncodingStr= eam.java:181) at = javaclient2.xdr.XdrEncodingStream.xdrEncodeFloat(XdrEncodingStream.java:3= 34) at = javaclient2.Graphics2DInterface.drawPolyline(Graphics2DInterface.java:156= ) ... 9 more ******************************************** END OF EXCEPTION = ********************************* ---------------------------------------------------- Hugo Gravato Marques, University of Essex, PhD Student PHONE: +44 (0)7854917241, England or +351 962482416, Portugal ADDRESS: University of Essex, Department of Computer Science, Wivenhoe Park, Colchester Essex, CO4 3SQ, UK WEB: http://privatewww.essex.ac.uk/~hgmarq/ =20 -----Original Message----- From: jav...@li... on behalf of Radu = Bogdan Rusu Sent: Mon 27/03/2006 23:12 To: jav...@li... Subject: Re: [Java-player-users] Graphics2D interface =20 Ok, since the fix seems to affect more than one file (Player-wise),=20 ignore changing your player distribution for now, and use the latest=20 Javaclient2 CVS version. I just commited the latest changes which should = work with the *current* Player version (CVS). Once Player 2.1 is out, I=20 will change it. Best, Radu. Radu Bogdan Rusu wrote: > Aham!!! Evrika! ;) > > We just found another Player bug. The fix for this one is trivial=20 > though. I envision Player in a few months being 99.99% bug free at=20 > this rate! :) > > Unfortunately I don't have commit rights to that part of the=20 > repository (libplayercore)... so I'll ask Brian to do it for us now. > > If you don't want to "cvs" Player... go into player.h yourself, search = > for the player_graphics2d_cmd_points_t,=20 > player_graphics2d_cmd_polyline_t and player_graphics2d_cmd_polygon_t=20 > structures, and modify the first member from "uint16_t count;" to=20 > "uint16_t points_count;". Then recompile Player, and that should be = it. > > There is one small fix for Javaclient2 as well... I am committing it=20 > now, and then waiting for Brian to patch Player, and probably test=20 > again in the morning. > > Cheers, > Radu. > > Marques, Hugo G wrote: > >> Hi Radu... >> >> first of all thank's for the quick implementation of the interface... = >> I really needed it in order to continue my experiments... >> >> I tryed to run your code and it works perfectly... but if I try to=20 >> use an PlayerGraphics2dCmdPolyline object with the number of lines=20 >> smaller than 64 it simply does not show anything... I tryed to show a = >> simple line on Stage with only 2 points using the same idea you used=20 >> in the example and it did not work... Then I hacked slightly your=20 >> code (see bellow) in order to print only part of the circles and it=20 >> did not worked as well... >> >> I then tried to solve the issue with the class=20 >> PlayerGraphics2dCmdPolygon but I had the same problem. I tried to=20 >> went through the source code of playerclient and the=20 >> graphics2DInterface and it seemed fine to me... >> Another thing that you might want to have a look in the class=20 >> PlayerGraphics2dCmdPolygon is that if you do not setFill_color it=20 >> gives an exception, when it could probably use a default=20 >> (transparent?) value... >> >> Thank you very much Regards... >> Hugo >> >> ************************************* CODE ******************* >> >> PlayerClient robot; >> Graphics2DInterface graphicsInterface; >> >> robot =3D new PlayerClient ("localhost", 6665); >> graphicsInterface =3D robot.requestInterfaceGraphics2D(0, 1); >> robot.runThreaded(-1, -1); >> >> graphicsInterface.clearScreen (); >> >> PlayerGraphics2dCmdPolyline p =3D new PlayerGraphics2dCmdPolyline (); >> >> PlayerColor color =3D new PlayerColor (); >> color.setAlpha (0); >> color.setRed (0); color.setGreen (0); color.setBlue (0xff); >> int lineSize =3D 32; >> p.setCount (lineSize); >> >> for (double r =3D 0; r < 1.0; r +=3D 0.05) { >> PlayerPoint2d[] points =3D new PlayerPoint2d[lineSize]; >> for (int j =3D 0; j < lineSize; j++) { >> points[j] =3D new PlayerPoint2d (); >> points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); >> points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); >> System.out.println(" Point: "+points[j].getPx()+",=20 >> "+points[j].getPy()); >> } >> >> p.setPoints (points); >> p.setColor (color); >> >> graphicsInterface.drawPolyline (p); >> >> try { Thread.sleep (100); } catch (Exception e) { >> e.printStackTrace(); } >> >> ************************************* END CODE ******************* >> >> >> >> ---------------------------------------------------- >> Hugo Gravato Marques, University of Essex, PhD Student >> PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >> ADDRESS: University of Essex, Department of Computer Science, >> Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >> WEB: http://privatewww.essex.ac.uk/~hgmarq/ >> =20 >> > --=20 | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-03-27 22:35:31
|
Hi Fred, Going to do some tests with some live cameras this week and fix this. I also noticed that by encoding the color in Java byte format (signed, -127..128), the colors could get messed up, as normally they should be unsigned (0..255). I will try to change everything to integer and then test. If that works ok, I'll patch the library and let you know. Best, Radu. Fred Labrosse wrote: >Hello, > >Finally found some time... > >On Thursday 16 Mar 2006 10:24, Radu Bogdan Rusu wrote: > > >>Hey Fred, >> >>If nobody else figures it out, I will try to do something about it on >>the plane. In general though, it is better to: >>- first, test if the data is ready, using the >><CameraInterface>.isDataReady () method >>- then try to actually read the data from CameraInterface's buffer. >> >>Example: >>PlayerCameraData camdata = new PlayerCameraData (); >> >>if (camdata.isDataReady ()) >>camdata = cam.getData (); >> >> > >I've done: > > System.out.println("Waiting for image to be ready"); > while (!cam.isDataReady()) > { > // Do nothing, just wait for the data to be ready. > } > System.out.println("Getting image"); > camdata = cam.getData(); > >and that indeed (almost) solves the problem I was reporting. Only almost >because to save the image I have to do: > > for (int h = 0; h < height ; h++) > for (int w = 0; w < width; w++) > { > file.write(data[(w * 3) + (h * width * 3) + 1]); // Red > file.write(data[(w * 3) + (h * width * 3) + 2]); // Green > file.write(data[(w * 3) + (h * width * 3) + 0]); // Blue > } > >in order to get the colours right. The interesting bit is that v4l normally >creates BGR pixels (i.e. blue and red swapped). However, I seem to be >getting BRG pixels from the CameraInterface. But that's easy enough to fix. > >Finally, is the isDataReady()/getData() pair is in a loop, it hangs on the >second isDataReady() (or am I not supposed to be using it as I do? Also, at >the same time I do get loads of > >warning : tried to push onto a full message queue >error : tried to push 2/1 from/onto 4/0 > >while trying to get the second image. This is with version 2.0.1 of >javaclient and a fairly recent cvs version of player. > >Cheers, > >Fred > > >------------------------------------------------------- >This SF.Net email is sponsored by xPML, a groundbreaking scripting language >that extends applications into web and mobile media. Attend the live webcast >and join the prime developer group breaking into this new coding territory! >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >_______________________________________________ >Java-player-users mailing list >Jav...@li... >https://lists.sourceforge.net/lists/listinfo/java-player-users > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-03-27 22:13:01
|
Ok, since the fix seems to affect more than one file (Player-wise), ignore changing your player distribution for now, and use the latest Javaclient2 CVS version. I just commited the latest changes which should work with the *current* Player version (CVS). Once Player 2.1 is out, I will change it. Best, Radu. Radu Bogdan Rusu wrote: > Aham!!! Evrika! ;) > > We just found another Player bug. The fix for this one is trivial > though. I envision Player in a few months being 99.99% bug free at > this rate! :) > > Unfortunately I don't have commit rights to that part of the > repository (libplayercore)... so I'll ask Brian to do it for us now. > > If you don't want to "cvs" Player... go into player.h yourself, search > for the player_graphics2d_cmd_points_t, > player_graphics2d_cmd_polyline_t and player_graphics2d_cmd_polygon_t > structures, and modify the first member from "uint16_t count;" to > "uint16_t points_count;". Then recompile Player, and that should be it. > > There is one small fix for Javaclient2 as well... I am committing it > now, and then waiting for Brian to patch Player, and probably test > again in the morning. > > Cheers, > Radu. > > Marques, Hugo G wrote: > >> Hi Radu... >> >> first of all thank's for the quick implementation of the interface... >> I really needed it in order to continue my experiments... >> >> I tryed to run your code and it works perfectly... but if I try to >> use an PlayerGraphics2dCmdPolyline object with the number of lines >> smaller than 64 it simply does not show anything... I tryed to show a >> simple line on Stage with only 2 points using the same idea you used >> in the example and it did not work... Then I hacked slightly your >> code (see bellow) in order to print only part of the circles and it >> did not worked as well... >> >> I then tried to solve the issue with the class >> PlayerGraphics2dCmdPolygon but I had the same problem. I tried to >> went through the source code of playerclient and the >> graphics2DInterface and it seemed fine to me... >> Another thing that you might want to have a look in the class >> PlayerGraphics2dCmdPolygon is that if you do not setFill_color it >> gives an exception, when it could probably use a default >> (transparent?) value... >> >> Thank you very much Regards... >> Hugo >> >> ************************************* CODE ******************* >> >> PlayerClient robot; >> Graphics2DInterface graphicsInterface; >> >> robot = new PlayerClient ("localhost", 6665); >> graphicsInterface = robot.requestInterfaceGraphics2D(0, 1); >> robot.runThreaded(-1, -1); >> >> graphicsInterface.clearScreen (); >> >> PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); >> >> PlayerColor color = new PlayerColor (); >> color.setAlpha (0); >> color.setRed (0); color.setGreen (0); color.setBlue (0xff); >> int lineSize = 32; >> p.setCount (lineSize); >> >> for (double r = 0; r < 1.0; r += 0.05) { >> PlayerPoint2d[] points = new PlayerPoint2d[lineSize]; >> for (int j = 0; j < lineSize; j++) { >> points[j] = new PlayerPoint2d (); >> points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); >> points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); >> System.out.println(" Point: "+points[j].getPx()+", >> "+points[j].getPy()); >> } >> >> p.setPoints (points); >> p.setColor (color); >> >> graphicsInterface.drawPolyline (p); >> >> try { Thread.sleep (100); } catch (Exception e) { >> e.printStackTrace(); } >> >> ************************************* END CODE ******************* >> >> >> >> ---------------------------------------------------- >> Hugo Gravato Marques, University of Essex, PhD Student >> PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >> ADDRESS: University of Essex, Department of Computer Science, >> Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >> WEB: http://privatewww.essex.ac.uk/~hgmarq/ >> >> > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-03-27 20:48:14
|
Aham!!! Evrika! ;) We just found another Player bug. The fix for this one is trivial though. I envision Player in a few months being 99.99% bug free at this rate! :) Unfortunately I don't have commit rights to that part of the repository (libplayercore)... so I'll ask Brian to do it for us now. If you don't want to "cvs" Player... go into player.h yourself, search for the player_graphics2d_cmd_points_t, player_graphics2d_cmd_polyline_t and player_graphics2d_cmd_polygon_t structures, and modify the first member from "uint16_t count;" to "uint16_t points_count;". Then recompile Player, and that should be it. There is one small fix for Javaclient2 as well... I am committing it now, and then waiting for Brian to patch Player, and probably test again in the morning. Cheers, Radu. Marques, Hugo G wrote: >Hi Radu... > >first of all thank's for the quick implementation of the interface... I really needed it in order to continue my experiments... > >I tryed to run your code and it works perfectly... but if I try to use an PlayerGraphics2dCmdPolyline object with the number of lines smaller than 64 it simply does not show anything... I tryed to show a simple line on Stage with only 2 points using the same idea you used in the example and it did not work... Then I hacked slightly your code (see bellow) in order to print only part of the circles and it did not worked as well... > >I then tried to solve the issue with the class PlayerGraphics2dCmdPolygon but I had the same problem. I tried to went through the source code of playerclient and the graphics2DInterface and it seemed fine to me... > >Another thing that you might want to have a look in the class PlayerGraphics2dCmdPolygon is that if you do not setFill_color it gives an exception, when it could probably use a default (transparent?) value... > >Thank you very much >Regards... >Hugo > >************************************* CODE ******************* > >PlayerClient robot; >Graphics2DInterface graphicsInterface; > >robot = new PlayerClient ("localhost", 6665); >graphicsInterface = robot.requestInterfaceGraphics2D(0, 1); >robot.runThreaded(-1, -1); > >graphicsInterface.clearScreen (); > >PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); > >PlayerColor color = new PlayerColor (); >color.setAlpha (0); >color.setRed (0); color.setGreen (0); color.setBlue (0xff); >int lineSize = 32; >p.setCount (lineSize); > >for (double r = 0; r < 1.0; r += 0.05) { > PlayerPoint2d[] points = new PlayerPoint2d[lineSize]; > > for (int j = 0; j < lineSize; j++) { > points[j] = new PlayerPoint2d (); > points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); > points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); > System.out.println(" Point: "+points[j].getPx()+", "+points[j].getPy()); > } > >p.setPoints (points); >p.setColor (color); > >graphicsInterface.drawPolyline (p); > >try { Thread.sleep (100); } catch (Exception e) { > e.printStackTrace(); } > >************************************* END CODE ******************* > > > >---------------------------------------------------- >Hugo Gravato Marques, University of Essex, PhD Student >PHONE: +44 (0)7854917241, England or +351 962482416, Portugal >ADDRESS: University of Essex, Department of Computer Science, >Wivenhoe Park, Colchester Essex, CO4 3SQ, UK >WEB: http://privatewww.essex.ac.uk/~hgmarq/ > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Marques, H. G <hg...@es...> - 2006-03-27 17:16:11
|
Hi Radu... first of all thank's for the quick implementation of the interface... I = really needed it in order to continue my experiments... I tryed to run your code and it works perfectly... but if I try to use = an PlayerGraphics2dCmdPolyline object with the number of lines smaller = than 64 it simply does not show anything... I tryed to show a simple = line on Stage with only 2 points using the same idea you used in the = example and it did not work... Then I hacked slightly your code (see = bellow) in order to print only part of the circles and it did not worked = as well... I then tried to solve the issue with the class = PlayerGraphics2dCmdPolygon but I had the same problem. I tried to went = through the source code of playerclient and the graphics2DInterface and = it seemed fine to me...=20 Another thing that you might want to have a look in the class = PlayerGraphics2dCmdPolygon is that if you do not setFill_color it gives = an exception, when it could probably use a default (transparent?) = value... Thank you very much=20 Regards... Hugo ************************************* CODE ******************* PlayerClient robot; Graphics2DInterface graphicsInterface; robot =3D new PlayerClient ("localhost", 6665); graphicsInterface =3D robot.requestInterfaceGraphics2D(0, 1); robot.runThreaded(-1, -1); graphicsInterface.clearScreen (); PlayerGraphics2dCmdPolyline p =3D new PlayerGraphics2dCmdPolyline (); PlayerColor color =3D new PlayerColor (); color.setAlpha (0); color.setRed (0); color.setGreen (0); color.setBlue (0xff); int lineSize =3D 32; p.setCount (lineSize); for (double r =3D 0; r < 1.0; r +=3D 0.05) { PlayerPoint2d[] points =3D new PlayerPoint2d[lineSize]; =20 for (int j =3D 0; j < lineSize; j++) { points[j] =3D new PlayerPoint2d (); points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); System.out.println(" Point: "+points[j].getPx()+", = "+points[j].getPy()); } p.setPoints (points); p.setColor (color); graphicsInterface.drawPolyline (p); try { Thread.sleep (100); } catch (Exception e) { e.printStackTrace(); } ************************************* END CODE ******************* ---------------------------------------------------- Hugo Gravato Marques, University of Essex, PhD Student PHONE: +44 (0)7854917241, England or +351 962482416, Portugal ADDRESS: University of Essex, Department of Computer Science, Wivenhoe Park, Colchester Essex, CO4 3SQ, UK WEB: http://privatewww.essex.ac.uk/~hgmarq/ =20 -----Original Message----- From: jav...@li... on behalf of Radu = Bogdan Rusu Sent: Sun 26/03/2006 23:20 To: jav...@li... Subject: Re: [Java-player-users] Graphics2D interface =20 Hi Hugo, Sorry I'm only delivering now, but I've been busy with other things=20 during the weekend. :( Hope it's not too late for your project. Anyway, I just committed the code to CVS, so it should be available for=20 you in the morning. Please ignore the WSNInterface for now, as I'm still = working on committing the new wsn interface and drivers to the Player=20 repository first. I haven't had time to test it properly, but here's a "quickie" :)... - Player/Stage 2.x from CVS - started with everything.cfg - and the following code compiled into Javaclient: PlayerClient robot =3D null; Graphics2DInterface g2di =3D null; robot =3D new PlayerClient ("localhost", 6665); g2di =3D robot.requestInterfaceGraphics2D (0,=20 PlayerConstants.PLAYER_OPEN_MODE); robot.runThreaded (-1, -1); g2di.clearScreen (); PlayerGraphics2dCmdPolyline p =3D new = PlayerGraphics2dCmdPolyline (); =20 PlayerColor color =3D new PlayerColor (); color.setAlpha (0); color.setRed (0); color.setGreen (0); color.setBlue (0xff); p.setCount (64); =20 for (double r =3D 0; r < 1.0; r +=3D 0.05) { PlayerPoint2d[] points =3D new PlayerPoint2d[64]; for (int j =3D 0; j < 64; j++) { points[j] =3D new PlayerPoint2d (); points[j].setPx ((float)(r * Math.cos (j * Math.PI / = 32))); points[j].setPy ((float)(r * Math.sin (j * Math.PI / = 32))); } p.setPoints (points); p.setColor (color); g2di.drawPolyline (p); try { Thread.sleep (100); } catch (Exception e) {=20 e.printStackTrace(); } } --- Please tell me if it works and if you encounter any errors. Cheers, Radu. Hugo Gravato Marques wrote: >Thank you Radu... I really appreciate it... > > > >On 23/3/06 8:42 pm, "Radu Bogdan Rusu" <ru...@cs...> wrote: > > =20 > >>Hi Hugo, >> >>I just returned from Linz/Austria, and will get some free time = tomorrow >>afternoon to do it. I will e-mail back tomorrow with more details and >>hopefully an implementation of it. >> >>Best, >>Radu. >> >>Hugo Gravato Marques wrote: >> >> =20 >> >>>Hi Radu... >>> >>>Do you have any idea on when can you implement the Graphics2D = interface? It >>>would come really handy if I could use it by the weekend... >>> >>>Thanks... >>>Hugo >>> >>> >>>On 14/3/06 3:42 pm, "Hugo Gravato Marques" <hg...@es...> = wrote: >>> >>>=20 >>> >>> =20 >>> >>>>Hi Radu >>>> >>>>Yes... Toby told me they are in the stage side. The interface as far = as I >>>>understand is just a visualization... If you could do it next week = that >>>>would be wonderful since I don't expect to have things ready until = then >>>>anyway... >>>> >>>>I added my email with Toby bellow... >>>> >>>>Thank you very much... >>>> >>>>Regards, >>>>Hugo >>>> >>>>I pasted bellow my email and his reply... >>>> >>>>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D EMAILS >>>> >>>>I dont think this would be particularly easy to do, however if you = want >>>>to you can create visualisation in stage using the graphics2d = interface. >>>>Have a look at the examples in the source and docs on the. i believe >>>>this will be the easiest method for achieving what you want. >>>> >>>>Toby >>>> >>>>Hugo Gravato Marques wrote: >>>> >>>> =20 >>>> >>>> =20 >>>> >>>>>Hello... >>>>> >>>>>I was wondering if I could set the values in the laser sensor in a = way that >>>>>I could visualize in stage the values of a given laser array I = define? If >>>>>not how difficult would be to make something like that? >>>>> >>>>>Thanks... >>>>>Hugo >>>>> >>>>> >>>>> =20 >>>>> >>>>> =20 >>>>> >>>>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D END OF EMAILS >>>> >>>>On 14/3/06 8:32 am, "Radu Bogdan Rusu" <ru...@cs...> wrote: >>>> >>>> =20 >>>> >>>> =20 >>>> >>>>>Hi Hugo, >>>>> >>>>>Unfortunately, I have no time this week (or I might during the = weekend, >>>>>but I will be away in .nl). >>>>> >>>>>Last time I checked there was no data structures defined in player = for >>>>>graphics2d. Are they all on Stage's side? >>>>> >>>>>Radu. >>>>> >>>>>Hugo Gravato Marques wrote: >>>>> >>>>> =20 >>>>> >>>>> =20 >>>>> >>>>>>Hello... >>>>>> >>>>>>I was wondering when do you think you will add the Graphics2D = interface to >>>>>>the javaclient2? >>>>>> >>>>>>Cheers, >>>>>>Hugo >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>------------------------------------------------------- >>>>>>This SF.Net email is sponsored by xPML, a groundbreaking scripting >>>>>>language >>>>>>that extends applications into web and mobile media. Attend the = live >>>>>>webcast >>>>>>and join the prime developer group breaking into this new coding >>>>>>territory! >>>>>>http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720= &dat=3D121642 >>>>>>_______________________________________________ >>>>>>Java-player-users mailing list >>>>>>Jav...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>>>>> >>>>>> >>>>>> =20 >>>>>> >>>>>> =20 >>>>>> >>>>------------------------------------------------------- >>>>This SF.Net email is sponsored by xPML, a groundbreaking scripting = language >>>>that extends applications into web and mobile media. Attend the live = webcast >>>>and join the prime developer group breaking into this new coding = territory! >>>>http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&d= at=3D121642 >>>>_______________________________________________ >>>>Java-player-users mailing list >>>>Jav...@li... >>>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>>> =20 >>>> >>>> =20 >>>> >>> >>> >>>------------------------------------------------------- >>>This SF.Net email is sponsored by xPML, a groundbreaking scripting = language >>>that extends applications into web and mobile media. Attend the live = webcast >>>and join the prime developer group breaking into this new coding = territory! >>>http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&da= t=3D121642 >>>_______________________________________________ >>>Java-player-users mailing list >>>Jav...@li... >>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>>=20 >>> >>> =20 >>> > > > > >------------------------------------------------------- >This SF.Net email is sponsored by xPML, a groundbreaking scripting = language >that extends applications into web and mobile media. Attend the live = webcast >and join the prime developer group breaking into this new coding = territory! >http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat=3D= 121642 >_______________________________________________ >Java-player-users mailing list >Jav...@li... >https://lists.sourceforge.net/lists/listinfo/java-player-users > =20 > --=20 | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Radu B. R. <ru...@cs...> - 2006-03-26 22:20:51
|
Hi Hugo, Sorry I'm only delivering now, but I've been busy with other things during the weekend. :( Hope it's not too late for your project. Anyway, I just committed the code to CVS, so it should be available for you in the morning. Please ignore the WSNInterface for now, as I'm still working on committing the new wsn interface and drivers to the Player repository first. I haven't had time to test it properly, but here's a "quickie" :)... - Player/Stage 2.x from CVS - started with everything.cfg - and the following code compiled into Javaclient: PlayerClient robot = null; Graphics2DInterface g2di = null; robot = new PlayerClient ("localhost", 6665); g2di = robot.requestInterfaceGraphics2D (0, PlayerConstants.PLAYER_OPEN_MODE); robot.runThreaded (-1, -1); g2di.clearScreen (); PlayerGraphics2dCmdPolyline p = new PlayerGraphics2dCmdPolyline (); PlayerColor color = new PlayerColor (); color.setAlpha (0); color.setRed (0); color.setGreen (0); color.setBlue (0xff); p.setCount (64); for (double r = 0; r < 1.0; r += 0.05) { PlayerPoint2d[] points = new PlayerPoint2d[64]; for (int j = 0; j < 64; j++) { points[j] = new PlayerPoint2d (); points[j].setPx ((float)(r * Math.cos (j * Math.PI / 32))); points[j].setPy ((float)(r * Math.sin (j * Math.PI / 32))); } p.setPoints (points); p.setColor (color); g2di.drawPolyline (p); try { Thread.sleep (100); } catch (Exception e) { e.printStackTrace(); } } --- Please tell me if it works and if you encounter any errors. Cheers, Radu. Hugo Gravato Marques wrote: >Thank you Radu... I really appreciate it... > > > >On 23/3/06 8:42 pm, "Radu Bogdan Rusu" <ru...@cs...> wrote: > > > >>Hi Hugo, >> >>I just returned from Linz/Austria, and will get some free time tomorrow >>afternoon to do it. I will e-mail back tomorrow with more details and >>hopefully an implementation of it. >> >>Best, >>Radu. >> >>Hugo Gravato Marques wrote: >> >> >> >>>Hi Radu... >>> >>>Do you have any idea on when can you implement the Graphics2D interface? It >>>would come really handy if I could use it by the weekend... >>> >>>Thanks... >>>Hugo >>> >>> >>>On 14/3/06 3:42 pm, "Hugo Gravato Marques" <hg...@es...> wrote: >>> >>> >>> >>> >>> >>>>Hi Radu >>>> >>>>Yes... Toby told me they are in the stage side. The interface as far as I >>>>understand is just a visualization... If you could do it next week that >>>>would be wonderful since I don't expect to have things ready until then >>>>anyway... >>>> >>>>I added my email with Toby bellow... >>>> >>>>Thank you very much... >>>> >>>>Regards, >>>>Hugo >>>> >>>>I pasted bellow my email and his reply... >>>> >>>>=========================== EMAILS >>>> >>>>I dont think this would be particularly easy to do, however if you want >>>>to you can create visualisation in stage using the graphics2d interface. >>>>Have a look at the examples in the source and docs on the. i believe >>>>this will be the easiest method for achieving what you want. >>>> >>>>Toby >>>> >>>>Hugo Gravato Marques wrote: >>>> >>>> >>>> >>>> >>>> >>>>>Hello... >>>>> >>>>>I was wondering if I could set the values in the laser sensor in a way that >>>>>I could visualize in stage the values of a given laser array I define? If >>>>>not how difficult would be to make something like that? >>>>> >>>>>Thanks... >>>>>Hugo >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>============================ END OF EMAILS >>>> >>>>On 14/3/06 8:32 am, "Radu Bogdan Rusu" <ru...@cs...> wrote: >>>> >>>> >>>> >>>> >>>> >>>>>Hi Hugo, >>>>> >>>>>Unfortunately, I have no time this week (or I might during the weekend, >>>>>but I will be away in .nl). >>>>> >>>>>Last time I checked there was no data structures defined in player for >>>>>graphics2d. Are they all on Stage's side? >>>>> >>>>>Radu. >>>>> >>>>>Hugo Gravato Marques wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>Hello... >>>>>> >>>>>>I was wondering when do you think you will add the Graphics2D interface to >>>>>>the javaclient2? >>>>>> >>>>>>Cheers, >>>>>>Hugo >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>------------------------------------------------------- >>>>>>This SF.Net email is sponsored by xPML, a groundbreaking scripting >>>>>>language >>>>>>that extends applications into web and mobile media. Attend the live >>>>>>webcast >>>>>>and join the prime developer group breaking into this new coding >>>>>>territory! >>>>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>>>>>_______________________________________________ >>>>>>Java-player-users mailing list >>>>>>Jav...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>------------------------------------------------------- >>>>This SF.Net email is sponsored by xPML, a groundbreaking scripting language >>>>that extends applications into web and mobile media. Attend the live webcast >>>>and join the prime developer group breaking into this new coding territory! >>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>>>_______________________________________________ >>>>Java-player-users mailing list >>>>Jav...@li... >>>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>>> >>>> >>>> >>>> >>> >>> >>>------------------------------------------------------- >>>This SF.Net email is sponsored by xPML, a groundbreaking scripting language >>>that extends applications into web and mobile media. Attend the live webcast >>>and join the prime developer group breaking into this new coding territory! >>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>>_______________________________________________ >>>Java-player-users mailing list >>>Jav...@li... >>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>> >>> >>> >>> > > > > >------------------------------------------------------- >This SF.Net email is sponsored by xPML, a groundbreaking scripting language >that extends applications into web and mobile media. Attend the live webcast >and join the prime developer group breaking into this new coding territory! >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >_______________________________________________ >Java-player-users mailing list >Jav...@li... >https://lists.sourceforge.net/lists/listinfo/java-player-users > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Hugo G. M. <hg...@es...> - 2006-03-24 15:43:46
|
Thank you Radu... I really appreciate it... On 23/3/06 8:42 pm, "Radu Bogdan Rusu" <ru...@cs...> wrote: > Hi Hugo, > > I just returned from Linz/Austria, and will get some free time tomorrow > afternoon to do it. I will e-mail back tomorrow with more details and > hopefully an implementation of it. > > Best, > Radu. > > Hugo Gravato Marques wrote: > >> Hi Radu... >> >> Do you have any idea on when can you implement the Graphics2D interface? It >> would come really handy if I could use it by the weekend... >> >> Thanks... >> Hugo >> >> >> On 14/3/06 3:42 pm, "Hugo Gravato Marques" <hg...@es...> wrote: >> >> >> >>> Hi Radu >>> >>> Yes... Toby told me they are in the stage side. The interface as far as I >>> understand is just a visualization... If you could do it next week that >>> would be wonderful since I don't expect to have things ready until then >>> anyway... >>> >>> I added my email with Toby bellow... >>> >>> Thank you very much... >>> >>> Regards, >>> Hugo >>> >>> I pasted bellow my email and his reply... >>> >>> =========================== EMAILS >>> >>> I dont think this would be particularly easy to do, however if you want >>> to you can create visualisation in stage using the graphics2d interface. >>> Have a look at the examples in the source and docs on the. i believe >>> this will be the easiest method for achieving what you want. >>> >>> Toby >>> >>> Hugo Gravato Marques wrote: >>> >>> >>> >>>> Hello... >>>> >>>> I was wondering if I could set the values in the laser sensor in a way that >>>> I could visualize in stage the values of a given laser array I define? If >>>> not how difficult would be to make something like that? >>>> >>>> Thanks... >>>> Hugo >>>> >>>> >>>> >>>> >>> ============================ END OF EMAILS >>> >>> On 14/3/06 8:32 am, "Radu Bogdan Rusu" <ru...@cs...> wrote: >>> >>> >>> >>>> Hi Hugo, >>>> >>>> Unfortunately, I have no time this week (or I might during the weekend, >>>> but I will be away in .nl). >>>> >>>> Last time I checked there was no data structures defined in player for >>>> graphics2d. Are they all on Stage's side? >>>> >>>> Radu. >>>> >>>> Hugo Gravato Marques wrote: >>>> >>>> >>>> >>>>> Hello... >>>>> >>>>> I was wondering when do you think you will add the Graphics2D interface to >>>>> the javaclient2? >>>>> >>>>> Cheers, >>>>> Hugo >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------- >>>>> This SF.Net email is sponsored by xPML, a groundbreaking scripting >>>>> language >>>>> that extends applications into web and mobile media. Attend the live >>>>> webcast >>>>> and join the prime developer group breaking into this new coding >>>>> territory! >>>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>>>> _______________________________________________ >>>>> Java-player-users mailing list >>>>> Jav...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/java-player-users >>>>> >>>>> >>>>> >>>>> >>> >>> >>> ------------------------------------------------------- >>> This SF.Net email is sponsored by xPML, a groundbreaking scripting language >>> that extends applications into web and mobile media. Attend the live webcast >>> and join the prime developer group breaking into this new coding territory! >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>> _______________________________________________ >>> Java-player-users mailing list >>> Jav...@li... >>> https://lists.sourceforge.net/lists/listinfo/java-player-users >>> >>> >> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by xPML, a groundbreaking scripting language >> that extends applications into web and mobile media. Attend the live webcast >> and join the prime developer group breaking into this new coding territory! >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >> _______________________________________________ >> Java-player-users mailing list >> Jav...@li... >> https://lists.sourceforge.net/lists/listinfo/java-player-users >> >> |
From: Radu B. R. <ru...@cs...> - 2006-03-23 20:42:58
|
Hi Hugo, I just returned from Linz/Austria, and will get some free time tomorrow afternoon to do it. I will e-mail back tomorrow with more details and hopefully an implementation of it. Best, Radu. Hugo Gravato Marques wrote: >Hi Radu... > >Do you have any idea on when can you implement the Graphics2D interface? It >would come really handy if I could use it by the weekend... > >Thanks... >Hugo > > >On 14/3/06 3:42 pm, "Hugo Gravato Marques" <hg...@es...> wrote: > > > >>Hi Radu >> >>Yes... Toby told me they are in the stage side. The interface as far as I >>understand is just a visualization... If you could do it next week that >>would be wonderful since I don't expect to have things ready until then >>anyway... >> >>I added my email with Toby bellow... >> >>Thank you very much... >> >>Regards, >>Hugo >> >>I pasted bellow my email and his reply... >> >>=========================== EMAILS >> >>I dont think this would be particularly easy to do, however if you want >>to you can create visualisation in stage using the graphics2d interface. >>Have a look at the examples in the source and docs on the. i believe >>this will be the easiest method for achieving what you want. >> >>Toby >> >>Hugo Gravato Marques wrote: >> >> >> >>>Hello... >>> >>>I was wondering if I could set the values in the laser sensor in a way that >>>I could visualize in stage the values of a given laser array I define? If >>>not how difficult would be to make something like that? >>> >>>Thanks... >>>Hugo >>> >>> >>> >>> >>============================ END OF EMAILS >> >>On 14/3/06 8:32 am, "Radu Bogdan Rusu" <ru...@cs...> wrote: >> >> >> >>>Hi Hugo, >>> >>>Unfortunately, I have no time this week (or I might during the weekend, >>>but I will be away in .nl). >>> >>>Last time I checked there was no data structures defined in player for >>>graphics2d. Are they all on Stage's side? >>> >>>Radu. >>> >>>Hugo Gravato Marques wrote: >>> >>> >>> >>>>Hello... >>>> >>>>I was wondering when do you think you will add the Graphics2D interface to >>>>the javaclient2? >>>> >>>>Cheers, >>>>Hugo >>>> >>>> >>>> >>>> >>>>------------------------------------------------------- >>>>This SF.Net email is sponsored by xPML, a groundbreaking scripting language >>>>that extends applications into web and mobile media. Attend the live webcast >>>>and join the prime developer group breaking into this new coding territory! >>>>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>>>_______________________________________________ >>>>Java-player-users mailing list >>>>Jav...@li... >>>>https://lists.sourceforge.net/lists/listinfo/java-player-users >>>> >>>> >>>> >>>> >> >> >>------------------------------------------------------- >>This SF.Net email is sponsored by xPML, a groundbreaking scripting language >>that extends applications into web and mobile media. Attend the live webcast >>and join the prime developer group breaking into this new coding territory! >>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>_______________________________________________ >>Java-player-users mailing list >>Jav...@li... >>https://lists.sourceforge.net/lists/listinfo/java-player-users >> >> > > > > >------------------------------------------------------- >This SF.Net email is sponsored by xPML, a groundbreaking scripting language >that extends applications into web and mobile media. Attend the live webcast >and join the prime developer group breaking into this new coding territory! >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >_______________________________________________ >Java-player-users mailing list >Jav...@li... >https://lists.sourceforge.net/lists/listinfo/java-player-users > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Hugo G. M. <hg...@es...> - 2006-03-22 19:15:15
|
Hi Radu... Do you have any idea on when can you implement the Graphics2D interface? It would come really handy if I could use it by the weekend... Thanks... Hugo On 14/3/06 3:42 pm, "Hugo Gravato Marques" <hg...@es...> wrote: > > Hi Radu > > Yes... Toby told me they are in the stage side. The interface as far as I > understand is just a visualization... If you could do it next week that > would be wonderful since I don't expect to have things ready until then > anyway... > > I added my email with Toby bellow... > > Thank you very much... > > Regards, > Hugo > > I pasted bellow my email and his reply... > > =========================== EMAILS > > I dont think this would be particularly easy to do, however if you want > to you can create visualisation in stage using the graphics2d interface. > Have a look at the examples in the source and docs on the. i believe > this will be the easiest method for achieving what you want. > > Toby > > Hugo Gravato Marques wrote: > >> Hello... >> >> I was wondering if I could set the values in the laser sensor in a way that >> I could visualize in stage the values of a given laser array I define? If >> not how difficult would be to make something like that? >> >> Thanks... >> Hugo >> >> > ============================ END OF EMAILS > > On 14/3/06 8:32 am, "Radu Bogdan Rusu" <ru...@cs...> wrote: > >> Hi Hugo, >> >> Unfortunately, I have no time this week (or I might during the weekend, >> but I will be away in .nl). >> >> Last time I checked there was no data structures defined in player for >> graphics2d. Are they all on Stage's side? >> >> Radu. >> >> Hugo Gravato Marques wrote: >> >>> Hello... >>> >>> I was wondering when do you think you will add the Graphics2D interface to >>> the javaclient2? >>> >>> Cheers, >>> Hugo >>> >>> >>> >>> >>> ------------------------------------------------------- >>> This SF.Net email is sponsored by xPML, a groundbreaking scripting language >>> that extends applications into web and mobile media. Attend the live webcast >>> and join the prime developer group breaking into this new coding territory! >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >>> _______________________________________________ >>> Java-player-users mailing list >>> Jav...@li... >>> https://lists.sourceforge.net/lists/listinfo/java-player-users >>> >>> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Java-player-users mailing list > Jav...@li... > https://lists.sourceforge.net/lists/listinfo/java-player-users |
From: Fred L. <ff...@ab...> - 2006-03-20 17:15:44
|
On Monday 20 Mar 2006 16:37, Fred Labrosse wrote: > Hello, > > Finally found some time... > > On Thursday 16 Mar 2006 10:24, Radu Bogdan Rusu wrote: > > Hey Fred, > > > > If nobody else figures it out, I will try to do something about it on > > the plane. In general though, it is better to: > > - first, test if the data is ready, using the > > <CameraInterface>.isDataReady () method > > - then try to actually read the data from CameraInterface's buffer. > > > > Example: > > PlayerCameraData camdata = new PlayerCameraData (); > > > > if (camdata.isDataReady ()) > > camdata = cam.getData (); > > I've done: > > System.out.println("Waiting for image to be ready"); > while (!cam.isDataReady()) > { > // Do nothing, just wait for the data to be ready. > } > System.out.println("Getting image"); > camdata = cam.getData(); > > and that indeed (almost) solves the problem I was reporting. Only almost > because to save the image I have to do: > > for (int h = 0; h < height ; h++) > for (int w = 0; w < width; w++) > { > file.write(data[(w * 3) + (h * width * 3) + 1]); // > Red file.write(data[(w * 3) + (h * width * 3) + 2]); // Green > file.write(data[(w * 3) + (h * width * 3) + 0]); // Blue } > > in order to get the colours right. The interesting bit is that v4l > normally creates BGR pixels (i.e. blue and red swapped). However, I seem > to be getting BRG pixels from the CameraInterface. But that's easy enough > to fix. > > Finally, is the isDataReady()/getData() pair is in a loop, it hangs on the > second isDataReady() (or am I not supposed to be using it as I do? Also, > at the same time I do get loads of > > warning : tried to push onto a full message queue > error : tried to push 2/1 from/onto 4/0 Sorry, actually: warning : tried to push onto a full message queue error : tried to push 1/1 from/onto 40/0 > > while trying to get the second image. Should have added that this is if option "save 1" in the config file is commented out. Fred |
From: Fred L. <ff...@ab...> - 2006-03-20 16:38:09
|
Hello, Finally found some time... On Thursday 16 Mar 2006 10:24, Radu Bogdan Rusu wrote: > Hey Fred, > > If nobody else figures it out, I will try to do something about it on > the plane. In general though, it is better to: > - first, test if the data is ready, using the > <CameraInterface>.isDataReady () method > - then try to actually read the data from CameraInterface's buffer. > > Example: > PlayerCameraData camdata = new PlayerCameraData (); > > if (camdata.isDataReady ()) > camdata = cam.getData (); I've done: System.out.println("Waiting for image to be ready"); while (!cam.isDataReady()) { // Do nothing, just wait for the data to be ready. } System.out.println("Getting image"); camdata = cam.getData(); and that indeed (almost) solves the problem I was reporting. Only almost because to save the image I have to do: for (int h = 0; h < height ; h++) for (int w = 0; w < width; w++) { file.write(data[(w * 3) + (h * width * 3) + 1]); // Red file.write(data[(w * 3) + (h * width * 3) + 2]); // Green file.write(data[(w * 3) + (h * width * 3) + 0]); // Blue } in order to get the colours right. The interesting bit is that v4l normally creates BGR pixels (i.e. blue and red swapped). However, I seem to be getting BRG pixels from the CameraInterface. But that's easy enough to fix. Finally, is the isDataReady()/getData() pair is in a loop, it hangs on the second isDataReady() (or am I not supposed to be using it as I do? Also, at the same time I do get loads of warning : tried to push onto a full message queue error : tried to push 2/1 from/onto 4/0 while trying to get the second image. This is with version 2.0.1 of javaclient and a fairly recent cvs version of player. Cheers, Fred |
From: Radu B. R. <ru...@cs...> - 2006-03-16 10:24:12
|
Hey Fred, If nobody else figures it out, I will try to do something about it on the plane. In general though, it is better to: - first, test if the data is ready, using the <CameraInterface>.isDataReady () method - then try to actually read the data from CameraInterface's buffer. Example: PlayerCameraData camdata = new PlayerCameraData (); if (camdata.isDataReady ()) camdata = cam.getData (); ... Also, please check the version of the CameraInterface.java file. The latest should be 1.6 (available in 2.0.1 and in CVS). Basically, the problem is with receiving big amounts of data on the wire (which is always the case with video data). In the newest version of it, I replaced: /* Old way of dealing with camera data: * int totalBytes = 28; * int bytes; * while (totalBytes < header.getSize ()) * { * // read the compressed image data * bytes = is.read (buffer, totalBytes - 28, header.getSize () - totalBytes); * totalBytes += bytes; * } */ ...with... is.readFully (buffer, 0, imageCount); Which should do the same thing, but looks neater. Best, Radu. Fred Labrosse wrote: >All, > >I'm having a strange problem, which I think is a bug in javaclient2... > >Here is a bit of code, mostly coming from an example for 1.6.5 modified >for 2.0 (we actually use a recent (1.5 weeks ago about) cvs version): > >static byte[] imageData; > >PlayerClient robot = new PlayerClient("localhost", 6665); >CameraInterface cam > = robot.requestInterfaceCamera(0, > PlayerConstants.PLAYER_OPEN_MODE); >PlayerCameraData camdata = new PlayerCameraData(); > >camdata = cam.getData(); >int width = camdata.getWidth (); >int height = camdata.getHeight (); >int isize = camdata.getImage_count(); > >imageData = camdata.getImage (); >saveImage (imageData, isize, width, height, "/tmp/camera"+i+".pnm"); > >with save image containing (and other stuff as well): > >for (int i = 0; i < isize; i++) > file.write(imageData[i]); > >When the images are saved, only the top quarter of the image contains data >(the remaining being black) and that top part contains 4 almost copies of >the image (there are slight variations). > >The slight variations seem to say that the interlacing of the data is >wrong. The fact that 3 quarters of it is black (but there, isize being >right) seems to show that it's missing a lot of data. The former problem >is easy enough to solve (just coordinates manipulation) but the latter is >not... > >It's not coming from player because when the driver (camerav4l) is started >with the option "save 1", the saved images are correct. > >All the values in the camera interface seem correct (width and height are >200, isize is 120000 (not always though, see below), format is 5 (RGB888) >and compress is 0 (no compression). > >What is going on? > >Also, sometimes, the size (getImage_count()) of the image is 0 (but not >systematically) and player outputs loads of warnings and errors related to >full queues (don't have the exact messages with me at the moment). These >(but not the 0 size) disappear when images are saved by player (presumably >slowing it down). This is with a recent cvs version of player. The >following might be the culprit (haven't tried): > > robot.runThreaded (-1, -1); > >Any suggestions? > >Cheers, > >Fred > >P.S. Please reply to all so that the CC gets it as well. Thanks. > > > > >------------------------------------------------------- >This SF.Net email is sponsored by xPML, a groundbreaking scripting language >that extends applications into web and mobile media. Attend the live webcast >and join the prime developer group breaking into this new coding territory! >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >_______________________________________________ >Java-player-users mailing list >Jav...@li... >https://lists.sourceforge.net/lists/listinfo/java-player-users > > -- | Radu Bogdan Rusu | http://rbrusu.com/ | http://www9.cs.tum.edu/people/rusu/ | Intelligent Autonomous Systems | Technische Universitaet Muenchen |
From: Fred L. <ff...@ab...> - 2006-03-15 17:32:27
|
All, I'm having a strange problem, which I think is a bug in javaclient2... Here is a bit of code, mostly coming from an example for 1.6.5 modified for 2.0 (we actually use a recent (1.5 weeks ago about) cvs version): static byte[] imageData; PlayerClient robot = new PlayerClient("localhost", 6665); CameraInterface cam = robot.requestInterfaceCamera(0, PlayerConstants.PLAYER_OPEN_MODE); PlayerCameraData camdata = new PlayerCameraData(); camdata = cam.getData(); int width = camdata.getWidth (); int height = camdata.getHeight (); int isize = camdata.getImage_count(); imageData = camdata.getImage (); saveImage (imageData, isize, width, height, "/tmp/camera"+i+".pnm"); with save image containing (and other stuff as well): for (int i = 0; i < isize; i++) file.write(imageData[i]); When the images are saved, only the top quarter of the image contains data (the remaining being black) and that top part contains 4 almost copies of the image (there are slight variations). The slight variations seem to say that the interlacing of the data is wrong. The fact that 3 quarters of it is black (but there, isize being right) seems to show that it's missing a lot of data. The former problem is easy enough to solve (just coordinates manipulation) but the latter is not... It's not coming from player because when the driver (camerav4l) is started with the option "save 1", the saved images are correct. All the values in the camera interface seem correct (width and height are 200, isize is 120000 (not always though, see below), format is 5 (RGB888) and compress is 0 (no compression). What is going on? Also, sometimes, the size (getImage_count()) of the image is 0 (but not systematically) and player outputs loads of warnings and errors related to full queues (don't have the exact messages with me at the moment). These (but not the 0 size) disappear when images are saved by player (presumably slowing it down). This is with a recent cvs version of player. The following might be the culprit (haven't tried): robot.runThreaded (-1, -1); Any suggestions? Cheers, Fred P.S. Please reply to all so that the CC gets it as well. Thanks. |