How starrytank/satortho works
SatOrtho’s documented workflow aligns satellite-map observations with UAV visual poses, asynchronously fuses relative and absolute pose estimates, then incrementally builds a georeferenced orthophoto. This snapshot includes pose-fusion and mapping code, keyframe state, and ZeroMQ messaging; the README says the visual-SLAM and satellite-matching implementations are not present in this partial release. Edges between the documented stages reflect that workflow, while the sampled source specifically supports keyframe state, GeoMap reconstruction, and messaging responsibilities. The complete runtime wiring cannot be confirmed from the available excerpts.
Main entry points: key_frame.cc Keyframe state · zmq_com.cc Map messaging · geo_fuse.cc Pose fusion · geo_map.cc GeoMap builder
Components 13
Pose estimation
- Relative pose
- Keyframe state
src/map/key_frame.cc - Absolute pose
Pose fusion
- Pose fusion
src/map/geo_fuse.cc
Map reconstruction
- GeoMap builder
src/map/geo_map.cc - Local map
src/map/local_map.cc - Georeferenced orthophoto
src/map/geo_map.cc
Messaging
- Map messaging
src/map/zmq_com.cc - ZeroMQ transport
src/zmq/zmq_IPC.cc - Message frames
src/zmq/zmq_frame.cc
Other components
- UAV frames
- Satellite maps
- Map consumer
Connections 14
- UAV frames → Relative pose: provides frames
- Relative pose → Keyframe state: selects keyframes
- Keyframe state → Absolute pose: matches keyframes
- Satellite maps → Absolute pose: provides prior
- Relative pose → Pose fusion: relative poses
- Absolute pose → Pose fusion: absolute observations
- Pose fusion → GeoMap builder: aligned poses
- Keyframe state → GeoMap builder: keyframe imagery
- GeoMap builder → Local map: creates regions
- Local map → Georeferenced orthophoto: updates mosaic
- Georeferenced orthophoto → Map messaging: publishes maps
- Map messaging → ZeroMQ transport: sends messages
- Map messaging → Message frames: encodes frames
- ZeroMQ transport → Map consumer: transmits maps