This repository contains the design, implementation, and testing of an Anti-Sway Control System developed as part of the Instrumentation and Control Systems course at Indian Institute of Technology Indore. The project focuses on stabilizing suspended payloads using a real-time PID control mechanism integrated with a custom-built H-belt drive system.
Complete Report for detailed methodology, implementation diagrams, and validation results.
The project aims to reduce sway in suspended payloads (like crane systems) by applying corrective actions using a PID controller. The controller reads angular displacement via an MPU-6050 sensor and drives stepper motors to reposition the suspension point using an H-belt drive mechanism. The system is capable of reducing oscillations by up to 90%, improving safety and operational efficiency in suspended load systems.
- Arduino Uno
- Raspberry Pi (for supervision/interface)
- MPU-6050 (6-axis IMU sensor)
- NEMA 17 Stepper Motors (x2)
- A4988 Stepper Motor Drivers (x2)
- H-Belt drive system (custom-built)
- 2-axis Joystick module
A classical PID control algorithm was implemented to minimize the deviation (
u(t) = Kp * e(t) + Ki * integral(e(t)) + Kd * derivative(e(t))
Each axis (roll and pitch) is controlled using separate PID loops. Parameters were tuned using the Ziegler-Nichols method followed by iterative refinement.
- The MPU-6050 sensor is rigidly mounted on the payload using a custom 3D-printed bracket to reduce measurement errors.
- Sensor data is transmitted to the Arduino Uno via I2C protocol for real-time control.
- The accelerometer provides a noisy but drift-free estimate.
- The gyroscope offers fast dynamic response but accumulates drift.
- A complementary filter is used to combine both, ensuring stable and accurate roll and pitch angles.
angle = alpha * (gyro_angle) + (1 - alpha) * (accel_angle);
- Independent PID loops are implemented for roll and pitch.
- Each controller adjusts the position of the suspension point to counteract the sway.
- The motors drive a continuous H-pattern belt that translates PID commands to X-Y movement of the suspension point.
- Stepper motors are operated with 1/16 microstepping, giving a high linear resolution (~6.25µm/microstep).
-
Kinematics:
Motor1 = X + Y Motor2 = X - Y
-
A joystick allows manual control of the suspension point.
-
Useful for:
- Initial positioning
- Manual testing
- Inducing controlled disturbances for PID evaluation
- Adjustable suspension cable (0.5–1.5 m)
- Payloads: 2–4 kg
- Initial disturbances: 5°, 10°, 15°
- Testing both open-loop and closed-loop behavior
- Sway reduction up to 90% compared to uncontrolled motion
- Stable damping and smooth transition between manual and automatic control
- Model Predictive Control (MPC)
- Adaptive and Learning-Based Controllers
- Industrial-grade IMUs
- Load cells for real-time payload feedback
- Larger drive area for heavy-duty operation
- ML-based trajectory optimization
- Real-time system identification
- Anand Control – EOT Crane Anti-Sway
- Ziegler–Nichols Method – ScienceDirect
- Springer Research Article
- Kaustuv Devmishra (Mechanical Engineering Dept., IIT Indore)
- Kshitij Shetty (Mechanical Engineering Dept., IIT Indore)
- Prachi Patil (Mechanical Engineering Dept., IIT Indore)
- Mihir Hemani (Mechanical Engineering Dept., IIT Indore)
- Jatin Joshi (Mechanical Engineering Dept., IIT Indore)
- Krishan Swami (Mechanical Engineering Dept., IIT Indore)