ARPose is an Android-based augmented reality application designed for teleoperating robotic arms (OpenManipulator X, Piper) and mobile robots via ROS 2. It leverages Google's ARCore to track the phone's 6-DoF movement (position and orientation) and transmits this data in real-time over WebSockets to a ROS 2 control node.
- Multi-Robot Support: Switch profiles between OMX Arm, PiPER Arm, and Mobile Robot.
- AR Teleoperation: Uses ARCore to map physical phone movement to robot end-effector coordinates.
- Clutch Control: "Hold to Move" safety button (Clutch) ensures the robot only moves when the operator is ready.
- Real-time Visualization:
- Displays 3D trajectory lines of the movement path.
- Renders virtual 3D shapes (Cube, Pyramid, Car) to visualize the anchor point.
- Customizable Control Mapping:
- Invert axes (X, Y, Z).
- Remap axes (e.g., map Phone Y to Robot Z).
- Adjust motion scaling and sensitivity.
- Home & Safety:
- Dedicated "Go to Home" preset button.
- Haptic feedback (vibration) when hitting safety limits or connecting/disconnecting.
- Data Logging: Records trajectory data (Position + Orientation) to CSV files for analysis.
- QR Code Integration: Scans QR codes to spawn 3D AR anchors automatically.
- Hardware: An Android device compatible with Google ARCore.
- Software:
- Android Studio (Ladybug or newer recommended).
- Android SDK Platform API Level 34 (Min SDK 26).
- Network: The Android device and the ROS 2 computer must be on the same local network (Wi-Fi).
- Download the Repository
git clone https://github.com/cake-lab/ARPose.git- Open in Android Studio
- Launch Android Studio.
- Select File > Open (or "Open" from the Welcome screen).
- Navigate to the ARPose folder you just downloaded.
- Select the folder containing build.gradle.kts and click OK.
- Wait for the Gradle Sync to finish downloading dependencies.
- Connect your Android device via USB (ensure USB Debugging is on).
- Click the green Run (Play) button to build and install the app.
- Network Setup
- Open the app and click the Settings (Spanner) icon.
- IP Address: Enter the local IP of your ROS 2 computer (e.g., 100.100.1.11).
- Port: Default is 8765.
- Robot Profile: Select OMX Arm, PiPER Arm, or Mobile based on your hardware.
- Enter the desired constraints for your arm.
- Connect to your robot arm.
-
Teleoperation
- Calibrate Origin: Point the phone at a flat surface. When prompted "Aim at origin and hold steady," keep the phone still until the progress bar fills.
- Connect: The status dot in the top-left will turn Green when connected to the ROS 2 server.
- Move Robot: Press and hold the red "HOLD TO MOVE (CLUTCH)" button. Move your phone; the robot will mimic the motion relative to the origin.
- Release the button to stop sending commands.
Gripper: Use the slider to open/close the gripper (0% to 100%). Reset: Tap the Refresh icon in the top right to reset the AR origin.