Go to Real Hardware¶
Deploy from simulation to physical robot hardware.
Safety First
Working with real robots requires:
Emergency stop within reach
Trained operator present
Clear workspace around robot
Understanding of robot’s motion range
Supported Robots¶
Public Path (open-deploy-ws)¶
The following robots can be deployed to real hardware from lean open-deploy-ws branches. Follow each branch README (./init_repo.sh / ./quick_start.sh). Acone / AC One is dual-arm; Lift 2S is the full-body platform.
Robot |
Role |
Branch |
How-to |
|---|---|---|---|
ARX Lift 2S |
Full-body (arms + lift + chassis) |
|
|
Acone / AC One |
Dual-arm (same ARX description tree; not Lift 2S) |
|
|
HighTorque Panthera HT |
Dual-arm manipulator |
|
These robots are fully supported for external users without requiring private repository access.
Internal Path (fa-deploy-ws)¶
FiveAges team members can deploy to additional robots including W2, W2R, S2, S2R, and dual-arm CCS configurations. See fa-deploy-ws setup.
In this section¶
Prerequisites¶
Successfully tested in mock mode
Successfully tested in simulation (recommended)
Robot hardware powered and connected
Proper network configuration
Hardware-specific drivers installed
Checklist¶
Pre-Deployment¶
Mock demo runs without errors
Gazebo/Isaac simulation works correctly
Robot is powered off
Emergency stop is accessible
Workspace is clear of obstacles
Network connection is verified
Hardware Setup¶
Robot cables are properly connected
Power supply is adequate
CAN/Ethernet interfaces are up
Hardware interface plugins are loaded
Configuration¶
Correct robot model selected
Joint limits verified
Speed limits set conservatively
Domain ID configured correctly
Deployment Steps¶
Verify mock operation¶
ros2 launch ocs2_arm_controller demo.launch.py robot:=<your_robot>
# Test all planned motions
Configure the hardware interface¶
Set hardware-specific parameters in your configuration.
For CAN-based robots:
# Verify CAN interface
ip link show can0
# Set CAN bitrate if needed
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up
For Ethernet-based robots:
# Verify network interface
ip addr show eth0
First motion¶
Use the branch README / ./quick_start.sh. There is no documented <robot>_bringup hardware_test.launch.py or /enable_motors service.
Lift2S: split body or full body — ARX Lift 2S, 分体控制 vs 全身控制
Joint FSM (HOME / HOLD / MOVEJ): Use Basic Joint Controller —
/fsm_commandisstd_msgs/Int32(mixed stacks:3= OCS2, MOVEJ =4); MoveJ targets are/{controller}/target_joint_position(Float64MultiArray), not/target_joint_positionsJointState
Gradual testing¶
Start from HOLD, then HOME, then MOVEJ / OCS2 as the running controller allows (FSM and Topics). /fsm_command is std_msgs/Int32 (not strings such as stand / walk).
Public Robot Deployment (open-deploy-ws)¶
Use the matching branch and its README scripts. demo.launch.py robot:=arx_acone is Acone (dual-arm), not Lift 2S. The HighTorque launch key is panthera_ht.
ARX Lift 2S —
git clone -b arx-lift2s …then./init_repo.shand./quick_start.sh. Full-body including chassis.Acone / AC One — dual-arm; pick ACone in that same
quick_startmenu for co-debug.HighTorque Panthera HT —
git clone -b panthera-ht …then./init_repo.sh/./release.sh --installand./quick_start.sh. Isomorphic teleop:./teleop_start.sh.
Internal Deployment (fa-deploy-ws)¶
The fa-deploy-ws README is not public. After you have access, run the init / quick-start scripts named in that README. Flags and robot IDs are documented only there. Public-side pattern: fa-deploy-ws Setup.
Common Hardware Issues¶
CAN Communication Timeout¶
Check CAN interface is up:
ip link show can0Verify CAN bitrate matches robot
Check for loose connections
Monitor CAN traffic:
candump can0
Ethernet Communication Fails¶
Verify IP addresses
Check firewall rules
Test ping connectivity
Verify port numbers
Motors Don’t Enable¶
Check emergency stop is released
Verify power supply
Check for hardware faults
Review driver error messages
Unexpected Motion¶
Immediately press emergency stop, then:
Review joint limits
Check coordinate frame alignment
Verify command scaling
Test in mock mode first
Verification¶
Robot enables without errors
Small motions execute correctly
Joint states feedback is accurate
Emergency stop halts motion
Robot can be safely disabled
Next Steps¶
After successful deployment:
ARX Lift 2S and HighTorque Panthera HT for public robots
Add a Robot for custom integrations