From: Patrick F. <pat...@gm...> - 2006-02-23 04:16:55
|
HI, I'm using player 1.6.5 on a Pioneer 2AT robot equipped with a SICKLms200. When I try to use a laser proxy, I got the error : "tried to get 'r' access to device 6665:6:0 but got '^@' access" I didn't find anything on the mailing list on that issue. Here is my configuration file : ---------------------------------------------------------------------------= --------------- # Desc: Basic Pioneer2DX # CVS: $Id: pioneer.cfg,v 1.4 2005/04/05 04:18:30 gerkey Exp $ driver ( name "p2os" provides ["6665:position:0" "6665:bumper:0"] port "/dev/ttyS0" bumpstall 0 direct_wheel_vel_control 0 ) driver ( name "sicklms200" provides ["6665:laser:0"] port "/dev/ttyS1" # delay 35 # 35 or 0 give the same result range_res 10 ) ---------------------------------------------------------------------------= --------------- The configuration seem to be good since a can get access to the laser data via playerv. Here is my client code : mp_LaserProxy =3D new LaserProxy(mp_Robot,0,'r'); if(mp_LaserProxy->access !=3D 'r') { delete mp_LaserProxy; mp_LaserProxy =3D 0; } Note that the mp_Robot is correctlty instanciated because I can use a prosition proxy without difficulty. Moreover everything work well in simulation (stage.2-0-0a). Thank for your help Patrick |
Re: [Playerstage-users] Sick error -> tried to get 'r' access to device 6665:6:0 but got '^@' access
From: Brian G. <br...@ge...> - 2006-02-23 21:44:37
|
On Feb 22, 2006, at 8:16 PM, Patrick Frenette wrote: > > I'm using player 1.6.5 on a Pioneer 2AT robot equipped with a > SICKLms200. When I try to use a laser proxy, I got the error : > "tried to get 'r' access to device 6665:6:0 but got '^@' access" > > The configuration seem to be good since a can get access to the > laser data via playerv. > > Here is my client code : > > mp_LaserProxy = new LaserProxy(mp_Robot,0,'r'); > if(mp_LaserProxy->access != 'r') > { > delete mp_LaserProxy; > mp_LaserProxy = 0; > } > > Note that the mp_Robot is correctlty instanciated because I can use > a prosition proxy without difficulty. Moreover everything work > well in simulation (stage.2-0-0a). Hmm, the access that it says you got is clearly bogus, which suggests that it never got filled in. That would happen if either: (1) the PlayerClient object is not connected, or (2) an error occurred while sending the request. Unfortunately, neither condition is reported to you when you subscribe the proxy during construction. Try the following instead: mp_LaserProxy = new LaserProxy(mp_Robot,0); if(mp_LaserProxy->ChangeAccess('r',NULL) != 0) { // The request to change access to 'r' failed, and you should get some errors printed to the console suggesting why. } brian. |