https://github.com/olivia-banks/cardinal
Cardinal FTC Simulation Software
https://github.com/olivia-banks/cardinal
aerospace-engineering first-tech-challenge quantum-machine-learning robotics simulation simulation-modeling
Last synced: about 2 months ago
JSON representation
Cardinal FTC Simulation Software
- Host: GitHub
- URL: https://github.com/olivia-banks/cardinal
- Owner: olivia-banks
- License: other
- Created: 2023-10-04T02:34:05.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-05T17:07:40.000Z (over 2 years ago)
- Last Synced: 2025-10-30T18:25:41.184Z (7 months ago)
- Topics: aerospace-engineering, first-tech-challenge, quantum-machine-learning, robotics, simulation, simulation-modeling
- Language: Rust
- Homepage: https://github.com/rh-robotics/Cardinal
- Size: 17.2 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cardinal

Cardinal is a way to simulate FTC (First Tech Challenge) OpModes. It's not done, and shouldn't be
used just yet.
## Technical Details
When you open a robot controller that knows about a Cardinal-enabled OpMode, the
OpMode falls into native code. This code essentially hijacks parts of the VFS device
tree, and through this it fakes the existence of I2C, USB, etc. devices. Whenever data
is written to one of these fake devices, it is passed to the native code running on
the Android phone, which shakes the protocol, extracts the data, and repackages it,
so it can be sent to the desktop client.
The desktop client then takes the information the Android phone sends it, and uses it
to construct a fake version of reality, and sensor data can then be gleaned from
there.
Since Cardinal works at such a low level, no code changes are needed in your code,
or in any code you pull in. It's just that easy! Other simulates have to modify
the RobotCore, which isn't terribly flexible.