Skip to content

cake-lab/ARPose

Repository files navigation

ARPose

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.

Features

  • 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.

Prerequisites

  1. Hardware: An Android device compatible with Google ARCore.
  2. 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).

Installation

  1. Download the Repository
git clone https://github.com/cake-lab/ARPose.git
  1. 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.

Configuration & Usage

  1. 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.
  1. Teleoperation

    1. 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.
    2. Connect: The status dot in the top-left will turn Green when connected to the ROS 2 server.
    3. 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.
    4. 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.

About

No description, website, or topics provided.

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages