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

How to correct the pose during navigation?

asked 2021-03-18 09:32:48 -0600

Rikyuugo gravatar image

I am using ubuntu 16.04.I have a real robot with lidar, ultrasound and camera now . And i am using move_ base package for navigation. The robot is a four-wheel drive robot(with Mecanum wheels). Because the both sides of the robot is different(for example, one side is a blanket and the other side is a metal floor),which cause the friction coefficient of the tires on both sides of the robot is different, there will be deviation during navigation so the robot can't walk in a straight line. How to make the robot walk in a straight line during navigation ?Can it be done? Thank you!

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2021-03-18 12:32:00 -0600

tryan gravatar image

Generally, move_base operates as kind of a feedback control loop. When the local planner notices your robot deviating from the global plan, it should take corrective action, approximately following a straight line overall. You may be able to tune some parameters to get it to do a better job, though. Feel free to clarify if this doesn't quite answer your question.

If you want general tuning help, Zheng's tuning guide is a good place to start. If you have a more specific problem/behavior, you can always post another question.

edit flag offensive delete link more


Sorry for the late reply. Thanks a lot! This guide is exactly what I need. I will try it. :) In fact, the main function of my robot is to patrol in the narrow computer room (at the same time, the ground on both sides of the robot is different). Therefore, the robot must keep a straight line in the whole navigation process. I subscribed to ultrasonic and create a function to detect the ultrasonic data on one side of the robot (if the difference is too large, I return a PARREL = false to tell the robot that it is not a straight line). Then I create another function and subscribe to another topic (self_inserted_waypoint_goals) to receive navigation goal. However, when I send the target goal and the robot starts to move, the robot can no longer accept PARREL in the process of walking to the target(the robot will not ...(more)

Rikyuugo gravatar image Rikyuugo  ( 2021-03-19 11:43:59 -0600 )edit

If I still can't solve this, I will create a new question and attach the picture (I don't have enough points(>5 points) now).Thanks a lot.

Rikyuugo gravatar image Rikyuugo  ( 2021-03-19 11:47:55 -0600 )edit

No problem! Feel free to tag me if you do make a new question. I gave you some karma, so you should be able to post pictures.

tryan gravatar image tryan  ( 2021-03-19 12:25:54 -0600 )edit

Thanks again for tryan's reply. I've solved this problem by tuning some parameters.At the same time,I was subscribing to ultrasonic data to determine parallelism and sending the angular velocity to the /cmd_vel.

Rikyuugo gravatar image Rikyuugo  ( 2021-03-25 01:04:46 -0600 )edit

Question Tools

1 follower


Asked: 2021-03-18 09:32:48 -0600

Seen: 125 times

Last updated: Mar 18 '21