From safe motion to publishable evidence.
A staged research-development plan for the equipment already in the lab: first validate R1 control, then integrate bounded voice, LeRobot and physiology paths, and only then run studies on mind attribution, trust and technostress.
Operating boundary: this guide assumes the R1 EDU has no dexterous hands and no onboard Orin module. Heavy inference runs offboard. The confirmed starting scope is stationary arm and torso social gestures—not grasping, unverified head motion or locomotion. Navigation is a later track that requires verified Unitree locomotion access, route and stop testing, and dedicated supervision.
Design for the robot you actually own.
The R1’s value here is embodiment, motion, presence and controlled social signaling. Fine manipulation is outside today’s configuration.
Available now
Keep outside scope
Full capability map for the delivered R1 EDU Standard
Embodied motion
- 12 leg joints: standing, balance and regular walking through Unitree’s validated controller path.
- 10 arm joints: two 5-DoF arms for waves, pointing, presenting, beckoning, guarding space, mirrored/asymmetric poses and timed movement sequences.
- 2 waist joints: yaw/roll body orientation for social address, emphasis and posture manipulations.
- Scripted arm control: bounded named-joint trajectories can drive waves and pointing after the delivered joint map and ownership transition pass the bench gates.
Perception, voice and onboard functions
- Binocular camera: scene recording, visual condition checks, teleoperator view and policy observations once stream names and calibration are captured.
- 4-mic array + speaker: speech input/output for the Ollama loop once the actual ALSA/ROS/vendor audio route is verified.
- Head motion: the product family advertises 2-DoF head motion, but the lab’s confirmed 24-DoF joint count excludes it. Treat commandability as TO-VERIFY.
- Built-in behaviors: enumerate the handheld remote/app menu and any R1 motion service on the unit; do not borrow G1/H1 behavior names.
Extensions
- Grasping and tool use: requires compatible gripper/dexterous hands, mounting, wiring and a new safety validation.
- Heavy onboard VLA: requires an accelerator module; today, train and infer on the desktop and stream bounded arm actions.
- XR arm teleoperation and capture: Unitree lists R1_A5 support, but the lab still needs a compatible Apple Vision Pro, PICO or Quest device, a verified R1_A5 joint-profile match and the image-service network path.
- Autonomous navigation: needs verified R1 locomotion APIs, mapping/perception stack, route testing and participant-safe supervision.
Recommended first scientific instrument: a gesture library
It needs no fingers, exposes the entire control chain, and gives the lab repeatable manipulations for intentionality, confidence, apology, turn-taking and social presence.
Choose the least powerful layer that can do the job.
The public SDK2 repositories establish DDS-based high- and low-level access. R1 is listed by SDK2 and by Unitree’s XR project; public unitree_ros2 documentation still names Go2, B2 and H1—not R1—so the InDro R1 graph must be discovered on the lab unit.
Initial posture, regular walking, bringing the robot into the vendor-supported operating mode, immediate operator intervention.
Experimental timing or repeatable research stimuli.
use firstVendor-supported whole-body behaviors and controller state transitions. The official Python examples expose sportmode_test.py for supported robots.
Inventing an R1 method name from a G1/Go2 example.
TO-VERIFY APIStudy nodes, event markers, sensor routing, recording and calls into a verified R1 bridge.
Assuming public unitree_ros2 topics are identical on the InDro R1 image.
Read joint/IMU/battery state; only later, bounded joint control and learned arm policies behind limits.
First motion, locomotion experiments or any command while high-level motion owns the joints.
expert onlyBench cookbook: manipulate the robot without guessing
Discover the actual R1 interface
Run this first on the Ubuntu host connected through the InDro controller.
Freeze the software image
Record Ubuntu, ROS distribution, InDro package versions, R1 firmware, SDK2 commit and network interface. Photograph the remote’s labeled controls.
Inventory without commanding
source /opt/ros/<distro>/setup.bash # Source the InDro/R1 workspace supplied with the controller. ros2 node list ros2 topic list -t ros2 service list -t ros2 action list -t
Replace only <distro> and the workspace source path. Save the output as the interface inventory.
Inspect, do not assume
ros2 topic info <verified_topic> --verbose ros2 interface show <verified_message_type> ros2 service type <verified_service> ros2 action info <verified_action>
Read state before commanding
Prove names, order, units and timing with motion disabled.
Record the discovered graph
Identify the R1 joint-state, IMU, battery and remote-controller streams from the inventory. Public SDK2 examples show these state classes exist, but their R1 topic names are TO-VERIFY.
Echo and bag only verified streams
ros2 topic echo <verified_joint_state_topic> --once ros2 bag record \ <verified_joint_state_topic> \ <verified_imu_topic> \ <verified_battery_topic> \ <verified_remote_topic>
Map all 24 controlled joints
Confirm 6 per leg, 2 waist and 5 per arm; record index, name, sign, units, neutral angle and delivered limits. If head joints appear, add them separately rather than altering the confirmed 24-DoF baseline.
Move one joint under a permit
No public R1-specific low-level function signature was verified, so this is an execution checklist—not fabricated code.
Mechanical gate
Mount the gantry, clear everyone beyond full arm reach, keep the remote in the spotter’s hands and start above the session’s minimum battery threshold.
Control-ownership gate
Use the vendor/InDro procedure to release only the target arm group. Unitree’s public SDK2 Python guidance explicitly says high-level sport_mode must be disabled before low-level motor control. Verify the R1 equivalent on the unit.
Command envelope
Start from measured position, move one shoulder joint only a few degrees with conservative gains and velocity, continuously publish the required hold/trajectory stream, and reject stale/NaN/out-of-range commands.
Stop and inspect
Return to the captured neutral pose; stop publishing through the documented transition; inspect error, current/torque estimate and temperature. Repeat only after a clean log.
Play a safe arm trajectory
Turn a validated one-joint path into a repeatable wave.
Author in named joint space
Use only the five verified right-arm joints. Every waypoint includes time-from-start; interpolate smoothly, cap position/velocity and begin/end at NEUTRAL_V1.
Run progressively
Offline plot → command shadow log → gantry + one joint → gantry + arm → ten full repetitions. Keep legs under the vendor balance controller; never mix a custom arm loop with unverified whole-body commands.
Version the behavior
Store joint map, radians, timing, interpolation, limit file, controller mode and firmware/SDK version with the trajectory.
Camera, microphone and speaker
Separate verified hardware from still-unverified software routes.
Camera quick test
The official SDK2 Python repository supplies example/front_camera/camera_opencv.py; it is not documented there as R1-specific. Run read-only after the network interface is known.
python3 ./example/front_camera/camera_opencv.py <robot_network_interface>
XR image path
xr_teleoperate uses teleimager for physical-robot image service and supports UVC/V4L2/GStreamer/RealSense sources. Configure the actual binocular devices; confirm left/right ordering, resolution, FPS and timestamp source.
Audio route
On the InDro image, enumerate capture/playback devices and ROS audio nodes. Verify sample rate, channel mapping, echo cancellation and speaker latency. The generic SDK example controls volume, but a public R1 mic-stream API was not verified: label it TO-VERIFY.
Mode switching and emergency stop
One controller owns a joint group at a time.
Before any transition
Robot on gantry; arms near initial pose; spotter has remote; no participant present; control process heartbeats visible; current mode read back from the robot.
XR motion mode
Unitree’s R1-capable XR project supports regular mode only; running mode is explicitly unsupported. In motion mode, both XR joysticks pressed invoke a soft emergency stop to damping mode, while the handheld R3 controller remains required for robot control mode.
Exit cleanly
Bring arms near initial pose before quitting. The official XR path returns arms over five seconds before ending control. Confirm the mode change on telemetry; do not assume process exit means motors are safe.
Test failure paths
With gantry and empty zone, test network loss, stale command, policy crash, operator exit, soft stop and physical power isolation. Write the observed robot response and restart sequence.
Safety gate by control path
Inspect battery, zone, gantry and labeled stop behavior; operator demonstrates the intended mode without a participant.
Spotter holds remote, maintains line of sight and stays outside swept volume.
Return to stable stand; log mode and any intervention.
Verify the method exists on this R1/firmware and rehearse stop; never call a name copied from another Unitree robot.
Bound command frequency and duration; read controller state.
Cancel through documented API and verify state transition.
R1_A5 match, arms aligned, no --ee, regular mode only, R3 remote with spotter.
Teleoperator and spotter communicate; both-joystick soft stop tested.
Arms near initial pose; five-second return observed; episode labelled.
Record node/topic/service/action inventory; confirm QoS, units and ownership.
Heartbeat and stale-command timeout; bag state and event markers.
Stop publishers; confirm robot-side owner released—not merely node exit.
High-level owner released; 24-joint map, limits, signs, rate and gains bench-verified; gantry mandatory.
Finite/range/velocity checks every cycle; watchdog, neutral and operator stop active.
Ramp to neutral, release ownership, inspect faults/temperature/log.
Frozen checkpoint; offline and shadow gates passed; firewall validated with malformed actions.
Arms only; confidence is never a safety signal; human stop always available.
Any anomaly aborts the trial and labels the episode; no online learning in participant sessions.
Teach arm behavior; do not hand locomotion to LeRobot.
LeRobot supplies the dataset, policy-training and inference layer. Unitree’s current unitree_lerobot deployment code targets G1 configurations; R1 episode capture is supported by xr_teleoperate, but conversion and deployment need a tested R1_A5 adapter.
On Ubuntu, clone xr_teleoperate, initialize its submodules, install its Python 3.10 environment and install unitree_sdk2_python. Record repository commits. First run only in visualization/shadow mode.
git clone https://github.com/unitreerobotics/xr_teleoperate.git cd xr_teleoperate git submodule update --init --depth 1 cd ~ git clone https://github.com/unitreerobotics/unitree_sdk2_python.git cd unitree_sdk2_python pip install -e .
The official project lists both R1 5-DoF and 7-DoF arms as complete. For this robot choose R1_A5, no end-effector flag, and the actual DDS interface. Keep locomotion disabled for the first arm-only session.
cd ~/xr_teleoperate/teleop python teleop_hand_and_arm.py \ --input-mode=controller \ --arm=R1_A5 \ --network-interface=<robot_network_interface> \ --record \ --task-dir=$HOME/datasets/r1_wave \ --task-name="r1_wave" \ --task-goal="perform two small right-arm wave cycles and return to neutral"
r; use s to start/stop each episode and q only after the arms are near initial pose.Gantry on; fixed camera/robot/floor marks; one trained operator; neutral reset; two wave cycles; neutral return. Capture at the project’s documented 30 Hz default unless bench timing supports another fixed rate. Inspect after the first episode, then every ten.
Each frame needs: monotonic timestamp; frame and episode index; binocular/head image reference; ordered ten-arm-joint position (and velocity if the source provides it); ordered ten-arm-joint target action; task label; robot/SDK/config version; and episode outcome/failure reason. Reject only by written rules: missing frames, discontinuity, limit event, wrong start, no neutral return or operator abort. Do not silently remove hard-but-valid trials.
unitree_lerobot provides Unitree JSON→LeRobot conversion and a ROBOT_CONFIGS extension point, but its documented presets are G1/Z1—not R1. Add an explicit Unitree_R1_A5 mapping for the verified ten arm joints, image keys, names, units and FPS; then round-trip one episode before batch conversion.
Unitree_G1_Dex3. The R1 adapter must be implemented and reviewed against the actual episode schema.Load one episode, visualize video and plot every state/action channel. Split by recording block or start condition, not by frame. Compute normalization statistics on training episodes only. Freeze a versioned dataset card before training.
ACT first: best initial baseline for short, repeatable arm sequences. Diffusion second: compare multimodal or smoother trajectories after ACT works. VLA later: use only when language-conditioned variation is the research question and offboard compute is available; R1’s base CPU is not the training box.
cd unitree_lerobot/lerobot python src/lerobot/scripts/lerobot_train.py \ --dataset.repo_id=<lab_or_hub_repo_id> \ --policy.push_to_hub=false \ --policy.type=act
The command is sourced from Unitree’s LeRobot repository; substitute only a validated R1 dataset ID. Repeat later with --policy.type=diffusion.
Translate policy output names to the verified R1_A5 arm order. Check tensor shape, finite values, timestamp age, range, velocity and controller ownership; smooth/rate-limit; keep legs and waist under approved control; send only through the validated R1 arm path. A fault returns neutral or hands control to the operator.
Dataset replay offline → policy outputs logged only → recorded actions shadow-compared → one joint on gantry → full arm on gantry → ten empty-room trials. Only after the same safety/performance threshold passes may the checkpoint become a participant stimulus.
Boundary that prevents the wrong project
LeRobot is the right layer for learned arm gestures, imitation, language-conditioned upper-body policies and dataset publishing. It is not the lab’s locomotion controller. Walking stays with the vendor’s whole-body controller and remote/XR motion path unless a separate, independently validated locomotion program is approved.
Assign ownership before the robot moves.
One person may hold multiple roles, but every role must have a named owner for each session.
Safety lead
Owns clear zone, controller, stop word, participant distance and abort decisions.
Robot operator
Starts SDK/ROS nodes, verifies state, executes approved motion and logs faults.
Data lead
Owns clocks, event markers, filenames, sensor quality and the session manifest.
Protocol lead
Reads the script, randomizes condition, records deviations and keeps experimenter behavior fixed.
Freeze configuration
Record the R1 arm variant, firmware, SDK/ROS versions, host OS, network interface, camera stream, joint names/order, units and neutral pose. Verify the Furhat SDK path and whether ring data can export locally without a cloud round-trip.
documentedWrite the stop plan
Define physical clearance, maximum tested joint range, velocity cap, stale-command timeout, neutral fallback, stop word, controller holder and who may call an abort.
requiredSeparate networks
Put real-time robot control on the dedicated lab network; run training on the powerful desktop, not in the control loop. Keep experiment logging on a synchronized host.
architecturePrepare governance
Draft protocol, consent, data-retention plan, adverse-event process and publication boundary before collecting participant data. Decide separately whether robot logs, video, voice or physiology can be shared.
ethics gateProve one layer at a time.
These nine stages are the common technical spine for every research program below. Do not skip forward when a pass condition fails.
Safety envelope and dry run
Build the conditions under which any motion is allowed.
Prepare the bay
Clear a two-arm-reach zone; remove trip hazards; mark operator and participant positions; inspect battery, fasteners and cables; place the robot in a stable neutral stance.
Assign two humans
Operator controls software. Spotter holds the physical controller/emergency stop, watches balance and may abort without discussion.
Test stop paths before motion
Test software stop, controller stop, power isolation and stale-command timeout. Say the shared stop word aloud. Record the expected robot response.
Write a motion permit
List allowed joints, conservative range, speed, duration, start pose and no-go zones. A new behavior does not run until the safety lead signs off.
protocols/safety-envelope-v1.md and a photographed floor layout.Read-only bring-up
Understand state and timing before publishing any command.
Inventory versions
Record host OS, R1 firmware, SDK/ROS package versions and commits, network interface, robot address/topic namespace, camera resolution and nominal update rates. Do not upgrade during a study.
Read joints
With motion disabled, stream timestamped joint positions, velocities and controller state for 60 seconds. Confirm count, order, units and signs against the delivered R1 documentation.
Read vision and audio
Open one camera stream and the microphone path. Check image orientation, frame age and whether audio capture conflicts with the voice pipeline.
Measure clock drift
Compare robot, logging desktop and sensor-host clocks at start and end of the 60-second run. Pick one master clock and log offsets.
config/r1-interface-contract.yaml plus a 60-second raw log.Scripted gesture library
Create deterministic research stimuli before learning them.
Save neutral
Capture the approved arm, torso and head pose. Every gesture begins and ends here. Record joint-space tolerance for “neutral reached.”
Author one joint trajectory
Begin with a small right-arm wave. Use waypoints and eased interpolation. Keep locomotion disabled and body balance logic outside the gesture controller.
{
"id": "WAVE_SMALL_V1",
"start": "NEUTRAL_V1",
"max_duration_s": 4,
"allowed_groups": ["right_arm"],
"on_timeout": "RETURN_NEUTRAL"
}Validate progressively
Log-only → one joint at low gain → one arm → full gesture. Run ten repetitions; inspect peak position, peak velocity, return error and any balance response.
Build the bounded catalog
Add nod, bow, point-left/right, beckon, present and hesitation only after the wave passes. Each behavior gets version, start/end pose, duration, degrees of freedom, stop rule and video reference.
Voice and behavior orchestration
Let the language model choose only from approved skill IDs.
Define the contract
Ollama returns speech text, one allow-listed gesture ID and a timing relation. Reject malformed output or unknown IDs to NO_ACTION.
{
"say": "Welcome to the RAP Lab.",
"gesture": "WAVE_SMALL_V1",
"timing": "gesture_then_speak"
}Test disconnected
Run at least 100 benign, paraphrased, ambiguous and adversarial utterances. Score correct skill, wrong skill and safe rejection. The robot stays offline.
Run shadow mode
Connect state streams but send no commands. Log selected behavior, safety checks and intended timing. Human reviewers approve the first 20 correct selections.
Enable supervised execution
Orchestrator order: stop listening → validate current pose and clearance → reserve controller → run gesture → play speech according to condition → return neutral → release controller → resume listening.
Teleoperation and episode capture
Use teleoperation only after read-only and scripted motion are stable.
Verify the interface and input device
Confirm delivered arm configuration before choosing any R1 arm profile. Confirm whether the lab has a compatible XR headset; that remains an open inventory question. Without one, record scripted demonstrations now and add XR later.
Define episode schema
For each frame store monotonic timestamp, camera image, arm joint position/velocity, commanded action, controller state, behavior label and operator event. Save session metadata once, not redundantly in every frame.
Standardize resets
Mark floor position and camera tripod; run RETURN_NEUTRAL; confirm clearance; start recording; execute exactly two wave cycles; stop; annotate pass/failure; reset.
Collect in blocks
Collect ten episodes, inspect them, then continue toward fifty clean demonstrations. Do not wait until episode fifty to discover swapped joints or missing frames.
R1 → LeRobot adapter and baseline
LeRobot is the training/data layer; the R1 adapter and safety supervisor remain custom engineering.
Implement the observation contract
Expose fixed keys for camera image and selected arm state. Normalize only with statistics saved from the training split. Keep units and joint order explicit.
observation = {
"observation.images.head": rgb_frame,
"observation.state": ordered_arm_joint_positions
}Implement the action firewall
Check shape and freshness; clip to tested joint range; rate-limit velocity; reject NaN/Inf; enforce timeout; verify controller ownership; return neutral on fault. The neural policy never bypasses this layer.
Convert and inspect
Split by start condition, not random frame. Plot every state/action channel, review each video and retain a separate held-out condition. Generate dataset statistics only from training episodes.
Train the simplest baseline
Use an ACT imitation policy first. Save config, code commit, seed, data version, checkpoint and training curves. Loss is diagnostic, not the outcome.
Deploy progressively
Offline inference → shadow actions → one joint → one arm → full gesture. Compare scripted and learned variants on familiar and held-out starts.
Physiology and event synchronization
Instrument the event timeline before interpreting arousal or workload.
Choose sensors by question
Use the ring alone for lower-burden HR/HRV + EDA. Add OpenBCI when the theory requires EEG. In 16-channel mode Cyton + Daisy samples at 125 Hz, suitable for band-power and limited ERP-style work, not high-frequency claims.
Prepare participant and baseline
Check consent and contraindications; fit ring and electrodes; inspect contact and signal quality; seat participant; record a quiet baseline before any robot movement.
Emit event markers
Use one event dictionary across robot, task UI and acquisition host: session start, baseline start/end, robot speech start/end, gesture start/end, advice, error, repair, participant response and trial end.
TRIAL_017 | t_master | CONDITION=APOLOGY_BOW ROBOT_ERROR_ONSET REPAIR_SPEECH_ONSET REPAIR_GESTURE_ONSET PARTICIPANT_CHOICE TRIAL_END
Run a synchronization bench test
Send repeated markers while recording all streams; estimate offset, jitter and missing markers. The ring’s iOS/cloud path may be the bottleneck—verify local raw export before committing to event-level analyses.
Pilot in three passes
Debug technology, then manipulation, then full protocol.
Engineering pilot
Team members only. Stress start/stop, lost network, stale camera, repeated gestures, low battery, voice timeout and sensor reconnect. No human-subject measures.
Manipulation check
Test whether intended constructs differ—such as confident vs hesitant or apology vs no repair—without unintended differences in loudness, duration, danger or perceived malfunction.
Protocol pilot
Run consent through debrief, including randomization, sensors, questionnaire, interview and file handoff. Time every segment and note deviations.
Freeze before recruitment
Turn a working demo into a controlled research instrument.
Version stimuli
Export robot trajectories, speech audio/text, prompts, UI, questionnaires and randomization table. Compute hashes and record the deployed versions.
Preregister decisions
State hypotheses, inclusion/exclusion, manipulation checks, primary DVs, processing choices, artifact rules, stopping rule and analysis model before collecting confirmatory data.
Rehearse staff
Each operator completes the same certification run: setup, baseline, condition delivery, abort, recovery, notes and teardown.
Lock change control
No software, firmware, prompt, timing or questionnaire changes mid-study without documented version break and analysis decision.
Eight programs, one reusable platform.
Start with Programs 1–3. They use the R1’s strongest capability—controlled social motion—without requiring hands.
Mental-state framing × embodied gesture
Ask whether the same robot action is interpreted differently when the R1 speaks in intentional language (“I decided”) versus mechanistic language (“my program selected”), and when a congruent gesture is present or absent.
- Design
- 2 framing × 2 gesture, between subjects
- Task
- Short collaborative advice or quiz
- Primary DVs
- Agency/experience, intentional language, reliance
- Secondary
- Godspeed, perceived malfunction, ring arousal
R1 + laptop + ring
- WAVE or POINT behavior
- Matched prerecorded voice
- Task interface and event logger
- Ring optional for arousal
Write one dialogue; create intentional and mechanistic variants that differ only in agency framing. Match word count, voice, timing and advice accuracy.
Use one validated gesture and a no-gesture control. Keep start pose, distance, duration and robot orientation identical.
Generate balanced assignment to the four cells. Hide condition from the person administering outcome scales where feasible.
Confirm intentional framing raises perceived intentionality and gesture presence is noticed without raising danger or malfunction.
Consent → baseline → interaction → immediate reliance choice → scales → free-text “why did the robot act that way?” → debrief.
Test framing, gesture and interaction on mind attribution and reliance; code free text blind to condition. Treat arousal as secondary unless preregistered.
Trust formation, violation and embodied repair
A repeated advice task creates trust, introduces controlled errors, then compares repair strategies. The R1’s bow or nod makes repair visibly embodied.
- Design
- Reliability phase + repeated violation + repair condition
- Repairs
- Apology, explanation, apology + bow, no repair
- Primary DV
- Behavioral reliance after violation
- Secondary
- MDMT, ability/benevolence/integrity, EDA/HR
R1 + task UI + ring
- Deterministic advice schedule
- Visible error events
- Speech + bow stimulus
- Event-level physiology
Use objectively scored items with controlled difficulty. Precompute when advice is correct or wrong; do not let a live LLM determine experimental reliability.
Deliver a fixed series of mostly correct recommendations so trust has time to form. Log advice, participant choice and outcome.
At preregistered trials, give consequential but ethically bounded wrong advice. Mark error onset and outcome reveal.
Play matched speech; in the embodied condition, add the same validated bow. Keep voice, length, delay and content controlled.
Offer new advice opportunities immediately after repair. Primary outcome is how often participants follow subsequent advice—not only what they say.
Use trial-level models for reliance and time; test repair × trial and baseline trust. Align EDA/HR windows to violation and repair markers.
Scripted versus learned social motion
Compare a deterministic gesture with an ACT imitation policy trained on R1 demonstrations. The theoretical question is whether small natural variation changes intentionality, naturalness and predictability.
- Design
- Scripted vs learned; matched endpoint and duration
- Stimuli
- Wave, point or hesitation
- Primary DVs
- Naturalness, predictability, mind attribution
- Engineering DV
- Completion, path variance, return error
R1 + LeRobot + desktop
- 50+ clean demonstrations
- Custom R1 adapter
- ACT baseline
- Frozen policy checkpoint
Wave is safest. Define start, endpoint, two oscillations, total duration and neutral return.
Verify ten repetitions and retain joint traces. This is both control condition and safety reference.
Use one operator for the first dataset, standardized reset and block-level QC. Keep failures with labels.
Separate held-out start positions. Compare task completion, temporal smoothness and neutral return before any human study.
Adjust only what is necessary to align duration and path endpoints; document all matching decisions. Do not cherry-pick “best-looking” learned trials.
Randomize policy condition; collect naturalness, predictability, eeriness and intentionality. Report both robot performance and participant perception.
Authority and delegation in human–robot teams
Begin with the R1 stationary as a coordinator using speech and pointing. Add mobile guidance only after Unitree locomotion access, bounded routes, stop behavior and supervision have been independently validated.
- Design
- Three authority conditions
- Task
- Locate/inspect marked zones
- Primary DVs
- Delegation choices, completion time, errors
- Secondary
- NASA-TLX, satisfaction, trust
R1 + task UI
- Stationary speech and pointing first
- Known safe waypoints only after mobility validation
- No carrying or grasping
- Observer + stop controller
Run allocation with speech and pointing first. For later mobile work, verify Unitree locomotion access, create marked waypoints, test every route without participants, and freeze speed, clearance and stop behavior.
Use zones or visual checks that robot can guide toward and participant can complete. Equalize workload and difficulty.
Human assigns, robot recommends then human confirms, or robot allocates from the same scripted rule.
Capture offered task, allocation, override, latency, travel time, errors and reason for override.
For stationary trials, the spotter watches arm clearance. If the mobility gate has passed, the spotter also owns locomotion stop and aborts on route obstruction or control instability.
Separate efficiency from preference. Test whether control authority changes delegation and satisfaction even when performance is similar.
Physiological response to robot social signals
Manipulate empathetic versus neutral dialogue or confident versus hesitant motion and align EEG, EDA and cardiac response to exact events.
- Design
- Between-subject style or within-subject event blocks
- Primary physiology
- SCR rate/amplitude, HR, RMSSD
- EEG candidates
- Frontal alpha asymmetry, engagement/workload indices
- Self-report
- Arousal, safety, trust, presence
R1/Furhat + EEG + ring
- Cyton + Daisy, 16 channels
- Standard montage
- Research Ring AT01
- Master event log
Prefer event reactivity or workload over broad “engagement.” Map every construct to a measure and processing decision.
Characterize offset and jitter across OpenBCI, ring, robot and task. If ring export cannot support event timing, limit it to block-level outcomes.
Same room, seating, instructions, baseline duration, sensor placement and artifact checklist. Log cap/electrode quality and ring fit.
Record speech, gesture, error, repair and participant response onset. Never infer event time later from memory.
Specify EEG channel rejection, motion windows, HRV segment requirements and EDA non-responder handling before confirmatory analysis.
Treat EEG, EDA and cardiac measures as distinct signals; correct for multiple testing and avoid labeling correlation as synchrony or causation.
Embodiment ladder with one dialogue model
Deliver identical conversational content through R1, NAO, Furhat and text. Holding language constant isolates embodiment more cleanly than comparing unrelated systems.
- Design
- R1 vs NAO vs Furhat vs text
- Task
- Advice-taking or structured interview
- Primary DVs
- Social presence, disclosure, advice acceptance
- Secondary
- Trust, engagement, arousal
All existing embodiments
- Shared dialogue script/model
- Matched voice where possible
- R1/NAO gesture library
- Furhat gaze/expression
Avoid content that only one embodiment can deliver. Fix prompts, model version, temperature, retrieval context and fallback behavior.
Control voice, dialogue length, room, screen text and timing. Document what cannot be matched—face, body, gaze, mobility.
Use minimal, functionally equivalent acknowledgment: R1/NAO nod, Furhat gaze/expression, text typing indicator only if theoretically justified.
Replay generated sessions offline; check semantic content and advice quality before participants see them.
Balance prior robot experience and preserve identical instructions. Log every generated turn and fallback.
Do not attribute every difference to “physicality” when bodies, faces and gaze differ. Use planned contrasts aligned with theory.
AI opacity, errors and technostress
Use an AI-assisted decision task to test how explanation and error rate shape stress, trust and reliance—first behaviorally, then physiologically.
- Design
- 2 opacity × 2 staged error rate
- Delivery
- R1, Furhat or laptop agent
- Primary DVs
- Technostress, performance, reliance
- Secondary
- EDA/HR, EEG workload, discontinuance
Agent + task UI + sensors
- Precomputed recommendation schedule
- Explanation/no-explanation scripts
- Ring for continuous arousal
- EEG only if justified
Use timed categorization, ranking or quality-control judgments with objective answers and no real-world harm.
Set identical recommendations by item and assign error conditions in advance. Do not let live model variability alter error rate.
Match length and specificity; explanation condition reveals the same evidence consistently, while black-box condition gives recommendation only.
Log reliance, overrides, decision time and accuracy alongside technostress scales and physiology.
Hold agent body constant in the first study. Add embodiment only in a follow-up factorial design if power supports it.
A later field survey can test generalizability, but do not mix causal experimental claims with cross-sectional associations.
Sensor synchronization and ring validation
Turn the lab’s measurement bottleneck into a methods contribution: characterize end-to-end timing, then validate ring outputs against borrowed reference sensors.
- Study A
- OpenBCI + ring + robot event latency/jitter
- Study B
- Ring HR/HRV/EDA agreement
- Reference
- Borrowed ECG and lab-grade EDA
- Analysis
- Offset distribution, Bland–Altman, ICC
Owned stack + borrowed reference
- Ring: PPG/EDA/ECG/temp/accel
- OpenBCI + event source
- R1/Furhat markers
- Reference unit not yet owned
Verify whether the Senstream/iOS workflow exposes raw local timestamps without cloud delay. This determines whether event-level sync is viable.
Emit a known sequence to robot/task logs and all acquisition streams. Run repeated blocks under idle and network load.
Report median offset, spread, drift, missing markers and recovery after reconnect—not only the best run.
For validation, obtain ECG and palmar EDA reference equipment. Do not call PPG an ECG gold standard.
Record concurrent devices during quiet rest, bounded stress induction and robot interaction. Mark movement to evaluate artifact sensitivity.
Use Bland–Altman and ICC for HR/RMSSD/SCL/SCR outcomes, stratify by motion and disclose dropped or unusable time.
Run every participant the same way.
This is the master run-of-show. Program-specific steps slot into the “task blocks” stage.
Make every claim traceable.
A single session ID must connect condition, robot behavior, task events, physiology and outcomes without exposing identity.
/config/Robot interface, joint map, limits, sensor configuration, clock map.
/stimuli/Speech, prompts, gesture trajectories, policy checkpoint and hashes.
/protocols/Run-of-show, safety envelope, abort plan, operator certification.
/sessions/S0001/Manifest, task events, robot logs, raw sensor files and deviations.
/processed/Versioned derivatives; scripts regenerate them from raw data.
/release/De-identified tables, codebook, analysis scripts and dataset card.
Preprocessing decisions
Freeze channel mapping, filters, artifact rejection, HRV window requirements, EDA response window, baseline correction, missingness rules and exclusion order. Preserve raw data read-only.
Analysis order
Manipulation check → primary behavioral model → preregistered self-report model → physiology → robustness → exploratory analyses clearly labeled. Report effect sizes and uncertainty, not only p-values.
Robot performance
Always report completion, timeout, safety stops, path or timing variance, return-to-neutral error and excluded trials. A perception paper still needs a credible stimulus audit.
Release boundary
Decide before collection whether frames include faces, voices, screens or bystanders. Public release requires separate consent, ethics approval and a dataset card; “used in study” is not permission to publish.
Your first eight weeks.
A realistic sequence that produces both infrastructure and a pilotable research manipulation.
Freeze R1 configuration, owners, network and safety envelope. Complete read-only 60-second state/camera log.
Script and validate neutral + small wave. Ten safe repetitions and documented stop behavior.
Add nod, bow, point and hesitation. Film reference runs; define stimulus versions.
Connect Ollama through allow-listed behavior IDs. Complete disconnected tests and shadow-mode review.
Resolve XR inventory. Record first ten episodes; inspect schema, timing, camera and action plots.
Complete fifty clean wave episodes; build R1–LeRobot adapter and offline ACT baseline.
Bench-test EEG/ring event sync. Pilot mental-state framing or trust-repair manipulation with lab members.
Revise, freeze, preregister and prepare ethics materials. Do not recruit until release manifest and operator rehearsal pass.
The first publishable package
Release a validated R1 social-gesture library + dataset/adapter methods note, then use the same frozen behaviors in a theory paper on mental-state attribution or embodied trust repair.
Published precedents and equipment references.
Web-indexed sources were assembled September 23, 2026. Reconfirm prices and product details before purchasing.
Open questions to resolve on the bench: exact InDro ROS 2 graph and R1 motion services; head-joint commandability on the delivered 24-DoF unit; audio device/stream route; compatible XR headset availability; local raw-ring export; reference equipment access for ring validation.
One safe wave. One clean log. One frozen manipulation.
That small milestone proves the control path, produces the first dataset schema and gives the lab a usable experimental stimulus without buying hands or onboard compute.
- Name operator and spotter.
- Complete read-only bring-up.
- Validate neutral and one wave.
- Connect behavior ID to voice.
- Pilot one theory-driven condition.