diff --git a/manifest.json b/manifest.json index 985a4d4..5a10fdf 100644 --- a/manifest.json +++ b/manifest.json @@ -223,577 +223,384 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/jmrobotics/company_logo.png" }, { - "identifier": "bluerobotics.water-linked-dvl", - "name": "Water Linked DVL", - "description": "Enables ROV position holding and navigation", - "docker": "bluerobotics/blueos-water-linked-dvl", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL/", + "identifier": "ceruleansonar.sonarview", + "name": "SonarView", + "description": "Cross platform sonar viewing application", + "docker": "nicknothom/sonarview", + "website": "https://sonarview.io/", "versions": { - "v1.0.2": { + "1.8.9": { "permissions": { - "NetworkMode": "host" + "HostConfig": { + "NetworkMode": "host", + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] + } }, - "requirements": "core > 1", - "tag": "v1.0.2", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "requirements": null, + "tag": "1.8.9", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS-Water-Linked-DVL\n\n## Changelog\n\n### v1.0.2\n - Improved style\n\n### v1.0.1\n - Fixed an issue where the driver was sending Rangefinder messages with invalid data\n\nThis is a docker implementation of a Waterlinked DVL A50 driver as a BlueOS Extension.\n\n## Install\n\nInstall it from [BlueOS extensions tab](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.1/extensions/).\n\nThe service will show in the \"Extension Manager\" section in BlueOS, where there are some configuration options.\n", + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" + "name": "Cerulean Sonar", + "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", - "type": "other", + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", "filter_tags": [], "extra_links": {} }, - "v1.0.1": { + "1.8.8": { "permissions": { - "NetworkMode": "host" + "HostConfig": { + "NetworkMode": "host", + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] + } }, - "requirements": "core > 1", - "tag": "v1.0.1", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "requirements": null, + "tag": "1.8.8", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS-Water-Linked-DVL\n\n## Changelog\n\n### v1.0.1\n - Fixed an issue where the driver was sending Rangefinder messages with invalid data\n\nThis is a docker implementation of a Waterlinked DVL-a50 driver for the new Blue Robotics BlueOS.\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/blueos:/root/.config --name=BlueOS-Water-Linked-DVL --restart=unless-stopped bluerobotics/blueos-water-linked-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" + "name": "Cerulean Sonar", + "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", - "type": "other", + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", "filter_tags": [], "extra_links": {} }, - "v1.0.0": { + "1.8.7": { "permissions": { - "NetworkMode": "host" + "HostConfig": { + "NetworkMode": "host", + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] + } }, - "requirements": "core > 1", - "tag": "v1.0.0", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "requirements": null, + "tag": "1.8.7", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS-Water-Linked-DVL\n\nThis is a docker implementation of a Waterlinked DVL-a50 driver for the new Blue Robotics BlueOS.\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/blueos:/root/.config --name=BlueOS-Water-Linked-DVL --restart=unless-stopped bluerobotics/blueos-water-linked-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" + "name": "Cerulean Sonar", + "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", - "type": "other", + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", "filter_tags": [], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/water-linked-dvl/extension_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/company_logo.png" - }, - { - "identifier": "bluerobotics.cockpit", - "name": "Cockpit", - "description": "Blue Robotics' next generation control interface; under development", - "docker": "bluerobotics/cockpit", - "website": "https://github.com/bluerobotics/cockpit", - "versions": { - "v0.2.2": { + }, + "1.8.6": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } + "NetworkMode": "host", + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] } }, "requirements": null, - "tag": "v0.2.2", - "website": null, + "tag": "1.8.6", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Rafael Araujo Lehmkuhl", - "email": "rafael@bluerobotics.com" - }, - { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrick@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" + "name": "Cerulean Sonar", + "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", - "type": "other", - "filter_tags": [ - "vehicle-control", - "control-station", - "ground-station", - "navigation", - "joystick", - "mission-planning" - ], + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", + "filter_tags": [], "extra_links": {} }, - "v0.2.1": { + "1.8.4": { "permissions": { "ExposedPorts": { - "8000/tcp": {} + "7077/tcp": {} }, "HostConfig": { + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ], "PortBindings": { - "8000/tcp": [ + "7077/tcp": [ { - "HostPort": "" + "HostPort": "7077" } ] } } }, "requirements": null, - "tag": "v0.2.1", - "website": null, + "tag": "1.8.4", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Rafael Araujo Lehmkuhl", - "email": "rafael@bluerobotics.com" - }, - { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrick@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" + "name": "Cerulean Sonar", + "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", - "type": "other", - "filter_tags": [ - "vehicle-control", - "control-station", - "ground-station", - "navigation", - "joystick", - "mission-planning" - ], + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", + "filter_tags": [], "extra_links": {} }, - "v0.2.0": { + "v1.8.3": { "permissions": { "ExposedPorts": { - "8000/tcp": {} + "7077/tcp": {} }, "HostConfig": { + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ], "PortBindings": { - "8000/tcp": [ + "7077/tcp": [ { - "HostPort": "" + "HostPort": "7077" } ] } } }, "requirements": null, - "tag": "v0.2.0", - "website": null, + "tag": "v1.8.3", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Rafael Araujo Lehmkuhl", - "email": "rafael@bluerobotics.com" - }, - { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrick@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" + "name": "Cerulean Sonar", + "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", - "type": "other", - "filter_tags": [ - "vehicle-control", - "control-station", - "ground-station", - "navigation", - "joystick", - "mission-planning" - ], + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", + "filter_tags": [], "extra_links": {} }, - "v0.1.0": { + "v1.8.0": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, + "NetworkMode": "host", "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] } }, "requirements": null, - "tag": "v0.1.0", - "website": null, + "tag": "v1.8.0", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Rafael Araujo Lehmkuhl", - "email": "rafael@bluerobotics.com" - }, - { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrick@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", - "filter_tags": [ - "vehicle-control", - "control-station", - "ground-station", - "navigation", - "joystick", - "mission-planning" - ], + "filter_tags": [], "extra_links": {} }, - "v0.0.10": { + "v1.7.0": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host" }, "requirements": null, - "tag": "v0.0.10", - "website": null, + "tag": "v1.7.0", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Rafael Araujo Lehmkuhl", - "email": "rafael@bluerobotics.com" - }, - { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrick@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", - "filter_tags": [ - "vehicle-control", - "control-station", - "ground-station", - "navigation", - "joystick", - "mission-planning" - ], + "filter_tags": [], "extra_links": {} }, - "v0.0.9": { + "v1.6.0": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host" }, "requirements": null, - "tag": "v0.0.9", - "website": null, + "tag": "v1.6.0", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Rafael Araujo Lehmkuhl", - "email": "rafael@bluerobotics.com" - }, - { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrick@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" - }, - "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", - "type": "other", - "filter_tags": [ - "vehicle-control", - "control-station", - "ground-station", - "navigation", - "joystick", - "mission-planning" - ], - "extra_links": {} - }, - "v0.0.8": { - "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "email": "dennys.bisogno@ceruleansonar.com" }, - "requirements": null, - "tag": "v0.0.8", - "website": null, - "authors": [], - "docs": null, - "readme": null, - "company": null, - "support": null, + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "v0.0.7": { + "v1.5.6": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host" }, "requirements": null, - "tag": "v0.0.7", - "website": null, - "authors": [], - "docs": null, - "readme": null, - "company": null, - "support": null, - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v0.0.6": { - "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } + "tag": "v1.5.6", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } - }, - "requirements": null, - "tag": "v0.0.6", - "website": null, - "authors": [], + ], "docs": null, - "readme": null, - "company": null, - "support": null, - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v0.0.5": { - "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "company": { + "name": "Cerulean Sonar", + "about": "", + "email": "dennys.bisogno@ceruleansonar.com" }, - "requirements": null, - "tag": "v0.0.5", - "website": null, - "authors": [], - "docs": null, - "readme": null, - "company": null, - "support": null, + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "v0.0.4": { + "v1.5.3": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host" }, "requirements": null, - "tag": "v0.0.4", - "website": null, - "authors": [], - "docs": null, - "readme": null, - "company": null, - "support": null, - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v0.0.3": { - "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } + "tag": "v1.5.3", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } - }, - "requirements": null, - "tag": "v0.0.3", - "website": null, - "authors": [], + ], "docs": null, - "readme": null, - "company": null, - "support": null, + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "company": { + "name": "Cerulean Sonar", + "about": "", + "email": "dennys.bisogno@ceruleansonar.com" + }, + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} - }, - "v0.0.2": { + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png" + }, + { + "identifier": "ceruleansonar.cerulean-docs", + "name": "Cerulean Docs", + "description": "Offline access for Cerulean Documentation", + "docker": "nicknothom/blueos-cerulean-docs", + "website": "https://github.com/ceruleansonar/BlueOS-Cerulean-Docs/", + "versions": { + "v1.1.0": { "permissions": { - "ExposedPorts": { - "8000/tcp": {} - }, - "HostConfig": { - "PortBindings": { - "8000/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host" }, - "requirements": null, - "tag": "v0.0.2", - "website": null, - "authors": [], + "requirements": "core > 1", + "tag": "v1.1.0", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" + } + ], "docs": null, - "readme": null, - "company": null, - "support": null, + "readme": "# BlueOS Cerulean Docs\n\nHosts a mirror of the [Cerulean Docs](https://docs.ceruleaonsonar.com) on the ROV so they can be viewed offline. ", + "company": { + "name": "Cerulean Sonar", + "about": "", + "email": "dennys.bisogno@ceruleansonar.com" + }, + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "v0.0.1": { + "v1.0.0": { "permissions": { "ExposedPorts": { - "8000/tcp": {} + "80/tcp": {} }, "HostConfig": { "PortBindings": { - "8000/tcp": [ + "80/tcp": [ { "HostPort": "" } @@ -801,286 +608,236 @@ } } }, - "requirements": null, - "tag": "v0.0.1", - "website": null, - "authors": [], + "requirements": "core > 1", + "tag": "v1.0.0", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" + } + ], "docs": null, - "readme": null, - "company": null, - "support": null, + "readme": "# BlueOS Cerulean Docs\n\nHosts a mirror of the [Cerulean Docs](https://docs.ceruleaonsonar.com) on the ROV so they can be viewed offline. ", + "company": { + "name": "Cerulean Sonar", + "about": "", + "email": "dennys.bisogno@ceruleansonar.com" + }, + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} } }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/company_logo.png" + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png" }, { - "identifier": "williangalvani.example1", - "name": "Example 1", - "description": "Hello World", - "docker": "williangalvani/blueos-example1", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "identifier": "ceruleansonar.cerulean-dvl", + "name": "Cerulean DVL", + "description": "BlueOS extension for Cerulean DVL", + "docker": "nicknothom/blueos-cerulean-dvl", + "website": "https://github.com/ceruleansonar/BlueOS-Cerulean-DVL/", "versions": { - "v1.0.1": { + "v1.0.8": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, "HostConfig": { - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "NetworkMode": "host", + "Binds": [ + "/root/.config/cerulean:/root/.config" + ] } }, - "requirements": "core >= 1.1", - "tag": "v1.0.1", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "requirements": null, + "tag": "v1.0.8", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-examples/", - "type": "example", + "support": "https://forum.ceruleansonar.com/categories", + "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.0": { + "v1.0.7": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, "HostConfig": { - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "NetworkMode": "host", + "Binds": [ + "/root/.config/cerulean:/root/.config" + ] } }, - "requirements": "core > 1", - "tag": "v1.0.0", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "requirements": null, + "tag": "v1.0.7", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-examples/", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" - }, - { - "identifier": "williangalvani.example3", - "name": "Example 3", - "description": "Basic Vuetify example", - "docker": "williangalvani/blueos-example3", - "website": "https://github.com/Williangalvani/BlueOS-examples/", - "versions": { - "v1.0.1": { + }, + "v1.0.6": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, + "NetworkMode": "host", "HostConfig": { - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "Binds": [ + "/root/.config/cerulean:/root/.config" + ] } }, - "requirements": "core >= 1.1", - "tag": "v1.0.1", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "requirements": null, + "tag": "v1.0.6", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-examples/", - "type": "example", + "support": "https://forum.ceruleansonar.com/categories", + "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.0": { + "v1.0.5": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, + "NetworkMode": "host", "HostConfig": { - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "Binds": [ + "/root/.config/blueos:/root/.config" + ] } }, - "requirements": "core >= 1", - "tag": "v1.0.0", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "requirements": null, + "tag": "v1.0.5", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-examples/", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" - }, - { - "identifier": "williangalvani.virtualhere", - "name": "VirtualHere", - "description": "Remotely access onboard USB devices over IP", - "docker": "williangalvani/blueos-extension-virtualhere", - "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", - "versions": { - "v1.0.3": { + }, + "v1.0.4": { "permissions": { - "NetworkMode": "host", - "HostConfig": { - "Privileged": true, - "NetworkMode": "host" - } + "NetworkMode": "host" }, - "requirements": "core >= 1.1", - "tag": "v1.0.3", - "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "requirements": null, + "tag": "v1.0.4", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS VirtualHere extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\n# Client\n\nDownload a client from https://www.virtualhere.com/usb_client_software\n", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", - "filter_tags": [ - "communication" - ], + "filter_tags": [], "extra_links": {} }, "v1.0.2": { "permissions": { - "NetworkMode": "host", - "HostConfig": { - "Privileged": true, - "NetworkMode": "host" - } + "NetworkMode": "host" }, - "requirements": "core >= 1", + "requirements": null, "tag": "v1.0.2", - "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS VirtualHere extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\n# Client\n\nDownload a client from https://www.virtualhere.com/usb_client_software\n", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.0": { + "v1.0.1": { "permissions": { - "NetworkMode": "host", - "HostConfig": { - "Privileged": true - } + "NetworkMode": "host" }, - "requirements": "core >= 1", - "tag": "v1.0.0", - "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "requirements": null, + "tag": "v1.0.1", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS VirtualHere extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\nTo use, first install it in BlueOS:\n\n\n```\nred-pill\nsudo docker run -d --net=host --privileged --name=blueos-virtualhere --restart=unless-stopped williangalvani/blueos-extension-virtualhere:latest\n```\n\n# Client\n\nDownload a client from https://www.virtualhere.com/usb_client_software", + "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Blue Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@bluerobotics.com" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} } }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/virtualhere/extension_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png" }, { "identifier": "williangalvani.webrtc", @@ -1218,10 +975,73 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" }, { - "identifier": "williangalvani.example5", - "name": "Example 5", - "description": "GPIO PWM Control", - "docker": "williangalvani/blueos-example5", + "identifier": "williangalvani.usbip", + "name": "USBIP", + "description": "USBIP extension for extending USB over IP", + "docker": "williangalvani/blueos-extension-usbip", + "website": "https://github.com/Williangalvani/blueos-usbip", + "versions": { + "v1.0.1": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": "core >= 1.1", + "tag": "v1.0.1", + "website": "https://github.com/Williangalvani/BlueOS-UsbIp", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# USB/IP extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\nTo use, first pull it in blueos:\n\n\n```\nred-pill\nsudo docker run -d --net=host --name=blueos-example1 --restart=unless-stopped williangalvani/blueos-extension-usbip:latest\n```\n\n# Client\n\n## Linux:\n\n\n```\n# load modules\nsudo modprobe usbip-core\nsudo modprobe vhci-hcd\n# list devices\nsudo usbip list --remote blueos.local\n# connect to device with bus 1-1.3\nsudo usbip attach --remote blueos.local --busid 1-1.3\n\n```\n\n## Windows\n\nDownload the 3.6 dev release from https://github.com/cezanne/usbip-win and follow the \"Client\" instructions there.\nThe new \"ude\" driver seemed to work for me.", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/BlueOS-UsbIp", + "type": "device-integration", + "filter_tags": [ + "communication" + ], + "extra_links": {} + }, + "v1.0.0": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": "core > 1", + "tag": "v1.0.0", + "website": "https://github.com/Williangalvani/BlueOS-UsbIp", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# USB/IP extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\n# Client\n\n## Linux:\n\n\n```\n# load modules\nsudo modprobe usbip-core\nsudo modprobe vhci-hcd\n# list devices\nsudo usbip list --remote blueos.local\n# connect to device with bus 1-1.3\nsudo usbip attach --remote blueos.local --busid 1-1.3\n\n```\n\n## Windows\n\nDownload the 3.6 dev release from https://github.com/cezanne/usbip-win and follow the \"Client\" instructions there.\nThe new \"ude\" driver seemed to work for me.", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/BlueOS-UsbIp", + "type": "other", + "filter_tags": [], + "extra_links": {} + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" + }, + { + "identifier": "williangalvani.example4", + "name": "Example 4", + "description": "Vuetify + Persistent backend", + "docker": "williangalvani/blueos-example4", "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { @@ -1230,7 +1050,6 @@ "80/tcp": {} }, "HostConfig": { - "Privileged": true, "Binds": [ "/root/.config:/root/.config" ], @@ -1253,7 +1072,7 @@ } ], "docs": null, - "readme": "# Gpio Control Example\n\nThis uses python to serve a static HTML page using Vue and Vuetify controlling a gpio using a python backend\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`\n\nThen pull it in blueos:\n\n\n```\nred-pill\nsudo docker run -d --net=host --name=blueos-example4 --restart=unless-stopped YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest\n```", + "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension. The static page in this example talks to a simple python backend.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", @@ -1261,9 +1080,7 @@ }, "support": "https://github.com/Williangalvani/BlueOS-examples/", "type": "example", - "filter_tags": [ - "interaction" - ], + "filter_tags": [], "extra_links": {} }, "v1.0.0": { @@ -1272,7 +1089,6 @@ "80/tcp": {} }, "HostConfig": { - "Privileged": true, "Binds": [ "/root/.config:/root/.config" ], @@ -1295,7 +1111,7 @@ } ], "docs": null, - "readme": "# Gpio Control Example\n\nThis uses python to serve a static HTML page using Vue and Vuetify controlling a gpio using a python backend\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`\n\nThen pull it in blueos:\n\n\n```\nred-pill\nsudo docker run -d --net=host --name=blueos-example4 --restart=unless-stopped YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest\n```", + "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension. The static page in this example talks to a simple python backend.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", @@ -1311,19 +1127,30 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" }, { - "identifier": "williangalvani.usbip", - "name": "USBIP", - "description": "USBIP extension for extending USB over IP", - "docker": "williangalvani/blueos-extension-usbip", - "website": "https://github.com/Williangalvani/blueos-usbip", + "identifier": "williangalvani.example2", + "name": "Example 2", + "description": "Static HTML plus MAVLink data", + "docker": "williangalvani/blueos-example2", + "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "80/tcp": {} + }, + "HostConfig": { + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": "core >= 1.1", "tag": "v1.0.1", - "website": "https://github.com/Williangalvani/BlueOS-UsbIp", + "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ { "name": "Willian Galvani", @@ -1331,26 +1158,35 @@ } ], "docs": null, - "readme": "# USB/IP extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\nTo use, first pull it in blueos:\n\n\n```\nred-pill\nsudo docker run -d --net=host --name=blueos-example1 --restart=unless-stopped williangalvani/blueos-extension-usbip:latest\n```\n\n# Client\n\n## Linux:\n\n\n```\n# load modules\nsudo modprobe usbip-core\nsudo modprobe vhci-hcd\n# list devices\nsudo usbip list --remote blueos.local\n# connect to device with bus 1-1.3\nsudo usbip attach --remote blueos.local --busid 1-1.3\n\n```\n\n## Windows\n\nDownload the 3.6 dev release from https://github.com/cezanne/usbip-win and follow the \"Client\" instructions there.\nThe new \"ude\" driver seemed to work for me.", + "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension. This example includes MAVLink2Rest communication via http\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", "email": "support@bluerobotics.com" }, - "support": "https://github.com/Williangalvani/BlueOS-UsbIp", - "type": "device-integration", - "filter_tags": [ - "communication" - ], + "support": "https://github.com/Williangalvani/BlueOS-examples/", + "type": "example", + "filter_tags": [], "extra_links": {} }, "v1.0.0": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "80/tcp": {} + }, + "HostConfig": { + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } + } }, - "requirements": "core > 1", + "requirements": "core >= 1", "tag": "v1.0.0", - "website": "https://github.com/Williangalvani/BlueOS-UsbIp", + "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ { "name": "Willian Galvani", @@ -1358,13 +1194,13 @@ } ], "docs": null, - "readme": "# USB/IP extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\n# Client\n\n## Linux:\n\n\n```\n# load modules\nsudo modprobe usbip-core\nsudo modprobe vhci-hcd\n# list devices\nsudo usbip list --remote blueos.local\n# connect to device with bus 1-1.3\nsudo usbip attach --remote blueos.local --busid 1-1.3\n\n```\n\n## Windows\n\nDownload the 3.6 dev release from https://github.com/cezanne/usbip-win and follow the \"Client\" instructions there.\nThe new \"ude\" driver seemed to work for me.", + "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension. This example includes MAVLink2Rest communication via http\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", "email": "support@bluerobotics.com" }, - "support": "https://github.com/Williangalvani/BlueOS-UsbIp", + "support": "https://github.com/Williangalvani/BlueOS-examples/", "type": "other", "filter_tags": [], "extra_links": {} @@ -1374,10 +1210,10 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" }, { - "identifier": "williangalvani.example2", - "name": "Example 2", - "description": "Static HTML plus MAVLink data", - "docker": "williangalvani/blueos-example2", + "identifier": "williangalvani.example3", + "name": "Example 3", + "description": "Basic Vuetify example", + "docker": "williangalvani/blueos-example3", "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { @@ -1405,7 +1241,7 @@ } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension. This example includes MAVLink2Rest communication via http\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", @@ -1441,7 +1277,7 @@ } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension. This example includes MAVLink2Rest communication via http\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", @@ -1457,10 +1293,109 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" }, { - "identifier": "williangalvani.example4", - "name": "Example 4", - "description": "Vuetify + Persistent backend", - "docker": "williangalvani/blueos-example4", + "identifier": "williangalvani.virtualhere", + "name": "VirtualHere", + "description": "Remotely access onboard USB devices over IP", + "docker": "williangalvani/blueos-extension-virtualhere", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "versions": { + "v1.0.3": { + "permissions": { + "NetworkMode": "host", + "HostConfig": { + "Privileged": true, + "NetworkMode": "host" + } + }, + "requirements": "core >= 1.1", + "tag": "v1.0.3", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# BlueOS VirtualHere extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\n# Client\n\nDownload a client from https://www.virtualhere.com/usb_client_software\n", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "type": "other", + "filter_tags": [ + "communication" + ], + "extra_links": {} + }, + "v1.0.2": { + "permissions": { + "NetworkMode": "host", + "HostConfig": { + "Privileged": true, + "NetworkMode": "host" + } + }, + "requirements": "core >= 1", + "tag": "v1.0.2", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# BlueOS VirtualHere extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\n# Client\n\nDownload a client from https://www.virtualhere.com/usb_client_software\n", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "type": "other", + "filter_tags": [], + "extra_links": {} + }, + "v1.0.0": { + "permissions": { + "NetworkMode": "host", + "HostConfig": { + "Privileged": true + } + }, + "requirements": "core >= 1", + "tag": "v1.0.0", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# BlueOS VirtualHere extension\n\nThis exposes usb devices via IP, which can be used in another client device\n\nTo use, first install it in BlueOS:\n\n\n```\nred-pill\nsudo docker run -d --net=host --privileged --name=blueos-virtualhere --restart=unless-stopped williangalvani/blueos-extension-virtualhere:latest\n```\n\n# Client\n\nDownload a client from https://www.virtualhere.com/usb_client_software", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "type": "other", + "filter_tags": [], + "extra_links": {} + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/virtualhere/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" + }, + { + "identifier": "williangalvani.example1", + "name": "Example 1", + "description": "Hello World", + "docker": "williangalvani/blueos-example1", "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { @@ -1469,9 +1404,6 @@ "80/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], "PortBindings": { "80/tcp": [ { @@ -1491,7 +1423,7 @@ } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension. The static page in this example talks to a simple python backend.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", @@ -1508,9 +1440,6 @@ "80/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], "PortBindings": { "80/tcp": [ { @@ -1520,7 +1449,7 @@ } } }, - "requirements": "core >= 1", + "requirements": "core > 1", "tag": "v1.0.0", "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ @@ -1530,7 +1459,7 @@ } ], "docs": null, - "readme": "# Static Webpage extension\n\nThis uses python to serve a static HTML page using Vue and Vuetify as an extension. The static page in this example talks to a simple python backend.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", + "readme": "# Static Webpage extension\n\nThis uses python to serve a basic static HTML page as an extension.\n\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`", "company": { "name": "Blue Robotics", "about": "", @@ -1546,72 +1475,22 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" }, { - "identifier": "nortekgroup.nucleus", - "name": "Nortek Nucleus", - "description": "Supports the Nucleus1000 DVL for ROV navigation", - "docker": "nortekgroup/blueos_nucleus", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "identifier": "williangalvani.example5", + "name": "Example 5", + "description": "GPIO PWM Control", + "docker": "williangalvani/blueos-example5", + "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { - "1.1.0": { - "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, - "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } - } - }, - "requirements": null, - "tag": "1.1.0", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", - "authors": [ - { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" - } - ], - "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", - "company": { - "name": "Nortek", - "about": "", - "email": "" - }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" - ], - "extra_links": {} - }, - "1.0.4": { + "v1.0.1": { "permissions": { "ExposedPorts": { "80/tcp": {} }, "HostConfig": { + "Privileged": true, "Binds": [ "/root/.config:/root/.config" ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], "PortBindings": { "80/tcp": [ { @@ -1621,45 +1500,39 @@ } } }, - "requirements": null, - "tag": "1.0.4", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1.1", + "tag": "v1.0.1", + "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" } ], "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", + "readme": "# Gpio Control Example\n\nThis uses python to serve a static HTML page using Vue and Vuetify controlling a gpio using a python backend\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`\n\nThen pull it in blueos:\n\n\n```\nred-pill\nsudo docker run -d --net=host --name=blueos-example4 --restart=unless-stopped YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest\n```", "company": { - "name": "Nortek", + "name": "Blue Robotics", "about": "", - "email": "" + "email": "support@bluerobotics.com" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", + "support": "https://github.com/Williangalvani/BlueOS-examples/", + "type": "example", "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" + "interaction" ], "extra_links": {} }, - "1.0.2": { + "v1.0.0": { "permissions": { "ExposedPorts": { "80/tcp": {} }, "HostConfig": { + "Privileged": true, "Binds": [ "/root/.config:/root/.config" ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], "PortBindings": { "80/tcp": [ { @@ -1669,137 +1542,208 @@ } } }, - "requirements": null, - "tag": "1.0.2", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "v1.0.0", + "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" } ], "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", + "readme": "# Gpio Control Example\n\nThis uses python to serve a static HTML page using Vue and Vuetify controlling a gpio using a python backend\nto build:\n\nEnable qemu static support with a docker\n\n```\ndocker buildx create --name multiarch --driver docker-container --use\ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nThen build it:\n\n`docker buildx build --platform linux/amd64,linux/arm/v7 . -t YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest --output type=registry\n`\n\nThen pull it in blueos:\n\n\n```\nred-pill\nsudo docker run -d --net=host --name=blueos-example4 --restart=unless-stopped YOURDOCKERHUBUSER/YOURDOCKERHUBREPO:latest\n```", "company": { - "name": "Nortek", + "name": "Blue Robotics", "about": "", - "email": "" + "email": "support@bluerobotics.com" }, - "support": "https://support.nortekgroup.com/", + "support": "https://github.com/Williangalvani/BlueOS-examples/", + "type": "other", + "filter_tags": [], + "extra_links": {} + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" + }, + { + "identifier": "waterlinked.ugps", + "name": "WaterLinked UGPS", + "description": "Provides ROV geolocation with GPS and SBL acoustic positioning", + "docker": "waterlinked/blueos-ugps-extension", + "website": "https://github.com/waterlinked/blueos-ugps-extension", + "versions": { + "v1.0.6": { + "permissions": { + "NetworkMode": "host", + "Env": [ + "UGPS_HOST=http://192.168.2.94", + "MAVLINK_HOST=http://192.168.2.2:6040", + "QGC_IP=192.168.2.1", + "EXTRA_ARGS=" + ] + }, + "requirements": "core >= 1.1", + "tag": "v1.0.6", + "website": "https://github.com/waterlinked/blueos-ugps-extension", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# BlueOS Extension for Water Linked Underwater GPS\n\n## State\n\nThis extension is currently in development. It **has no UI page** (so creates no listing in the sidebar of BlueOS).\n\n## Functionality\n\nAssuming the UGPS is detected and working this service\n* forwards MAVLink data from [Mavlink2Rest](https://github.com/patrickelectric/mavlink2rest) like depth to the UGPS Topside (to enable it to function)\n* forwards locator position from UGPS Topside to MAVLink (message `GPS_INPUT`)\n * the autopilot should send corresponding `GPS_RAW_INT` messages to the topside computer (QGroundControl)\n * the autopilot sends regular `GLOBAL_POSITION_INT` messages to the topside computer with its filtered position estimates\n* forwards topside position from UGPS Topside to UDP port `14401` with NMEA to be received by QGroundControl.\n\nIf you do not have access to a UGPS system, you can use UGPS_HOST=https://demo.waterlinked.com , which simulates a UGPS system with its API.\n\nHardware documentation can be found at https://waterlinked.github.io/underwater-gps/integration/bluerov-integration/\n\n## How to install\n\nThere are 2 options\n\n### Use the extensions manager in BlueOS 1.1.0\n* Click Extensions > Extensions Manager\n* Install this extension\n\nConfiguration is usually not required, but can be done by editing the extension in the \"Installed\" tab of the Extensions Manager.\n\nEditing requires [Pirate Mode](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-latest/advanced-usage/#pirate-mode)\nto be enabled, after which the \"Edit\" button can be used. Copy the Original Settings contents\ninto the Custom settings box, and (if necessary) change the IPs/Host addresses, e.g. to use the demo server:\n```\n{\n \"NetworkMode\": \"host\",\n \"Env\": [\n \"UGPS_HOST=https://demo.waterlinked.com\",\n \"MAVLINK_HOST=http://192.168.2.2:6040\",\n \"QGC_IP=192.168.2.1\",\n \"EXTRA_ARGS=\"\n ]\n}\n```\n\nUse the \"View Logs\" button to check the status.\n\n### Build docker image yourself and start it\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal))\n\ninstall git, clone this repository and run\n```\n# build the docker image\ndocker build -t waterlinked/blueos-ugps-extension:latest .\n# see all images\ndocker images\n\n# running the plugin\n\n# either: run detached\n# with standard command\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n\n# or: in interactive shell to get debug output\ndocker run -it waterlinked/blueos-ugps-extension:latest /bin/bash\n# with standard command\ncd app && python main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ncd app && python main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# end interactive session\nexit\n\n# then stop/start/look at log with\ndocker stop [container-id]\ndocker start [container-id]\ndocker log [container-id] # if run detached\n\n# if you are a developer, upload to registry with (replace latest with desired tag)\ndocker login -u waterlinked\ndocker push waterlinked/blueos-ugps-extension:latest\n```", + "company": { + "name": "Water Linked", + "about": "", + "email": "support@waterlinked.com" + }, + "support": "https://github.com/waterlinked/blueos-ugps-extension/issues", "type": "device-integration", "filter_tags": [ "positioning", "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" + "short-baseline" ], "extra_links": {} }, - "1.0.1": { + "v1.0.4": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, - "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host", + "Env": [ + "UGPS_HOST=http://192.168.2.94", + "MAVLINK_HOST=http://192.168.2.2:6040", + "QGC_IP=192.168.2.1" + ] }, - "requirements": null, - "tag": "1.0.1", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "v1.0.4", + "website": "https://github.com/waterlinked/blueos-ugps-extension", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" } ], "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", + "readme": "# BlueOS Extension for Water Linked Underwater GPS\n\n## State\n\nThis extension is currently in development. It **has no UI page** (so creates no listing in the sidebar of BlueOS).\n\n## Functionality\n\nAssuming the UGPS is detected and working this service\n* forwards MAVLink data from [Mavlink2Rest](https://github.com/patrickelectric/mavlink2rest) like depth to the UGPS Topside (to enable it to function)\n* forwards locator position from UGPS Topside to MAVLink (message `GPS_INPUT`)\n * the autopilot should send corresponding `GPS_RAW_INT` messages to the topside computer (QGroundControl)\n * the autopilot sends regular `GLOBAL_POSITION_INT` messages to the topside computer with its filtered position estimates\n* forwards topside position from UGPS Topside to UDP port `14401` with NMEA to be received by QGroundControl (implemented, but currently not tested)\n\nIf you do not have access to a UGPS system, you can use UGPS_HOST=https://demo.waterlinked.com , which simulates a UGPS system with its API.\n\nHardware documentation can be found at https://waterlinked.github.io/underwater-gps/integration/bluerov-integration/\n\n## How to install\n\nThere are 2 options\n\n### Use the extensions manager in BlueOS 1.1.0\n* Click Extensions > Extensions Manager\n* Install this extension\n\nConfiguration is usually not required, but can be done by editing the extension in the \"Installed\" tab of the Extensions Manager.\n\nEditing requires [Pirate Mode](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-latest/advanced-usage/#pirate-mode)\nto be enabled, after which the \"Edit\" button can be used. Copy the Original Settings contents\ninto the Custom settings box, and (if necessary) change the IPs/Host addresses:\n```\n \"UGPS_HOST=http://192.168.2.94\",\n \"MAVLINK_HOST=http://192.168.2.2:6040\",\n \"QGC_IP=192.168.2.1\"\n```\n\nUse the \"View Logs\" button to check the status.\n\n### Build docker image yourself and start it\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal))\n\ninstall git, clone this repository and run\n```\n# build the docker image\ndocker build -t waterlinked/blueos-ugps-extension:latest .\n# see all images\ndocker images\n\n# running the plugin\n\n# either: run detached\n# with standard command\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n\n# or: in interactive shell to get debug output\ndocker run -it waterlinked/blueos-ugps-extension:latest /bin/bash\n# with standard command\ncd app && python main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ncd app && python main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# end interactive session\nexit\n\n# then stop/start/look at log with\ndocker stop [container-id]\ndocker start [container-id]\ndocker log [container-id] # if run detached\n\n# if you are a developer, upload to registry with (replace latest with desired tag)\ndocker login -u waterlinked\ndocker push waterlinked/blueos-ugps-extension:latest\n```", "company": { - "name": "Nortek", + "name": "Blue Robotics / Water Linked", "about": "", - "email": "" + "email": "support@bluerobotics.com / support@waterlinked.com" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" + "support": "https://github.com/waterlinked/blueos-ugps-extension", + "type": "other", + "filter_tags": [], + "extra_links": {} + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/waterlinked/ugps/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/waterlinked/company_logo.png" + }, + { + "identifier": "bluerobotics.water-linked-dvl", + "name": "Water Linked DVL", + "description": "Enables ROV position holding and navigation", + "docker": "bluerobotics/blueos-water-linked-dvl", + "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL/", + "versions": { + "v1.0.2": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": "core > 1", + "tag": "v1.0.2", + "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } ], + "docs": null, + "readme": "# BlueOS-Water-Linked-DVL\n\n## Changelog\n\n### v1.0.2\n - Improved style\n\n### v1.0.1\n - Fixed an issue where the driver was sending Rangefinder messages with invalid data\n\nThis is a docker implementation of a Waterlinked DVL A50 driver as a BlueOS Extension.\n\n## Install\n\nInstall it from [BlueOS extensions tab](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.1/extensions/).\n\nThe service will show in the \"Extension Manager\" section in BlueOS, where there are some configuration options.\n", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "type": "other", + "filter_tags": [], "extra_links": {} }, - "1.0.0": { + "v1.0.1": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, - "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } - } + "NetworkMode": "host" }, - "requirements": null, - "tag": "1.0.0", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core > 1", + "tag": "v1.0.1", + "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" } ], "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", + "readme": "# BlueOS-Water-Linked-DVL\n\n## Changelog\n\n### v1.0.1\n - Fixed an issue where the driver was sending Rangefinder messages with invalid data\n\nThis is a docker implementation of a Waterlinked DVL-a50 driver for the new Blue Robotics BlueOS.\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/blueos:/root/.config --name=BlueOS-Water-Linked-DVL --restart=unless-stopped bluerobotics/blueos-water-linked-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", "company": { - "name": "Nortek", + "name": "Blue Robotics", "about": "", - "email": "" + "email": "support@bluerobotics.com" }, - "support": "https://support.nortekgroup.com/", + "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.8": { + "v1.0.0": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": "core > 1", + "tag": "v1.0.0", + "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "# BlueOS-Water-Linked-DVL\n\nThis is a docker implementation of a Waterlinked DVL-a50 driver for the new Blue Robotics BlueOS.\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/blueos:/root/.config --name=BlueOS-Water-Linked-DVL --restart=unless-stopped bluerobotics/blueos-water-linked-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "type": "other", + "filter_tags": [], + "extra_links": {} + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/water-linked-dvl/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/company_logo.png" + }, + { + "identifier": "bluerobotics.cockpit", + "name": "Cockpit", + "description": "Blue Robotics' next generation control interface; under development", + "docker": "bluerobotics/cockpit", + "website": "https://github.com/bluerobotics/cockpit", + "versions": { + "v0.2.2": { "permissions": { "ExposedPorts": { - "80/tcp": {} + "8000/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], "PortBindings": { - "80/tcp": [ + "8000/tcp": [ { "HostPort": "" } @@ -1808,40 +1752,45 @@ } }, "requirements": null, - "tag": "0.0.8", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "tag": "v0.2.2", + "website": null, "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Rafael Araujo Lehmkuhl", + "email": "rafael@bluerobotics.com" + }, + { + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrick@bluerobotics.com" } ], "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", + "readme": null, "company": { - "name": "Nortek", + "name": "Blue Robotics", "about": "", - "email": "" + "email": "support@bluerobotics.com" }, - "support": "https://support.nortekgroup.com/", + "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", "type": "other", - "filter_tags": [], + "filter_tags": [ + "vehicle-control", + "control-station", + "ground-station", + "navigation", + "joystick", + "mission-planning" + ], "extra_links": {} }, - "0.0.7": { + "v0.2.1": { "permissions": { "ExposedPorts": { - "80/tcp": {} + "8000/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], "PortBindings": { - "80/tcp": [ + "8000/tcp": [ { "HostPort": "" } @@ -1850,40 +1799,45 @@ } }, "requirements": null, - "tag": "0.0.7", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "tag": "v0.2.1", + "website": null, "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Rafael Araujo Lehmkuhl", + "email": "rafael@bluerobotics.com" + }, + { + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrick@bluerobotics.com" } ], "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", + "readme": null, "company": { - "name": "Nortek", + "name": "Blue Robotics", "about": "", - "email": "" + "email": "support@bluerobotics.com" }, - "support": "https://support.nortekgroup.com/", + "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", "type": "other", - "filter_tags": [], + "filter_tags": [ + "vehicle-control", + "control-station", + "ground-station", + "navigation", + "joystick", + "mission-planning" + ], "extra_links": {} }, - "0.0.6": { + "v0.2.0": { "permissions": { "ExposedPorts": { - "80/tcp": {} + "8000/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], "PortBindings": { - "80/tcp": [ + "8000/tcp": [ { "HostPort": "" } @@ -1892,483 +1846,417 @@ } }, "requirements": null, - "tag": "0.0.6", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "tag": "v0.2.0", + "website": null, "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" - } - ], - "docs": null, - "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", - "company": { - "name": "Nortek", - "about": "", - "email": "" - }, - "support": "https://support.nortekgroup.com/", - "type": "other", - "filter_tags": [], - "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/nortekgroup/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/nortekgroup/company_logo.png" - }, - { - "identifier": "waterlinked.ugps", - "name": "WaterLinked UGPS", - "description": "Provides ROV geolocation with GPS and SBL acoustic positioning", - "docker": "waterlinked/blueos-ugps-extension", - "website": "https://github.com/waterlinked/blueos-ugps-extension", - "versions": { - "v1.0.6": { - "permissions": { - "NetworkMode": "host", - "Env": [ - "UGPS_HOST=http://192.168.2.94", - "MAVLINK_HOST=http://192.168.2.2:6040", - "QGC_IP=192.168.2.1", - "EXTRA_ARGS=" - ] - }, - "requirements": "core >= 1.1", - "tag": "v1.0.6", - "website": "https://github.com/waterlinked/blueos-ugps-extension", - "authors": [ + "name": "Rafael Araujo Lehmkuhl", + "email": "rafael@bluerobotics.com" + }, { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrick@bluerobotics.com" } ], "docs": null, - "readme": "# BlueOS Extension for Water Linked Underwater GPS\n\n## State\n\nThis extension is currently in development. It **has no UI page** (so creates no listing in the sidebar of BlueOS).\n\n## Functionality\n\nAssuming the UGPS is detected and working this service\n* forwards MAVLink data from [Mavlink2Rest](https://github.com/patrickelectric/mavlink2rest) like depth to the UGPS Topside (to enable it to function)\n* forwards locator position from UGPS Topside to MAVLink (message `GPS_INPUT`)\n * the autopilot should send corresponding `GPS_RAW_INT` messages to the topside computer (QGroundControl)\n * the autopilot sends regular `GLOBAL_POSITION_INT` messages to the topside computer with its filtered position estimates\n* forwards topside position from UGPS Topside to UDP port `14401` with NMEA to be received by QGroundControl.\n\nIf you do not have access to a UGPS system, you can use UGPS_HOST=https://demo.waterlinked.com , which simulates a UGPS system with its API.\n\nHardware documentation can be found at https://waterlinked.github.io/underwater-gps/integration/bluerov-integration/\n\n## How to install\n\nThere are 2 options\n\n### Use the extensions manager in BlueOS 1.1.0\n* Click Extensions > Extensions Manager\n* Install this extension\n\nConfiguration is usually not required, but can be done by editing the extension in the \"Installed\" tab of the Extensions Manager.\n\nEditing requires [Pirate Mode](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-latest/advanced-usage/#pirate-mode)\nto be enabled, after which the \"Edit\" button can be used. Copy the Original Settings contents\ninto the Custom settings box, and (if necessary) change the IPs/Host addresses, e.g. to use the demo server:\n```\n{\n \"NetworkMode\": \"host\",\n \"Env\": [\n \"UGPS_HOST=https://demo.waterlinked.com\",\n \"MAVLINK_HOST=http://192.168.2.2:6040\",\n \"QGC_IP=192.168.2.1\",\n \"EXTRA_ARGS=\"\n ]\n}\n```\n\nUse the \"View Logs\" button to check the status.\n\n### Build docker image yourself and start it\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal))\n\ninstall git, clone this repository and run\n```\n# build the docker image\ndocker build -t waterlinked/blueos-ugps-extension:latest .\n# see all images\ndocker images\n\n# running the plugin\n\n# either: run detached\n# with standard command\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n\n# or: in interactive shell to get debug output\ndocker run -it waterlinked/blueos-ugps-extension:latest /bin/bash\n# with standard command\ncd app && python main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ncd app && python main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# end interactive session\nexit\n\n# then stop/start/look at log with\ndocker stop [container-id]\ndocker start [container-id]\ndocker log [container-id] # if run detached\n\n# if you are a developer, upload to registry with (replace latest with desired tag)\ndocker login -u waterlinked\ndocker push waterlinked/blueos-ugps-extension:latest\n```", + "readme": null, "company": { - "name": "Water Linked", + "name": "Blue Robotics", "about": "", - "email": "support@waterlinked.com" + "email": "support@bluerobotics.com" }, - "support": "https://github.com/waterlinked/blueos-ugps-extension/issues", - "type": "device-integration", + "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", + "type": "other", "filter_tags": [ - "positioning", + "vehicle-control", + "control-station", + "ground-station", "navigation", - "short-baseline" + "joystick", + "mission-planning" ], "extra_links": {} }, - "v1.0.4": { - "permissions": { - "NetworkMode": "host", - "Env": [ - "UGPS_HOST=http://192.168.2.94", - "MAVLINK_HOST=http://192.168.2.2:6040", - "QGC_IP=192.168.2.1" - ] - }, - "requirements": "core >= 1", - "tag": "v1.0.4", - "website": "https://github.com/waterlinked/blueos-ugps-extension", - "authors": [ - { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" - } - ], - "docs": null, - "readme": "# BlueOS Extension for Water Linked Underwater GPS\n\n## State\n\nThis extension is currently in development. It **has no UI page** (so creates no listing in the sidebar of BlueOS).\n\n## Functionality\n\nAssuming the UGPS is detected and working this service\n* forwards MAVLink data from [Mavlink2Rest](https://github.com/patrickelectric/mavlink2rest) like depth to the UGPS Topside (to enable it to function)\n* forwards locator position from UGPS Topside to MAVLink (message `GPS_INPUT`)\n * the autopilot should send corresponding `GPS_RAW_INT` messages to the topside computer (QGroundControl)\n * the autopilot sends regular `GLOBAL_POSITION_INT` messages to the topside computer with its filtered position estimates\n* forwards topside position from UGPS Topside to UDP port `14401` with NMEA to be received by QGroundControl (implemented, but currently not tested)\n\nIf you do not have access to a UGPS system, you can use UGPS_HOST=https://demo.waterlinked.com , which simulates a UGPS system with its API.\n\nHardware documentation can be found at https://waterlinked.github.io/underwater-gps/integration/bluerov-integration/\n\n## How to install\n\nThere are 2 options\n\n### Use the extensions manager in BlueOS 1.1.0\n* Click Extensions > Extensions Manager\n* Install this extension\n\nConfiguration is usually not required, but can be done by editing the extension in the \"Installed\" tab of the Extensions Manager.\n\nEditing requires [Pirate Mode](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-latest/advanced-usage/#pirate-mode)\nto be enabled, after which the \"Edit\" button can be used. Copy the Original Settings contents\ninto the Custom settings box, and (if necessary) change the IPs/Host addresses:\n```\n \"UGPS_HOST=http://192.168.2.94\",\n \"MAVLINK_HOST=http://192.168.2.2:6040\",\n \"QGC_IP=192.168.2.1\"\n```\n\nUse the \"View Logs\" button to check the status.\n\n### Build docker image yourself and start it\n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal))\n\ninstall git, clone this repository and run\n```\n# build the docker image\ndocker build -t waterlinked/blueos-ugps-extension:latest .\n# see all images\ndocker images\n\n# running the plugin\n\n# either: run detached\n# with standard command\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ndocker run -d --net=host waterlinked/blueos-ugps-extension:latest python app/main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n\n# or: in interactive shell to get debug output\ndocker run -it waterlinked/blueos-ugps-extension:latest /bin/bash\n# with standard command\ncd app && python main.py --ugps_host http://192.168.2.94 --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# or with demo server\ncd app && python main.py --ugps_host https://demo.waterlinked.com --mavlink_host http://192.168.2.2:6040 --qgc_ip 192.168.2.1\n# end interactive session\nexit\n\n# then stop/start/look at log with\ndocker stop [container-id]\ndocker start [container-id]\ndocker log [container-id] # if run detached\n\n# if you are a developer, upload to registry with (replace latest with desired tag)\ndocker login -u waterlinked\ndocker push waterlinked/blueos-ugps-extension:latest\n```", - "company": { - "name": "Blue Robotics / Water Linked", - "about": "", - "email": "support@bluerobotics.com / support@waterlinked.com" - }, - "support": "https://github.com/waterlinked/blueos-ugps-extension", - "type": "other", - "filter_tags": [], - "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/waterlinked/ugps/extension_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/waterlinked/company_logo.png" - }, - { - "identifier": "ceruleansonar.sonarview", - "name": "SonarView", - "description": "Cross platform sonar viewing application", - "docker": "nicknothom/sonarview", - "website": "https://sonarview.io/", - "versions": { - "1.8.9": { + "v0.1.0": { "permissions": { + "ExposedPorts": { + "8000/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.9", - "website": "https://ceruleansonar.com", + "tag": "v0.1.0", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Rafael Araujo Lehmkuhl", + "email": "rafael@bluerobotics.com" + }, + { + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrick@bluerobotics.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": null, "company": { - "name": "Cerulean Sonar", - "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", - "email": "dennys.bisogno@ceruleansonar.com" + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "device-integration", - "filter_tags": [], + "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", + "type": "other", + "filter_tags": [ + "vehicle-control", + "control-station", + "ground-station", + "navigation", + "joystick", + "mission-planning" + ], "extra_links": {} }, - "1.8.8": { + "v0.0.10": { "permissions": { + "ExposedPorts": { + "8000/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.8", - "website": "https://ceruleansonar.com", + "tag": "v0.0.10", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Rafael Araujo Lehmkuhl", + "email": "rafael@bluerobotics.com" + }, + { + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrick@bluerobotics.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": null, "company": { - "name": "Cerulean Sonar", - "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", - "email": "dennys.bisogno@ceruleansonar.com" + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "device-integration", - "filter_tags": [], + "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", + "type": "other", + "filter_tags": [ + "vehicle-control", + "control-station", + "ground-station", + "navigation", + "joystick", + "mission-planning" + ], "extra_links": {} }, - "1.8.7": { + "v0.0.9": { "permissions": { + "ExposedPorts": { + "8000/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.7", - "website": "https://ceruleansonar.com", + "tag": "v0.0.9", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Rafael Araujo Lehmkuhl", + "email": "rafael@bluerobotics.com" + }, + { + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrick@bluerobotics.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": null, "company": { - "name": "Cerulean Sonar", - "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", - "email": "dennys.bisogno@ceruleansonar.com" + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "device-integration", - "filter_tags": [], + "support": "https://discuss.bluerobotics.com/c/bluerobotics-software", + "type": "other", + "filter_tags": [ + "vehicle-control", + "control-station", + "ground-station", + "navigation", + "joystick", + "mission-planning" + ], "extra_links": {} }, - "1.8.6": { + "v0.0.8": { "permissions": { + "ExposedPorts": { + "8000/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.6", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.8", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "device-integration", + "readme": null, + "company": null, + "support": null, + "type": "other", "filter_tags": [], "extra_links": {} }, - "1.8.4": { + "v0.0.7": { "permissions": { "ExposedPorts": { - "7077/tcp": {} + "8000/tcp": {} }, "HostConfig": { - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ], "PortBindings": { - "7077/tcp": [ + "8000/tcp": [ { - "HostPort": "7077" + "HostPort": "" } ] } } }, "requirements": null, - "tag": "1.8.4", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.7", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "device-integration", + "readme": null, + "company": null, + "support": null, + "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.8.3": { + "v0.0.6": { "permissions": { "ExposedPorts": { - "7077/tcp": {} + "8000/tcp": {} }, "HostConfig": { - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ], "PortBindings": { - "7077/tcp": [ + "8000/tcp": [ { - "HostPort": "7077" + "HostPort": "" } ] } } }, "requirements": null, - "tag": "v1.8.3", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.6", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "Cerulean Sonar: Advanced Technology. Sensibly Priced.", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "device-integration", + "readme": null, + "company": null, + "support": null, + "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.8.0": { + "v0.0.5": { "permissions": { - "NetworkMode": "host", + "ExposedPorts": { + "8000/tcp": {} + }, "HostConfig": { - "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "v1.8.0", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.5", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", + "readme": null, + "company": null, + "support": null, "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.7.0": { + "v0.0.4": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "8000/tcp": {} + }, + "HostConfig": { + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.7.0", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.4", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", + "readme": null, + "company": null, + "support": null, "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.6.0": { + "v0.0.3": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "8000/tcp": {} + }, + "HostConfig": { + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.6.0", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.3", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", + "readme": null, + "company": null, + "support": null, "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.5.6": { + "v0.0.2": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "8000/tcp": {} + }, + "HostConfig": { + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.5.6", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.2", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", + "readme": null, + "company": null, + "support": null, "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.5.3": { + "v0.0.1": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "8000/tcp": {} + }, + "HostConfig": { + "PortBindings": { + "8000/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.5.3", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], + "tag": "v0.0.1", + "website": null, + "authors": [], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", - "company": { - "name": "Cerulean Sonar", - "about": "", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", + "readme": null, + "company": null, + "support": null, "type": "other", "filter_tags": [], "extra_links": {} } }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png" + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/company_logo.png" }, { - "identifier": "ceruleansonar.cerulean-docs", - "name": "Cerulean Docs", - "description": "Offline access for Cerulean Documentation", - "docker": "nicknothom/blueos-cerulean-docs", - "website": "https://github.com/ceruleansonar/BlueOS-Cerulean-Docs/", + "identifier": "nortekgroup.nucleus", + "name": "Nortek Nucleus", + "description": "Supports the Nucleus1000 DVL for ROV navigation", + "docker": "nortekgroup/blueos_nucleus", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "versions": { - "v1.1.0": { - "permissions": { - "NetworkMode": "host" - }, - "requirements": "core > 1", - "tag": "v1.1.0", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], - "docs": null, - "readme": "# BlueOS Cerulean Docs\n\nHosts a mirror of the [Cerulean Docs](https://docs.ceruleaonsonar.com) on the ROV so they can be viewed offline. ", - "company": { - "name": "Cerulean Sonar", - "about": "", - "email": "dennys.bisogno@ceruleansonar.com" - }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v1.0.0": { + "1.1.0": { "permissions": { "ExposedPorts": { "80/tcp": {} }, "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], "PortBindings": { "80/tcp": [ { @@ -2378,235 +2266,347 @@ } } }, - "requirements": "core > 1", - "tag": "v1.0.0", - "website": "https://ceruleansonar.com", + "requirements": null, + "tag": "1.1.0", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS Cerulean Docs\n\nHosts a mirror of the [Cerulean Docs](https://docs.ceruleaonsonar.com) on the ROV so they can be viewed offline. ", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "other", - "filter_tags": [], + "support": "https://support.nortekgroup.com/", + "type": "device-integration", + "filter_tags": [ + "positioning", + "navigation", + "doppler-velocity-log", + "water-tracking", + "current-profiling" + ], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png" - }, - { - "identifier": "ceruleansonar.cerulean-dvl", - "name": "Cerulean DVL", - "description": "BlueOS extension for Cerulean DVL", - "docker": "nicknothom/blueos-cerulean-dvl", - "website": "https://github.com/ceruleansonar/BlueOS-Cerulean-DVL/", - "versions": { - "v1.0.8": { + }, + "1.0.4": { "permissions": { + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", "Binds": [ - "/root/.config/cerulean:/root/.config" - ] + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "v1.0.8", - "website": "https://ceruleansonar.com", + "tag": "1.0.4", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "other", - "filter_tags": [], + "support": "https://support.nortekgroup.com/", + "type": "device-integration", + "filter_tags": [ + "positioning", + "navigation", + "doppler-velocity-log", + "water-tracking", + "current-profiling" + ], "extra_links": {} }, - "v1.0.7": { + "1.0.2": { "permissions": { + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", "Binds": [ - "/root/.config/cerulean:/root/.config" - ] + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "v1.0.7", - "website": "https://ceruleansonar.com", + "tag": "1.0.2", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "other", - "filter_tags": [], + "support": "https://support.nortekgroup.com/", + "type": "device-integration", + "filter_tags": [ + "positioning", + "navigation", + "doppler-velocity-log", + "water-tracking", + "current-profiling" + ], "extra_links": {} }, - "v1.0.6": { + "1.0.1": { "permissions": { - "NetworkMode": "host", + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { "Binds": [ - "/root/.config/cerulean:/root/.config" - ] + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "v1.0.6", - "website": "https://ceruleansonar.com", + "tag": "1.0.1", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", - "type": "other", - "filter_tags": [], + "support": "https://support.nortekgroup.com/", + "type": "device-integration", + "filter_tags": [ + "positioning", + "navigation", + "doppler-velocity-log", + "water-tracking", + "current-profiling" + ], "extra_links": {} }, - "v1.0.5": { + "1.0.0": { "permissions": { - "NetworkMode": "host", + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { "Binds": [ - "/root/.config/blueos:/root/.config" - ] + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "v1.0.5", - "website": "https://ceruleansonar.com", + "tag": "1.0.0", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", + "support": "https://support.nortekgroup.com/", "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.4": { + "0.0.8": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "80/tcp": {} + }, + "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.0.4", - "website": "https://ceruleansonar.com", + "tag": "0.0.8", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", + "support": "https://support.nortekgroup.com/", "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.2": { + "0.0.7": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "80/tcp": {} + }, + "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.0.2", - "website": "https://ceruleansonar.com", + "tag": "0.0.7", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", + "support": "https://support.nortekgroup.com/", "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.1": { + "0.0.6": { "permissions": { - "NetworkMode": "host" + "ExposedPorts": { + "80/tcp": {} + }, + "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } + } }, "requirements": null, - "tag": "v1.0.1", - "website": "https://ceruleansonar.com", + "tag": "0.0.6", + "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Martin Bergene Johansen", + "email": "martin.johansen@nortekgroup.com" } ], "docs": null, - "readme": "# BlueOS-Cerulean-DVL\n\nCerulean DVL driver, compatible with Blue Robotics BlueOS.\n\n## Manual Installation: \n\nTo set this up, ssh into the Raspberry Pi (or access via `red-pill` in [BlueOS Terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)) and run\n\n`sudo docker run -d --net=host -v /root/.config/cerulean:/root/.config --name=BlueOS-Cerulean-DVL --restart=unless-stopped nicknothom/blueos-cerulean-dvl:latest\n`\n\nThe service will show in the \"Available Services\" section in BlueOS, where there are some configuration options.\n", + "readme": "\n# BlueOS extension\n\nThis is a Nucleus extension for the BlueOS software running on BlueROV2. \n\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.\n\nThis allows the user to utilize the \"position hold\" functionality in the ROV\n\n## Nortek Nucleus integration\n\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's [Nucleus integration guide](https://support.nortekgroup.com/hc/en-us/articles/8246995934748-Nucleus-integration-with-BlueROV2).\n\n## setup\n\n### BlueOS\n\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.\n\n### ArduSub\n\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.\n\n### Nucleus\n\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.\n\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201. \n\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.\n\n## Adding extension to BlueROV2\n\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.\n\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.\n\n### BlueOS\n\n#### Installation\nThe extension can be added through BlueOS' extensions menu.\n\nNavigate to Extensions > Extensions Manager.\n\n![blueos_menu](docs/blueos_menu.png)\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.\n\n![nortek_nucleus_store](docs/nortek_nucleus_store.png)\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.\n\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.\n\n![nortek_nucleus_install](docs/nortek_nucleus_install.png)\n\n#### Usage\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".\n\n![nortek_nucleus_installed](docs/nortek_nucleus_installed.png)\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.\n\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold. \n\n![blueos_menu_nucleus](docs/blueos_menu_nucleus.png)\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in [Using the extension](#using-the-extension)\n\n### Docker\n\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in [BlueOS terminal](https://docs.bluerobotics.com/ardusub-zola/software/onboard/BlueOS-1.0/advanced-usage/#terminal)).\n\n**N.B.** The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.\n\n**N.B.** In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.\n\nOn the onboard computer, clone this repo in your preferred path with the following command:\n\n```\ngit clone git@github.com:nortekgroup/nucleus_driver.git\n```\n\nNavigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:\n\n```\ndocker build . -t nucleus_driver\n```\n\nThe GUI of the extension is by default on port 5000. \n\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command\n\n```\ndocker build . -t nucleus_driver --build-arg PORT=5000\n```\n\nwith the value following \"`PORT=`\" being your preferred port.\n\nThe docker container can be executed with the following command\n\n```\ndocker run --net=host -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver\n```\n\n`--net=host` allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available\n\n`-v /root/.config/blueos:/root/.config` maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.\n\n`--name=Nucleus-Driver` is the preferred name of the container.\n\n`--restart=unless-stopped` allows the extension to automatically start when the ROV is powered up\n\nWith the docker container running, the GUI can be accessed in a browser by navigating to `blueos.local:` (or `192.168.2.2:`), where `` is the specified port from the image creation. See [Using the extension](#using-the-extension) to learn about how to use the GUI.\n\n## Using the extension\n\n**N.B.** In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info\n\n**N.B.** In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info\n\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.\n\nIn the case of a manual installation through docker, the GUI can be found y navigating to `blueos.local:` where `` is he port specified when the docker image was created. \n\nThe GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI\n\n### Home\n\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail\n\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.\n\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.\n\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.\n\n### PID parameters\n\n**N.B.** Adjusting any of these parameters **WILL** change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.\n\n### Controller parameters\n\n**N.B.** Adjusting any of these parameters may change the behavior of the ROV\n\n**N.B.** Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.\n\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page. \n\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect\n\n", "company": { - "name": "Cerulean Sonar", + "name": "Nortek", "about": "", - "email": "dennys.bisogno@ceruleansonar.com" + "email": "" }, - "support": "https://forum.ceruleansonar.com/categories", + "support": "https://support.nortekgroup.com/", "type": "other", "filter_tags": [], "extra_links": {} } }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/ceruleansonar/company_logo.png" + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/nortekgroup/company_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/nortekgroup/company_logo.png" } ] \ No newline at end of file