You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Developing software for an AUV is a significant leap from the code we wrote for the SeaHawk II ROV last year. Luckily, our experience and existing codebase for the SeaHawk II meant most of our time was focused on the AUV specific additions, mainly computer vision and navigation. Of course, in order to properly navigate, we would need more sophisticated sensors as well as a simulation environment in order to sanity check our work.
While LazerShark's hardware is still in development, our software team can validate code through simulation-based testing. We have integrated the Gazebo simulation platform into our ROS-based software stack, enabling software testing on a physically accurate virtual model of the AUV. The simulated vehicle and environment include custom buoyancy modeling, hydrodynamics, and various sensors. This approach allows for continuous development without a physical prototype or testing site, enabling software and hardware development to progress in parallel and rapid testing. So far, the simulator has allowed us to develop and validate the foundation of the navigation systems.
Just like us, robots have different "senses" to understand the world around them. Alone, our eyes may not provide a complete picture, but when combined with our other senses, we can accurately perceive what's happening. The LazerShark will be equipped with multiple sensors to achieve a comprehensive understanding of its environment, including a stereoscopic camera, depth sensor, inertial measurement units (IMUs), and a Doppler velocity logger (DVL). So far, we have written drivers for the IMUs and DVL. The IMUs provide information about the AUV's acceleration and heading, and the DVL allows us to measure the AUV's velocity and altitude. Given the sensor readings, an estimated pose of the robot is achieved through an Extended Kalman Filter (EKF).
In order for a robot to navigate through the world, a lot has to go right. Sensors have to be integrated to properly take measurements about the robot's movements, the cameras and the CV systems have to properly localize it in relation to its environment, and the EKF has to provide an accurate estimate of the robot's pose. However, once these parts are working properly, the question remains: how do we drive the robot's motors to navigate from one place to another? There are many different approaches, but ours relies on the field of Optimal Control Theory–specifically the Linear Quadratic Regulator. A Linear Quadratic Regulator, or LQR, provides an array of output (a twist, in our case) given the offset of the robot's pose from a desired pose. We chose an LQR over a simpler PID control scheme for a couple reasons. Mainly, a LQR allows us to model the dynamics of the robot, which is basically how the state evolves from a given state, as well as how it evolves according to the inputs provided. This allows us to account for the robot's drag, mass, and rotational inertias in the control systems. The second reason is the tuning parameters – as opposed to the PID controllers whose tuning parameters rely on repeated testing, the LQR's tuning parameters are fairly intuitive. They essentially represent how much to penalize errors in position versus large input values. Once the dynamics and weights are chosen, from a programmer's perspective, the work is done. For now, we simply have our control system navigating us from pose to pose in a straight line, which is essentially all you need for navigation in RoboSub. However, we do plan on improving the control systems to allow for more sophisticated paths, if time allows.
We have completed the design of the first revision of our Battery Management Board. The PCBs have arrived, and we are currently waiting for the components to begin assembly. While we wait, we are starting firmware development to enable energy consumption monitoring and environmental status tracking, including temperature, humidity, and SD card data logging
71
+
<br>
72
+
We look forward to assembling and debugging Revision A of the board. Once the BMS board is populated and we finalize our choice of Jetson, we will be able to assemble the full electrical stack. Additionally, we are making final decisions on the battery packs we will be using.
We are excited to announce that we have completed the manufacturing of our electrical box! We also just received a shipment containing all the mounting hardware and O-rings. Everything fits together quite well! A huge shoutout to Cito Medical for allowing us to use their facilities to machine parts for our electrical box.
83
+
<br>
84
+
Currently, we are working on the internal layout of the electronics inside the electrical box and are designing the thruster mounts and a DVL mount for our chassis. These components attach directly to the electrical box. While some areas of our mechanical design still need refinement, the majority of the work is complete.
One of our next major tasks is designing the battery housings. We delayed this step since we already knew the battery specifications we needed, but we were uncertain about the exact brand or whether we wanted to build custom battery packs. Now that we have that information, we can move forward with finalizing the design.
We are currently running CFD simulations to determine the linear drag coefficients in all directions for our LQR (Linear Quadratic Regulator) control system. Using SolidWorks CFD, we have been solving for the rectilinear drag coefficients and are now developing a computational method for solving rotational drag coefficients.
106
+
<br>
107
+
Because our vehicle consists of a mix of unusual materials and has a highly non-uniform structure and we require an accurate center of mass measurement we have decided that we can not trust values from our CAD. We are opting for physical measurements rather than purely computational estimates. We are currently developing fixtures and testing procedures to measure the center of mass and the moments of inertia for LaserShark.
We are still waiting on a significant amount of shipments, including penetrators and electrical connectors. Once these arrive, we can complete the assembly of our chassis and electrical box. With the electronics nearing integration, we are aiming for our first pool test within the next six weeks!
description: "RoboSub is an international robotics competition in which teams compete to create Autonomous Underwater Vehicles (AUVs). These AUVs are completely unmanned, and must use sensor data to navigate and complete various tasks in a live competition. The competition tasks mirror real-world AUV missions, such as seafloor mapping and sonar localisation."
8
+
description: "RoboSub is an international robotics competition in which teams compete to create Autonomous Underwater Vehicles (AUVs). These AUVs are completely unmanned, and must use sensor data to navigate and complete various tasks in a live competition. The competition tasks mirror real-world AUV missions, such as seafloor mapping and sonar localization."
0 commit comments