====== Software Architecture ====== The control box of the Otter ASV used by NTNU, use a customized version of [[https://lsts.fe.up.pt/toolchain/dune|DUNE]] running on the Ubuntu Server 20.04. ===== The LSTS Toolchain ===== The software used to control the Otter is based on the LSTS [[https://www.lsts.pt/toolchain|Toolchain]], which is a software toolchain meant for developing networked vehicle systems. It aims at creating a modular system for heterogeneous systems of vehicles, in order to control them by much of the same software. The Otter is an autonomous surface vehicle (ASV), but it also supports autonomous underwater vehicles (AUV), unmanned aerial vehicles (UAV), remotly operated vehicles (ROV) and more. An important aspect in why it was chosen, was that it is open source. This makes it easier to know how the software actually works, and also gives anybody a chance to fix faults, and implement new features. The three main components are Neptus, IMC and DUNE. Neptus is the operators console, IMC is the communication protocol, and DUNE is the software controlling the vehicles. The next three sections give more details of these components. The LSTS toolchain is also being used by multiple other projects at NTNU: * [[http://autonaut.itk.ntnu.no/doku.php| The NTNU AutoNaut]] * [[http://uavlab.itk.ntnu.no/wiki/doku.php|The UAV lab]] (requires local IP address), there is also some [[https://www.itk.ntnu.no/english/lab/unmanned|public information]] available. ===== DUNE for the Otter ===== * [[dune_configuration|DUNE configuration]] * [[torqeedo_interface_dune_task|Torqeedo Interface DUNE task]] * [[stratopican_watchdog|Strato Pi CAN watchdog DUNE Task]] ===== Guides ===== * [[sw_run_startup|Starting DUNE while booting]] * [[cmake|DUNE cmake tips]] * [[neptus_tips_and_tricks|Neptus tips and tricks]] * [[boot_config|]] * [[rpi_uart_setup|RPI UART setup]]