How do I write a base_control node?

asked 2019-04-16 08:19:38 -0500

doctor_zerios gravatar image

updated 2019-04-19 09:59:11 -0500

Hello guys,

I have to make a base controller node for a tricycle robot, I didn't find anything on the web and I'm wondering how do I can write a base_control node starting from zero. I already studied the physics of the model and all the kinematics, I just need to write the node: is there any book or article hidden somewhere that can help me out?

Thank you so much!

EDIT: I found that the angle that links Twist msg out from the navigation with the tricycle movement is

θ = arcsin( d * w / v)

Where d is the distance from the center of the steering wheel to the axis of the back wheels, w is the angular velocity out from the Twist of the navi and v is the linear velocity of the twist (but also the speed of the traction engine). Now, how do I start to write the node?

edit retag flag offensive close merge delete



Related or a coincidence? #q321225.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-16 12:52:13 -0500 )edit

I'd recommend looking into the derivation of the kinemetics / dynamics of an ackermann steering robot. A tricycle is essentially the same thing, less you're finding one angle.

stevemacenski gravatar image stevemacenski  ( 2019-04-16 15:10:48 -0500 )edit

That's probably tricycle fever @gvdhoom Thank you Steve, I actually found the Angle to go from Twist to tricycle movement, the problem is how to write the node..

doctor_zerios gravatar image doctor_zerios  ( 2019-04-17 02:02:33 -0500 )edit

Perhaps you could take a look at ros_controllers/ackermann_steering_controller and/or ackermann_controller. Those are for ros_control, so might not be what you are looking for, but should give you an idea.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-17 04:16:56 -0500 )edit

Can you please not edit your question just to bump it?

gvdhoorn gravatar image gvdhoorn  ( 2019-04-19 10:20:35 -0500 )edit