# Kinematics for tricycle drive robot

I have a tricycle drive robot with propulsion and steering in the front wheel, and the rear wheels are fixed. I want to calculate the robot's steering angle and front wheel velocity from the twist message. I couldn't find anything related to this on Google. However, ChatGPT provided the following equations:

Steering angle:

theta = atan2(L * w, |V|)


Front-wheel velocity:

Vf = V / cos(theta)

• ​V is the linear velocity of the robot
• w is the angular velocity of the robot
• L is the distance between front-wheel and rear wheels

Can anyone please confirm whether the above equations are correct?

Seems to be ok, there is a similar implementation with ros2_controllers

• Thank you for your response. I will test it on my AGV and post the result here. Commented Dec 30, 2023 at 12:05
• When linear.x is zero and angular.z is non-zero, how can I calculate front wheel velocity and steering angle? The equations given in github.com/ros-controls/ros2_controllers/blob/master/… for the same do not calculate the steering angle and linear velocity accurately. Commented Apr 17 at 8:13
• how should that work with your robot with propulsion? Commented Apr 17 at 8:59
• the robot should take in place rotations. the steering wheel can be turned from -90 to 90 degrees. but with V=0, the Vf becomes zero. Commented Apr 17 at 9:03
• should i consider Vf = W* L? Vf=W*L/wheel_radius is giving very small value. Commented Apr 17 at 9:08