Hello everyone, we’re pleased to announce that the ArduSub project has merged with ArduPilot! This is a momentous occasion for the ArduSub project, with our two main developers, Jacob and Rusty, both becoming members of the ArduPilot development team. ArduSub is the first new vehicle type since the addition of ArduBoat in 2011, and is the first to take the ArduPilot project underwater!
We’ve been looking forward to seeing this since the start of ArduSub!
There are many benefits of developing ArduSub further as a part of the ArduPilot project:
Our code will always be up to date with the latest library developments and bugfixes.
Our code will regularly undergo a thorough automated validation, including simulated dives and builds for multiple autopilot platforms.
Our build system will be automated, and the latest firmware binary will be automatically updated and made available for download on firmware.ardupilot.org.
Our documentation will be updated and migrated to the ArduPilot wiki, and our vehicle parameters will be documented and automatically updated when our code changes.
Our contributions to the code will also receive peer reviews from the world-class team of developers of the ArduPilot team.
Further, ArduSub development and the latest ArduSub code will now be found in the ArduPilot repository. ArduPilot and ArduSub are currently undergoing a rapid development process, and we expect to have a new stable release in April with some great new features and support for additional hardware!
Thanks for joining us on this development. If you’re interested in contributing to the ArduSub project, let us know!
ArduSub is the software at the heart of the BlueROV2. It’s based on the solid foundation of the ArduPilot code, which has been under development for years. ArduSub is open-source, fully featured, and growing rapidly.
Today we want to share some in-progress news that’s been in the works for a long time: we’re working on merging the ArduSub code into the main ArduPilot repository at github.com/ardupilot/ardupilot. What does mean? Well, up to this point, ArduSub has been developed in our own “branch” of the ArduPilot project. By merging into the main project, we’ll join the list of official ArduPilot vehicle types: ArduPlane, ArduCopter, and ArduRover. We’ll continue developing and maintain the code ourselves, but we’ll be assisted by the awesome developers at the ArduPilot organization. This is also allowed us to always be up to date with the latest features, improvements, and bugfixes contributed by the many maintainers.
For those of you interested in lots of details, here’s the text of the pull request, which explains a lot of the work we’ve done on ArduSub in the past year:
ArduSub has been in development for just over a year. In that time, we have come a long way. It started by simply copying the ArduCopter directory and poking around to see what we needed to change in order to make our vehicle move around underwater. Once we had accomplished that, and as we became accustomed to the extensive codebase, we progressed by increasing and improving functionality. We had our first stable release right at the end of 2016. We versioned the release as 3.4, in line with where we picked up from Copter. We are currently working on 3.5-dev.
We ship our BlueROV2 running ArduSub on a Pixhawk, and the response from professionals in the marine industry has been overwhelmingly positive. In addition to the BlueROV2, we’ve designed ArduSub to be very flexible, and we have DIY ROV users around the world with different ROV designs and motor configurations. ArduSub is thoroughly documented at ArduSub.com, and we have a very active ArduSub Gitter Channel.
From ArduCopter to ArduSub
The first hurdle was in figuring out how to make our vehicle actually move around underwater. The original development platform, the BlueROV1, has 6DOF, and while it can pitch and roll, it does not need to do so in order to translate in the x and y axes. Our solution was to subclass AP_MotorsMatrix with AP_Motors6DOF, overriding add_motor_raw to include the forward and lateral DOF that multicopters lack.
The second hurdle was acheiving the tantalizing prospect of holding depth with a positive or negatively buoyant vehicle. The onboard barometer is in a sealed compartment, and the pressure will obviously not correspond with altitude. The Bar30 pressure sensor, incorporates the MS5837 waterproof pressure sensor from Measurement Specialties, the same people who brought you the familiar MS5611. This sensor has almost exactly the same interface as the MS5611, which was a welcomed coincidence in the very early stages of development, when we were still learning how everything in ardupilot worked. We use the MS5611 driver to drive the external MS5837, and added a few members to the AP_Baro class in order to distinguish between an ‘air’ barometer and a ‘water’ barometer. Fortunately for us (and thanks to you guys), there was already support for multiple barometers and an option to set the primary barometer to use with the EKF. We also added a method to the EKF in order to internally set the baro_alt_noise parameter to a low value, because the pressure measurements underwater are very precise.
We have three supported flight modes, Manual (no stabilization), Stabilize, and Depth Hold. We have made progress in implementing more advanced position-enabled modes; we’ve even executed short missions in auto mode. We have also managed to create a working rudimentary model in SITL.
GPS receivers will not work underwater, so we have added an AP_GPS_MAVLINK class in order to support marine industry localization sensors. This class inherits AP_GPS_NMEA, and works by receiving raw NMEA sentence data from the telemetry connection in the form of the GPS_INJECT_DATA message. This was implemented before the AP_GPS_MAV type was added, and there is some overlap in terms of functionality. The advantage of AP_GPS_MAVLINK over AP_GPS_MAV is that the serial data (in the form of NMEA sentences) from a GPS system connected to a topside or companion computer can be sent directly over the MAVLink connection to the vehicle and parsed by the autopilot, with no need to parse the data at the origin before finally formatting the output as a GPS_INPUT MAVLink message. AP_GPS_MAVLINK also eliminates the requirement of reserving a UART for GPS input.
There are a few other minor additions to note:
The AP_JSButton library was added to handle joystick button mapping to various vehicle functions. – It is supported by QGC as well.
PosControl and Fence: added a minimum z limit in order to limit maximum depth
Added a leak detector library
Added a temperature sensor library
ArduSub is used in conjunction with a hard-wired telemetry connection over a tether. This connection is implemented via a RS422 interface directly to the autopilot, or via UDP with MAVProxy running on a companion computer. Pilot input is expected to come over MAVLink via MANUAL_CONTROL messages, and RC input is not supported because RC signals will not penetrate water. Support for ArduSub has been integrated into QGroundControl, and we continue to contribute to QGroundControl in order to improve support for ArduSub as well as other features common to all vehicles.
We have tested ArduSub primarily on the Pixhawk 1, but we have some users on other autopilots including the Navio2 and BBBmini.
Where We’re Headed
ArduSub is being actively developed with a full time developer and several contributors around the world. We plan to continue adding new features and improvements and it’s very important to us to stick with ArduPilot’s original goal of being open source and highly capable. We think that ArduSub is already more capable and extensible than most other ROV control systems.
Last year we asked all of our customers and followers to complete a “product interest survey” to help guide our future plans. It worked out so well that we’re doing it again. If you have a moment, please take our 2nd Annual Product Interest Survey and let us know what you want. It really matters to us and it actually affects what we work on next.
Plus, there’s a $300 Blue Robotics Gift Card in it for some lucky survey respondent!
In the spirit of being an open and transparent company, we want to share some of the results from last year’s survey and show you how we used that info! Continue reading if you’re interested!
The first question addressed the type of vehicle. We got an overwhelming response for “ROV” versus any other marine vehicles.
The applications questions got widely varied results. The most popular answers were “robotics competitions”, “recreation”, “wreck discovery”, “exploration”, and “photography”. With the exception of “robotics competitions”, all of those applications boil down to having a solid ROV with a good camera. “Robotics competitions” requires a wide variety of good products, open and helpful documentation, and lots of flexibility!
As I think we expected, most people are interested in the 25-100m depth range, which has interesting things to see but is still fairly accessible. Too deep for snorkeling but not deep enough that really expensive equipment or boats are required. The rest of the data forms a nearly-perfect bell curve. We’ve made sure that every component we design is capable of at least 100m but when possible we try to design for much deeper.
Sensors, Components, and Systems
The last two questions have really driven our product development. As you’ll see on the results below, we’ve addressed many of the requested sensors and most of the requested components. As far as sensors go, cameras and pressure/depth sensors were the clear winners. We’ve addressed both of those in the Bar30 Pressure/Depth Sensor and in a few different camera options.
The most requested components were watertight enclosures and underwater connectors. Almost everything we listed in this question got at least 50% positive responses, which is why we’ve made products for nearly everything on this list! And don’t worry, we plan to have underwater connectors eventually as well!
We hope this information is informative, interesting, and shows you that we’re really focused on meeting our customer’s needs. Please take a chance to answer this year’s survey!
The Subsea Buoyancy Foam is a machinable, hydrostatic pressure-resistant foam that provides buoyancy underwater (to depths of 300 ft, uncoated or 600 ft coated). Its closed-cell structure is engineered to resist penetration by water. Due to its pressure resistance to many fluids and resins, it is also used in resin-transfer molding as a core material. The foam semi-submersible foam is optimal for shallow to mid-water underwater robotics applications.
Here are a few examples of ROVs that use buoyancy foam for stability and floatation:
Cable Penetrators and Silicone Grease
We also now have Cable Penetrators and Silicone Grease for your water-tight enclosures.
It’s been too long since we sent an update! We’ve got a lot to share, both good and bad! There have been a few delays to the T200s and BlueESCs but we’ve got everything back on track and we have a clear path forward. Those of you who haven’t received your rewards have been incredibly patient and we really appreciate it!
New Team Members
First, of all, please welcome Elisa and Adam to our team! They’ve joined us at our new office in Torrance, California and they’re dedicated to making sure that our production goes smoothly from here on out. In the few weeks they’ve been working we’ve already had a big jump in production output.
Production-grade T200 Thruster!
Let’s start with the good news: we have production parts of every piece for the T200 Thruster and we have final performance information and charts! The bad news: we only have enough parts for 10 thrusters at the moment and that won’t be resolved for about 2.5 weeks. We’ve spent a lot of extra time with our plastic injection molder and our motor stator winder to get everything just right, but that’s pushed things back a bit.
As soon as we have those parts in hand we should be able to get all pending T200 orders filled within about 5-6 weeks. That means most T200s will be shipped between June 23rd and the end of July.
We’ve added a bunch of technical information on the T200 documentation page including detailed performance charts. The important parts are that the maximum thrust is a whopping 11.2 lbf at 16V and maximum power is around 350 W. Here’s the thrust vs. throttle input:
Here is another image of the T200 with all production parts.
T200 Thruster – Shipping soon.
BlueESCs and Software
We are caught up with production of plain T100s and new orders have a pretty short lead time. However, we’re still behind and catching up on T100s and T200s with BlueESCs. Now that we’ve got a few new people in the office we’ll be able to get these out faster. We’re currently expecting most T100s with BlueESCs to be shipped by the early July. T200s with BlueESCs will follow by the end of July
We do have a big update for the BlueESC: we have completed the I2C modification to the firmware so you can now update throttle via I2C and receive sensor data via I2C. You get the following data through I2C:
We have a new product available today. It’s a propeller specially designed for the M100 Motor. There are lots of applications where you don’t want or need a full blown thruster, like on small ROVs or surface vessels. Together with our OpenROV Mounting Hardware, this propeller could be used for the forward thrusters on the OpenROV.
The propeller has a 68mm diameter and generates about 3.2 lb of forward thrust and 2.6 lb of reverse thrust. There are clockwise and counter-clockwise rotating versions. Thanks to the magic of 3D printing, we can build these in small batches without the need for expensive injection molded tooling. We are selling the propellers here for your convenience, but many of you have your own 3D printers and can print the propellers yourself. We are making the 3D files for the propeller open-source and licensed under CC-NC-SA 4.0.
The 3D files are available here for free (and also on GrabCAD).
Here is a chart of the propeller’s performance on the M100 Motor. Note that our propellers are printed using the SLS method, but you might get slightly different results with other types of 3D printers.
We’re happy to report that we have ordered the first production run of assembled PCBs for the BlueESC. We’ve been testing our production prototypes and we’re really happy with the results! The waterproof and water-cooling aspects of the ESC are truly unique and advantageous.
Here’s an image of the production prototype, completely waterproofed and protected in its aluminum enclosure.
The BlueESC production prototype. The ESC is protected in thermally conductive potting compound.
This update won’t be long because we made a short video to show the BlueESC prototype in action! The BlueESC is living up to all of the specifications that we promised and more. Besides being waterproof and water-cooled, it has temperature, voltage, rpm, and current sensors onboard. In terms of performance, it can handle up to 20V and 25 amps in air. In water, it stays ice cold, even at 25 amps. We haven’t had a chance to test the limits in water yet, but we can guarantee that it will be much higher than that required for the T100 or T200 thrusters.
We hope that you are having a wonderful holiday season! We wanted to give you a status update on the project and let you know what’s coming in 2015!
We have made significant progress on orders of T100 Thrusters. We sent out a big shipment last week as well as two weeks before. To date, we’ve shipped 285 thrusters and fulfilled orders for 106 Kickstarter backers! Despite that, we’ve fallen a little behind our original schedule. We’re planning to pick up the pace in 2015, especially as we launch the BlueESC and T200.
Just so you know, when your order is shipped, we’ll send you a message via Kickstarter.
Packages of T100 Thrusters sent last week.
OpenROV Compatible Kits
The OpenROV Compatible Kits will be shipping in mid-January. We we’re hoping to get them out the door in December, but we chose to spend a little more time optimizing the propeller design for the vertical thruster. The propeller is custom designed and 3d printed for the M100 Motor and the OpenROV kit.
The forums are a place to ask questions about our products and to discuss applications. We want to keep this as simple and helpful as possible.
Please sign up for a forum account here! If you’ve purchased through our online store, you may already have an account. Once you’re signed up, you’ll be able to ask questions and respond to others. Note that the forums are still in beta and there may be bugs but we’ll make sure to address them quickly. Please report any issues.
If you are an OpenROV Compatible Kit backer, I’m sure you’re still wondering what the “modified T100 thruster” for the vertical thruster looks like. Well, here it is: the M100 Brushless Motor.
The M100! Note that on the real motor, the motor shaft extends 10mm out of the motor to attach prop adapters and other hardware.
The M100 is a simple brushless motor version of the T100. It uses the same internal components but uses a metal base that has standard brushless motor mounting holes. Its propeller (not shown) is a bit smaller to fit in the size constraints of the OpenROV.
Dimensional drawing of the M100 motor.
What else can it be used for?
Even if you don’t have an OpenROV, this is a really cool product. You could use it to make an underwater actuator, camera gimbal, even your own thruster! For instance, if you want to build a thruster into the frame of your vehicle, you can use the M100 to get the same performance as the T100 without all the extra plastic.
We’ll have an “M200” as well in the future. We’ll also be selling a propeller specifically for the M100 as well as the T100 propellers, which fit great on the M100.
Here’s the specs:
Max Current: 12.5 A
Max Power: 135 W
RPM/V with no load (Kv): 540 rpm/V
Shaft diameter: 4mm
Shaft length: 10mm
Connections: 3 copper pads (soldering and waterproofing required)
This is one of coolest parts: solder pads on the motor instead of loose wires. This allows you to solder wires directly to the motor and then seal them with potting compound or liquid tape. No need for waterproof wire splices or underwater connectors!
Solder pads for wire connections makes the motor easy to waterproof.
That’s all for now! Have a great week and Happy Thanksgiving to those in the US. We’ll have more updates for you soon!
It’s been a while since we’ve sent out an email but a lot has happened – enough for several updates, so will try to send a few over the next few days. Everything is going great! Let’s start with the coolest news.
We are shipping the first 100 thrusters this week! Some have been shipped already and the rest will be in the mail by Friday. The shipments are mostly going to early-bird thruster backers as well as a few people who needed their thrusters as soon as possible.
Building 100 thrusters in a single batch is a big milestone for us and we want to share what was involved.
As you may remember, all of the thruster’s parts are custom, and we order them from all over the world. We still have to do a lot of work here in Redondo Beach to get the thrusters ready to ship.
First, here’s some of the “raw” materials as they arrive to us.
Some raw parts. Don’t be fooled by the small boxes. We have *18 boxes* of nozzles like the one at top left.
It’s amazing how much stuff we need to build all of the thrusters that you guys backed. We are literally up to the ceiling in boxes full of injection molded plastic parts. We have 1,000 cardboard tubes to package the thrusters in. We have 21,000 screws as well as thousands of other components including aluminum shaft collars, steel flux rings, and stainless steel motor shafts.
Wound and sealed motor stators.
The motor stators are wound and waterproofed elsewhere, fortunately, but we still do some extensive testing here to make sure that they are in great shape. Every stator spends at least three days in ocean water after which it is inspected for any signs of corrosion. Our supplier does a great job and the first batch had a 100% success rate.
We’ve been working hard the last few days to make sure that we could ship thrusters this week. Here are some pictures during the production process. We’re going to go into more detail about the tools and processes in a future post, so we’ll just show pictures of the in-process subassemblies here.
Stator bases while installing PCBs (left) and after stators and cables have been installed and sealed (right). The ends of the cables are sealed into the sealant so that water cannot leak through the cable and into your vehicle.
Here are the assembled and coated rotor assemblies. They consist of a steel flex ring road or base stainless steel motor shaft, and 12 custom arc magnets. They are coded in a tough protective coating that resists both abrasion and water.
Here are the motor cables, with the ends stripped and ready to be attached to the thrusters. The cable is a tough urethane jacketed cable that can handle abrasion and is very water resistant.
Here’s a pile of finished thrusters. Have you ever seen so many thrusters in one place??
Each thruster is carefully packaged into a cardboard tube that protects it during shipping. The cardboard tubes are shipped in rectangular boxes for extra protection.
Each thruster is individually serialized and labeled. Here’s thruster #0001:
Each thruster comes in a protective tube and includes a counter-rotating propeller and mounting bracket.
Here’s all of the thruster tubes that are shipping this week!
Packed thrusters ready to go!
That’s all for now. Some of you will be receiving thrusters next week!
We’ll follow up with some more updates in the very near future. We’re going to cover the manufacturing process and tools, updates on OpenROV and BlueROV, and then talk about documentation, forums, and user contribution!
Things will be a little slow here during next week (Thanksgiving in the US), but we are expecting to ship the next batch by December 12th. If all goes well, we plan to have all T100s that were ordered without BlueESCs to be shipped in December. That will also include the OpenROV kits. We’re hoping to ship BlueROVs by early January.
If you have any questions/comments/concerns, please feel free to email us at firstname.lastname@example.org.