Engineering Applications Suite
A comprehensive collection of 7 interactive physics and control systems simulations covering classical mechanics, aerospace, robotics, and biomechanics. Perfect for education, research, and engineering analysis.
📚 Basic Simulations
🪜Pendulum Simulation
Overview
Classic simple pendulum demonstrating harmonic motion with damping and external torque control. Visualize the effects of gravity, friction, and applied forces in real-time 3D.
Key Features:
- • Adjustable pendulum length (0.5-3.0m)
- • Variable damping coefficient (0-2.0)
- • External torque control
- • Real-time energy tracking
- • Phase space plotting
Controls & Parameters
0.5-3.0m - Affects period (T = 2π√(L/g))
0-2.0 - Air resistance & friction
0-180° - Starting position
-10 to +10 N·m - Driving force
Physics Equation:
Where: θ = angle, g = gravity (9.81 m/s²), L = length, b = damping, τ = torque, m = mass
🛰️Satellite Deployer
Overview
Physics-accurate simulation of 2.5cm femto satellite deployment from 5000m altitude. Models realistic aerodynamics, tumbling dynamics, and terminal velocity behavior.
Specifications:
- • Size: 2.5cm cube
- • Mass: 40g
- • Altitude: 5000m
- • Terminal Velocity: 30-40 m/s
- • Flight Time: 180-250s
Deployment Options
Launch one satellite, observe detailed telemetry
Deploy 10 satellites simultaneously
Altitude, speed, tumbling, rotation, drag coefficient
Aerodynamics Model:
ρ(h) = ρ₀ × e^(-h/8000)
Exponential atmosphere model with variable drag coefficient (1.05-1.35) based on orientation
🤖Mobile Robot Simulation
Overview
Differential drive mobile robot with realistic physics, collision detection, and manual/autonomous control modes. Supports ROS2 integration for real robot control.
Features:
- • Differential drive kinematics
- • Collision detection with obstacles
- • Manual control (keyboard/buttons)
- • ROS2 integration (cmd_vel, odom)
- • Real-time odometry tracking
Controls
Velocity range: ±2.0 m/s linear, ±3.0 rad/s angular
∞Figure-Eight Navigation
Overview
Advanced path following using Pure Pursuit algorithm. Navigate a figure-8 trajectory with configurable parameters, real-time metrics, and MATLAB-level accuracy.
Capabilities:
- • Pure Pursuit path following
- • Configurable trajectory (scale, waypoints)
- • Real-time error tracking
- • Smooth LERP interpolation (60fps)
- • Data export (JSON/CSV)
- • Lap counting & auto-completion
Key Parameters
0.2-2.0m - Target waypoint distance
0.5-3.0 m/s - Forward speed limit
0.5-3.0 rad/s - Rotation speed limit
Control Algorithm:
ω = kp_ω × heading_error + kd × dError/dt
Simplified MATLAB-inspired approach: kp_v=2.0, kp_ω=5.0, kd=0.1
📦Material Handling Robot
Overview
Warehouse robot simulation with obstacle avoidance, path planning, and automated material transport. Navigate through dynamic environments safely.
Features:
- • Dynamic obstacle detection
- • Collision avoidance algorithms
- • Pick & place operations
- • Path planning & replanning
- • Warehouse environment simulation
Operations
Autonomous waypoint-based movement
Real-time collision detection & emergency stop
Optimal path selection & speed profiling
🗺️SLAM Navigation
Overview
Simultaneous Localization and Mapping - Build maps while tracking robot position. Supports both simulation mode and real ROS2 robots.
SLAM Capabilities:
- • Occupancy grid mapping
- • Particle filter localization
- • Laser scan processing
- • Frontier exploration
- • Map export functionality
Algorithms & Modes
Built-in environment with virtual sensors
Industry-standard graph-based SLAM (requires ROS2)
Google's real-time SLAM system (requires ROS2)
🐳ROS2 Docker Setup (Full System)
ℹ️This setup is based on ~/Desktop/ros-web-browser-v3-slam which includes ROSBridge, SLAM Toolbox, and a virtual robot simulator.
📁 Complete Setup (Recommended)
Navigate to your existing project:
cd ~/Desktop/ros-web-browser-v3-slam # Build and start all services docker-compose up --build
- • ros2-web-bridge - ROSBridge WebSocket (port 9090)
- • SLAM Toolbox - Async SLAM node with mapping
- • Virtual Robot - Publishes /scan & /odom topics
- • Web Interface - Nginx server (port 8080)
🔧 docker-compose.yml Structure
services:
ros2-web-bridge:
build:
dockerfile: Dockerfile.web-bridge
ports:
- "9090:9090" # WebSocket for browser
volumes:
- ./robots:/opt/robots
- ./launch:/opt/launch
- ./maps:/tmp/maps
command: >
ros2 launch /opt/launch/robot_bringup.launch.py enable_slam:=true
web-interface:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./web:/usr/share/nginx/html📦 Dockerfile.web-bridge - Key Packages
FROM osrf/ros:humble-desktop
# Core ROS2 packages
RUN apt-get install -y \\
ros-humble-rosbridge-suite \\
ros-humble-slam-toolbox \\
ros-humble-nav2-common \\
ros-humble-navigation2
# Sets up:
# - ROS_DOMAIN_ID=42
# - PYTHONPATH=/opt/robots
# - Maps directory at /tmp/maps🚀 robot_bringup.launch.py - Launch Configuration
# Launches in sequence: 1. Virtual Robot (virtual_robot.py) - Publishes /scan (LaserScan) - Publishes /odom (Odometry) - Publishes /tf transforms 2. SLAM Toolbox (delayed 5s) - Subscribes to /scan - Publishes /map (OccupancyGrid) - Resolution: 0.05m - Mode: async mapping 3. ROSBridge WebSocket - Port: 9090 - Address: 0.0.0.0 (accessible from browser)
📡Required Topics
- • /scan (sensor_msgs/LaserScan)
- • /odom (nav_msgs/Odometry)
- • /map (nav_msgs/OccupancyGrid)
✅Connection Check
ros2 topic list ros2 topic echo /scan # Should show laser data
✅How to Use
- Start Docker:
docker-compose up - Wait ~10s for SLAM to initialize
- In Nuxt app: Select "SLAM Toolbox"
- Connection status turns GREEN ✅
- Click "Start SLAM" to begin
- Maps save to
~/Desktop/ros-web-browser-v3-slam/maps/
⚠️Troubleshooting
# Check if ROSBridge is running docker-compose logs ros2-web-bridge | grep rosbridge # Should show: "Rosbridge WebSocket server started"
# Exec into container docker exec -it ros2-web-bridge bash source /opt/ros/humble/setup.bash ros2 topic list ros2 topic echo /scan --once
# Stop all containers docker-compose down # Kill process on port 9090 lsof -ti:9090 | xargs kill -9
🔍Development Tools
# Start dev container (includes extra tools) docker-compose --profile dev up # Connect to development container docker exec -it ros2-dev-tools bash # Useful commands: ros2 topic list # List all topics ros2 topic hz /scan # Check topic frequency ros2 topic echo /map --once # View map data ros2 node list # List all nodes ros2 service list # List available services
📝Note: The docker-compose setup uses bridge networking (not --net=host). Port 9090 is explicitly mapped to allow browser connection. Virtual robot publishes to ROS_DOMAIN_ID=42.
🦿Lower Limb Biomechanics
Overview
Human gait analysis and biomechanics simulation. Study joint angles, forces, and motion patterns during walking, running, and other activities.
Analysis Features:
- • Hip, knee, ankle joint tracking
- • Gait cycle analysis
- • Ground reaction forces
- • Center of mass trajectory
- • Muscle activation patterns
Applications
Gait abnormality diagnosis & rehabilitation
Performance optimization & injury prevention
Biomechanical modeling & prosthetic design
💡 General Usage Tips
✅Best Practices
- • Start with default parameters
- • Use Reset button between tests
- • Export data for offline analysis
- • Monitor performance metrics
- • Try different parameter combinations
- • Compare simulation vs. theory
🎮Navigation Controls
Ready to Explore?
Launch the Engineering Applications Suite and start experimenting with interactive physics and control systems simulations.
⚙️Launch Engineering Applications