0
$\begingroup$

Rosanswers logo

Hi folks,

please imagine the following situation: my robot shall drive close to a specific object on the map, say, a shelf or something like that. It shall move to a pretty precise position relative to the shelf, turn its rear side parallel to the shelf's front and move backwards to about 5mm from the shelf. It then shall perform some special actions like moving an arm, opening a hatch, pulling something from the shelf in and stuff like that... doesn't really matter, actually (I know, that can be achieved by use of smach for example).

My question however is how to make the robot move to that specific position, turn around and set back to the given distance (or other similar tasks)? Assuming that there is a set of sensors available that measure the distance to the cabinet it most likely has got to be some kind of control loop, right? And I suppose, they are already implemented in some stack/package coming with ROS.

So what packages/stacks of ROS can be used for that? Is move_base still applicable for tasks like this, where obstacle avoidance and complex path planning isn't needed, but instead just slowly moving to reach a given distance from an object?

Another question that might be pretty much the same answer is: how do I make my robot follow a wall for a given length, keeping a given distance? I suppose it's the same or at least a similar principle, hence no seperate question.

Thanks a lot!

Cheers, Hendrik


Originally posted by Hendrik Wiese on ROS Answers with karma: 1145 on 2013-09-25

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Is move_base still applicable for tasks like this..?

In its current state, no.

how do I make my robot follow a wall for a given length, keeping a given distance?

I would introduce a costmap layer that makes the lowest cost occur on the given path you want, which would allow you to still perform obstacle avoidance but get the desired path. However, this may not be the optimal solution.


Originally posted by David Lu with karma: 10932 on 2013-09-25

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by Hendrik Wiese on 2013-09-25:
So far it seems I have to implement a new action with an underlying control stack that performs this kind of tasks. I'd appreciate any advice regarding ROS components that I could utilize to make the implementation easier and more ROS conform. Unless somebody comes up with a better approach.

Comment by tfoote on 2013-09-28:
Your application is quite specific and will likely need application specific code. Usually for this type of application people write their own base controller which outputs cmd_vel velocities and uses the odometry from the still running navigation stack. (Use a command vel mux to switch off the nav stack. )

$\endgroup$

Your Answer

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