Rosanswers logo

Hi, all, It's first time to use ros control, and there's a confusing question.

In my project, I need to navigate a mobile robot (double steering type) to the target place. For navigation algorithm, maybe TEB or DWA will be used (both publish cmd_vel), and I think this won't be a problem for me. So the next thing to do is to construct the ROS control framework.

Follow the ros wiki, I can understand the framework. I need to write a robotHW by myself to Read/Write hardware data and transmit to ros controller. So the whole framework is that:

Navigation algorithms <---pub, sub data---> ros controller

ros controller <--- transmit ---> robotHW

robotHW <--- Read/Write ---> hardware

is it right? If yes, there's no URDF model included, so it is not necessary for the ros control. If not, there's something I missed or I misunderstood?


Originally posted by RyanChen.YLC on ROS Answers with karma: 44 on 2022-03-10

Post score: 0


1 Answer 1


Rosanswers logo

A URDF is not strictly required, however many controller implementations will want to take a look at a URDF to determine/derive some properties of your robot.

The DiffDriveController would be one of those controllers.

If however, you don't use any of those controllers, and you write your RobotHW such that it doesn't rely on a URDF for information about the structure of your robot (ie: nr of joints, their type, etc), then: no, a URDF would not be required.

Note that many other parts of ROS will want/need a URDF though (such as RViz and the robot_state_publisher), so it would still be a good idea to have/make one.

Originally posted by gvdhoorn with karma: 86574 on 2022-06-02

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.