Scripts

Utility scripts for maintaining the PickNik website, in particular the Behaviors Hub.

How to update the Behavior Hub data source

These steps allow you to get the updated behaviors.xml, which should happen every release.

# In moveitpro repo when your REST API is running, get the generated XML data
# Save it to scripts/ directory in moveit_pro_example_ws workspace
curl -X GET http://localhost:3200/behaviors/data > scripts/behaviors_raw.xml

enrich_behaviors_with_usage.py

Enhances behaviors_raw.xml with usage information (<UsedIn> elements) showing which Objectives use each behavior.

Run this script in moveit_pro_example_ws workspace.

Prerequisites

  1. Save behaviors_raw.xml (downloaded from REST API) to the scripts/ directory in moveit_pro_example_ws workspace.

Usage

# From moveit_pro_example_ws root directory
python3 scripts/enrich_behaviors_with_usage.py --xml scripts/behaviors_raw.xml --workspace . --output scripts/behaviors_with_usage.xml

# Example with custom workspace path
python3 scripts/enrich_behaviors_with_usage.py --xml scripts/behaviors_raw.xml --workspace /path/to/workspace --output scripts/behaviors_with_usage.xml

What it does

Requirements

update_behaviors_from_xml.py

Updates _data/behaviors.json with port information and metadata extracted from behaviors_with_usage.xml.

Run this script in the PickNik website repository.

Usage

# From project root
python scripts/update_behaviors_from_xml.py [path_to_behaviors_with_usage.xml]

# Example with default path
python scripts/update_behaviors_from_xml.py

# Example with custom XML path
python scripts/update_behaviors_from_xml.py /path/to/behaviors_with_usage.xml

What it does

Complete Workflow

# 1. In moveitpro repo - Get behaviors.xml from REST API and save to scripts/ directory
curl -X GET http://localhost:3200/behaviors/data > scripts/behaviors_raw.xml

# 2. In moveit_pro_example_ws root - Enhance XML with usage information
python3 scripts/enrich_behaviors_with_usage.py --xml scripts/behaviors_raw.xml --workspace . --output scripts/behaviors_with_usage.xml

# 3. In PickNik website repo - Convert to JSON
python scripts/update_behaviors_from_xml.py _data/behaviors_with_usage.xml