ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Relation between cmd_vel and odometry twist data?

asked 2012-09-26 10:34:36 -0600

abdullah gravatar image

updated 2021-11-18 18:18:45 -0600

lucasw gravatar image

I have some short questions please if anyone can answer these questions.

Q1: What will be the unit of angle when we use

angle = tf::getYaw(odom.pose.pose.orientation);

Q2: What should be the unit of linear and angular velocity when setting cmd_vel of diffrential drive robots? i.e.

cmdvel_.linear.x = vt;  // (m/s)    
cmdvel_.angular.z = w;  // (rad/s) is it ok?

Q3: What is the unit of Odometry.twist.twist.angular.z?

Q4: If I want to find the previous velocity vector from Odometry data. Am I doing right? I want to find velocity vector in Odom frame?

linearV = (odom.twist.twist.linear.x);
angularV = (odom_globalVal.twist.twist.angular.z);

Vx = linearV * cos(angularV);  // wrong::its not an angle its angular velocity

Vy = linearV * sin(angularV);  // wrong

Thanks a lot.

edit retag flag offensive close merge delete

Comments

I hope you got to solve your issue! Please, to select the correct Gmapping odometry model noise (srr, srt, str, stt): Is it correct to calculate the RMSE between /cmd_vel/linear/x and /odom/twist/twsit/linear/x for translation and RMSE between /cmd_vel/angular/z and /odom/twist/twist/angular/z for rotation ?

Zuhair95 gravatar image Zuhair95  ( 2022-08-15 07:01:12 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted
5

answered 2012-09-26 11:17:48 -0600

SL Remy gravatar image

Great references (and hopefully they clarify your questions too) are on the wiki and the REPs, e.g. distances are in meters, angles are in radians or more broadly, SI or SI-derived units are to be used (by everyone).

Remember that the twist message "expresses velocity in free space broken into it's linear and angular parts." So angular.z is the angular velocity (not an angle).

edit flag offensive delete link more

Comments

Thanks, It helps a lot. In my implementation I want to find the previous velocity vector of differential drive robot. Is there any possibility that I can find it from Odometry data.

abdullah gravatar image abdullah  ( 2012-09-26 12:54:16 -0600 )edit

Yes. The Odometry message contains the current Twist (and its covariance) at the time of that measurement.

joq gravatar image joq  ( 2012-09-26 13:14:13 -0600 )edit

Thanks for the information! Please, to select the correct Gmapping odometry model noise (srr, srt, str, stt): Is it correct to calculate the RMSE between /cmd_vel/linear/x and /odom/twist/twsit/linear/x for translation and RMSE between /cmd_vel/angular/z and /odom/twist/twist/angular/z for rotation ?

Zuhair95 gravatar image Zuhair95  ( 2022-08-15 07:02:18 -0600 )edit
1

answered 2012-09-26 11:20:00 -0600

Lorenz gravatar image

Have a look at the REP 103 that defines the standard units that should be used in ROS.

edit flag offensive delete link more
0

answered 2012-11-27 20:16:46 -0600

nicole gravatar image

i also have this problem. i think linearV = (odom.twist.twist.linear.x); is the velocity of the robot, but observing the data obtained it isn't like that. So i confused if i am wrong? why?

edit flag offensive delete link more

Comments

Please read the support page before posting. Do not create answers for subsequent questions, comments or discussion. In your case, it's probably best to open a new question with more specific information about your setup, robot, etc.

Lorenz gravatar image Lorenz  ( 2012-11-28 00:37:05 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2012-09-26 10:34:36 -0600

Seen: 2,928 times

Last updated: Nov 18 '21