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
curl -X GET http://localhost:3200/behaviors/data > behaviors_raw.xml

enrich_behaviors_with_usage.py

Enhances behaviors_raw.xml with usage information (Metadata fields with used_in attribute) showing which Objectives use each behavior.

Run this script from the PickNik website repository and point --workspace at your moveit_pro_example_ws checkout.

Prerequisites

  1. Save behaviors_raw.xml (downloaded from REST API) somewhere accessible from this repository, for example /tmp/behaviors_raw.xml or this repository’s scripts/ directory.

Usage

# From the PickNik website repository root
python3 scripts/enrich_behaviors_with_usage.py --xml scripts/behaviors_raw.xml --workspace /path/to/moveit_pro_example_ws --output scripts/behaviors_with_usage.xml

# Example using temporary files outside the repository
python3 scripts/enrich_behaviors_with_usage.py --xml /tmp/behaviors_raw.xml --workspace /path/to/moveit_pro_example_ws --output /tmp/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 it somewhere accessible
curl -X GET http://localhost:3200/behaviors/data > /tmp/behaviors_raw.xml

# 2. In the PickNik website repo - Enhance XML with usage information from moveit_pro_example_ws
python3 scripts/enrich_behaviors_with_usage.py --xml /tmp/behaviors_raw.xml --workspace /path/to/moveit_pro_example_ws --output /tmp/behaviors_with_usage.xml

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