Assignment 1: Multi-Platform Simulation Validation
Instructions
This assignment requires you to implement and compare simulation scenarios in both Gazebo and Unity, then validate the results against each other. You will create equivalent environments in both platforms and analyze the differences in simulation output.
Learning Objectives
Upon completion of this assignment, you will be able to:
- Create equivalent simulation scenarios in both Gazebo and Unity
- Design experiments to validate simulation results across platforms
- Analyze differences between physics and sensor simulation in different engines
- Evaluate the transferability of simulation results between platforms
- Document findings and limitations of each simulation platform
Assignment Requirements
Part 1: Gazebo Simulation Environment (30 points)
Create a Gazebo simulation environment with:
- A simple mobile robot (differential drive)
- At least 3 obstacles in the environment
- A LiDAR sensor for obstacle detection
- A camera sensor
- A navigation task where the robot must reach a goal while avoiding obstacles
- Proper URDF model for the robot with correct inertial properties
Part 2: Unity Simulation Environment (30 points)
Create an equivalent Unity simulation with:
- A 3D model representing the same robot
- The same arrangement of obstacles
- Equivalent sensors (LiDAR and camera)
- The same navigation task
- Photo-realistic rendering appropriate for perception tasks
Part 3: Comparison and Analysis (30 points)
- Run the same navigation task in both environments
- Collect metrics such as:
- Time to reach goal
- Path efficiency (distance traveled vs. straight-line distance)
- Number of collisions
- Sensor data quality
- Analyze the differences in simulation output
- Discuss the advantages and limitations of each platform
Part 4: Documentation and Report (10 points)
Provide clear documentation including:
- Setup instructions for both simulations
- Screenshots of both environments
- Analysis of results with tables/charts
- Recommendations for when to use each platform
Implementation Guidelines
- Use appropriate coordinate frames in both environments
- Maintain equivalent physical properties where possible
- Use realistic sensor parameters
- Include proper error handling in your implementations
- Consider computational requirements for both platforms
Example Structure for Gazebo
gazebo_simulation/
├── models/
│ ├── robot/
│ │ ├── meshes/
│ │ ├── materials/
│ │ └── model.urdf
│ └── world/
│ └── environment.sdf
├── launch/
│ └── simulation.launch.py
└── scripts/
└── navigation_node.py
Example Structure for Unity
UnitySimulation/
├── Assets/
│ ├── Scenes/
│ │ └── SimulationScene.unity
│ ├── Scripts/
│ │ ├── RobotController.cs
│ │ └── SensorManager.cs
│ ├── Models/
│ │ └── Robot.fbx
│ └── Materials/
└── Packages/
└── manifest.json
Assessment Criteria
Part 1: Gazebo Simulation Environment
- Robot model with proper URDF (7 points)
- Environment with obstacles (6 points)
- Sensor integration (LiDAR & camera) (7 points)
- Navigation task implementation (10 points)
Part 2: Unity Simulation Environment
- Equivalent 3D robot model (7 points)
- Environment matching Gazebo setup (6 points)
- Sensor simulation (7 points)
- Task implementation (10 points)
Part 3: Comparison and Analysis
- Metrics collection (10 points)
- Results analysis (10 points)
- Differences discussion (10 points)
Part 4: Documentation and Report
- Setup instructions (5 points)
- Screenshots and results (3 points)
- Platform recommendations (2 points)
Submission Requirements
- Submit source code for both Gazebo and Unity implementations
- Include a comprehensive report comparing results (PDF format)
- Provide video demonstrations of the robot completing the tasks in both environments
- Include analysis of computational requirements for each platform
Additional Resources
- Gazebo tutorials and documentation
- Unity Perception package documentation
- ROS 2 integration guides
- Physics simulation best practices
Rubric
- Total points: 100
- Passing score: 70/100 (70%)
- Late submission penalty: 5% per day