Company Update | June 2024
This past month we've been hard at work bringing the magic of Elodin to more places than ever before; from drones to satellites we've greatly expanded what you can use Elodin for!
β
In addition, our CEO Dan, has been jet-setting around exposing the good word of Elodin. He joined the UC Berkeley rocket team at the Spaceport America cup, and appeared on the Lobster Talks podcast
β
π°οΈ Elodin Flight Software
We've been hard at work developing Elodin's next major feature, a framework for developing flight software. We call it ROCI β either named after the ship in the Expanse or a backronym for Rust Object Component Interface.
ROCI allows users to develop flight software quickly, test it against simulations, and then move it onto real hardware faster than ever before. We recently integrated our attitude determination system, built with ROCI, into a customer satellite. Below is a demo of us testing that satellite running ROCI and using Elodin as a real-time visualizer.
β
π Basilisk integration
Our latest integration is with Basilisk, a powerful tool for simulating spacecraft. This integration enables you to test Basilisk's flight software algorithms inside Elodin. Now, you can utilize your existing Elodin simulations and the full power of Basilisk.
In addition, we've added Basilisk support to our flight software framework, ROCI. This allows you to quickly package existing Basilisk modules into flight software. This integration allows users to move from simulation to real flight software quicker than ever before.
β
Introducing our Drone Control System series
Last week we developed a drone control system using our simulation platform. We aim to build a simulation of a simple quadcopter with a common cascaded PID control strategy. This will serve as a starting point for more sophisticated control strategies and more complex vehicles, such as a VTOL quadplane.
For a detailed guide, check out the full blog post here.
β
ποΈ Interview on The Lobster Talks Podcast
βOur CEO Daniel Driscoll went on the Lobster Talks Podcast where he talks Elodin, aerospace, funding, and book recommendations. Watch/Listen to the podcast here.
β
π Spaceport America Cup 2024
βDan also made the trek into the desert of Las Cruces, New Mexico to join 152 teams of over 3,600 students and faculty for the annual Spaceport America Cup - The worlds largest intercollegiate rocket engineering conference and competition.
β
As part of the trip, we sponsored the University of California Berkeley (Launch Video!)
β
Product change log
You can find all our past and present logs on our documentation site: Change Logs!
v0.3.23
- (breaking) Render the Z-axis as up in the editor (instead of the Y-axis). This is a purely visual change and does not affect simulation results, but itβs recommended to update simulations to match the new visual orientation. Typically, this requires swapping the Y and Z axes when operating on spatial positions, velocities, and forces.
- (fix) When a simulation file was changed, the associated pycache files would also be updated, causing the simulation to be re-built multiple times in some cases. This is now fixed.
- Add Status Bar to the editor (currently shows FPS/TPS and basic version of the connection status)
elodin editor <path/to/sim>
now watches the parent directory of the simulation file for changes in addition to the file itself. This is useful for multi-file projects. This is also the case when using the--watch
flag directly. E.g.python <path/to/sim> run --watch
.- Export simulation data to a directory using
exec.write_to_dir(path).
v0.3.22
- (fix) Fix errors when using
vmap
withscan
, and non-scalar values- When the arguments to a scan operation were non-scalar values (i.e their rank was above 0), scan would error in various ways when combined with vmap. The core issue is that some of our logic accidentally assumed an empty shape array, and when that array was non-empty, dimensions would be inserted into the wrong place.
- When the arguments to a scan operation were non-scalar values (i.e their rank was above 0), scan would error in various ways when combined with vmap. The core issue is that some of our logic accidentally assumed an empty shape array, and when that array was non-empty, dimensions would be inserted into the wrong place.