0
$\begingroup$

Rosanswers logo

Hi there,

I have a Robot that runs pretty good under ROS. I can teleop it, have a valid URDF-model, I can create maps with the help of the laser scanner. The robot itself is differential driven. It has a rectangular shape with 4 wheels. The motorized wheels are located in the front, where the base_link is located, too. When I follow the tutorials to get the whole navigation stack running. The Path to a navigation goal is calculated and displayed as well. But the robot does not follow the path. It is performing in place rotations instead of forward driving. The cmd_vel-topic says so, too. The angular.z component is at the maximum set in my parameters and the linear x and y component are zero (y should be 0 as it is non holonomic). Is this a known problem? Is it caused by the uncircular shape of the robot? Could anybody help me?

Thanks so far.

Sven


Originally posted by quotschmacher on ROS Answers with karma: 17 on 2012-04-10

Post score: 0

$\endgroup$

3 Answers 3

0
$\begingroup$

Rosanswers logo

hmm it seems like this is a problem of the local planner... This usually happens when the robot thinks it is too close to an obstacle.

Are you sure the local and global costmap show no obstacles close to the robot?

You can also try to use another local-planner. ROS offers the "base_local_planner" and "dwa_local_planner" (see http://www.ros.org/wiki/navigation/Tutorials/Navigation #4 for more information).

But my guess still is that there is something set up wrong with the localization and/or obstacles...


Originally posted by michikarg with karma: 2108 on 2012-04-15

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by 2ROS0 on 2014-08-02:
Couple of Qs: Isn't dwa one of the parameters that can be set in base_local_planner? Then why does it have a different package with different names for the same parameters?

And why does Navigation Stack spin like that when it is close to obstacles?

$\endgroup$
0
$\begingroup$

Rosanswers logo

My guess is that the controller in move_base that is generating cmd_vel has a hard time to find the right control commands. This controller basically takes the odometry message and tries to follow the planned path as close as possible. Verify that your odometry message actually makes sense, in particular the velocity values are important for move_base. Check that they actually match the actual velocities of your robot. Be sure that velocities are actually sent in the robot's base frame, not in the odometry frame. I.e. when the robot is driving straight forward with 1 m/s x velocity should be exactly 1 and y zero, no matter in which direction the robot is moving in the odometry frame. Try plotting the velocities with rxplot, drive forward, turn 90 degrees and drive forward again. Both times, only the x velocity must be 1.


Originally posted by Lorenz with karma: 22731 on 2012-04-10

This answer was NOT ACCEPTED on the original site

Post score: 3


Original comments

Comment by 2ROS0 on 2014-08-02:
Could you explain what you mean by the controller "takes the odometry message"? Does that mean the tf b/w odom and base_link or something else? Could you explain the control in more detail?

$\endgroup$
0
$\begingroup$

Rosanswers logo

I once had the same problem. I resolved it in a bizarre way, and I do not know why it worked, but it worked and I was happy. When I had everything prepared, before giving a goal for the robot to follow, I launched

rosrun dynamic_reconfigure reconfigure_gui

And in the pop-up button, I opened the navigation configuration, and after that everything worked. For more info on this, check this question I made.

cheers


Originally posted by Procópio with karma: 4402 on 2012-04-17

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

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