ROS 2 Dual Arm Teleoperation

A ROS 2 Humble workspace for markerless, real-time teleoperation of dual 6-DOF robotic arms (UR5e) equipped with Robotiq 2F-85 grippers, controlled entirely via a standard webcam and RViz. Built just for fun.

ROS 2 Dual Arm Teleop Demo

GitHub: wzaielamri/ros2_dual_arm_teleop

What it does

  • Tracks both hands from a webcam using MediaPipe Hand Landmarker
  • Left hand → left arm, right hand → right arm
  • 2D planar movement (X/Y) + yaw rotation from hand orientation
  • Gripper open/close via thumb–index pinch gesture
  • Simulated entirely in RViz with mock hardware interfaces (no real robot needed)

Stack

  • ROS 2 Humble: system
  • MoveIt + MoveIt Servo: motion planning and real-time Cartesian control
  • MediaPipe: camera-based hand landmark detection
  • OpenCV: video capture and GUI overlay
  • ros2_control: joint trajectory and forward command controllers

Noise handling

  • Exponential moving average (EMA) smoothing
  • Deadband filtering to suppress jitter at rest
  • Max-delta clamping to reject outlier jumps
  • Butterworth low-pass filter in MoveIt Servo