From 522b9eda7e5e6d7337527c1eaf57ea9590c27513 Mon Sep 17 00:00:00 2001 From: Williangalvani Date: Thu, 14 Sep 2023 20:45:37 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20bluerobo?= =?UTF-8?q?tics/BlueOS-Extensions-Repository@824389aa6e29e01a6a77111a30d01?= =?UTF-8?q?387b8b1ce37=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 2986 +++++++++++++++++++++++++------------------------ 1 file changed, 1516 insertions(+), 1470 deletions(-) diff --git a/manifest.json b/manifest.json index 2c33acf..b7d517e 100644 --- a/manifest.json +++ b/manifest.json @@ -1,248 +1,389 @@ [ { - "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/", + "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.0.8": { + "1.2.0": { "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.2.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", - "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.1.0": { "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.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-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.4": { "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.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.5": { + "1.0.2": { "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.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.4": { + "1.0.1": { "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": "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.2": { + "1.0.0": { "permissions": { - "NetworkMode": "host" - }, - "requirements": null, - "tag": "v1.0.2", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.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", + "ExposedPorts": { + "80/tcp": {} + }, + "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } + } + }, + "requirements": null, + "tag": "1.0.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": "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.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.1", - "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": {} - } - }, - "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": { + }, + "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": "core > 1", - "tag": "v1.1.0", - "website": "https://ceruleansonar.com", + "requirements": null, + "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 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", + "support": "https://support.nortekgroup.com/", "type": "other", "filter_tags": [], "extra_links": {} }, - "v1.0.0": { + "0.0.6": { "permissions": { "ExposedPorts": { "80/tcp": {} }, "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], "PortBindings": { "80/tcp": [ { @@ -252,465 +393,413 @@ } } }, - "requirements": "core > 1", - "tag": "v1.0.0", - "website": "https://ceruleansonar.com", + "requirements": null, + "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 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", + "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" }, { - "identifier": "ceruleansonar.sonarview", - "name": "SonarView", - "description": "Cross platform sonar viewing application", - "docker": "nicknothom/sonarview", - "website": "https://sonarview.io/", + "identifier": "patrickelectric.node-red", + "name": "Node-RED", + "description": "Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", + "docker": "patrickelectric/blueos-node-red", + "website": "https://github.com/patrickelectric/blueos-node-red", "versions": { - "1.8.9": { + "1.0.2": { "permissions": { + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", + "Privileged": true, "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "/usr/blueos/userdata/node-red:/data:rw", + "/etc/hostname:/etc/hostname:ro", + "/dev:/dev:rw", + "/:/home/workspace/host:rw" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.9", - "website": "https://ceruleansonar.com", + "tag": "1.0.2", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": "# BlueOS node-red\n\nNode-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n\nIt provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", "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": null, + "type": "other", + "filter_tags": [ + "code", + "development", + "ide", + "node-red" + ], "extra_links": {} }, - "1.8.8": { + "1.0.1": { "permissions": { + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", + "Privileged": true, "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "/usr/blueos/userdata/node-red:/data:rw", + "/etc/hostname:/etc/hostname:ro", + "/dev:/dev:rw", + "/:/home/workspace/host:rw" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.8", - "website": "https://ceruleansonar.com", + "tag": "1.0.1", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": "# BlueOS node-red\n\nNode-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n\nIt provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", "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": [], - "extra_links": {} - }, - "1.8.7": { + "support": null, + "type": "other", + "filter_tags": [ + "code", + "development", + "ide", + "node-red" + ], + "extra_links": {} + }, + "1.0.0": { "permissions": { + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { - "NetworkMode": "host", + "Privileged": true, "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "/usr/blueos/userdata/node-red:/data:rw", + "/etc/hostname:/etc/hostname:ro", + "/dev:/dev:rw", + "/:/home/workspace/host:rw" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "1.8.7", - "website": "https://ceruleansonar.com", + "tag": "1.0.0", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": "# BlueOS node-red\n\nNode-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n\nIt provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", "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": null, + "type": "other", + "filter_tags": [ + "code", + "development", + "ide", + "node-red" + ], "extra_links": {} - }, - "1.8.6": { + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/node-red/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/company_logo.png" + }, + { + "identifier": "patrickelectric.ros", + "name": "ROS", + "description": "Robot Operating System (ROS) extension for BlueOS", + "docker": "patrickelectric/blueos-ros", + "website": "https://github.com/patrickelectric/blueos-ros", + "versions": { + "0.0.1": { "permissions": { + "NetworkMode": "host", "HostConfig": { - "NetworkMode": "host", "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "/dev:/dev:rw" + ], + "Privileged": true, + "NetworkMode": "host" } }, "requirements": null, - "tag": "1.8.6", - "website": "https://ceruleansonar.com", + "tag": "0.0.1", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": "# BlueOS ROS extension\r\n\r\nThis extension makes possible to communicate with the vehicle via ROS\r\n\r\nTo connect, you just need to run the following commands:\r\n```sh\r\nexport ROS_MASTER_URI=http://blueos.local:11311\r\n# or export ROS_MASTER_URI=http://:11311\r\nrostopic list # Done, you already have access to it!\r\n```\r\n\r\nYou can also access the data via [roslibjs]([url](http://wiki.ros.org/roslibjs)http://wiki.ros.org/roslibjs).\r\n\r\n```html\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n

Simple ROS User Interface

\r\n

Connection status:

\r\n

Last /mavros/vfr_hud received:

\r\n\r\n\r\n```\r\n", "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": null, + "type": "other", + "filter_tags": [ + "ros", + "robot" + ], "extra_links": {} - }, - "1.8.4": { + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/ros/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/company_logo.png" + }, + { + "identifier": "patrickelectric.yacht", + "name": "Yacht", + "description": "Yacht is a container management UI with a focus on templates and 1-click deployments.", + "docker": "patrickelectric/blueos-yacht", + "website": "https://github.com/patrickelectric/blueos-yacht", + "versions": { + "1.0.0": { "permissions": { "ExposedPorts": { - "7077/tcp": {} + "8000/tcp": {} }, "HostConfig": { + "Privileged": true, "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" + "/var/run/docker.sock:/var/run/docker.sock:rw" ], "PortBindings": { - "7077/tcp": [ + "8000/tcp": [ { - "HostPort": "7077" + "HostPort": "" } ] } } }, "requirements": null, - "tag": "1.8.4", - "website": "https://ceruleansonar.com", + "tag": "1.0.0", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "docs": null, - "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", + "readme": "# BlueOS yacht\n\nYacht is a container management UI with a focus on templates and 1-click deployments.", "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": null, + "type": "tool", + "filter_tags": [ + "docker", + "container", + "dashboard", + "manager" + ], "extra_links": {} - }, - "v1.8.3": { + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/yacht/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/company_logo.png" + }, + { + "identifier": "patrickelectric.openvscode", + "name": "OpenVSCoder", + "description": "This project provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", + "docker": "patrickelectric/blueos-openvscode", + "website": "https://github.com/patrickelectric/blueos-code-server", + "versions": { + "1.1.2": { "permissions": { "ExposedPorts": { - "7077/tcp": {} + "80/tcp": {} }, "HostConfig": { + "Privileged": true, "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" + "/usr/blueos/userdata/openvscode/.cache:/home/workspace/.cache:rw", + "/usr/blueos/userdata/openvscode/.local:/home/workspace/.local:rw", + "/usr/blueos/userdata:/userdata:rw", + "/usr/blueos/openvscode:/openvscode:rw", + "/var/run/docker.sock:/var/run/docker.sock:rw", + "/usr/bin/docker:/usr/bin/docker:ro", + "/etc/hostname:/etc/hostname:ro", + "/dev:/dev:rw", + "/:/home/workspace/host:rw" ], "PortBindings": { - "7077/tcp": [ + "80/tcp": [ { - "HostPort": "7077" + "HostPort": "" } ] } } }, "requirements": null, - "tag": "v1.8.3", - "website": "https://ceruleansonar.com", + "tag": "1.1.2", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "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", - "filter_tags": [], + "readme": "# BlueOS Code Server\n\nBlueOS extension for OpenVSCode Server.\n\nOpenVSCode server is a project where it provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", + "company": null, + "support": null, + "type": "other", + "filter_tags": [ + "code", + "development", + "ide", + "vscode", + "python", + "rust" + ], "extra_links": {} }, - "v1.8.0": { + "1.1.1": { "permissions": { - "NetworkMode": "host", + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { + "Privileged": true, "Binds": [ - "/usr/blueos/userdata/SonarView:/userdata" - ] + "/usr/blueos/userdata:/home/workspace/userdata:rw", + "/usr/blueos/openvscode:/openvscode:rw", + "/var/run/docker.sock:/var/run/docker.sock:rw", + "/usr/bin/docker:/usr/bin/docker:ro", + "/etc/hostname:/etc/hostname:ro", + "/dev:/dev:rw", + "/:/home/workspace/host:rw" + ], + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, "requirements": null, - "tag": "v1.8.0", - "website": "https://ceruleansonar.com", + "tag": "1.1.1", + "website": null, "authors": [ { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" + "name": "Patrick Jos\u00e9 Pereira", + "email": "patrickelectric@gmail.com" } ], "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": "# BlueOS Code Server\n\nBlueOS extension for OpenVSCode Server.\n\nOpenVSCode server is a project where it provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", + "company": null, + "support": null, "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v1.7.0": { - "permissions": { - "NetworkMode": "host" - }, - "requirements": null, - "tag": "v1.7.0", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], - "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", - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v1.6.0": { - "permissions": { - "NetworkMode": "host" - }, - "requirements": null, - "tag": "v1.6.0", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], - "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", - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v1.5.6": { - "permissions": { - "NetworkMode": "host" - }, - "requirements": null, - "tag": "v1.5.6", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], - "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", - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v1.5.3": { - "permissions": { - "NetworkMode": "host" - }, - "requirements": null, - "tag": "v1.5.3", - "website": "https://ceruleansonar.com", - "authors": [ - { - "name": "Nick Nothom", - "email": "nick.nothom@ceruleansonar.com" - } - ], - "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", - "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" - }, - { - "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", - "short-baseline" + "code", + "development", + "ide", + "vscode", + "python", + "rust" ], "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": "patrickelectric.yacht", - "name": "Yacht", - "description": "Yacht is a container management UI with a focus on templates and 1-click deployments.", - "docker": "patrickelectric/blueos-yacht", - "website": "https://github.com/patrickelectric/blueos-yacht", - "versions": { - "1.0.0": { + "1.1.0": { "permissions": { "ExposedPorts": { - "8000/tcp": {} + "80/tcp": {} }, "HostConfig": { "Privileged": true, "Binds": [ - "/var/run/docker.sock:/var/run/docker.sock:rw" + "/usr/blueos/userdata:/home/workspace/userdata:rw", + "/usr/blueos/openvscode:/openvscode:rw", + "/var/run/docker.sock:/var/run/docker.sock:rw", + "/usr/bin/docker:/usr/bin/docker:ro", + "/etc/hostname:/etc/hostname:ro", + "/dev:/dev:rw", + "/:/home/workspace/host:rw" ], "PortBindings": { - "8000/tcp": [ + "80/tcp": [ { "HostPort": "" } @@ -719,7 +808,7 @@ } }, "requirements": null, - "tag": "1.0.0", + "tag": "1.1.0", "website": null, "authors": [ { @@ -728,34 +817,21 @@ } ], "docs": null, - "readme": "# BlueOS yacht\n\nYacht is a container management UI with a focus on templates and 1-click deployments.", - "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" - }, + "readme": "# BlueOS Code Server\n\nBlueOS extension for OpenVSCode Server.\n\nOpenVSCode server is a project where it provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", + "company": null, "support": null, - "type": "tool", + "type": "other", "filter_tags": [ - "docker", - "container", - "dashboard", - "manager" + "code", + "development", + "ide", + "vscode", + "python", + "rust" ], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/yacht/extension_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/company_logo.png" - }, - { - "identifier": "patrickelectric.openvscode", - "name": "OpenVSCoder", - "description": "This project provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", - "docker": "patrickelectric/blueos-openvscode", - "website": "https://github.com/patrickelectric/blueos-code-server", - "versions": { - "1.1.2": { + }, + "1.0.7": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -763,14 +839,11 @@ "HostConfig": { "Privileged": true, "Binds": [ - "/usr/blueos/userdata/openvscode/.cache:/home/workspace/.cache:rw", - "/usr/blueos/userdata/openvscode/.local:/home/workspace/.local:rw", - "/usr/blueos/userdata:/userdata:rw", + "/usr/blueos/userdata:/home/workspace/userdata:rw", "/usr/blueos/openvscode:/openvscode:rw", "/var/run/docker.sock:/var/run/docker.sock:rw", "/usr/bin/docker:/usr/bin/docker:ro", "/etc/hostname:/etc/hostname:ro", - "/dev:/dev:rw", "/:/home/workspace/host:rw" ], "PortBindings": { @@ -783,7 +856,7 @@ } }, "requirements": null, - "tag": "1.1.2", + "tag": "1.0.7", "website": null, "authors": [ { @@ -806,7 +879,7 @@ ], "extra_links": {} }, - "1.1.1": { + "1.0.6": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -816,10 +889,7 @@ "Binds": [ "/usr/blueos/userdata:/home/workspace/userdata:rw", "/usr/blueos/openvscode:/openvscode:rw", - "/var/run/docker.sock:/var/run/docker.sock:rw", - "/usr/bin/docker:/usr/bin/docker:ro", "/etc/hostname:/etc/hostname:ro", - "/dev:/dev:rw", "/:/home/workspace/host:rw" ], "PortBindings": { @@ -832,7 +902,7 @@ } }, "requirements": null, - "tag": "1.1.1", + "tag": "1.0.6", "website": null, "authors": [ { @@ -855,7 +925,7 @@ ], "extra_links": {} }, - "1.1.0": { + "1.0.5": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -865,10 +935,7 @@ "Binds": [ "/usr/blueos/userdata:/home/workspace/userdata:rw", "/usr/blueos/openvscode:/openvscode:rw", - "/var/run/docker.sock:/var/run/docker.sock:rw", - "/usr/bin/docker:/usr/bin/docker:ro", "/etc/hostname:/etc/hostname:ro", - "/dev:/dev:rw", "/:/home/workspace/host:rw" ], "PortBindings": { @@ -881,7 +948,7 @@ } }, "requirements": null, - "tag": "1.1.0", + "tag": "1.0.5", "website": null, "authors": [ { @@ -904,7 +971,7 @@ ], "extra_links": {} }, - "1.0.7": { + "1.0.4": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -914,9 +981,6 @@ "Binds": [ "/usr/blueos/userdata:/home/workspace/userdata:rw", "/usr/blueos/openvscode:/openvscode:rw", - "/var/run/docker.sock:/var/run/docker.sock:rw", - "/usr/bin/docker:/usr/bin/docker:ro", - "/etc/hostname:/etc/hostname:ro", "/:/home/workspace/host:rw" ], "PortBindings": { @@ -929,7 +993,7 @@ } }, "requirements": null, - "tag": "1.0.7", + "tag": "1.0.4", "website": null, "authors": [ { @@ -952,7 +1016,7 @@ ], "extra_links": {} }, - "1.0.6": { + "1.0.3": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -962,7 +1026,6 @@ "Binds": [ "/usr/blueos/userdata:/home/workspace/userdata:rw", "/usr/blueos/openvscode:/openvscode:rw", - "/etc/hostname:/etc/hostname:ro", "/:/home/workspace/host:rw" ], "PortBindings": { @@ -975,7 +1038,7 @@ } }, "requirements": null, - "tag": "1.0.6", + "tag": "1.0.3", "website": null, "authors": [ { @@ -998,7 +1061,7 @@ ], "extra_links": {} }, - "1.0.5": { + "1.0.2": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -1008,7 +1071,6 @@ "Binds": [ "/usr/blueos/userdata:/home/workspace/userdata:rw", "/usr/blueos/openvscode:/openvscode:rw", - "/etc/hostname:/etc/hostname:ro", "/:/home/workspace/host:rw" ], "PortBindings": { @@ -1021,7 +1083,7 @@ } }, "requirements": null, - "tag": "1.0.5", + "tag": "1.0.2", "website": null, "authors": [ { @@ -1044,7 +1106,7 @@ ], "extra_links": {} }, - "1.0.4": { + "1.0.1": { "permissions": { "ExposedPorts": { "80/tcp": {} @@ -1066,7 +1128,7 @@ } }, "requirements": null, - "tag": "1.0.4", + "tag": "1.0.1", "website": null, "authors": [ { @@ -1089,18 +1151,12 @@ ], "extra_links": {} }, - "1.0.3": { + "1.0.0": { "permissions": { "ExposedPorts": { "80/tcp": {} }, "HostConfig": { - "Privileged": true, - "Binds": [ - "/usr/blueos/userdata:/home/workspace/userdata:rw", - "/usr/blueos/openvscode:/openvscode:rw", - "/:/home/workspace/host:rw" - ], "PortBindings": { "80/tcp": [ { @@ -1111,7 +1167,7 @@ } }, "requirements": null, - "tag": "1.0.3", + "tag": "1.0.0", "website": null, "authors": [ { @@ -1133,805 +1189,633 @@ "rust" ], "extra_links": {} - }, - "1.0.2": { + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/openvscode/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/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": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, "HostConfig": { - "Privileged": true, + "NetworkMode": "host", "Binds": [ - "/usr/blueos/userdata:/home/workspace/userdata:rw", - "/usr/blueos/openvscode:/openvscode:rw", - "/:/home/workspace/host:rw" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "/usr/blueos/userdata/SonarView:/userdata" + ] } }, "requirements": null, - "tag": "1.0.2", - "website": null, + "tag": "1.8.9", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrickelectric@gmail.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS Code Server\n\nBlueOS extension for OpenVSCode Server.\n\nOpenVSCode server is a project where it provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", - "company": null, - "support": null, - "type": "other", - "filter_tags": [ - "code", - "development", - "ide", - "vscode", - "python", - "rust" - ], + "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", + "filter_tags": [], "extra_links": {} }, - "1.0.1": { + "1.8.8": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, "HostConfig": { - "Privileged": true, + "NetworkMode": "host", "Binds": [ - "/usr/blueos/userdata:/home/workspace/userdata:rw", - "/usr/blueos/openvscode:/openvscode:rw", - "/:/home/workspace/host:rw" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "/usr/blueos/userdata/SonarView:/userdata" + ] } }, "requirements": null, - "tag": "1.0.1", - "website": null, + "tag": "1.8.8", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrickelectric@gmail.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS Code Server\n\nBlueOS extension for OpenVSCode Server.\n\nOpenVSCode server is a project where it provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", - "company": null, - "support": null, - "type": "other", - "filter_tags": [ - "code", - "development", - "ide", - "vscode", - "python", - "rust" - ], + "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", + "filter_tags": [], "extra_links": {} }, - "1.0.0": { + "1.8.7": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, "HostConfig": { - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "NetworkMode": "host", + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] } }, "requirements": null, - "tag": "1.0.0", - "website": null, + "tag": "1.8.7", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrickelectric@gmail.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS Code Server\n\nBlueOS extension for OpenVSCode Server.\n\nOpenVSCode server is a project where it provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.", - "company": null, - "support": null, - "type": "other", - "filter_tags": [ - "code", - "development", - "ide", - "vscode", - "python", - "rust" + "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", + "filter_tags": [], + "extra_links": {} + }, + "1.8.6": { + "permissions": { + "HostConfig": { + "NetworkMode": "host", + "Binds": [ + "/usr/blueos/userdata/SonarView:/userdata" + ] + } + }, + "requirements": null, + "tag": "1.8.6", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" + } ], + "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", + "filter_tags": [], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/openvscode/extension_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/company_logo.png" - }, - { - "identifier": "patrickelectric.node-red", - "name": "Node-RED", - "description": "Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", - "docker": "patrickelectric/blueos-node-red", - "website": "https://github.com/patrickelectric/blueos-node-red", - "versions": { - "1.0.2": { + }, + "1.8.4": { "permissions": { "ExposedPorts": { - "80/tcp": {} + "7077/tcp": {} }, "HostConfig": { - "Privileged": true, "Binds": [ - "/usr/blueos/userdata/node-red:/data:rw", - "/etc/hostname:/etc/hostname:ro", - "/dev:/dev:rw", - "/:/home/workspace/host:rw" + "/usr/blueos/userdata/SonarView:/userdata" ], "PortBindings": { - "80/tcp": [ + "7077/tcp": [ { - "HostPort": "" + "HostPort": "7077" } ] } } }, "requirements": null, - "tag": "1.0.2", - "website": null, + "tag": "1.8.4", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrickelectric@gmail.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS node-red\n\nNode-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n\nIt provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", + "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": null, - "type": "other", - "filter_tags": [ - "code", - "development", - "ide", - "node-red" - ], + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", + "filter_tags": [], "extra_links": {} }, - "1.0.1": { + "v1.8.3": { "permissions": { "ExposedPorts": { - "80/tcp": {} + "7077/tcp": {} }, "HostConfig": { - "Privileged": true, "Binds": [ - "/usr/blueos/userdata/node-red:/data:rw", - "/etc/hostname:/etc/hostname:ro", - "/dev:/dev:rw", - "/:/home/workspace/host:rw" + "/usr/blueos/userdata/SonarView:/userdata" ], "PortBindings": { - "80/tcp": [ + "7077/tcp": [ { - "HostPort": "" + "HostPort": "7077" } ] } } }, "requirements": null, - "tag": "1.0.1", - "website": null, + "tag": "v1.8.3", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrickelectric@gmail.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS node-red\n\nNode-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n\nIt provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", + "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": null, - "type": "other", - "filter_tags": [ - "code", - "development", - "ide", - "node-red" - ], + "support": "https://forum.ceruleansonar.com/categories", + "type": "device-integration", + "filter_tags": [], "extra_links": {} }, - "1.0.0": { + "v1.8.0": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, + "NetworkMode": "host", "HostConfig": { - "Privileged": true, "Binds": [ - "/usr/blueos/userdata/node-red:/data:rw", - "/etc/hostname:/etc/hostname:ro", - "/dev:/dev:rw", - "/:/home/workspace/host:rw" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "/usr/blueos/userdata/SonarView:/userdata" + ] } }, "requirements": null, - "tag": "1.0.0", - "website": null, + "tag": "v1.8.0", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Patrick Jos\u00e9 Pereira", - "email": "patrickelectric@gmail.com" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "# BlueOS node-red\n\nNode-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n\nIt provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", + "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": null, + "support": "https://forum.ceruleansonar.com/categories", "type": "other", - "filter_tags": [ - "code", - "development", - "ide", - "node-red" - ], + "filter_tags": [], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/node-red/extension_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/patrickelectric/company_logo.png" - }, - { - "identifier": "jmrobotics.jm-connect", - "name": "JM Connect", - "description": "JM Connect Extension for BlueOS", - "docker": "maphstra/jm-connect-blueos", - "website": "https://www.jmrobotics.no", - "versions": { - "0.0.7": { + }, + "v1.7.0": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "I2CBUS=6", - "ROV_ID=" - ], - "ExposedPorts": { - "1337/tcp": {}, - "8137/tcp": {}, - "1338/tcp": {} - }, - "NetworkMode": "host", - "HostConfig": { - "Privileged": true, - "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "1337/tcp": [ - { - "HostPort": "1337" - } - ], - "8137/tcp": [ - { - "HostPort": "8137" - } - ], - "1338/tcp": [ - { - "HostPort": "1338" - } - ] - } - } + "NetworkMode": "host" }, - "requirements": "core >= 1", - "tag": "0.0.7", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.7.0", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.6": { + "v1.6.0": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "I2CBUS=6", - "ROV_ID=" - ], - "ExposedPorts": { - "1337/tcp": {}, - "8137/tcp": {}, - "1338/tcp": {} - }, - "NetworkMode": "host", - "HostConfig": { - "Privileged": true, - "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "1337/tcp": [ - { - "HostPort": "1337" - } - ], - "8137/tcp": [ - { - "HostPort": "8137" - } - ], - "1338/tcp": [ - { - "HostPort": "1338" - } - ] - } - } + "NetworkMode": "host" }, - "requirements": "core >= 1", - "tag": "0.0.6", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.6.0", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.5": { + "v1.5.6": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "I2CBUS=6", - "ROV_ID=" - ], - "ExposedPorts": { - "1337/tcp": {}, - "8137/tcp": {}, - "1338/tcp": {} - }, - "NetworkMode": "host", - "HostConfig": { - "Privileged": true, - "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "1337/tcp": [ - { - "HostPort": "1337" - } - ], - "8137/tcp": [ - { - "HostPort": "8137" - } - ], - "1338/tcp": [ - { - "HostPort": "1338" - } - ] - } - } + "NetworkMode": "host" }, - "requirements": "core >= 1", - "tag": "0.0.5", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.5.6", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "readme": "# SonarView\n\n[Get the latest release here](https://github.com/CeruleanSonar/SonarView/releases/latest)\n", "company": { - "name": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.4": { + "v1.5.3": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": null, + "tag": "v1.5.3", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" + } + ], + "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", + "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" + }, + { + "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": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "I2CBUS=6", - "ROV_ID=" - ], - "ExposedPorts": { - "1337/tcp": {}, - "8137/tcp": {}, - "1338/tcp": {} - }, - "NetworkMode": "host", "HostConfig": { - "Privileged": true, + "NetworkMode": "host", "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "1337/tcp": [ - { - "HostPort": "1337" - } - ], - "8137/tcp": [ - { - "HostPort": "8137" - } - ], - "1338/tcp": [ - { - "HostPort": "1338" - } - ] - } + "/root/.config/cerulean:/root/.config" + ] } }, - "requirements": "core >= 1", - "tag": "0.0.4", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.0.8", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "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": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.3": { + "v1.0.7": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "ROV_ID=" - ], - "ExposedPorts": { - "1337/tcp": {}, - "8137/tcp": {}, - "1338/tcp": {} - }, - "NetworkMode": "host", "HostConfig": { - "Privileged": true, - "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "1337/tcp": [ - { - "HostPort": "1337" - } - ], - "8137/tcp": [ - { - "HostPort": "8137" - } - ], - "1338/tcp": [ - { - "HostPort": "1338" - } - ] - } + "NetworkMode": "host", + "Binds": [ + "/root/.config/cerulean:/root/.config" + ] } }, - "requirements": "core >= 1", - "tag": "0.0.3", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.0.7", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "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": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.2": { + "v1.0.6": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "ROV_ID=" - ], - "ExposedPorts": { - "1337/tcp": {}, - "1338/tcp": {} - }, "NetworkMode": "host", "HostConfig": { - "Privileged": true, "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "1337/tcp": [ - { - "HostPort": "1337" - } - ], - "1338/tcp": [ - { - "HostPort": "1338" - } - ] - } + "/root/.config/cerulean:/root/.config" + ] } }, - "requirements": "core >= 1", - "tag": "0.0.2", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.0.6", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "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": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} }, - "0.0.1": { + "v1.0.5": { "permissions": { - "Env": [ - "SERVER_URL=https://software.jmrobotics.no/server/", - "ROV_ID=" - ], "NetworkMode": "host", "HostConfig": { "Binds": [ - "/root/.config/jm:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" + "/root/.config/blueos:/root/.config" ] } }, - "requirements": "core >= 1", - "tag": "0.0.1", - "website": "https://www.jmrobotics.no", + "requirements": null, + "tag": "v1.0.5", + "website": "https://ceruleansonar.com", "authors": [ { - "name": "Mads Peter Hammer Strand", - "email": "mads@jmrobotics.no" + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.com" } ], "docs": null, - "readme": "bad response type for readme: text/html, expected text/plain", + "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": "JM Robotics", + "name": "Cerulean Sonar", "about": "", - "email": "support@jmrobotics.no" + "email": "dennys.bisogno@ceruleansonar.com" }, - "support": "https://www.jmrobotics.no", + "support": "https://forum.ceruleansonar.com/categories", "type": "other", "filter_tags": [], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/jmrobotics/company_logo.png", - "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/jmrobotics/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.1": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": null, + "tag": "v1.0.1", + "website": "https://ceruleansonar.com", + "authors": [ + { + "name": "Nick Nothom", + "email": "nick.nothom@ceruleansonar.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", + "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/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": { + "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": { "permissions": { - "NetworkMode": "host", + "ExposedPorts": { + "80/tcp": {} + }, "HostConfig": { - "Privileged": true + "PortBindings": { + "80/tcp": [ + { + "HostPort": "" + } + ] + } } }, - "requirements": "core >= 1", + "requirements": "core > 1", "tag": "v1.0.0", - "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\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 Docs\n\nHosts a mirror of the [Cerulean Docs](https://docs.ceruleaonsonar.com) on the ROV so they can be viewed offline. ", "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.example3", - "name": "Example 3", - "description": "Basic Vuetify example", - "docker": "williangalvani/blueos-example3", + "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": { @@ -1959,7 +1843,7 @@ } ], "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": "# 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": "", @@ -1995,7 +1879,7 @@ } ], "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": "# 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": "", @@ -2011,19 +1895,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.example3", + "name": "Example 3", + "description": "Basic Vuetify example", + "docker": "williangalvani/blueos-example3", + "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", @@ -2031,26 +1926,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 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": "", "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", @@ -2058,13 +1962,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 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": "", "email": "support@bluerobotics.com" }, - "support": "https://github.com/Williangalvani/BlueOS-UsbIp", + "support": "https://github.com/Williangalvani/BlueOS-examples/", "type": "other", "filter_tags": [], "extra_links": {} @@ -2074,10 +1978,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.example4", + "name": "Example 4", + "description": "Vuetify + Persistent backend", + "docker": "williangalvani/blueos-example4", "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { @@ -2086,6 +1990,9 @@ "80/tcp": {} }, "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], "PortBindings": { "80/tcp": [ { @@ -2105,7 +2012,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. 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": "", @@ -2122,6 +2029,9 @@ "80/tcp": {} }, "HostConfig": { + "Binds": [ + "/root/.config:/root/.config" + ], "PortBindings": { "80/tcp": [ { @@ -2141,7 +2051,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. 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": "", @@ -2157,10 +2067,46 @@ "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", + "identifier": "williangalvani.webrtc", + "name": "WebRTC Experiments", + "description": "Janus Gateway experiments", + "docker": "williangalvani/companion-webrtc", + "website": "https://github.com/Williangalvani/blueos-webrtc", + "versions": { + "v1.0.0": { + "permissions": { + "NetworkMode": "host" + }, + "requirements": "core >= 1", + "tag": "v1.0.0", + "website": "https://github.com/Williangalvani/blueos-webrtc", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "This exposes an webrtc stream for your browser.\n\nYou need to send an UDP h264 stream to localhost:8004", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/blueos-webrtc/issues", + "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.example5", + "name": "Example 5", + "description": "GPIO PWM Control", + "docker": "williangalvani/blueos-example5", "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { @@ -2169,6 +2115,10 @@ "80/tcp": {} }, "HostConfig": { + "Privileged": true, + "Binds": [ + "/root/.config:/root/.config" + ], "PortBindings": { "80/tcp": [ { @@ -2188,7 +2138,7 @@ } ], "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": "# 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": "Blue Robotics", "about": "", @@ -2196,7 +2146,9 @@ }, "support": "https://github.com/Williangalvani/BlueOS-examples/", "type": "example", - "filter_tags": [], + "filter_tags": [ + "interaction" + ], "extra_links": {} }, "v1.0.0": { @@ -2205,6 +2157,10 @@ "80/tcp": {} }, "HostConfig": { + "Privileged": true, + "Binds": [ + "/root/.config:/root/.config" + ], "PortBindings": { "80/tcp": [ { @@ -2214,7 +2170,7 @@ } } }, - "requirements": "core > 1", + "requirements": "core >= 1", "tag": "v1.0.0", "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ @@ -2224,7 +2180,7 @@ } ], "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": "# 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": "Blue Robotics", "about": "", @@ -2323,44 +2279,147 @@ } ], "docs": null, - "readme": "This is a ZeroTier extension. It sets up a VPN to access your device from anywhere with an internet connection.\nFor more information on ZeroTier, check [ZeroTier](https://www.zerotier.com/).", + "readme": "This is a ZeroTier extension. It sets up a VPN to access your device from anywhere with an internet connection.\nFor more information on ZeroTier, check [ZeroTier](https://www.zerotier.com/).", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/Williangalvani/zerotierone/issues", + "type": "other", + "filter_tags": [ + "communication" + ], + "extra_links": {} + }, + "v1.0.0": { + "permissions": { + "NetworkMode": "host", + "HostConfig": { + "Privileged": true, + "NetworkMode": "host", + "CapAdd": [ + "SYS_ADMIN", + "NET_ADMIN" + ], + "Binds": [ + "/var/lib/zerotier-one:/var/lib/zerotier-one" + ], + "Devices": [ + { + "PathOnHost": "/dev/net/tun", + "PathInContainer": "/dev/net/tun", + "CgroupPermissions": "rwm" + } + ] + } + }, + "requirements": "core >= 1", + "tag": "v1.0.0", + "website": "https://github.com/williangalvani/zerotierone", + "authors": [ + { + "name": "Willian Galvani", + "email": "willian@bluerobotics.com" + } + ], + "docs": null, + "readme": "This is a ZeroTier extension. It sets up a VPN to access your device from anywhere with an internet connection.\nFor more information on ZeroTier, check [ZeroTier](https://www.zerotier.com/).", + "company": { + "name": "Blue Robotics", + "about": "", + "email": "support@bluerobotics.com" + }, + "support": "https://github.com/williangalvani/zerotierone", + "type": "other", + "filter_tags": [], + "extra_links": {} + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/zerotier/extension_logo.png", + "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", + "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/zerotierone/issues", + "support": "https://github.com/Williangalvani/BlueOS-UsbIp", "type": "other", - "filter_tags": [ - "communication" - ], + "filter_tags": [], "extra_links": {} - }, - "v1.0.0": { + } + }, + "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": { "permissions": { "NetworkMode": "host", "HostConfig": { "Privileged": true, - "NetworkMode": "host", - "CapAdd": [ - "SYS_ADMIN", - "NET_ADMIN" - ], - "Binds": [ - "/var/lib/zerotier-one:/var/lib/zerotier-one" - ], - "Devices": [ - { - "PathOnHost": "/dev/net/tun", - "PathInContainer": "/dev/net/tun", - "CgroupPermissions": "rwm" - } - ] + "NetworkMode": "host" } }, - "requirements": "core >= 1", - "tag": "v1.0.0", - "website": "https://github.com/williangalvani/zerotierone", + "requirements": "core >= 1.1", + "tag": "v1.0.3", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", "authors": [ { "name": "Willian Galvani", @@ -2368,50 +2427,30 @@ } ], "docs": null, - "readme": "This is a ZeroTier extension. It sets up a VPN to access your device from anywhere with an internet connection.\nFor more information on ZeroTier, check [ZeroTier](https://www.zerotier.com/).", + "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/zerotierone", + "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", "type": "other", - "filter_tags": [], + "filter_tags": [ + "communication" + ], "extra_links": {} - } - }, - "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/zerotier/extension_logo.png", - "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", - "website": "https://github.com/Williangalvani/BlueOS-examples/", - "versions": { - "v1.0.1": { + }, + "v1.0.2": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, + "NetworkMode": "host", "HostConfig": { "Privileged": true, - "Binds": [ - "/root/.config:/root/.config" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "NetworkMode": "host" } }, - "requirements": "core >= 1.1", - "tag": "v1.0.1", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "requirements": "core >= 1", + "tag": "v1.0.2", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", "authors": [ { "name": "Willian Galvani", @@ -2419,41 +2458,27 @@ } ], "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": "# 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-examples/", - "type": "example", - "filter_tags": [ - "interaction" - ], + "support": "https://github.com/Williangalvani/BlueOS-VirtualHere/issues", + "type": "other", + "filter_tags": [], "extra_links": {} }, "v1.0.0": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, + "NetworkMode": "host", "HostConfig": { - "Privileged": true, - "Binds": [ - "/root/.config:/root/.config" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + "Privileged": true } }, "requirements": "core >= 1", "tag": "v1.0.0", - "website": "https://github.com/Williangalvani/BlueOS-examples/", + "website": "https://github.com/Williangalvani/BlueOS-VirtualHere", "authors": [ { "name": "Willian Galvani", @@ -2461,26 +2486,26 @@ } ], "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": "# 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-examples/", + "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/company_logo.png", + "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.example4", - "name": "Example 4", - "description": "Vuetify + Persistent backend", - "docker": "williangalvani/blueos-example4", + "identifier": "williangalvani.example1", + "name": "Example 1", + "description": "Hello World", + "docker": "williangalvani/blueos-example1", "website": "https://github.com/Williangalvani/BlueOS-examples/", "versions": { "v1.0.1": { @@ -2489,9 +2514,6 @@ "80/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], "PortBindings": { "80/tcp": [ { @@ -2511,7 +2533,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": "", @@ -2528,9 +2550,6 @@ "80/tcp": {} }, "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], "PortBindings": { "80/tcp": [ { @@ -2540,7 +2559,7 @@ } } }, - "requirements": "core >= 1", + "requirements": "core > 1", "tag": "v1.0.0", "website": "https://github.com/Williangalvani/BlueOS-examples/", "authors": [ @@ -2550,7 +2569,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": "", @@ -2566,459 +2585,496 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/williangalvani/company_logo.png" }, { - "identifier": "williangalvani.webrtc", - "name": "WebRTC Experiments", - "description": "Janus Gateway experiments", - "docker": "williangalvani/companion-webrtc", - "website": "https://github.com/Williangalvani/blueos-webrtc", + "identifier": "jmrobotics.jm-connect", + "name": "JM Connect", + "description": "JM Connect Extension for BlueOS", + "docker": "maphstra/jm-connect-blueos", + "website": "https://www.jmrobotics.no", "versions": { - "v1.0.0": { + "0.0.7": { "permissions": { - "NetworkMode": "host" + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "I2CBUS=6", + "ROV_ID=" + ], + "ExposedPorts": { + "1337/tcp": {}, + "8137/tcp": {}, + "1338/tcp": {} + }, + "NetworkMode": "host", + "HostConfig": { + "Privileged": true, + "Binds": [ + "/root/.config/jm:/root/.config" + ], + "ExtraHosts": [ + "host.docker.internal:host-gateway" + ], + "PortBindings": { + "1337/tcp": [ + { + "HostPort": "1337" + } + ], + "8137/tcp": [ + { + "HostPort": "8137" + } + ], + "1338/tcp": [ + { + "HostPort": "1338" + } + ] + } + } }, "requirements": "core >= 1", - "tag": "v1.0.0", - "website": "https://github.com/Williangalvani/blueos-webrtc", + "tag": "0.0.7", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "docs": null, - "readme": "This exposes an webrtc stream for your browser.\n\nYou need to send an UDP h264 stream to localhost:8004", + "readme": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Blue Robotics", + "name": "JM Robotics", "about": "", - "email": "support@bluerobotics.com" + "email": "support@jmrobotics.no" }, - "support": "https://github.com/Williangalvani/blueos-webrtc/issues", + "support": "https://www.jmrobotics.no", "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": "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": { - "1.2.0": { + }, + "0.0.6": { "permissions": { + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "I2CBUS=6", + "ROV_ID=" + ], "ExposedPorts": { - "80/tcp": {} + "1337/tcp": {}, + "8137/tcp": {}, + "1338/tcp": {} }, + "NetworkMode": "host", "HostConfig": { + "Privileged": true, "Binds": [ - "/root/.config:/root/.config" + "/root/.config/jm:/root/.config" ], "ExtraHosts": [ "host.docker.internal:host-gateway" ], "PortBindings": { - "80/tcp": [ + "1337/tcp": [ { - "HostPort": "" + "HostPort": "1337" + } + ], + "8137/tcp": [ + { + "HostPort": "8137" + } + ], + "1338/tcp": [ + { + "HostPort": "1338" } ] } - } - }, - "requirements": null, - "tag": "1.2.0", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + } + }, + "requirements": "core >= 1", + "tag": "0.0.6", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "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": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Nortek", + "name": "JM Robotics", "about": "", - "email": "" + "email": "support@jmrobotics.no" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" - ], + "support": "https://www.jmrobotics.no", + "type": "other", + "filter_tags": [], "extra_links": {} }, - "1.1.0": { + "0.0.5": { "permissions": { + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "I2CBUS=6", + "ROV_ID=" + ], "ExposedPorts": { - "80/tcp": {} + "1337/tcp": {}, + "8137/tcp": {}, + "1338/tcp": {} }, + "NetworkMode": "host", "HostConfig": { + "Privileged": true, "Binds": [ - "/root/.config:/root/.config" + "/root/.config/jm:/root/.config" ], "ExtraHosts": [ "host.docker.internal:host-gateway" ], "PortBindings": { - "80/tcp": [ + "1337/tcp": [ { - "HostPort": "" + "HostPort": "1337" + } + ], + "8137/tcp": [ + { + "HostPort": "8137" + } + ], + "1338/tcp": [ + { + "HostPort": "1338" } ] } } }, - "requirements": null, - "tag": "1.1.0", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "0.0.5", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "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": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Nortek", + "name": "JM Robotics", "about": "", - "email": "" + "email": "support@jmrobotics.no" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" - ], + "support": "https://www.jmrobotics.no", + "type": "other", + "filter_tags": [], "extra_links": {} }, - "1.0.4": { + "0.0.4": { "permissions": { + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "I2CBUS=6", + "ROV_ID=" + ], "ExposedPorts": { - "80/tcp": {} + "1337/tcp": {}, + "8137/tcp": {}, + "1338/tcp": {} }, + "NetworkMode": "host", "HostConfig": { + "Privileged": true, "Binds": [ - "/root/.config:/root/.config" + "/root/.config/jm:/root/.config" ], "ExtraHosts": [ "host.docker.internal:host-gateway" ], "PortBindings": { - "80/tcp": [ + "1337/tcp": [ { - "HostPort": "" + "HostPort": "1337" + } + ], + "8137/tcp": [ + { + "HostPort": "8137" + } + ], + "1338/tcp": [ + { + "HostPort": "1338" } ] } } }, - "requirements": null, - "tag": "1.0.4", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "0.0.4", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "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": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Nortek", + "name": "JM Robotics", "about": "", - "email": "" + "email": "support@jmrobotics.no" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" - ], + "support": "https://www.jmrobotics.no", + "type": "other", + "filter_tags": [], "extra_links": {} }, - "1.0.2": { + "0.0.3": { "permissions": { + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "ROV_ID=" + ], "ExposedPorts": { - "80/tcp": {} + "1337/tcp": {}, + "8137/tcp": {}, + "1338/tcp": {} }, + "NetworkMode": "host", "HostConfig": { + "Privileged": true, "Binds": [ - "/root/.config:/root/.config" + "/root/.config/jm:/root/.config" ], "ExtraHosts": [ "host.docker.internal:host-gateway" ], "PortBindings": { - "80/tcp": [ + "1337/tcp": [ { - "HostPort": "" + "HostPort": "1337" + } + ], + "8137/tcp": [ + { + "HostPort": "8137" + } + ], + "1338/tcp": [ + { + "HostPort": "1338" } ] } } }, - "requirements": null, - "tag": "1.0.2", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "0.0.3", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "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": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Nortek", + "name": "JM Robotics", "about": "", - "email": "" + "email": "support@jmrobotics.no" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" - ], + "support": "https://www.jmrobotics.no", + "type": "other", + "filter_tags": [], "extra_links": {} }, - "1.0.1": { + "0.0.2": { "permissions": { + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "ROV_ID=" + ], "ExposedPorts": { - "80/tcp": {} + "1337/tcp": {}, + "1338/tcp": {} }, + "NetworkMode": "host", "HostConfig": { + "Privileged": true, "Binds": [ - "/root/.config:/root/.config" + "/root/.config/jm:/root/.config" ], "ExtraHosts": [ "host.docker.internal:host-gateway" ], "PortBindings": { - "80/tcp": [ + "1337/tcp": [ { - "HostPort": "" + "HostPort": "1337" + } + ], + "1338/tcp": [ + { + "HostPort": "1338" } ] } } }, - "requirements": null, - "tag": "1.0.1", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "0.0.2", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "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": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Nortek", + "name": "JM Robotics", "about": "", - "email": "" + "email": "support@jmrobotics.no" }, - "support": "https://support.nortekgroup.com/", - "type": "device-integration", - "filter_tags": [ - "positioning", - "navigation", - "doppler-velocity-log", - "water-tracking", - "current-profiling" - ], + "support": "https://www.jmrobotics.no", + "type": "other", + "filter_tags": [], "extra_links": {} }, - "1.0.0": { + "0.0.1": { "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, + "Env": [ + "SERVER_URL=https://software.jmrobotics.no/server/", + "ROV_ID=" + ], + "NetworkMode": "host", "HostConfig": { "Binds": [ - "/root/.config:/root/.config" + "/root/.config/jm:/root/.config" ], "ExtraHosts": [ "host.docker.internal:host-gateway" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } + ] } }, - "requirements": null, - "tag": "1.0.0", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core >= 1", + "tag": "0.0.1", + "website": "https://www.jmrobotics.no", "authors": [ { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" + "name": "Mads Peter Hammer Strand", + "email": "mads@jmrobotics.no" } ], "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": "bad response type for readme: text/html, expected text/plain", "company": { - "name": "Nortek", + "name": "JM Robotics", "about": "", - "email": "" + "email": "support@jmrobotics.no" }, - "support": "https://support.nortekgroup.com/", + "support": "https://www.jmrobotics.no", "type": "other", "filter_tags": [], "extra_links": {} - }, - "0.0.8": { + } + }, + "extension_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/jmrobotics/company_logo.png", + "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/", + "versions": { + "v1.0.2": { "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": "0.0.8", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core > 1", + "tag": "v1.0.2", + "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.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": "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.7": { + "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": "0.0.7", - "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.6": { + "v1.0.0": { "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": "0.0.6", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", + "requirements": "core > 1", + "tag": "v1.0.0", + "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\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": {} } }, - "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" + "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", @@ -4040,19 +4096,25 @@ "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/bluerobotics/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": "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.2": { + "v1.0.6": { "permissions": { - "NetworkMode": "host" + "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", - "tag": "v1.0.2", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "requirements": "core >= 1.1", + "tag": "v1.0.6", + "website": "https://github.com/waterlinked/blueos-ugps-extension", "authors": [ { "name": "Willian Galvani", @@ -4060,49 +4122,33 @@ } ], "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": "# 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": "Blue Robotics", + "name": "Water Linked", "about": "", - "email": "support@bluerobotics.com" - }, - "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", - "type": "other", - "filter_tags": [], - "extra_links": {} - }, - "v1.0.1": { - "permissions": { - "NetworkMode": "host" + "email": "support@waterlinked.com" }, - "requirements": "core > 1", - "tag": "v1.0.1", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", - "authors": [ - { - "name": "Willian Galvani", - "email": "willian@bluerobotics.com" - } + "support": "https://github.com/waterlinked/blueos-ugps-extension/issues", + "type": "device-integration", + "filter_tags": [ + "positioning", + "navigation", + "short-baseline" ], - "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", - "company": { - "name": "Blue Robotics", - "about": "", - "email": "support@bluerobotics.com" - }, - "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", - "type": "other", - "filter_tags": [], "extra_links": {} }, - "v1.0.0": { + "v1.0.4": { "permissions": { - "NetworkMode": "host" + "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.0", - "website": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "requirements": "core >= 1", + "tag": "v1.0.4", + "website": "https://github.com/waterlinked/blueos-ugps-extension", "authors": [ { "name": "Willian Galvani", @@ -4110,19 +4156,19 @@ } ], "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": "# 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", + "name": "Blue Robotics / Water Linked", "about": "", - "email": "support@bluerobotics.com" + "email": "support@bluerobotics.com / support@waterlinked.com" }, - "support": "https://github.com/bluerobotics/BlueOS-Water-Linked-DVL", + "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/bluerobotics/water-linked-dvl/extension_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/waterlinked/ugps/extension_logo.png", + "company_logo": "https://raw.githubusercontent.com/bluerobotics/BlueOS-Extensions-Repository/master/repos/waterlinked/company_logo.png" } ] \ No newline at end of file