mo3pheus / marsrover Goto Github PK
View Code? Open in Web Editor NEWA mars rover simulation project that will serve as a test bed for machine learning algorithms.
License: GNU General Public License v3.0
A mars rover simulation project that will serve as a test bed for machine learning algorithms.
License: GNU General Public License v3.0
Problem: The SpacecraftClock and PositionSensor for the Rover can get out of sync ( a minute apart or more ).
Cause: The SpacecraftClock and PositionSensors run on separate threads and get kicked off at different times, Over a period of time due to thread synchronization and waits for lock acquisition, they can get out of sync. If the timeScaleFactor is 60 - these discrepancies can add up quickly.
Solution: There is a command you can issue to the Rover for clockSynchronization - this syncs up the spaceCraftClock and the positionSensor. Unfortunately right now the rover waits for this command to be explicitly issued from the commandCenter.
Ideally the rover would have a tune up thread that measures the difference between the spaceCraftClock and the positionSensor Clock and triggers a sync if that difference gets above a certain threshold.
Solution II - tried implementing this but it failed due to thread sync issues. But ideally you could have the PositionSensor as an observer to the spaceCraftClock - i.e. when the spaceCraftClock updates, so does the positionSensor. This makes a cleaner solution than having the positionSensor ticking on a separate thread and dependent upon periodic forced syncs. The clock Syncs are not without their cost - the pacemaker and roverGarbageCollector are both restarted when this happens. Also conceptually the spaceCraftClock should be the final word upon what time it is on the spaceCraft. This is the computer's internal clock and all components rely upon it for their time. Look to how the TelemetrySensor is tied to the trackingAnimationEngine to see how this could be done.
Things to learn from this issue:
Result is that sleepingAnimation is shown even if the batteryMonitor has put the rover into sleeping state.
Fix Radio - if positionSensor.comsDelay throws an Exception use last known comsDelay
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.