-
Notifications
You must be signed in to change notification settings - Fork 2
Feature: SeaTrac vehicle support #73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Some testing today on IFCB 193 with the SeaTrac ROS node (which lives in the WHOIGit/seatrac-api repo). Power level and outlet status information is flowing into ROS just fine. Outlet control messages also work. I worked on codifying some of the behaviors requested in Slack and in our June 3rd meeting.
PhilosophyThis Starlink control feature starts to blur the boundary between the application and the operating environment, and data offload brings a whole new dimension of functionality beyond simple data capture or the perception → action control loops we've had before. Hence, the architecture here tries to draw boundaries that are a little muddled and it could reasonably be argued that they should be different. PhytO-ARM, which is deployed in a container, does not know about the network configuration of the host. So I have chosen to put the Peplink interaction outside of the PhytO-ARM container, and hence ROS is not aware of what is going on. Therefore it does not know which network uplink is active, etc. Secondly, the rsync-based data offload occurs outside the container and is orchestrated by systemd, not PhytO-ARM. We support configurations where IFCBacquire and PhytO-ARM are running on separate hosts, so we cannot assume that the PhytO-ARM container has access to all data the system is producing. The status of offload is also not propagated to ROS; the container cannot see the status of the host's systemd services without building additional services. There is also no simple way to determine when rsync is "finished", because new data is being captured continuously. |
|
One request based on conversations within the operator group: The reason here is that watch changes typically occur at 9 am. Bringing SL up in anticipation of this shift change provides an opportunity to view latest IFCB data together and also assess sea state, panel fouling, etc. via cameras. Lastly, there's likely to be at least some sun at this time so relatively low battery depletion rate and ample time to charge back after operator shut down of SL. Re: rsync reliance |
|
We could put the seatrac include behind a launch param like |
|
Rebased onto #71 in order to resolve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds support for managing Starlink power via a new ROS node that interfaces with SeaTrac vehicles.
- Introduces
seatrac_starlink_manager.pyto automatically enable, nag, and schedule Starlink based on battery state of charge. - Updates package dependencies and launch configurations for SeaTrac integration.
- Adds configuration defaults and a rosinstall entry for
seatrac-api.
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/phyto_arm/src/seatrac_starlink_manager.py | New node for SOC-based outlet control, reminders, and daily scheduling |
| src/phyto_arm/package.xml | Added seatrac as an execution dependency |
| src/phyto_arm/launch/seatrac.launch | Launch file hooking up the new manager node |
| deps/deps.rosinstall | Added seatrac-api repository |
| configs/seatrac.yaml | Default parameters for SeaTrac comms and Starlink thresholds |
Comments suppressed due to low confidence (2)
src/phyto_arm/src/seatrac_starlink_manager.py:1
- [nitpick] This module lacks a top‐level docstring explaining its purpose, usage, and ROS topics. Adding one will improve readability and maintainability.
#!/usr/bin/env python3
src/phyto_arm/src/seatrac_starlink_manager.py:53
- There are no unit tests covering the power_level_cb logic or threshold transitions. Consider adding tests to verify automatic enabling and reset behavior.
def power_level_cb(msg: PowerLevel) -> None:
|
This is deployed as of 6/17 so once it's running without errors we can merge this and track further changes elsewhere. |
|
Some launch files need to be cleaned up.
|
This branch adds support for SeaTrac vehicles.
The core SeaTrac node and protocol implementation are in the seatrac-api project.