Table of Contents
Team Vision for Detailed Design Phase
The team’s goal for phase 4 is to finalize all of the MSD 1 deliverables and prepare for MSD 2. The first priority is to finish the detailed design of all of the subsystems. This shall include models and drawings for anything that will be custom built, and a bill of materials for anything the team will be purchasing. Next, test plans will be developed to have ready for MSD 2. This will include all of the major details of what components will be tested, what they will be tested for, and how. There will be an update of risk assessment, and lastly a project plan will be put together for MSD 2. Over the course of this phase, the team successfully completed all of the goals listed above. There are a couple small components that still need to be designed such as the servo mount and the electronics box rack but these components are very simple and should be easy to manufacture. These, along with a couple other things will be easier once we have all of our components in hand so that we can design around actual dimensions and features. Below is documentation for all of the team’s accomplishments during this phase.
Frame BracketsBrackets will be custom made from 3” angle stock aluminum. Some brackets will be standard T-brackets.
The trolling motor will be clamped to a wood block that will be bolted to the frame rail, as can be see below in to following picture:
The following analysis we conducted to validate that the motor mounting method would be sufficient:
The motor has a max thrust of 45lb at 36in for a max moment of 135 lb-ft of torque. Solving the equations above result in a factor of safety of to yielding 22.7 for the aluminum rail which is more than sufficient.
SteeringThe most critical part of choosing a steering servo is that it can provide enough torque to turn the motor under any conditions that it may need to withstand. In order to figure out a minimum torque the motor must provide, we first did some theoretical calculations, which can be seen below:
Using an alpha=60 deg/s^2, omega =10 deg/s, we can then solve for an estimated torque requirement of T=1.87 lb-ft.
Before we made a decision on which servo to purchase, we decided to pursue further methods of validation in order to make a more confident decision before spending money. In order to do this, the team came up with an test that could be run for this validation:
Due to his easy access to boats through the RIT Sailing team, Chad brough the trolling motor to a practice with him at Sodus Bay. There, the trolling motor was mounted to the back of the team’s “Crash boat”. A fishing scale was then attached to a 6in arm and used to measure the torque needed to turn the motor. The speed of the crash boat was varied throughout these tests, as well as the angular velocity and max angle of the motor. The max recorded force on the scale was 2.5lb, with a .5 lb uncertainty. Therefore, this results in a max required torque of 1 to 1.5 lb-ft, which is a very reasonable number.
This experiment was run without the trolling motor powered, and we expect the steering to require more torque while in this case. Therefore, will be adding a large factor of safety to the required torque of our servo we choose to account for this.
A linear actuator with potentiometer feedback has been chosen to steer the trolling motor. Using the linear actuator instead of the gear and sprocket originally considered allows a simpler mechanical design and less maintenance. The linear actuator will provide the necessary steering torque and has flexibility for torque adjustments.
With this actuator chosen, we wanted to validate that it could meet our turning speed requirements. Because of the geometry of the steering mechanism,the steering speed varies based on motor angle. The following calculations were used to calculate turning speeds, where the first equation is the lowest angular speed over the path of the actuator’s motion, and the second equation is the fastest angular speed over the path of the actuator’s motion.
At the max load of the actuator, the min and max angular speeds are 9.7 and 13.7 deg/s respectively. At no load, the min and max angular speeds are 11.5 and 16.2 deg/s respectively. The real load should be somewhere in between these two stated. Also, the vast majority of the steering will be done over small angles where the system will be closer to the max speeds. Regardless, the team set a minimum turning speed of 10 deg/s, and this is met in all of these cases.
Below is the geometry of the steering mechanism:
The following equation defines the length of the actuator (L) as a function as the angle of the motor, along with a plot of this curve.
This however needs to be inverted in order to get the angle as a function of length. Due to the complexity of the equation, it cannot be inverted analytically, and must be done numerically. To do this, 10,000 points of the function were plotted and inverted by switching the axis. Then a curve fit was run on these points. This plot and curve fit can be seen below. The function looks like it is cubic, but is also very linear, so both a cubic polynomial fit and linear fit were used to get angle as a function of L.
The resulting equations ar the following: Cubic: theta = 0.0591L^3 - 0.7104L^2 + 12.336L - 44.703 R=1
Linear: theta = 10.163L - 43.494 R=.9992
While the cubic curve fit is perfect, the linear curve fit is extremely close to the theoretical data. Because it will make calculations easier for the microcontroller, the small discrepancy is tolerable and the linear equation will be used for steering going forward.
VisibilityOrange plastic fabric will be used to make the buoy visible. The fabric will be attached between the base of the frame and the solar panel by bungee cords.
A calculation was done to determine the maximum wind speed the buoy will tolerate before tipping. The engineering requirement was to survive 15 knot winds. Treating the wind as a drag force on the orange plastic fabric, it was found the buoy will survive 38 knot winds, exceeding the engineering requirement.
Weight DistributionThe four largest weight components have been placed to ensure even weight distribution. These are the battery, motor, winch, and anchor.
Updated State Diagram
The updated state diagram contains a few changes from the previous version. The standby state is new, allowing for the user to stop the buoy and have it wait until the command is given to leave the state. The anchor states now only have one entrance route and one exit route. The purpose of this is to hopefully simplify the operation of the anchor and prevent problems that could arise from the lack of information about the anchor. The only data about the anchor that will be available is when it hits the bottom of the body of water or when it hits the winch. Forcing the full deployment or retraction of the anchor will give us control where we have data.
Use Case Diagram
The use case diagram is very similar to the previously created functional diagram, but hasa focus on the software of the buoy instead of the buoy as a whole. The inputs are the user and the two sensors, the IMU and the GPS. The outputs are the data back to the user and the sailors that may see the lights from the buoy.
Calculating the heading that the buoy needs to move to get from its current location to its target location is vital information. Using the heading between our start and end points with the current heading of our buoy given by the IMU, we will be able to correctly steer the buoy towards its destination.
The equation for the heading is:
- X = cos(destination_latitude) * sin(destination_longitude - current_longitude);
- Y = (cos(current_latitude) * sin(destination_latitude)) - (sin(current_latitude) * cos(destination_latitude) * cos(destination_longitude - current_longitude))
- Heading(radians) = arctan(X/Y)
- Heading(degrees) = 180 * (heading/pi)
The input coordinates must be in radians, and the Heading comes out as radians and will be converted to degrees for ease of use.
Calculating the distance between the buoy and its destination helps with knowing when the buoy is close enough to its destination to start preparing for the anchor drop and for other preventative matters such as a course that is over the communication range of the buoy. Two formulas were found that could do the job and are shown below:
When deciding on the formula to use, the main points were accuracy and complexity. The first one, the Haversine Formula, is the most accurate formula for computing distances that span great distances on the Earth. Equirectangular Approximation is less accurate as it doesn’t account for the curvature of the Earth, but boasts a significant drop in complexity.
After testing these formulas at the range the buoy will be travelling (1-2 miles), it was found that Equirectangular Approximation was less accurate than the Haversine Formula at 1.5 miles by a factor of tenths of millimeters. Considering the fact that the tolerance for the buoy’s location is 25 feet, Equirectangular Approximation has been chosen for its simplicity and accuracy.
Navigation Algorithm Big Points
While the navigation algorithm is not finished yet, here are some points that are being considered in the building process:
- Operation focused around 5 states: betweenDestinations, atDestination, raisingAnchor, loweringAnchor, standby
- Using the difference between the current heading and the goal heading to determine when to go in reverse, causing changes to how the steering works and how the thrust motor is powered.
- Distance calculation will be used to know when the buoy is within 25 feet (or some tolerance) of its destination point, at which it can start to slow down and prepare for anchor operation.
- The standby phase can function as a freeze state, and also a soft reset since the buoy will re-determine what state it should be in after it leaves the standby state.
- Distance calculation may also be used to either prevent or warn the user from having the buoy set a course that is greater than its communication range since that will likely result a loss of communication with the user.
Electrical Design and Flowcharts
Full schematics: The Arduino Due will be connected to five subsystems: Movement, Sensors and communication, Lights, Battery management system, and Power and Sensors:
- Serial communication for IMU
- UART communication for GPS
- MPPT charger is connected to the battery, Solar Panel, and both the motor drives
- Gate to pins 52 and 53 of the Digital I/O on the Arduino
- Source of the MOSFETs and the pull down resistors to GND of the battery
- LEDs to the positive side of the battery
- UART Communication
Bill of Material (BOM)
The working document can be found here.
The full document of test plans can be found here.
The live Risk Assessment sheet can be found here.
Design Review Materials
The Design Review Presentation can be found here.