Sunday, 24 May 2015

Dollbot #3: Propulsion system

We have settled on a holonomic propulsion system for the Dollbot, this means that the boat can move and rotate in any direction at any time.

Propulsion channels

We are basing our design on the approach taken by the UPenn Modlab team on their DARPA TEMP proposal: a motor pushes water through a narrow channel in either direction to control thrust - there are four propulsion channels, one in each corner mounted at a 45 degree angle, so that through combining directions on each of the channels any direction (and rotation direction) can be achieved.

The following picture shows the flow of water through the channel in each of the two possible paddle directions:



If the paddle turns clock-wise (yellow flow), the water moves right through the channel and the boat steers left. On the other hand, if the paddle turns counter clock-wise (red flow) the water comes out of the left channel exit, steering the boat to the right.

An example of how one of the propulsion channels would be mounted:


We have settled for a €5.95 Polypropylene toolbox as the hull for the dollbot, it will probably need some ballast to avoid overturning too easily but it is a lot more sturdy and water proof than the plastic food container (€1.99) that we had chosen originally.

This layout shows the internals of each of the four propulsion channels once mounted:


You can easily see how turning the motors in either direction the boat can be made to move on any direction or to rotate, the UPenn video includes towards the end a few seconds that show the propulsion system in operation.

We could not find any piece laying around our workshop that would lend itself to be used as the propulsion channel, so we have decided to create a model and 3d-print a few copies with translucid PLA, this is how it looks like:


We will put up some pictures once we have the completed modules in about a week's time.

UPDATE (28/May/2015): Just picked up the printed propulsion modules from our friends at Nativa 3D, who pointed out a flaw in our original design (it's difficult to fit a 30mm turbine through a 2mm hole, thanks Sergio!) so we had to create a new revision. The results are great:



We are already working on the turbines, will put up the final results once we put the thruster together.



Controlling the motors

The propulsion system requires the ship to control four DC motors, we have decided to run these off a separate battery (5500mAh, 7.4V 2S LiPo) to avoid frying the controller and keep the boat operational even in low-voltage conditions when the LiPo needs to disconnect. To control the engines we have chosen the Adafruit Arduino motor shield, which will allow us to address the motors through serial I2C communications and keep the number of components down. We will need to develop a library to control the motor vectoring, so that we can simplify the navigation code.

We still have to get the motors, we are limited to a maximum 3A stall current and to run at 7.4V - nothing fancy, nearly any motor will do given that we are just moving water around at relatively small speeds.

Monday, 18 May 2015

Dollbot #2: Initial design

We have decided to start working on Dollbot first as it works in a more controlled environment than Pescabot.

After a few weeks of tinkering, we have agreed on the following design criteria:

Propulsion

We will use holonomic propulsion, based on the UPenn Moblab prototype (We can't stop watching this video!). This means that the boat can move in any direction and not just the typical forward with steering of more traditional boats.

The holonomic propulsion system uses four small DC motors that need to operate in either direction, so that the water flows through the vectored thrust channels. We will use the Adafruit Motor Shield  (19.95 USD) to control the motors, as developing the H-Bridges ourselves for a robot that will be in the water does not seem like the best idea - this will reduce the size of the control components.

RC Control

Erin wants to be able to control the boat with RC as well as to program it automatically to pick-up and deliver dolls, so we will need to connect a R/C receiver to the system, which will take preference from autonomous control and work as a fail-safe mode.

Autonomous operation

The boat is designed to operate in closed bodies of fresh water (e.g. a swimming pool), we want the autonomous operation to discover the geometry of the pool and detect dolls waiting to be picked up / points where to drop the dolls as well as to do some obstacle / swimmer avoidance. We want to try to use an Arduino Uno as the microcontroller, as it provides an easier IDE than the Tiva, and we all want to participate in the autonomous algorithm design.

Water proofing

We need to operate the robot in the water, no two ways about that :-) We need to think of some water-proofing for the boat, so that even if it tips over the electrical components are protected.