Install
openclaw skills install @bigrobinson/ros2-executionExecute ROS 2 commands (run, launch, call) in a sandboxed, allowlisted environment. Supports parameter profiles.
openclaw skills install @bigrobinson/ros2-executionBefore this skill can be used, the local environment must be configured. The setup script dynamically discovers your ROS paths and approved workspaces. You can re-run the setup script at any time if you add new workspaces.
source /opt/ros/<distro>/setup.bash
source ~/my_ros_ws/install/setup.bash
./scripts/setup.sh
config/packages.json to explicitly allow the packages you want the agent to execute.~/.openclaw/workspace/ros_profiles/ for quick execution using the --profile flag.Use this skill to execute ROS 2 commands.
SECURITY CONSTRAINT: You must ALWAYS use the safe wrapper script located at ./scripts/safe_ros2_execution.py.
This script performs strict security checks using Python's subprocess (no raw shell execution, preventing injection) and validates:
Wrapper Path: Resolve ./scripts/safe_ros2_execution.py against this SKILL.md directory.
Usage: ./scripts/safe_ros2_execution.py <command> <package> <target> [--profile <name> | --params-file <path>] [extra_args]
./scripts/safe_ros2_execution.py run <pkg> <node>./scripts/safe_ros2_execution.py run <pkg> <node> --profile outdoor
(Loads from ~/.openclaw/workspace/ros_profiles/outdoor.yaml)./scripts/safe_ros2_execution.py run <pkg> <node> --params-file /tmp/temp_params.yaml./scripts/safe_ros2_execution.py launch <pkg> <launch_file>./scripts/safe_ros2_execution.py service_call <pkg> <srv_name> <srv_type> <args>./scripts/safe_ros2_execution.py action_send_goal <pkg> <action_name> <action_type> <args>Avoid passing complex strings (like nested arrays or JSON dictionaries) directly in the command arguments. Instead:
--params-file /path/to/file.yaml flag to safely load them.~/.openclaw/workspace/ros_profiles/<name>.yaml and use --profile <name>.