Design Decision Documentation

Simulation VRX

3.1.1 WAM-V Simulation Configuration

On the VRX Gazebo simulation, the vehicle was configured with thrusters, and various sensors. From the available sensors includes, a Global Positioning System (GPS), inertial measurement unit (IMU), was available to be simulated. The thrusters were tested in varying configurations. For most control and flexibility as 4 thrusters setup was chosen, with full azimuth control of each motor. This setup does have the limitation in that is may not be a setup that is repeatable in the real world but it was a very strong starting point to base our control on. 


3.2 Simulation and the Virtual RobotX Challenge

Throughout this semester the Virtual RobotX Challenge was held. The aim of the challenge was to program the virtual WAM V to perform a variety of tasks autonomously. As a part of the challenge novel control solutions were developed for the vehicle configuration. The control solutions required for the challenge varied multiple levels. It ranged from a low level heading rate and velocity controller to a fully complete path planner with obstacle avoidance.

3.2.1 Localisation

Being able to obtain accurate positional information is a key component to a control solution. Odometry of the vehicle was obtained using data fusion between the simulated GPS and IMU using an extended Kalman filter. This was compared to the true positional information provided by the simulation.


3.2.2 Low Level Control - Waypoint following

An initial aim of the Control solution was to manipulate the thrust of the vehicle in order to go to a desired position and heading. This was done by dividing the control solution into separate layers. One layer took a desired velocity (i.e surge and sway velocity) and a desired rotation rate (rotation around the heading angle) and produced the appropriate motor thruster commands to attempt to follow such commands. Various PID loops were used to produce the desired thruster commands and angles.


The second level of control was used to produce a solution that could move the USV to a desired position face a certain heading. This was done by using a PID loop to produce and appropriate velocity demand and heading rate. This produced a control solution that allowed the USV to manoeuvre to a desired heading and position. Each of the PID values were tuned to produce a stable solution that would control the vehicle in a reasonable amount of time. The produced low level solution allowed holonomic control of the USV. The flexibility in the azimuth control of each motor allowed the vehicle to strafe.


3.2.3 Higher level control - Path planning and Mapping

High level control of the WAM-V includes the path-following, path-planning and mapping solutions for the challenge.


3.2 Simulation and the Virtual RobotX Challenge Mapping

The map achieved was a 2D occupancy grid. A 2D occupancy grid was deemed to be the most appropriate for the challenge as the USV intuitively can be simplified as travelling across a 2D plane. A 2d Occupancy Grid was used with the use of 2 simulated LIDAR sensors. The LIDAR sensors would detect where objects are around itself and then populate the occupancy grid accordingly. A few challenges we’re experienced in this implementation. Namely the sparse environment of the water did not lend to many features to be detected from the lidars at one time. This dissuaded the use of Simultaneous localisation as this is one of the key requirement for use of such an algorithm. Instead an algorithm was developed that allowed mapped the environment progressively as more data points were obtained as the USV moved around. In Figure 3.3 you can see an example of the occupancy grid detecting various objects on the simulation.

Fig. 3.3 WAM-V Mapping on the VRX Challenge


Path Planning

With a representation of the obstacles around our environment using the mapping solution above. A path can be generated that will allow a the USV to move to the desired destination. The aim of the generated path is to provide a course that will go to a desired destination in a timely manner and avoids all known obstacles. This was achieved using a costmap and a simple graph traversal path search algorithm. A costmap was generated that would produce ’bubbles’ around obstacles, with a trailing gradient. This costmap specified areas that the path could go as well as provide a higher cost for paths going close to an obstacle. Using this generated costmap an A star algorithm was used to provide a generated path to the destination.


Path Following

With a path planning solution the next step was to have the vehicle able to follow this path closely. The solution produced was a carrot following algorithm. It would look at the desired path and go to the closest point that is outside of a specified radius. This solution produced a quick and accurate path following solution



System Diagrams for Simulation

...

Bow/Azimuth Thruster Assembly 

The WAM-V’s propulsion is delivered by 2 Torqueedo electric outboard thrusters in a differential arrangement. This provides the vessel with abundant thrust and heading control which is adequate for the team’s requirements. These thrusters are connected to the WAM-V pontoons via custom flotation pods in place of the factory-standard pods delivered with the vessel. The new pods are more suitable for fine control of the vessel and allow for a mounting method which is better adapted for future ACFR usage of the vessel. To power the AMS, 2 banks of lithium-ion batteries are attached to the WAM-V. These batteries provide for a mission duration in excess of 4 hours with high-power use.


In regards to station-keeping and stabilisation of the WAM- V, there are two Flipsky motors mounted on each side of the bow. These motors are controlled via CAN by two Flipsky ESCs, located within the power distribution box. Via a control system, the WAM-V is able to respond to the affects of wind and current by manipulating the motors, allowing the vessel to remain still.

Lidar System


Battery Systems


Software Interface


Communication Protocols


Launcher