thruster control
you will use the useTopic hook to interact with two topics:
cmd_wrench, command the entire sub
cmd_wrench has msg type geometry_msgs::msg::Wrench
This topic specifies a wrench for the entire sub. All of the thrusters will respond to this request and the thusters won't stop spinning unless you tell them to (see safety section at the end).
thruster_efforts
thruster_efforts has custom msg type ThrusterEfforts
This thruster commands each thruster individually and is much more safe to use.
safety concerns
cmd_wrench is unsafe
The sub re-applies the most recent cmd_wrench every 500ms. You MUST publish a zero-wrench to cmd_wrench to stop the thrusters, they won't stop automatically.
thruster_efforts is more safe
Sending individual thruster efforts is more safe so long as the most recent wrench was a zero-wrench. If cmd_wrench's last message was "stay still," any thrust request to thruster_efforts will eventually be stopped automatically.
what do we want
we want a way to command individual thrusters (thruster_efforts). The floats range from -1 to 1. Ideally we can command each thruster individually to make sure they are all working before putting the sub into the pool.
we also want a way to publish command wrenches, the most common command wrench we'd want to publish would be the 0 wrench.
thruster control
you will use the useTopic hook to interact with two topics:
cmd_wrench, command the entire sub
cmd_wrenchhas msg type geometry_msgs::msg::WrenchThis topic specifies a wrench for the entire sub. All of the thrusters will respond to this request and the thusters won't stop spinning unless you tell them to (see safety section at the end).
thruster_efforts
thruster_effortshas custom msg type ThrusterEffortsThis thruster commands each thruster individually and is much more safe to use.
safety concerns
cmd_wrenchis unsafeThe sub re-applies the most recent
cmd_wrenchevery 500ms. You MUST publish a zero-wrench to cmd_wrench to stop the thrusters, they won't stop automatically.thruster_effortsis more safeSending individual thruster efforts is more safe so long as the most recent wrench was a zero-wrench. If
cmd_wrench's last message was "stay still," any thrust request tothruster_effortswill eventually be stopped automatically.what do we want
we want a way to command individual thrusters (
thruster_efforts). The floats range from -1 to 1. Ideally we can command each thruster individually to make sure they are all working before putting the sub into the pool.we also want a way to publish command wrenches, the most common command wrench we'd want to publish would be the 0 wrench.