0
$\begingroup$

Rosanswers logo

Hello,

I'm newbie to this field and I'd like to use the move_base package for the navigation of robot to track people.

However, as the move_base package is using action, not a topic, (I think) it is unable to get constantly changing navigation goals.

In this case, how can I utilize this package?

Thanks in advance ! :)


Originally posted by mirakim on ROS Answers with karma: 21 on 2022-12-08

Post score: 0


Original comments

Comment by Mike Scheutzow on 2022-12-10:
I do not understand what question you are asking. move_base is designed to move the robot to a destination goal on a map. It's not going to work well for the task of "continuous" tracking/following of an object.

Comment by mirakim on 2022-12-12:
Thank you for the reply :) Since I need to use the navigation package in ros for tracking the continuously moving object, would you please recommend me if there is a better way for this task??

Comment by Mike Scheutzow on 2022-12-13:
With move_base, if you have a new goal, you can send it before the robot reaches the current goal. However, the robot will pause while it calculates a path to the new goal, so the robot is probably not going to move smoothly.

What sensor(s) are you using to find the target? Do you have distance and angle to the target from the robot's current pose? Do you need collision avoidance?

Comment by mirakim on 2022-12-13:
Thank you for the explanation! I use a tracking vision AI to find the target given input video from camera. After the target is detected, it can measure the distance and angle to the target from the robot's current pose by LiDAR sensor. And yes, it need collision avoidance.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Based on what you have said, I would not use move_base for this task. The robot movement will be ugly, and it will be constantly starting and stopping as the goal changes its position.

If it were me, I'd create a custom ros node "motion controller". It's job is to receive a goal distance and angle, then publish Twist messages to the /cmd_vel topic to move the robot closer to the (always changing) goal. The Twist velocity value should change smoothly (both up and down), and should be a function of the distance to the goal (or obstacle.)

A basic controller like this one will have no ability to navigate around an obstacle (that's a MUCH harder problem), but the robot can smoothly stop and wait for an obstacle to move out of the way. Detecting whether there is sufficient free space for the robot to move forward safely (collision detect) is also required for a controller like this one.


Originally posted by Mike Scheutzow with karma: 4903 on 2022-12-14

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by mirakim on 2022-12-28:
Thank you so much for your advice! As I need the robot that has ability to navigate around an obstacle, I think I have no choice but to use the move_base package for this task.. Thank you so much!

$\endgroup$

Your Answer

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