In this project, I evaluated and compared seven control strategies on the Franka Emika Panda robotic arm using ROS Noetic and the franka_example_controllers package. The goal was to understand how different controllers behave in tasks ranging from free-space motion to physical human-robot interaction.
Objective
Implement and test 7 control modes (joint & Cartesian)
Analyze behavior during real-world robot motion.
Compare controllers based on compliance, precision, and responsiveness.
This controller commands angular velocities (rad/s) to each joint using the VelocityJointInterface. It's low-level and typically runs at ~1 kHz, enabling very smooth real-time motion.
Demo Behavior: All joints commanded the same velocity (±0.1 rad/s), direction flipped every 8 seconds.
Pros: Simple to implement, very responsive, great for real-time motion generation or teach-by-demonstration.
Cons: No position feedback — can drift over time.
Applications: Trajectory tracking, low-level admittance control, real-time input.
This controller sends absolute angular positions to joints using the PositionJointInterface. It's stable and deterministic, ideal for precision motion in known environments.
Demo Behavior: Joints followed a smooth cosine-profiled offset starting from a known initial configuration.
Pros: Highly precise; easy to implement.
Cons: Zero compliance; reacts poorly to disturbances.
Applications: Calibration, trajectory playback, repeatable motion tasks.
Implements a spring-damper behavior at each joint using EffortJointInterface for torque control. It responds to position/velocity errors, offering compliance and safety.
Demo Behavior: Moved the end-effector in a circular Y-Z path using joint torques derived from desired joint trajectories.
Pros: Compliant; ideal for interacting with environment or human.
Cons: Requires careful gain tuning; slower response in precise tasks.
Applications: pHRI, insertion tasks, safe manipulation, joint-level compliance.
Commands end-effector velocity in 6D Cartesian space (x, y, z, roll, pitch, yaw) using FrankaVelocityCartesianInterface.
Demo Behavior: Robot moved diagonally in the X-Z plane at ±0.05 m/s with direction switching every 4 seconds.
Pros: Intuitive control; ideal for teleoperation or cyclic tasks.
Cons: No position control; drift over time.
Applications: Surface scanning, joystick control, exploratory motion.
This controller commands a full 6D target pose for the end-effector using the FrankaPoseCartesianInterface.
Demo Behavior: Used a smooth, time-varying double-cosine profile to generate displacement trajectories in Cartesian space. The controller follows the waypoints received from Haply Inverse3.
Pros: Clean abstraction of goal-driven motion in workspace; ideal for task-level planning.
Cons: Not contact-aware; can behave poorly near singularities or under external forces.
Applications: Waypoint tracking, teach-by-demonstration, pick-and-place in structured space.
Click to View
Creates a virtual mass-spring-damper system in Cartesian space. Computes forces based on pose error and maps them to joint torques using Jacobians.
Demo Behavior: Trajectory followed while staying compliant to external forces. Torque commands limited for safety. The controller follows the waypoints received from Haply Inverse3.
Pros: Balances precision and compliance; safe in HRI; highly tunable.
Cons: Sensitive to parameter tuning and orientation errors.
Applications: Assembly, human collaboration, safe exploration, adaptive surface interaction.
Click to View
Maintains a desired contact force using torque sensors and closed-loop feedback. Forces are translated to torques using Jacobian transpose.
Demo Behavior: End-effector pressed downward with a constant virtual mass-derived force. PI control adjusted torques in real-time. Here mass = 0.
Pros: Precise control over interaction forces; simple physics-based model.
Cons: Sensitive to modeling errors, sensor drift, and contact loss.
Applications: Polishing, force-based exploration, compliant pressing or insertion.
Best Overall: Cartesian Impedance Control — most suitable for dynamic and contact-rich tasks.
Most Precise: Joint Position Controller — excellent for calibration and structured environments.
Best for Force Tasks: Force Controller — when accurate contact force is critical.
Best for Smooth Motion: Cartesian Velocity Controller — for teleoperation or path scanning.
Project Presentation