Navigation for a Humanoid robot
Hello, after being quite a bit confused on how to navigate my biped robot in an partly unknown environment (I do have a floorplan, but do not know where obstacles are), I want to share my thoughts and ask you for feedback If my approach makes sense or not.
What I do have:
a static OccupancyGrid of the floorplan
odometry data from the robot
PointCloud from Kinect
a desired Goal
My plan now is to use :
amcl (with kinect_to_laser, tf, and the static floorplan) to get /map -> /odom
costmap_2d (with static floorplan, tf and PointCloud2) to create a map for the global planner
navfn (or any other global planner) to get a global path for the robot (with CostMap2D and tf)
octomap_server (with PointCloud2 and tf) to get an OccupancyGrid for the step planner (local planner)
footstep_planner (with the Occupancy Grid, a local goal on the global path and tf) to finaly get footsteps.
I think the setup should be quite fine, but I'm not shure how to implement this in ROS.
I had a look at the move_base node and the BaseLocalPlanner interface from nav_core and thought to add the octomap_server and the footstep_planner as local_planner but the interface defined in the nav_core does not fit the needs of the foostep planner.
My second approach would be to use costmap2D and navfn as standalone nodes and write a new node that similar to move_base that is cooridnating the planning. But here I'm not sure if this isn't quite a lot of work to run all the nodes from navigation stack as standalone.
It would be great if anyone could give me some suggestions and feedback on the approach itself and what would be the best way to implement this in ROS.
Best Wishes
Johannes