54 heron_msgs::Drive cmd_output;
55 double fx = output.force.x;
56 double tauz = output.torque.z;
61 tauz = std::min(tauz, max_tauz);
62 tauz = std::max(tauz, -max_tauz);
73 fx = std::min(max_fx,fx);
77 fx = std::max(max_fx,fx);
83 fx = std::min(max_fx,fx);
87 fx = std::max(max_fx,fx);
91 left_thrust += fx/2.0;
92 right_thrust += fx/2.0;
107 geometry_msgs::Wrench effective_output;
108 effective_output.force.x = left_thrust + right_thrust;
109 effective_output.torque.z = (right_thrust - left_thrust)*
BOAT_WIDTH;
void pub_thrust_cmd(geometry_msgs::Wrench output)
void publish(const boost::shared_ptr< M > &message) const
double saturate_thrusters(double thrust)
double calculate_motor_setting(double thrust)
void pub_effective_wrench(double left_thrust, double right_thrust)
ForceCompensator(ros::NodeHandle &n)
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)