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.
We’ve posted several new videos of the BlueROV2 in action in several locations. The first shows the BlueROV2 during a trip to Ensenada, Mexico where we visited two fish farms. The BlueROV2 was used to inspect their cage anchors and the inside of the cages. We were able to rapidly inspect anchors at 130 ft depth and found issues with several of them. Each anchor took 10-15 minutes to inspect.
The second video was from our filming on the Big Island of Hawaii. We visited a number of reef sites and filmed the fish and corals. All of this filming was done from shore, sometimes with a snorkeler in the water to film and keep an eye on the tether. The reef scenery and wildlife is incredible, but we also saw a significant amount of dead and dying coral. It’s sad to see.
We’ll have a few more videos from these trips, including one showing the open waters of Hawaii!
Introducing ArduSub: The Open-Source Future of Subsea Vehicle Control
Today we’d like to share something that we’ve been working on for quite a while. If you stay on top of our forums or Github page, you may have already seen a bit about it.
This new project is called ArduSub.
ArduSub, we hope, will become the open-source future of subsea vehicles. It encompasses the software and hardware that make up the brain of an ROV or AUV, providing everything needed to control the vehicle, communicate with the surface, and perform sophisticated subsea missions.
Reef image captured by an ArduSub-powered ROV.
At Blue Robotics, we’ve always embraced open-source technology and this project is no different. ArduSub is based on the open-source ArduPilot project, one of the world’s most capable and successful autopilots for drone airplanes, helicopters, and ground vehicles. ArduSub takes the ArduPilot project to a new frontier with subsea capabilities targeted towards ROVs and AUVs.
Stability PID tuning during development of ArduSub.
What does that mean for future ArduSub users? It means that this project isn’t started from scratch – it’s born from years of previous development work, hundreds of contributors, thousands of hours of testing, and several generations of hardware. That provides ArduSub with a rapid path to maturity and already-built-in capabilities and features that surpass those of many commercial ROVs.
Deep-dive test at 135m with an ArduSub-powered ROV.
It also means options. ArduSub is compatible with ten or more different hardware options, multiple topside user interfaces on every operating system, a wide variety of sensors and actuators, and a host of tools such as DroneKit, mavros, and more.
All of this is thanks to the open-source community that has been working on ArduPilot for many years. Blue Robotics is committed to supporting the continued work of that community and to contribute back to it. We have proudly joined the DroneCode Foundation, which manages the ArduPilot codebase, and hope to support this great organization for many years.
We are very excited to announce the release of the BlueROV Developer Version! The BlueROV is an ROV kit for experienced hobbyists, DIYers, and those wishing to learn!
It comes as an unassembled kit with frame, watertight enclosure, thrusters, and speed controllers. The electronics are up to you – open source software is available. It uses six thrusters to provide six-degree-of-freedom control allowing you to point the ROV in any orientation to film anything, grab anything with a simple robot arm, and have a lot of fun! Note, this kit is identical to those received as Kickstarter rewards.
This is not a ready-to-run kit! It is meant for those with software/electronics experience who are interested in following along with and/or contributing to ROV software development.
The BlueROV Developer Version is available for pre-order now, shipping by August 2015.
We are also proud to introduce the bluerov-ros-pkg, a software platform for ROV and AUV control built on the Robotic Operating System (ROS). By leveraging ROS, we have access to a vast amount of existing work in robotics, from localization and mapping to autonomous navigation.
We made a short video to introduce the bluerov-ros-pkg and demonstrate basic control of the BlueROV. You can check it out here:
We have a few exciting updates about the BlueESC, T200, and BlueROV, all of which will ship soon (finally!). We appreciate your patience as we learn and grow and make our products the best they can be.
You may have already read the article on our website, but we have some exciting testing news about the T100 and T200 Thrusters! The folks over at Woods Holes Oceanographic Institution recently performed a static pressure test of the T100 Thrusters. We’re proud to report that they survived at 3000m depth (4500 psi) with no damage or changes in performance! Check out the full article and pictures here.
Last, we are moving! It’s finally time to upgrade from our tiny space to something that we can grow into. We’ll be moving ten minutes south into Torrance, California. Once we get moved in, we’ll share pictures!
The BlueESC is now in early production and we will ship around 50-100 units in April. Below is a picture of the first six that we built.
It’s been a while since we sent out an update, but we’ve gotten a lot done! We’ve shipped almost 450 T100 Thrusters so far and we’ve shipped out all standard OpenROV Compatible Kits! We haven’t revealed a whole lot about the OpenROV Kit, so most of this update will describe that. Upcoming in the next week or two, we will have reports on the BlueESC and T200 Thruster as well as some very exciting depth testing results.
OpenROV Compatible Kit
Here’s what comes with each kit:
2 x T100 Thrusters (standard)
1 x M100 Motor (vertical thruster)
1 x M100 Propeller
1 x OpenROV Mounting Hardware Kit
You already know what the T100 Thrusters look like. Here’s what the M100, propeller, and mounting hardware kit look like:
The propeller is 3D printed in polished black plastic and designed to fit the OpenROV vertical thruster position. It uses a similar blade profile and shape as the T100 Propeller. It’s designed for efficient thrust in both directions, which is particularly important on the OpenROV.
You’ve got from now until September 11th to back us, but don’t wait. There are early-bird reward levels that will only last so long. We need all the help we can get to launch the thruster and to start enabling the field of marine robotics to just about anyone! Your help means the world to us, so back us now!
We’ve made a few small changes to the campaign since we launched the preview last week. Here’s the important changes:
The rewards were all rounded to make the math easier for multiple quantities. The Early Bird Thrusters are now $90 each and the Regular Thrusters are $100 each.
We added a BlueROV Kit Reward Level. This includes the frame, thrusters, and ESCs and requires some basic assembly. You still need to provide the electronics. We recommend a 3DR APM2.6 Autopilot and a Raspberry Pi.
We are now including forward/reverse electronic speed controllers (ESCs) with any reward level for $20 each. They can handle up to 20 amps and are great for the T100s.
We also added some great data charts to the Kickstarter page and to the thruster. Check it out.
The T100 is an underwater electric motor and propeller that is powerful, resistant to saltwater corrosion, and extremely affordable at $99 each. Before now, you would have to spend $500-$3,000 to buy a thruster, making marine robotics an exclusive field reserved for government, institutions, and large companies. We hope to change that.
The Kickstarter campaign will launch on August 12th, 2014 at 8:30am Pacific, but you can check out a preview of it right now: