-
Notifications
You must be signed in to change notification settings - Fork 3
3.1 Propulsion
The propulsion package's role is to transform efforts, in the form of wrenches, into PWM signals (in microseconds) for each thruster on the AUV.
The propulsion package first arms the thrusters - which means that it makes them functional. It does this by sending high-low PWM signals (Pulse Width Modulation) in microseconds to each thruster. The PWMs directly control the motors of the individual thrusters. The package also handles transforming efforts into PWM signals. The efforts are received in the form of a wrench, which consists of a set of forces AND torques on the X,Y,Z axis. These are then mapped into the forces of each thruster using the following transformation matrix:
The rows of the matrix correspond to the force and torque on the three axis X,Y,Z. The dx and dy are distances between thrusters positioned on the chassis of the AUV. The columns correspond to the 8 thrusters on the AUV.
The forces of each thruster in Newtons are then converted into PWMs in microseconds using formulas included in the utilities. The formulas are obtained from the below curves - that map forces in KgF (9.806650 N) to microseconds - defined for the T200 thrusters from Blue Robotics. For more info on the specifications of the performance of the thrusters, visit Blue Robotics.
The propulsion package is not for direct use, it is used through publishing efforts on the 'effort' topic.
The only ROS node included in this package is "thrust_mapper", it is subscribed to the effort topic and publishes on the thruster_forces and thruster_microseconds.
There is only one launch file "propulsion.launch" in this package. It starts the thrust_mapper node.
- auv_msgs
- geometry_msgs
- python3-numpy
- roscpp
- rospy
- rosserial_arduino
- rosserial_client