box2robot

Control Box2Robot robotic arms via cloud API — move servos, record trajectories, calibrate, camera, voice, and orchestrate AI training/inference.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "box2robot" with this command: npx skills add boxjod/box2robot-skills

Box2Robot — Robotic Arm Control Skill

Control ESP32-based robotic arms through a cloud server API. Move servos, record trajectories, calibrate, capture images, voice interaction, and orchestrate AI training/inference — all from a single CLI.

Official skill published by the Box2Robot team (https://robot.box2ai.com).

Safety & Supervision

This skill controls physical robotic hardware and camera/microphone peripherals.

  • Human supervision required: Do NOT run autonomously without operator oversight. Servo torque and motion commands cause physical movement that could injure people or damage objects.
  • Destructive operations (device.factory_reset, device.wifi_clear, calibrate.center_offset) require explicit user confirmation before execution.
  • Privacy-sensitive operations (camera.snapshot, camera.voice_start, camera.record_audio_start) access camera and microphone — only invoke with user consent.
  • No OS shell access: The exec command routes named Actions through the HTTP API (e.g., exec servo.move). The shell command is an interactive REPL that dispatches CLI subcommands — neither executes arbitrary OS commands. All operations are HTTP requests to B2R_SERVER.
  • Token sensitivity: ~/.b2r_token stores a JWT that grants device control. Treat it like an SSH key. Delete it when no longer needed.

Credential Flow

login → POST /api/auth/login → JWT token
  → saved to ~/.b2r_token (mode 0600, owner-only)
  → all subsequent commands use this token automatically
  → override with B2R_TOKEN env var
  → delete ~/.b2r_token to revoke

All network calls go exclusively to B2R_SERVER (default: https://robot.box2ai.com). No other endpoints are contacted.

Setup

# Install dependency
pip install aiohttp

# Login (one-time, token cached to ~/.b2r_token)
python b2r.py login <username> <password>

# Or set environment variables
export B2R_SERVER="https://robot.box2ai.com"
export B2R_TOKEN="<jwt_token>"
export B2R_DEVICE="B2R-XXXXXXXXXXXX"

CLI Quick Reference

Device & Status

b2r.py devices                     # List devices (* = online)
b2r.py status                      # Servo positions, load, temperature

Servo Control

b2r.py torque on                   # Lock servos
b2r.py torque off                  # Release (allows manual dragging)
b2r.py home                        # Safe return to home position
b2r.py move <servo_id> <pos> [spd] # Move a single servo
# Position: 0-4095 (center 2048), Speed: 0-4000 (default 1000)

Recording & Playback

b2r.py record start                # Start recording
b2r.py record stop [name]          # Stop and save
b2r.py play                        # List all trajectories
b2r.py play <traj_id>              # Play a trajectory

Camera & Data

b2r.py snapshot                    # Camera snapshot
b2r.py frame [cam_id] [output.jpg] # Download latest camera frame (JPEG)
b2r.py calibrate [servo_id]        # Auto-calibrate (0 = all)
b2r.py download <traj_id> [dir]    # Download trajectory images (HTTP GET only)

Action System (79 Actions)

Invoke via b2r.py exec <action_name>. Parameters in JSON or key=value format.

device (Device Management)

ActionDescription
device.listList devices
device.statusDevice status (control mode + servos)
device.bindBind device (requires bind_code)
device.unbindUnbind device
device.renameRename device
device.factory_reset[DESTRUCTIVE] Factory reset — requires user confirmation

servo (Servo Control)

ActionParametersDescription
servo.statusdevice_idRead position/load/temperature
servo.movedevice_id, servo_id, position, [speed]Move single servo
servo.move_batchdevice_id, commands:[{id,position,speed}]Batch move
servo.torquedevice_id, enable:boolToggle torque
servo.go_homedevice_idReturn to home position
servo.set_iddevice_id, old_id, new_idBurn servo ID

recording (Recording & Playback)

ActionParametersDescription
record.startdevice_id, [mode], [camera_id]Start recording (single/dual/phone)
record.stopdevice_id, [name]Stop recording
trajectory.listdevice_idList trajectories
trajectory.playdevice_id, trajectory_idPlay trajectory
trajectory.stopdevice_id, trajectory_idStop playback
trajectory.deletedevice_id, trajectory_idDelete trajectory

pairing (Leader-Follower)

ActionParametersDescription
pairing.createleader_id, follower_ids, [use_espnow]Create pairing
pairing.disconnectleader_idDisconnect
pairing.connectleader_idReconnect
pairing.deleteleader_idDelete pairing
espnow.discoverScan nearby devices

calibration

ActionParametersDescription
calibrate.autodevice_id, [servo_id=0]Auto-calibrate (0 = all)
calibrate.manualdevice_id, servos:[{id,min,max,mid}]Manual calibration
calibrate.center_offsetdevice_idWrite EEPROM center offset

camera (Camera & Voice)

Privacy note: Snapshot and voice commands access camera/microphone hardware. Only invoke with user consent.

ActionParametersDescription
camera.snapshotdevice_id[PRIVACY] Take photo
camera.stream_modedevice_id, modeStream mode (idle/preview/inference)
camera.voice_startdevice_id[PRIVACY] Enable microphone
camera.voice_stopdevice_idDisable microphone
camera.ttsdevice_id, promptText-to-speech

training (Training & Inference)

ActionParametersDescription
training.submitname, dataset_ids, [model_type]Submit training job
training.list[page]Job list
training.deployjob_id, arm_device_id, gpu_device_idDeploy inference
training.stop_inferencejob_idStop inference

store (Skill Store)

ActionParametersDescription
store.list[search], [category]Browse store
store.executetask_id, device_idExecute skill

config (Configuration)

ActionParametersDescription
config.getdevice_idView config
config.setdevice_id, params:{key:val}Update config
config.speeddevice_id, speed(100-4000)Set speed
config.volumedevice_id, volume(0-255)Volume

Natural Language

Via b2r.py say "text":

InputMaps to
"go home" / "回零位"servo.go_home
"release torque" / "释放力矩"servo.torque(False)
"start recording" / "开始录制"record.start
"take a photo" / "拍照"camera.snapshot
"auto calibrate" / "自动校准"calibrate.auto
"move servo 1 to 2048"servo.move(1, 2048)

Preflight Checks

Agents must verify before executing:

StepCheckOn Failure
1Device online"Device offline — check power"
2Device type = arm"Not a robotic arm"
3Control mode = idlerelease_control first
4Calibration existscalibrate.auto first
5Servo count matchesTrajectory vs device axis count

Orchestration Examples

"Teach you to pour water, record 5 demos"

1. torque off
2. camera.stream_mode(cam_id, "preview")
3. Loop 5x:
   record.start(mode="single", camera_id)
   [user demonstrates]
   record.stop(name="pour_water_{n}")
4. training.submit(name="pour_water", dataset_ids)

Visual Inference Loop

1. training.deploy(job_id, arm_id, gpu_id, cam_id)
2. GPU auto-loop: image → inference → command → arm
3. training.stop_inference(job_id)

HTTP API Direct Access

# Login
curl -X POST https://robot.box2ai.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"xxx","password":"xxx"}'

# Move servo
curl -X POST https://robot.box2ai.com/api/device/B2R-xxx/command \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"id":1,"position":2048,"speed":1000}'

Environment Variables

VariableDescriptionDefault
B2R_SERVERServer URLhttps://robot.box2ai.com
B2R_TOKENJWT token (overrides ~/.b2r_token)
B2R_DEVICEDefault device ID

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Windows应用控制器

Windows应用控制器 - 原创技能。让AI通过自动化技术控制Windows应用程序,包括打开/关闭应用、点击按钮、填写表单、截取屏幕等操作。适用于GUI自动化、测试、数据录入等场景。

Registry SourceRecently Updated
Automation

x0x

Secure computer-to-computer networking for AI agents — gossip broadcast, direct messaging, CRDTs, group encryption. Post-quantum encrypted, NAT-traversing. E...

Registry SourceRecently Updated
Automation

clear-skills

This skill should be used when the user wants to clear, remove, or clean up AI agent rules, skills, or instruction files from their coding environment. It su...

Registry SourceRecently Updated
Automation

AI Remove Watermark

Remove watermarks from images through the Airemovewatermark API. Use when an agent needs to remove a watermark from a local image file or remote image URL, p...

Registry SourceRecently Updated
1671isees