C++ Programming - Engineering Assignment Help
Assignment Task:
Task: 1
Write a program in C++ using object oriented paradigms that shares data originating from a range of Mechatronics sensors between a number of threads. Ensure data integrity between threads and enable relating data between them via suitable data structure that enables time synchronisation and subsequently interpolation of data for task at hand. Supply appropriate auto-generated documentation utilising inline source mark-up.
Specifics An aircraft is patrolling space surrounding a base station. The aircrafts task is to localise an enemy aircraft (bogie) that enters the airspace and intercept the aircraft by shadowing it (keeping on top of it) for a period of time. The aircraft is controlled by supplying desired linear velocity and angular velocity (V and ?) that the on-board systems immediately respond to, as long as they are within operational parameters of aircraft. The controlled linear velocity cannot be less than a terminal velocity (50 m/s), otherwise the aircraft will stall and fall from the sky, or above max velocity (1000 m/s). The combination of linear and angular velocity cannot exceed 6G (safety limit for the pilot : calculated as V * ? / g ; g being gravitational force). A watchdog timer in the control systems requires control input to be supplied every 50ms (5ms tolerance) or the control systems will fail. The aircraft is equipment with:
- A high-precision INSGPS that provides the aircraft precise pose (x,y and ?)
- An omnidirectional radar that provides range to the bogie (from the aircraft) updating at 100Hz Apart from the on-board Radar the aircraft can:
- Receive readings from a radar situated at the base station that provides range to the bogie (from the base station) at 10Hz (the base station is at location 0.0).
A library (libsimulator.a) and header files encompassing the simulator is provided (as part of skeleton code – details below). To illustrate how to use the simulator a sample project containing: CMakeLists.txt and simple main exploiting the simulator are available under student git repository (skeleton/a3-skeleton).
The complete API for the Simulator is available under your git repository (skeleton/a3-skeletondoc). To access the API specifics, open index.html within above noted folder (for instance “firefox index.html”). Peruse Class List and view the methods available under Simulator class.
Task: 2
Create an instance of the simulation and a number of threads to achieve control of an aircraft with an aim of (1) estimating the position of an enemy aircraft (bogie) and (2) shadowing this aircraft : keeping the aircraft on top of the bogie (within 600m) for 2 seconds.
Your system will need to
1. Obtain radar data from the aircraft and the ground station
2. Utilize the radar data to estimate the bogie position (via intersect of the ranges - circles) and display the estimated position on the simulator
3. Linearly extrapolate the bogie position (determine what parameters are needed for this task)
4. Estimate a control action that will lead to your aircraft intercepting the bogie
5. Control the aircraft within the watchdog imposed limits and aircraft specification envelope (terminal velocity/max velocity/max G profile).
6. Continue to determine control actions that will allow you to shadow the bogie, be within 600m for 2 seconds. Therefore, you will need to design classes mapped to the task and functionality (refer to assessment criteria).
Create a Main that
1. Creates objects from your classes
2. Creates a suitable number of threads for the task
3. Handle concurrency using appropriate data protection
4. Achieves goals (1-6) 5. Waits until the threads are terminated with CTRL+C
This Engineering Assignment has been solved by our Engineering experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.