From: Murilo F. M. <mu...@gm...> - 2011-02-16 04:27:36
|
Hello all, I've just experienced the same problem reported in this thread. My program runs with player 3.1 rev.8835. On a different machine with rev.8947 I got the error reported in this thread. I also got the error with the latest svn trunk, rev.9036, which I just downloaded and installed. I had a look at the source code and the files playerc++.h and localizeproxy.cc (as well as the online documentation) are coherent, where the SetPose() function is defined/implemented as: void SetPose(double pose[3], double cov[3]); In my code, I have: double mean[3]; double cov[3]; Then, I checked the above patch for playernav (gui.c) and the variable relative to the covariance is defined as: static double cov[6] = { ... }; I changed my code to: double mean[3]; double cov[6]; And now player doesn't crash (amcl appears to be working too). I skimmed through the amcl.cc file and I got rather confused, particularly with the implementation of PutDataLocalize(), where the assertion fails, and ProcessMessage(). Has anyone come across this issue? I noticed that only the diagonal of the 3x3 matrix (the variance) is used in amcl, right? Could anyone kindly explain why it is now necessary to have a 3x3 covariance matrix cov[6] (well, it makes sense, as mean[3] has 3 elements) even though the function prototype/implementation defines it should be cov[3]? Perhaps the localizeproxy was not updated after changes to amcl...?! Regards, Murilo On 23 November 2010 09:00, Sebastian Rockel <seb...@go...>wrote: > Hello, > > Thanks Thimo. > Your patch worked fine for playernav. > Since I am working with Javaclient, I had to make a patch there to get it > working (attached if someone is interested and sorry for cross posting). > > @Rich > So I believe the patch is correct. > > Regards, > Sebastian > > > > > > > > Am 22.11.2010 um 19:26 schrieb Rich Mattes: > > > On 11/22/2010 06:27 AM, Thimo Langbehn wrote: > >> Dear Sebastian, > >> > >> thank you for reporting the issue. > >> > >>> An older configuration (also 3.1.0svn but I don't know the svn release) > runs fine with the same configuration. > >>> So has there been any changes specifically to the amcl driver in the > recent past? > >> There is a bug in the 8859 changeset for the localization interface > (omission of playernav) that would cause the error you experienced. My bad. > >> > >> I attached a small patch (rev.8972) for it, could you try it with your > configuration? > >> > >> Best regards, > >> > >> Thimo Langbehn > >> > > Thanks for catching this. I went ahead and applied the patch you > > attached to your message (r8973.) If the problem ends up being > > somewhere else, let me know. > > > > Rich > > > > > > > ------------------------------------------------------------------------------ > > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > > Tap into the largest installed PC base & get more eyes on your game by > > optimizing for Intel(R) Graphics Technology. Get started today with the > > Intel(R) Software Partner Program. Five $500 cash prizes are up for > grabs. > > http://p.sf.net/sfu/intelisp-dev2dev > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > |
From: Rich M. <jp...@gm...> - 2011-02-16 17:39:14
|
On 02/15/2011 11:27 PM, Murilo Fernandes Martins wrote: > Hello all, > > I've just experienced the same problem reported in this thread. > > My program runs with player 3.1 rev.8835. On a different machine with > rev.8947 I got the error reported in this thread. I also got the error > with the latest svn trunk, rev.9036, which I just downloaded and > installed. > > I had a look at the source code and the files playerc++.h and > localizeproxy.cc (as well as the online documentation) are coherent, > where the SetPose() function is defined/implemented as: > void SetPose(double pose[3], double cov[3]); > > In my code, I have: > double mean[3]; > double cov[3]; > > Then, I checked the above patch for playernav (gui.c) and the variable > relative to the covariance is defined as: > static double cov[6] = { ... }; > > I changed my code to: > double mean[3]; > double cov[6]; > > And now player doesn't crash (amcl appears to be working too). > > I skimmed through the amcl.cc file and I got rather confused, > particularly with the implementation of PutDataLocalize(), where the > assertion fails, and ProcessMessage(). > > Has anyone come across this issue? > > I noticed that only the diagonal of the 3x3 matrix (the variance) is > used in amcl, right? > Could anyone kindly explain why it is now necessary to have a 3x3 > covariance matrix cov[6] (well, it makes sense, as mean[3] has 3 > elements) even though the function prototype/implementation defines it > should be cov[3]? > > Perhaps the localizeproxy was not updated after changes to amcl...?! > > Regards, > > Murilo > The covariance array in the Localize interface was changed to be 6 units long so that the entire covariance matrix could be passed (assuming it is symmetric,) rather than just the diagonal elements. This change effects all of the drivers that implement the localize interface, not just amcl[1]. It does look like SetPose in playerc++ was overlooked during that change; it should have a 6 element covarience array (the playerc function it calls correctly assumes a 6 element covarience). I will update this in the trunk and copy over corrected documentation. If there are any other instances of the 3-element covariance array, they will need to be fixed as well. Rich [1] http://playerstage.sourceforge.net/doc/Player-svn/player/structplayer__localize__hypoth.html |