Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rock Breaking

The rock breaking scenario describes a robot that finds itself in an area with a certain amount of rocks. It will break the rocks until all the chunks reach a certain size.

The order of events is as follows:

  1. The robot will scan the area to obtain the count and location of all the rocks.

  2. The robot will approach each rock and perform the behavior tree

  • Scan the rock for 3d mesh, obtain attack pose tf
  • Move the arm to attack pose
  • Apply pressure to the rock
  • Conditional: Did the rock break? If yes success, if no repeat
graph TD
    RockBreak --> ScanRock;
    ScanRock --> MoveArm;
    MoveArm --> PressRock;
    PressRock --> EvalBreak;
    EvalBreak -->|not broken| ScanRock;
    EvalBreak -->|broken| Success;

Running the rock breaking scenario:

Compile and source the code, then:

ros2 launch kea_rock_breaking kea_rock_breaking_planner.launch.py

This will start the planning nodes, plan and execute. Once the plan finishes successfully, it exits.

Common overrides:

ros2 launch kea_rock_breaking kea_rock_breaking_planner.launch.py \
  agent_type:=baseline-1 \
  auto_start:=true

The launch file accepts the same core arguments as kea_core_planner.launch.py (domain_file, problem, agent_type, llm_config_file, vlm_config_file, namespace, auto_start).