Tuesday, October 29, 2019

Visiting Halifax

Just a short blog entry this week as I traveled down to Halifax today for some meetings, and forgot to bring my laptop charging cord, so the battery level is getting low. In the afternoon, I met up with a team of students at the Nova Scotia Community College (NSCC) that are working on a project to design and build an automated sensor deployment mechanism for deploying sensors off the side of AMOS to depths up to 30 m. Here we are standing outside the COVE building:

From left to right are: Alfred White (instructor), myself, Raj Patel, Chuck Taylor, Maya Anuraj, Stephane Kirchoff (instructor). 

We had a good discussion about possible design ideas and I showed them the small demo anchor that I had put together last week.

After that I drove over the bridge to attend an event sponsored at Innovacorp for local small businesses to meet up with local student talent and have a bite of pizza. This event was packed with lots of amazing businesses and students. Each business had just one minute to talk about what they were about and what they were looking for in terms of hiring. After that the students walked around and met up individually with all the business owners.

In Nature Robotics Ltd. is looking at hiring a student to help out with sales and marketing efforts, starting with a term position in January. The ideal candidate should have great communication skills, have some technical background, and be able to work well independently. If you or someone you know might be interested, please send me a resume: murray@innaturerobotics.com.


Tuesday, October 22, 2019

Salt Water is Deadly (For Electronics)

It turns out that the camera module was permanently damaged by just a few drips of salt water that got into its enclosure. Also, the solar panel is no longer functioning. Yesterday (after receiving some instructions from the manufacturer) I pried open the electronics box at its base, and did a couple of multimeter tests. The open circuit voltage was way too low, even after completely drying out the electronics overnight. I think I'll see if I can find a replacement that has some better water resistance. This is the second one that I've burned through, although I'm not sure exactly what happened to the first one, it stopped working after a really hot day in June, so maybe it overheated.

I did a bit of experimenting this week with possible anchor designs, trying out a NEMA-17 stepper motor with a TB6600 stepper motor driver and an Arduino Uno. I even tried 3D printing some gears, but the mechanical precision of my prints isn't really that great; the gears kept getting locked up at a certain point. I'll need to buy a stepper motor with a gearbox attached to it, in order to lift an anchor that weighs more than a 250 g wrench. Anyway, this is where things stand with that right now:

I also got out to Wookastook for a couple of tests. The first of these was kind of strange: a couple of times AMOS seemed to get locked into a mode where its propeller just got stuck at some angle, so that it kept turning repeatedly in a tight circle. The program was still running, but not saving anything to the log file, so I'm not sure exactly what happened. I've seen the same thing happen sometimes before, but previously I thought it was just caused by the program crashing, but I was able to confirm this time that the program was actually still running. Possibly it was a multithreading bug in the program that resulted in a deadlock condition. I tried inserting more debug code to see if I could better isolate what was going on before the problem occurred, but of course after that debug code was added I haven't been able to reproduce the issue. I'll try it out some more over the next few days, to hopefully reproduce and fix the issue.

Tuesday, October 15, 2019

Flipped In The Surf

Usually every Thanksgiving, we drive down in the van to visit my parents at their cottage in Cap-Brulé. This weekend was no exception, and of course AMOS was squeezed into the van along with 5 people, a dog, and my kayak on the roof. One of my parents' neighbors had wondered if AMOS would be able to measure the distribution of water temperatures along the coastline where a lagoon empties into the ocean, so I was hoping to give it a try. The first day we were there was quite windy and wavy, with rain and gusts up to
40 km/hr, so AMOS stayed in the shed. The following day was better in the afternoon, so my mother, father, and I drove it down to a small boat launch area near the cottage.

The waves were still a bit too strong to successfully launch AMOS from shore, so I pulled it along in the kayak for a while, and then let it go on its own, following the planned GPS sample points. At one point, when it was on its own though, fairly close to shore, a strong wave struck it broadside and flipped it over solar panel down. The propeller post snapped off on the sandy bottom and the electronic control boxes were both submerged, under the boat for about a minute before I was able to frantically paddle over to set things right-side up. 

We didn't want to get salt water from AMOS or the kayak on the van, so Dad (who is 77) and Mom (73) both carried AMOS approximately 1 km back to the cottage, while I carried the kayak. They got there first, so Dad then came back to help me finish carrying back the kayak. I then had a look at the damage:

