Skip to content

Conversation

@rgov
Copy link
Member

@rgov rgov commented Jun 18, 2025

  1. Remove the instant_replay_node. The idea here was that it would buffer a few seconds of frames from the RTSP feed and then if we hit an error, it would write the buffer to the bag file. It hasn't been used in years and there might be better ways to handle video now.

  2. Replace image_transport_node with a standard ROS image_transport republish node.

    The IFCB node publishes CompressedImage messages to /ifcb/roi/image. This is a violation of the ROS image_transport pattern which would have us publish to /ifcb/roi/image/compressed and then we could use a standard republish node to decompress it for the Triton node:

     rosrun image_transport republish compressed in:=/ifcb/roi/image raw out:=/ifcb/roi/image
    

    If we need to beat it into submission we can use topic remapping to get what we want.

    This wouldn't affect our bag files because we already exclude /ifcb/roi/.* in rosbag.lauch.

Am I missing anything?

@rgov rgov requested a review from figuernd June 18, 2025 03:06
@rgov
Copy link
Member Author

rgov commented Jun 18, 2025

I think rbr_relay.sh can go; it shouldn't be at the root of the repository, and rbr_relay.service doesn't even use it.

When the RBR is attached to the same host running ROS, we should use the ctd_comms node for this:

        <node name="ctd_comms" pkg="ds_util_nodes" type="bridge_node" />

If we're redirecting traffic from some other host then we can use socat though it seems like this trick is not specific to the RBR and we might want to put it somewhere else (scripts/?)

@rgov
Copy link
Member Author

rgov commented Jun 18, 2025

Oh hey I had a bug for this! I was so clever back then. Fixes #28

@mbrosnahan
Copy link
Collaborator

mbrosnahan commented Jun 18, 2025 via email

@rgov
Copy link
Member Author

rgov commented Jun 18, 2025

Is instant_replay_node broken? While we haven’t used it in a while, it can be very very helpful. I was actually wondering if we had it configured on SeaTrac today after boat hung up on a lobster pot.

I am not sure the last time it was used – perhaps as far back as 2020. Because an error now brings down all nodes, I don't believe it currently works. If we wanted to bring back the functionality, we should look into using gstreamer or similar to properly capture video; this node takes way too much RAM.

@rgov
Copy link
Member Author

rgov commented Jun 25, 2025

@figuernd Any qualms about ditching mock_profiler_node.py? The profiler node is a "pure" node that doesn't interact with any external entities, so I believe it is sufficient to mock out the CTD and winch.

@figuernd
Copy link
Contributor

@figuernd Any qualms about ditching mock_profiler_node.py? The profiler node is a "pure" node that doesn't interact with any external entities, so I believe it is sufficient to mock out the CTD and winch.

Profile values are needing for simulating end-to-end arm_ifcb task behavior

@figuernd
Copy link
Contributor

I think rbr_relay.sh can go; it shouldn't be at the root of the repository, and rbr_relay.service doesn't even use it.

When the RBR is attached to the same host running ROS, we should use the ctd_comms node for this:

        <node name="ctd_comms" pkg="ds_util_nodes" type="bridge_node" />

If we're redirecting traffic from some other host then we can use socat though it seems like this trick is not specific to the RBR and we might want to put it somewhere else (scripts/?)

Right that script is purely for cases where an external host needs to proxy streams to the IFCB, though if using P-A on an RPi aboard ships where this happens becomes more popular then the need to proxy streams to the IFCB becomes less necessary. At any rate we're not really using the script as you say and it should be deleted, the systemd service with socat is sufficient.

Copy link
Contributor

@figuernd figuernd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to keep the mock profiler node for local testing purposes. We should probably preserve the relay systemd service somewhere as well until we're sure it won't be used in the field anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants