ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.