I have a data set name Robot_odometery which consist of 3 field namely, Time(s),Forward velocity(m/s) and angular velocity(rad/s). I taken this dataset from http://asrl.utias.utoronto.ca/datasets/mrclam/index.html website. I want to calculate x,y,theta coordinate using this odometer dataset. As per the conversion from rectangular co-ordinate to polar ones I came to know two formula to calculate x and y. x=rcos(theta) and y=rsin(theta). I want to know that is that right approach to find out the Robot coordinate (x,y). or there is any thing else that can be used to find Robot coordinate from odometer data.


Hence the orientation and position are the integrals of the angular ($\dot{\theta}$) and forward velocity ($v$) (in robot frame) respectively. So you have everything you need to calculate your pose.

Now, the problem is that you misinterpret the tree states you have. $x$,$y$ represent the x and y position on a euclidean plane. $\theta$ is the heading of the robot and not the polar angle corresponding to polar coordinates. I.e. it is the angle the robot is turned around the z-axis at the position (x,y).

Therefore, if you integrate the angular velocity over time you get the orientation - i.e. theta - and with the heading you can integrate the forward velocity to determine the coordinates x and y.

Something like that: $$ \theta_k = \dot{\theta}_{k-1} \cdot \Delta t + \theta_{k-1} \\ x_k = v_k \cdot \Delta t \cdot cos(\theta_k) + x_{k-1} \\ y_k = v_k \cdot \Delta t \cdot sin(\theta_k) + y_{k-1} $$

| improve this answer | |
  • $\begingroup$ Thank you. Do you follow the dataset that given by asrl.utias.utoronto.ca/datasets/mrclam/index.html ?? Actually I am working on this data set. This is very kind of you if you take a look on this data set.What is Δt? What is xk−1(is that initial position of a Robot)? $\endgroup$ – Saswati Bhattacharjee Jun 7 '18 at 18:25
  • $\begingroup$ $k$ is an integer number identifying one particular time step. Therefore, $x_{k-1}$ means the $x$ position one time step before.If $k=0$, $x_k$ is the initial position and $x_{k-1}$ is assumed to be 0. However, $\Delta t$ means the time difference between two consecutive, discrete time steps. E.g. $\Delta t = t_{k} - t_{k-1} $. $\endgroup$ – Marco Sütterlin Jun 9 '18 at 8:27
  • $\begingroup$ Thank you. I figure it out. After computing this value this value is not same as the Robot Groundtruth value which take using Gps. Is the calculating values from odometer data and groundtruth value will be same for a particular Robot? $\endgroup$ – Saswati Bhattacharjee Jun 9 '18 at 10:36
  • $\begingroup$ robotics.stackexchange.com/questions/15822/… please have look on this question. $\endgroup$ – Saswati Bhattacharjee Jun 9 '18 at 10:48
  • $\begingroup$ Ideally speaking, YES. But it depens how good your estimation is. In order to get an estimate you can measure the root mean square error between your estimation and the ground truth. This gives you an idea about how wrong you are. $\endgroup$ – Marco Sütterlin Jun 10 '18 at 11:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.