Public Software
Over the years, the ARL has developed a slew of software tools and systems for its own use. Recognizing that these could prove useful to the community of users or developers in the same field, efforts have been made to generalize the software.
Here is a list of publicly available software tools & systems that we develop, maintain or largely contribute to:
UnetStack - an extensible underwater network stack
- UnetStack – project page, UnetStack download, documentation
- Unet handbook – an online book providing step-by-step guidance to working with UnetStack
- unetpy – Python interface to UnetStack
- UnetSockets.jl – Julia interface to UnetStack
- unet-contrib – UnetStack community repository
fjåge – a general-purpose agent framework for Java/Groovy
The fjåge framework forms the core of not only UnetStack, but also several other robotics projects that I contribute to. It provides an agent-based operating system that makes development of modular and extensible software systems easy.
- fjåge – agent framework repository, documentation
- fjåge-sentuator – sensor/actuator interface for agent-based systems
- fjågepy – Python interface to fjåge
- Fjage.jl – Julia interface to fjåge
Python packages and tools
- arlpy – Python tools for:
- Signal processing (
arlpy.signal) - Communication systems (
arlpy.comms) - Beamforming & array processing (
arlpy.bf) - Stable distributions (
arlpy.stable) - Geographical coordinates (
arlpy.geo) - Underwater acoustics (
arlpy.uwa) - Underwater acoustic propagation modeling (
arlpy.uwapm) – Python interface to Bellhop - Plotting utilities (
arlpy.plot) - Miscellaneous common utilities (
arlpy.utils)
- Signal processing (
- unetpy – Python interface to UnetStack
- fjågepy – Python interface to fjåge
Julia packages & tools
- SignalAnalysis.jl – Signal analysis toolbox
- UnderwaterAcoustics.jl – underwater acoustic propagation modeling tools, including an interface to Bellhop (Julia versions are aimed at being compatible with automatic differentiation and probabilistic programming)
- InteractiveViz.jl – interactive visualization tools
- jajub – Java-Julia bridge, for Java applications with Julia components
- UnetSockets.jl – Julia interface to UnetStack
- Fjage.jl – Julia interface to fjåge
Miscellaneous
- jhwbus – Java hardware bus (I2C) access
- Jupyter IEEE paper template – Jupyter notebook to generate fully formatted IEEE papers