Skip to content

Commit cc58388

Browse files
committed
update readme
1 parent 4ac4b5d commit cc58388

File tree

3 files changed

+8
-42
lines changed

3 files changed

+8
-42
lines changed

README.md

+8-42
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Ares-Red-Link
1+
# Mars-Earth communication Bottleneck
22

3-
# Data Source
3+
## Data Source
44
![](images/astropixels_website.png)
55

66
We use the ephemeris data available in the `astropixels` website, this website has recorded historical data for planets in our solar system from 2011.
@@ -19,18 +19,14 @@ Inside the root directory of the project a python script `astro_ephemeris_data_p
1919
![](images/prepare_data.png)
2020

2121

22-
<br/>
2322
<br/>
2423
<br/>
2524

26-
# Delayed Mars Rover Sensors Data Simulation
25+
# Mars-Earth Communication of Rover Sensors Data with Signal Delay in Real-Time
2726
Here we simulate sending data from Mars to Earth with the calculated light speed signal delay in real-time, the source sensors data frequency is each one second, and we send this data each one second too.
2827

2928
If a delay is `120s`, data from `T=0s` is sent at `T=120s`, data from `T=1s` is sent at `T=121s`, and so on.
3029

31-
32-
<br/>
33-
3430
## Data Source
3531
![](images/mars_rover_sensors_data.png)
3632
This data from mars is taken from The Planetary Atmospheres Node (ATM) of the Planetary Data System (PDS) https://pds-atmospheres.nmsu.edu/
@@ -74,43 +70,13 @@ while (true) {
7470

7571
It checks the queue **without blocking** and sends each packet at the exact **scheduled** time when a `queueCond.notify_one()` is called in the main flow.
7672

77-
The main flow of Mars side:
78-
```cpp
79-
int main() {
8073

81-
EphemerisData EphemerisData;
82-
CommsManager CommsManager;
83-
Rover Rover;
74+
### Earth side
75+
In `earth_receiver_sim.cpp` We receive the sent sensors data by Mars, Earth side is the `server` side here and `Mars` is the `client` side in `UDP` terminology.
8476

85-
// UDP thread transmitter
86-
std::thread transmitterThread(delayedTransmitter, &CommsManager,
87-
"127.0.0.1", 8080);
88-
89-
// Get signal delay from ephemeris
90-
.
91-
.
92-
.
93-
94-
95-
double signal_delay = 0; // Delay in seconds
96-
signal_delay = CommsManager.computeSignalDelay(mars_ephemeris_data, sun_ephemeris_data);
97-
98-
99-
// Sending sensors data each one second
100-
std::string line;
101-
std::string file_name = "source-data/roversensors/WE__0019___________CAL_ENG_________________P01.CSV";
102-
103-
std::ifstream file(file_name);
104-
105-
while (Rover.readSensorData(file, line) && signal_delay != -1) {
106-
Rover.sendSensorData(line, signal_delay);;
107-
queueCond.notify_one();
108-
std::this_thread::sleep_for(std::chrono::seconds(1)); // Maintain real-time pacing
109-
}
11077

111-
}
112-
```
78+
### Test run
11379

11480

115-
### Earth side
116-
We receive the sent sensors data by Mars, Earth side is the `server` side here and `Mars` is the `client` side in `UDP` terminology.
81+
If we look closely, we will find that the first pushed record to the queue is at `06:18:11` (Mars-side) and the first arrived record (Earth-side) is at `06:18:16` which is exactly after `5 seconds` (the signal delay), second record is sent at `06:18:12` and arrived at `06:18:17`, and so on......
82+
![](images/sim.png)

images/mars_rover_sensors_data.png

661 KB
Loading

images/sim.png

268 KB
Loading

0 commit comments

Comments
 (0)