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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages