Skip to content

Interfaces and Data

ashleshp edited this page Apr 5, 2026 · 1 revision

Interfaces and Data

Service exposed by raster_scanner

  • name: /plan_scan_path
  • type: cartesian_planner/srv/PlanScanPath

Request:

  • top_left
  • top_right
  • bottom_right
  • bottom_left

Each field is a geometry_msgs/PoseStamped.

Response:

  • success
  • message

On success, message contains JSON:

{
  "status": "Raster executed",
  "screw_poses": [...]
}

Perception action used internally

  • name: /run_perception_pipeline
  • type: my_robot_interfaces/action/RunVision

Request used at each waypoint:

task_name = detect_screws
object_class = ""
time_duration = 0.0

Returned screw pose format

Each detected screw is stored as:

{
  "id": 1,
  "class": "screw",
  "radius": 0.0,
  "pose": {
    "frame_id": "eddie_base_link",
    "position": {"x": 0.0, "y": 0.0, "z": 0.0},
    "orientation": {"x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0}
  }
}

This is the payload format later consumed by door_disassemble and screwdriver_pick.

Clone this wiki locally