Hi Eitan and Wim, I realized my laser's starting and ending angles were not wrt robot's x axis, but was rotated by 90 degrees. I changed the laser 's message angles to start from negative theta to theta, now its seems ok. Thanks! On Wed, Apr 6, 2011 at 3:14 AM, Eitan Marder-Eppstein < eitan@willowgarage.com> wrote: > Hitesh, > > I'll just add that you can give goals to the navigation stack in whatever > frame you wish. If you always want to send goals relative to the robot's > current position, using the "base_link" frame should be fine. Sending goals > in a global frame like "odom" or "map" is normally the right thing to do > when you have some specific position in the world you want the robot to move > to. > > Another thing is that the velocities reported by odometry are actually in > the robot-centric, or "base_link" frame, so you don't actually have to > rotate them to reason about them in that frame. The Odometry message is sort > of funky in that way, but is documented here: > http://www.ros.org/doc/api/nav_msgs/html/msg/Odometry.html. > > Hope this > helps, > > Eitan > > On Tue, Apr 5, 2011 at 12:01 PM, Wim Meeussen wrote: > >> Hitesh, >> >> > From the wiki, the robot is using a front-x, left-y coordinate >> convention. >> > In rviz upon start, my robot faces in the front direction as the laser >> scan >> > data is towards the forward direction. But when I give a goal, for >> example x >> > = 1, y = 0 to frame base_link using simple_navigation_goals, which means >> it >> > should move forward 1m, it is displayed 1m to the right of the robot on >> the >> > odom (world) frame in rviz. In order to move the robot 1m forward, I >> have to >> > give a y = 1, x = 0 goal. It seems the odom frame is following a >> x-right, >> > y-front coordinate system. >> > Is there a 90 degrees rotation between the two frames? This means that >> all >> > velocities and distances reported by odometry have to be rotated 90 >> degrees >> > clockwise? Or am I doing something wrong? >> >> The odom frame is attached to the world. So as the robot drives >> around, it is going to be in a different position/orientation relative >> to the odom frame. On startup it just happens to be that the robot is >> turned 90 degrees relative to the odom frame, but this angle will >> change as the robot moves around. >> >> The navigation goals you send to the robot are specified in the odom >> frame. So you tell the robot where to go in absolute world >> coordinates. It sounds like you want to command the robot in relative >> coordinates (move 1 meter forward from where ever the robot is right >> now). To do that, you have to convert the relative goals in absolute >> coordinates. Tf can help you do this. >> >> Hope this helps, >> >> Wim >> >> >> -- >> -- >> Wim Meeussen >> Willow Garage Inc. >> > _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users >> > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > > -- Regards, Hitesh Dhiman Electrical Engineering National University of Singapore