Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Ok what you are asking is a little complicated. Without SLAM or odometry it's simply not possible at all.

You need a world fixed frame to understand where you are right now, without broadcasting the transform between map frame (or odom frame) and your base_link frame you can't tell how far you are from your goal. Let me explain it by an example. you publish a point which is 1 meter away in x axis from your robot. you pass it to a planner which computes a velocity command and the robot starts moving, but now you have to know how long you have traveled and how far you are from your goal. If the goal point is in the base_link, your goal is always 1 meter away from your position and you will never reach it. So the goal must be in the odom or map frame and transformation between the fixed frame and your base_link frame must be available.

Enough about the transformation, but please read REP 105 for more information.

Since you don't have a laser scanner and there is no odometry is available, you can use packages that compute visual odometry using your Kinect data and provide odom -> base_link transformation.

Then comes the no global plan part. Just create a local costmap param file and pass it to a node you want to initialize your costmap with.

In order to achieve your desired behavior the closest available source code is move_base but you need to modify it. The goal that it receives must be passed directly to the local planner using setPlan() function. In fact you have to remove all the usages of global costmap and global planner in the code. The velocity command is computed in your desired loop until you reach the goal.

You are free to write your own code from the beginning, just subscribe to your goal topic and do the rest. I'm not sure why you don't want to use global planner, but if you are really insist on what you are doing, now you know what to do.

Good luck.