The main processor box only had a few drips of water in it, but the battery box had a few mm of water resting on its bottom. Probably some of the cable glands could have been a bit tighter. While manipulating the battery and wires, the +12 V contact shorted out on another wire with a loud pop and some smoke. Uh oh. Turns out it was only a digital I/O from the Raspberry Pi that got fried though, so no big deal. I was able to just change the software to use a different one. And actually, although the flip prevented me from collecting about half of the data that I was hoping for, the plots of temperature and turbidity still turned out pretty good (https://www.innaturerobotics.com/sample-data-1):

The water intrusion didn't seem to cause any harm inside the battery box, but so far I haven't been able to get the camera module working. There were still a few drops of condensation inside the plexiglass camera cover, so I'm hoping the newly re-charged desiccant that I put in there will dry things out enough so that it works again soon. 

I guess for wavy conditions, it might make sense to have a keel, or at least some fins on the bottom of AMOS to help stabilize it. Maybe an add-on option that customers can purchase. ☺

Tuesday, October 8, 2019

Stuck In The Mud

AMOS did another 20 km of traveling around Woolastook this past week, bringing its yearly total up to 130 km. I'm hoping to maybe reach 200 km before things get too cold. A couple of improvements were made this week also:

  1. Fixed up the LiDAR code so that it now seems to be working as intended. 
  2. Shifted the position of the sensor deployment arm and made a small fitting to better route some electrical cables on the back deck, so the sensors no longer become entangled. 
I also ordered some stepper motors and drivers for making an anchor deployment mechanism. Having an anchor would not have helped today though, as the water level in the Kelly Creek waterway was unusually low. That happens sometimes, depending on the level of flow downstream through the Mactaquac Dam. What it meant for AMOS though, was that its waypoint in the northeastern corner of the route was probably located in the middle of a mudflat. AMOS was unable to turn properly at about 12:50 pm today near that location, and it kept trying until 3:00 pm, when the program was set to stop traveling anyway. If AMOS had a depth sensor it would help avoid those sorts of situations...

I cleaned off my iPhone camera lens and tried to record some video today too. Here are a couple of the best ones. For some reason YouTube really seems to degrade the quality, so I'm going to try posting the files directly here this time:

Good closeup of AMOS.

Sensors getting deployed.

Tuesday, October 1, 2019

110 km and Counting

AMOS was back at Woolastook for a few days last week, but I think its days on the water will be coming to a close soon for this year. The temperature is getting down near zero in the mornings, and the lead acid battery that I'm currently using doesn't seem to last as long in cold weather. I have been looking at bigger lithium phosphate batteries, perhaps 50 or even 100 AH but they are pretty expensive, so I'll first need to make sure that AMOS is sufficiently mobile with carrying the extra weight, and make a request to In Nature Robotics' finance department. 😏

To date this year, AMOS has traveled 110 km, mostly near Woolastook Park, but some around Cap-Brûlé too. Almost all of it has been autonomous, travelling to pre-programmed GPS coordinates. The 1000 km distance goal I came up with on New Year's day isn't going to happen this year, but all of the testing done so far has highlighted a number of issues that can be solved to help make AMOS a better robot:

  • Need to guard against AMOS getting stuck. Some areas of the shore are more amenable to docking than others. Safe points (with maximal sun exposure and not too close to populated areas) were defined in the software for AMOS to try to reach whenever its battery gets low, but sometimes AMOS is too far away from a safe point when a low battery condition occurs, and it must go into low power mode wherever it happens to be at the time. The wind then eventually blows the boat to a random shore location, where it often becomes beached on rocks, or stuck in a shoreline tree or bush. One solution might be to have an anchor system that lets down a small anchor with say a 5 m line. This would hopefully keep the boat in a stable location well enough away from shore to get going again after its battery charges back up.
  • Need to look more closely at the LiDAR obstacle avoidance code. Sometimes it seems to be working, but at other times I've seen AMOS veer off directly toward a clump of grass onto the shore, and I'm like, "what the heck?".
  • Need to fix up the sensor deployment arm to avoid it getting tangled on electrical cables on the back deck. Sometimes the sensor probes don't quite make it to the surface of the water.
  • Need to re-wire the electronics for sleep mode to switch off absolutely everything that doesn't need to be powered. Currently AMOS requires about 2.5 W in sleep mode, but I think I should be able to get this down to close to 0.5 W by only powering the RF220SU radio board, and the solar charge controller. 
A lack of sun and cold weather kept AMOS from getting too far this past week, but here is some temperature data for Sept. 26 to 28 (http://arcg.is/uTS90):