Blue River Technology, a leader in autonomous vehicles for the agriculture industry, was looking for a robust and efficient solution to compute metrics on the performance criteria of their autonomous tractors. They needed a solution which would scale and remove the inefficiencies related to processing large amounts of data in real time.
Blue River Technology is revolutionizing agriculture by applying advanced computer vision and robotics to the problem of crop production.
The product in focus for this blog post is Blue River’s newly launched autonomous driving technology designed for tractors performing tillage operations, which is improving the productivity of farmers as tractors can operate for longer hours, with limited supervision and in all weather conditions.
The autonomous tractor has six pairs of stereo cameras, which enable 360-degree obstacle detection. Images captured by the cameras are passed through a deep neural network that classifies each pixel in approximately 100 milliseconds and determines if the machine needs to stop, depending on if an obstacle is detected and where it is located. The autonomous tractor is also continuously checking its highly accurate position, ensuring it is operating where it is supposed to relative to a pre-defined geofence.
In order to bring such disruptive technology to market, it is critical for developers at Blue River Technology to rapidly iterate. One of the key components slowing the development iteration cycle has been a regression test suite that takes about 24 hours to validate and process image and video data collected by autonomous systems operating in the field. This introduces delays in the development feedback cycle and blocks the engineering team from using shared hardware resources, thereby slowing down the pace of engineering development and impacting productivity.
Before Anyscale, the Hardware in the Loop end-to-end testing, which uses a Blue River proprietary database format for ROS bags (http://wiki.ros.org/rosbag) collected from the field, used to take hours to run in hardware integration machines configured with multiple embedded computing units.
The regression test suite, which had around 132 database files, would take around 24 hours for an end-to-end run. The process was inefficient and did not give the performance of the autonomous system in a reasonable amount of time. The process would also hold the embedded computers for the entire duration, where the playback and useful work from those target computers would be around 1/10th of the entire duration.
The proposed solution was divided into phases and the key was to pursue the steps which have the biggest bottlenecks and would have the highest impact.
The biggest bottleneck was the conversion process from the Blue River proprietary database format to ros bag format (.db3 format). For example, the processing time of this conversion, if done sequentially without Anyscale, would be anywhere from 7 to 9 hours. This entire process was migrated to an Anyscale Ray cluster running on AWS to parallelize the conversion of those file formats at scale.
Another big point of concern was the report generation process after the conversion and playback. This step would also process sequentially and would take 3-4 hours to give the final performance of the autonomous system along with performance metrics. The solution was to migrate the report processing to Anyscale and use the power of parallel processing at scale.
On migration to Anyscale the entire regression run decreased from approximately 24 hours to less than 9.5 hours.
Even the individual runs for small set of database files sped up substantially to around 2x faster.
The solution also provided persistent storage of converted bags and reports by using AWS S3 storage.
By using an Anyscale cluster with AWS, many single points of failure were eliminated. Results became more predictable.