-
Notifications
You must be signed in to change notification settings - Fork 156
Interface
The planner stack consists of two ROS nodes, GBPlanner and Planner Control Interface (PCI).
Different ROS services are provided to call different features of the planner. The following services can be used to interact with the planner control interface:
-
planner_control_interface/std_srvs/automatic_planning
(std_srvs/Trigger): Trigger planner. PCI will keep triggering the planner at the end of every planning iteration. -
planner_control_interface/std_srvs/single_planning
(std_srvs/Trigger): Trigger only one planning iteration. -
planner_control_interface/stop_request
(std_srvs/Trigger): Stop the planner and bring the robot to a hault. -
planner_control_interface/std_srvs/homing_trigger
(std_srvs/Trigger): Trigger homing manuever. Planner will return path to the home location after finishing the current planning iteration. -
planner_control_interface/std_srvs/go_to_waypoint
(std_srvs/Trigger): Service to plan path to the given waypoint along the global graph. Note: Global graph will only start building when the planner is triggered for the first time. -
pci_initialization_trigger
(planner_msgs/pci_initialization): Trigger initialization motion. -
pci_global
(planner_msgs/pci_global): Trigger global planner to send the robot to specific vertex in the global garph (need to know the id of that vertex).
Two output interfaces are provided for the PCI: Action-based and Topic-based.
Action: pci_output_path
(planner_msgs/pathFollowerAction)
PCI will send goal to an action server hosting the above action. PCI expects an estimated time remaining to complete the path exeution from the server as a feedback. Please see the action description for more details of the goal, feedback and result of the action.
To enable this mode set the output_type
in the planner_control_interface_sim_config.yaml to kAction
as shown here.
The ground robot demo in the Demo section uses the action-based interface.
In this mode, PCI will publish the calculated path in two formats on the following topics:
-
command/trajectory
(trajectory_msgs/MultiDOFJointTrajectory) -
pci_command_path
(geometry_msgs/PoseArray)
To enable this mode set the output_type
in the planner_control_interface_sim_config.yaml to kTopic
as shown here.
The aerial robot demo in the Demo section uses the topic-based interface.
-
pose
(geometry_msgs/PoseWithCovarianceStamped): Robot pose in PoseWithCovarianceStamped format. -
pose_stamped
(geometry_msgs/PoseStamped): Robot pose in PoseStamped format. -
odometry
(nav_msgs/Odometry): Robot's odometry. -
/robot_status
(planner_msgs/RobotStatus): Topic used to get the time remaining before the battery runs out. -
planner_control_interface/stop_request
(std_msgs/Bool): Feedback from PCI when the stop service is called. -
/gbplanner_node/tsdf_map_in
(voxblox_msgs/Layer): Input voxblox TSDF map if an external map is to be fed to the planner -
/gbplanner_node/esdf_map_in
(voxblox_msgs/Layer): Input voxblox ESDF map if an external map is to be fed to the planner
-
pose
(geometry_msgs/PoseWithCovarianceStamped): Robot pose in PoseWithCovarianceStamped format. -
pose_stamped
(geometry_msgs/PoseStamped): Robot pose in PoseStamped format. -
odometry
(nav_msgs/Odometry): Robot's odometry. -
/move_base_simple/goal
(geometry_msgs/PoseStamped): Setting the waypoint to go to along the global graph.
-
/gbplanner_node/mesh
(voxblox_msgs/Mesh): Voxblox mesh -
/gbplanner_node/occupied_nodes
(visualization_msgs/MarkerArray): Voxblox occupancy map occupied voxels -
/gbplanner_node/surface_pointcloud
(sensor_msgs/PointCloud2): Voxblox surface pointcloud -
/gbplanner_node/tsdf_map_out
(voxblox_msgs/Layer): TSDF map published by voxblox -
/gbplanner_node/tsdf_pointcloud
(sensor_msgs/PointCloud2): Voxblox TSDF map published as a pointcloud -
/gbplanner_node/tsdf_slice
(sensor_msgs/PointCloud2): Slice of voxblox TSDF map at a set height published as a pointcloud -
/gbplanner_node/esdf_map_out
(voxblox_msgs/Layer): ESDF map published by voxblox -
/gbplanner_node/esdf_pointcloud
(sensor_msgs/PointCloud2): Voxblox ESDF map published as a pointcloud -
/gbplanner_node/esdf_slice
(sensor_msgs/PointCloud2): Slice of voxblox ESDF map at a set height published as a pointcloud -
/pci_command_trajectory_vis
(visualization_msgs/MarkerArray): Visualization of the trajectory to be followed by the robot - Topics starting with
vis/
(visualization_msgs/MarkerArray): Visualization markers to visualize various parts of the planner. Please refer to gbplanner_viz.h for details about each topic.
-
gbplanner/go_to_waypoint_pose_visualization
(visualization_msgs/MarkerArray): Visualization of the waypoint to go to along the global graph.