Once the inner control loop was working, we implemented the heading controller and waypoint guidance algorithm. Rather than rely purely on the odometry model to determine the heading of the vehicle, the algorithm corrects the estimated heading using the attitude estimate from the AHRS filter after each odometry computation. Thus, the vehicle can orient itself even indoors enabling autonomous missions. The heading controller is a pure proportional controller, essentially always pointing the wheels in the direction of the next waypoint. This is an implementation of pursuit guidance, with multiple fixed way points. A simulated mission using five way points and a real mission with the same way points is shown in Fig. 7.16. The way points are the black diamonds in the plots. Initially, the vehicle is oriented south, that is, in the −y direction. Both the simulation and the data demonstrate that the vehicle is able to orient itself properly and head for each waypoint in turn. When the vehicle is within a certain distance of the current waypoint, in this case set to 1 meter, the algorithm loads the next waypoint. The mission ends when there are no more way points. Fig. 7.17 is the same experimental mission, but in this case the vehicle is oriented in different directions at the start. This figure demonstrates the robust nature of the attitude estimation to orient the vehicle. For this experiment the vehicle performed a simple two waypoint mission, after which we manually drove it back to the start position. The total mission length was approximately 8 meters and repeated 10 times. we define the mission error to be the difference between the expected distance from the final waypoint and the actual distance at the end of the mission.
The mean rms error and standard deviation after the missions was 0.48±0.13 meters. If the odometry errors were normally distributed then we could expect the variance to be proportional to the length of the mission. Of course, bato bucket the errors are not normally distributed due to the non-linearity of the odometry model, however, the variance nevertheless increases with longer missions. This highlights the importance of having an absolute reference to position, e.g., the GPS sensor. For missions in the absence of GPS information, the vehicle must map its location relative to the local landmarks using a localization algorithm such as SLAM. The ASV is a catamaran vessel with twin BLDC motors and rudders for propulsion and steering. Each motor is controlled independently with an ESC by an OC module. The rudders are connected to a single servo that is controlled by an additional OC module. The boat uses the Max32 development board and the OSAVC I/O rev 1.2 daughter board instead of the integrated OSAVC board. The ASV employs three of the sensors for navigation: GPS, IMU, and a rotary encoder. These all use the sensor drivers from the OSAVC code repository. The encoder is used to measure the servo angle of the rudders, the GPS provides absolute position and velocity, and the IMU provides attitude. The boat uses an AHRS algorithm similar to the one used to benchmark the OSAVC but implemented by the developer of the boat and placed in the OSAVC repository as a contributor. Like the AGV, the ASV uses the Raspberry Pi4b SBC for its guidance computer and communicates via USB using the MAVLink communication protocol. In addition to the common hardware and firmware, the developer of the ASV also implemented some custom additions. The main one to mention here is aEMO hardware switch that disables the motors in case of emergency. Additionally, the he uses a sensor not in the repository—a sonic depth gauge used to map the ocean or lake floor.
This sensor connects to the SBC directly. The block diagram of the ASV is in Fig. 8.2.To make the ordinary kriging method more computationally tractable, we introduced a method known as partitioned ordinary kriging. Fig. 8.3 shows the theoretical results of this method against the true field and two other estimates. This method reduces the overall complexity of a field by subdividing it into smaller partitions and only updating the field estimate within the partition. We deployed it to the SBC to demonstrate feasible use in the field. Vlastos introduced an optimal search method using the variance of the field estimate and implemented it on the ASV in his PhD disssertation. More information regarding the ASV and these algorithms can be found there as well. The next vehicle using the OSAVC architecture is a quadcopter. This vehicle is designed to localize itself in environments where GPS is either unavailable or intermittent. The research goal is to demonstrate a method to identify features in the landscape using the TPU and a monocular camera from a pretrained model. The vehicle has a map where these landmarks are geo-referenced to GPS. The source of the map can be taken from existing imagery or mapped and geo-referenced prior to the mission. The vehicle locates itself in the environment by comparing its current pose relative to two or more landmarks that it identfies in flight. Fig. 8.4 is an image of the vehicle during its hardware development. The UAV is designed entirely out of foamcore so that it can be fabricated on a laser cutter and glued together in a matter of hours. The airframe is equipped with a front-mounted BLDC motor and propeller powered by a three cell LiPo battery and controlled by a 25 A ESC. It has ailerons, a rudder, and elevators for control surfaces. They are all controlled by small servomotors. It is currrently equipped with only a GPS sensor, commercial flight controller , and an RC receiver. In this configuration it is not possible to develop new flight control algorithms for two reasons. The first is that without access to the IMU data, attitude estimation—a mandatory component for the experimental flight controller—is impossible.
The second is that it is not possible to import novel flight control algorithms into the commercial flight controller. Indeed, this is the main purpose of the OSAVC. These areas will be addressed in the next phase of development where the vehicle will be equipped with the OSAVC, IMU, and serial radio. It optionally may include an airspeed sensor. Unlike the other vehicles under development, this vehicle does not currently plan to use the full distributed control architecture. The hardware block diagram of the UAV in the final state is in Fig. 8.6. Yet another project underway is to use GPS data to identify AGV parameters that inform its kinematic and dynamic model. The main goal of this project is to use the GPS data to refine and calibrate parameters of the vehicle that are difficult to measure directly, in particular, the effective tire radius, the relationship between the measured servo angle and the vehicle angular velocity, and the static coefficient of friction between the tires and a given road surface. The effective tire radius is used to determine the vehicle speed accurately in the odometry model. The GPS provides an independent estimate of the vehicle velocity. The ratio of GPS velocity and rear wheel angular velocity is the effective tire radius. By itself this parameter calibrates the odometry model for velocity. Once determined, it helps identify the transfer function between the steering servo angle and the vehicle angular velocity using least-squares regression and GPS position data. We can use the calibrated odometry models to determine the lateral and longitudinal dynamics of the tires. Independent position and velocity measurements compared against the odometry estimates provide a convenient mechanism to determine wheel slip. Finally, slip detections keeps the AGV in the non-slip regime and is used to identify the road-tire interface parameters in-situ, that is, dutch bucket hydroponic during mission operation. This work will be published the 2023 ION/PLANS conference proceedings.A rich area of research using the AGV platform and combining Sections 9.3 and 9.4 is to develop an autonomous race car. In this project the mapping sensor is used to determine the inner and outer race track boundaries and the road-tire interface parameters determine the friction limits of the tires. The goal of the research would be to provide optimal guidance through a given course once its boundaries are autonomously mapped and the road-tire friction parameters determined. Unlike many academic research projects, this work has often been collaborative with students from ASL as well as interns from the Google Summer of Code program. It is our belief that individuals working together will always exceed the accomplishments of those same individuals working separately. This is one of the main reasons we chose to make this project open source–to promote collaborative development. It was exceedingly gratifying, therefore, to see so much interest in the project from all over the world as well as here at home. Perhaps the greatest potential contribution of this research is to provide a control platform to enable future autonomous vehicle research and a community to collaborate with. Our hope is that by developing the OSAVC and integrating it into a distributed control framework, vehicle developers can take advantage of the power of embedded programming. We also hope that by following the example code they will be able modify it for their own purposes, tremendously shortening the learning curve. Embedded programming in C can be a daunting prospect to the programmer unfamiliar with the process. Paradoxically, good embedded programming practices make understanding and troubleshooting real-time systems easier. This is because every aspect of the program is dictated by the programmer—there are no hidden mechanisms behind the scenes.
Therefore, while hardware abstraction does allow for relatively easy coding of complex tasks, it hides important aspects of what is happening at the hardware level. While this may not matter for many applications, for real-time control it is critical to understand the operations of the microcontroller and the hardware peripherals to ensure predictable latency and efficient code. Also, understanding the low-level hardware allows for easier troubleshooting of faulty code. In obese male C57BL/6J mice consuming a high-fat diet, daily supplementation freeze-dried mango at either 1% or 10% of the weight of the diet significantly reduced body fat compared to those consuming a non-supplemented control diet. Curiously, only the 1% mango group showed significantly decreased fasting blood glucose and postprandial blood glucose responses after tolerance tests, but no difference was noted for insulin or HOMA-IR, compared to those consuming the 10% supplementation or control diets. In overweight and obese humans, plasma insulin was significantly increased 45 min after consuming 100 kcal of mango , compared to their baseline levels, but did not increase as much as when the participants consumed an to isocaloric low-fat cookie. The same study also noted that capillary blood glucose levels were significantly elevated 30 min after mango intake compared to their baseline values, while returning to the baseline range at 60, 90, or 120 min after intake, whereas intake of the low-fat cookie showed significantly increased blood glucose at both 30 and 60 min, which is consistent with trends from our study. However, the above study measured insulin at baseline and 45 min after food intake, so the postprandial insulin levels cannot be compared directly with our study. Future research may consider assessing the association between postprandial BP, glucose, and insulin resistance at multiple time points. This study has several limitations. The Ataulfo mangos were not analyzed for nutrients or phenolic contents. Different mango cultivars vary in macro-nutrients, micro-nutrients, as well as phytonutrient content. Among commonly consumed mango cultivars, Ataufo mango pulp contains the highest concentration of β-carotene, ascorbic acid, total phenolics, gallotannins, and mangiferin, in comparison to Haden, Keitt, Kent, and Tommy Atkins. The high concentrations were used in the selection of Ataulfo. The amount of white bread as an isocaloric control was calculated based on the USDA food database, which does not identify the cultivar or cultivars that were tested. Finally, the postprandial blood glucose and insulin responses in study II were not measured at 30 min, which may have missed the possible peak levels. Future studies may take the measurements at more frequent time points, as well as insulin resistance indicators, such as HOMA-IR, to better understand the role of mango in blood glucose management. In conclusion, two weeks of daily mango intake was associated with a decrease in SBP and PP.