Welcome to the Rover Emulation Project! This project aims to simulate a rover's movement and control using a custom control language. The project includes a web interface for writing and executing rover commands, as well as a backend server for handling the rover's logic.
- Rover Emulation Project
- Ref
- Dev notes:
- Web Interface: Write and execute rover commands in a user-friendly web interface.
- Custom Control Language: Control the rover using a custom language with commands like
SET
,FWD
,TURN
, and more! - Real-time Simulation: Visualize the rover's movements in real-time using Three.js.
- Backend Server: Handle rover logic and state management with a Rust-based server.
To get started with the Rover Emulation Project, follow these steps:
-
Clone the repository:
git clone https://github.com/Frost-Lord/Rov-eval.git cd Rov-eval
-
Install dependencies:
cargo build
-
Run the server:
cargo run
-
Open the web interface: Open
http://localhost:8000
in your browser.
- Write your rover commands in the codebox provided in the web interface.
- Wait 2 seconds then the code will be evaluated.
- Watch the rover's movements in the simulation area.
- Complete the Achievements!
The custom control language allows you to control the rover with simple commands. Here are some examples:
-
SET Register, Value: Sets the specified register to a given value.
SET R0, 3
-
FWD Register: Moves the rover forward by the value in the specified register.
FWD R0
-
TURN Direction: Turns the rover in the specified direction.
TURN 90
For a complete list of commands, refer to the [Custom Rover Control Language Datasheet.
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
To perform an API request to http://localhost:8000/export/2394567235923
, use the following details:
- Method:
POST
- URL:
http://localhost:8000/export/2394567235923
- Headers:
Content-Type: application/x-www-form-urlencoded
- Body:
code
:<your_code>
Then you copy all the files in ./src/api/template/firmware
onto your raspberry PI! Now your all done!
https://science.nasa.gov/resource/curiosity-rover-3d-model/
rustup target add armv7a-none-eabi
cargo rustc -- -C link-arg=--script=./linker.ld
arm-none-eabi-objcopy -O binary target/armv7a-none-eabi/debug/template ./firmware/kernel7.img