From: Hunter A. <hun...@gm...> - 2011-07-07 15:23:44
|
There are also tools in the LaserProxy C++ class. I have done work with this very recently using player. The way I achieved it was by using the function GetPoint (uint32_t aIndex). The LaserProxy class is [1]. I use this, which gives the pose of the object with respect to the robot's coordinate frame. If you want to get the Pose of the object in terms of the global coordinate frame, you need to use a little bit of trig. I use the following with my research: //index is the index of the laser you are accessing. player_pose3d_t point = laserProxy->GetPose(); player_pose2d_t pose; double x = localized->GetXPos(); double xs = point.px; double y = localized->GetYPos(); double ys = point.py; double a = localized->GetYaw(); double as = laserProxy->GetBearing(index); pose.px = x + xs * cos(a) - ys * sin(a) + laserProxy->GetRange(index) * cos(a + as); pose.py = y + ys * cos(a) + xs * sin(a) + laserProxy->GetRange(index) * sin(a + as); pose.pa = laserProxy->GetBearing(index); This player_pose2d_t can then be used as the position of the object. This has been working with great success for me. If you have any questions, you can email me at hun...@gm... -Hunter A. [1] http://playerstage.sourceforge.net/doc/Player-svn/player/classPlayerCc_1_1LaserProxy.html#a334c2e97a3ee5c31c31c610ed20ea7b5 -- View this message in context: http://old.nabble.com/Obstacle-Position-Detection-tp32002458p32014204.html Sent from the playerstage-users mailing list archive at Nabble.com. |