Overview
The projectile motion experiment demonstrates 2D kinematics under constant gravitational acceleration. Using homography-based video tracking, you can measure initial velocity, launch angle, range, maximum height, and verify g from trajectory analysis.Physics Theory
2D Kinematic Equations
For a projectile launched from with initial velocity : Horizontal Motion (no acceleration): Vertical Motion (constant downward acceleration g):Trajectory Equation
Eliminating time gives the parabolic path: Where:- is launch angle
- is initial speed
Key Parameters
Time of Flight (from back to ): Maximum Height: Range (horizontal distance): Time to Maximum Height:Measurement Method
PhysisLab uses homography-based video tracking with rectangular reference frame:- 4 Reference Markers: Form rectangle with known dimensions
- Perspective Transformation: Maps distorted image to real-world coordinates
- Per-Frame Homography: Compensates for camera movement
- Projectile Tracking: Separate color detection for moving object
~/workspace/source/MovimientoParabolico/analisis.py
Hardware Requirements
- Projectile (ball, dart, small object) with colored marker
- 4× colored reference markers forming rectangle (different color from projectile)
- Rectangle mounting (cardboard, wall, floor markers)
- Ruler or measuring tape
- Camera (30+ FPS recommended)
- Launching mechanism (hand, ramp, spring launcher)
Experimental Procedure
Setup Reference Frame
Rectangle Configuration:
- Place 4 markers at corners of rectangle
- Measure width and height precisely (meters)
- Rectangle should be:
- In same vertical plane as trajectory
- Large enough to encompass projectile path
- Clearly visible throughout motion
- TL: Top-Left
- TR: Top-Right
- BL: Bottom-Left
- BR: Bottom-Right
Camera Position
- Perpendicular to motion plane
- Stable mounting (tripod essential)
- Entire trajectory visible in frame
- Reference rectangle always in view
Record Launch
- Test launch angles and speeds
- Ensure projectile stays in frame
- Record video of launch
- Multiple trials recommended
Frame Selection
Navigate and mark:
d/a: ±1 frameD/A: ±10 framesg: Go to specific frame numberi: Mark inicio (launch frame)f: Mark fin (landing frame)ENTER: Confirm
Color Calibration
- Select ROI on one reference marker → auto HSV
- Select ROI on projectile → auto HSV
Verify Detection
Check marker assignment:
- TL (cyan), TR (light blue), BL (orange), BR (green)
- Rectangle outline shown
- Press ENTER to continue
Code Walkthrough
Rectangle Marker Assignment
Geometric assignment by sums and differences (analisis.py:149-158):
Homography Calculation
Perspective transformation for rectangular frame (analisis.py:185-206):
Per-Frame Homography Update
Dynamic calibration compensates for camera movement (analisis.py:226-237):
Parabolic Trajectory Fitting
Fit x(t) and y(t) to kinematic equations (analisis.py:306-349):
Acceleration Analysis
Verify g from numerical differentiation (analisis.py:352):
Data Analysis
Output Files
Data File:datos_parabolico.txt
fig1_posicion_velocidad.png- x(t), y(t), vx(t), vy(t) with fitsfig2_trayectoria.png- x-y trajectory with parabola and annotationsfig3_aceleracion.png- ax(t), ay(t) showing constant gfig4_rapidez_angulo.png- Speed and angle vs timefig5_resumen.png- Text summary of results
Example Results
Visualization
Trajectory Plot with Annotations
Comprehensive x-y plot (analisis.py:424-455):
Velocity Components
Verify theoretical predictions (analisis.py:384-419):
Acceleration Verification
Check for constant g (analisis.py:457-476):
Verification Checks
Energy Conservation
Calculate total mechanical energy:Range Formula Validation
Compare measured range to theoretical:Tips for Best Results
Physical Setup
Physical Setup
- Use dense, smooth projectile (less air resistance)
- Consistent launch mechanism (spring launcher ideal)
- Launch angle between 30-60° for best visibility
- Avoid initial spin if possible
- Keep trajectory in 2D plane (minimal lateral motion)
Reference Frame
Reference Frame
- Large rectangle (at least 1m × 1m)
- Rigid mounting (wall, floor, vertical board)
- Rectangle in same plane as trajectory
- Markers at exact corners (sharp, well-defined)
- All 4 markers visible throughout flight
Camera
Camera
- High frame rate (60+ FPS ideal, 30 acceptable)
- Fast shutter speed to minimize motion blur
- Wide angle to capture full trajectory
- Good lighting, avoid shadows
- Fixed focus (auto-focus can drift)
Analysis
Analysis
- Mark launch frame precisely (just before release)
- Mark landing frame (first contact or peak before landing)
- Include apogee in frame selection
- Verify homography works throughout (check OK status)
Common Error Sources
| Error Source | Effect | Mitigation |
|---|---|---|
| Air resistance | Lower range, asymmetric trajectory | Use dense projectile, low speeds |
| Perspective distortion | Non-parabolic fit | Proper homography, camera perpendicular |
| Motion blur | Position uncertainty | Faster shutter, lower speed launch |
| Timing errors | Incorrect velocities/accelerations | Higher FPS, precise frame marking |
| Reference measurement | Systematic scale error | Precise dimension measurement |
Advanced Analysis
Drag Force Modeling
For higher speeds, include air resistance: Where:- is air density (≈ 1.2 kg/m³)
- is drag coefficient (≈ 0.47 for sphere)
- is cross-sectional area
Optimal Launch Angle
Theoretically (no drag): With drag: (depends on speed) Test multiple angles to find experimental optimum.Troubleshooting
| Issue | Solution |
|---|---|
| Homography fails | Larger markers, better contrast, cleaner edges |
| Projectile lost | Use brighter color, reduce blur, slower launch |
| Non-parabolic fit | Check for spin, lateral motion, or obstruction |
| g value wrong | Verify rectangle dimensions, check calibration |
| High vx variation | Indicates lateral motion or camera not perpendicular |
Extensions
Different Launch Angles
Study how angle affects range and height
Air Resistance Effects
Compare projectiles of different masses/sizes
3D Trajectories
Use two cameras for stereoscopic tracking
Optimal Angle Experiment
Find experimental optimum for max range
Next Steps
Kinematics Experiment
Study 1D motion in detail
Data Analysis Guide
Quantify measurement uncertainties