Skip to content

The Story

Lucas edited this page Aug 11, 2020 · 6 revisions

This project was born out of lessons learned from an earlier research initiative, whereby an autonomous vehicle prototype needed to be quickly formed.

The project was under-specified for quite some time, warranting the need for a platform that could easily accommodate a frequently changing set of sensors and hardware. I had little background in robotics, which necessitated a repeated process of trial and error, experimenting with various technologies.

Additionally, cost was a significant factor, as the originally promised funding was delayed (and never subsequently arrived) due to unforeseen circumstances. "Out-of-box-ready research platforms" are available for purchase, but have several drawbacks. First, advanced platforms are often bundled in premium packages with many unneeded features, resulting in steep prices, in the thousands of dollars. Custom tailored versions also exist, but the project was on a short timeline, and the design, build, and shipping timeline did not work out for the project.

The project was chronically underfunded, lean engineering principles needed to be applied. Many parts were scavenged from what was available in the laboratory. Purchasing was limited to the most economical option that could still deliver the desired performance. The prototype didn't need to be perfect, it just needed to work (or work well enough) to demonstrate a proof of concept.

Having never designed a ground-up prototype vehicle before, the project software stack was a complete mess as well. Every device had its own libraries and code, and a very compartmentalized approach to software development was taken - every individual component was pursued separately, and without regard to an overall architecture. In the last development sprint, a hodge-podge of (not all compatible) scripts were thrown together, with predictably disastrous results.

After the reflecting on the project, the idea of sciencebot was born: To create a capable, economical, and extensible research vehicle platform.

sciencebot takes a principled approach to the underlying software design, and leverages the open-source Robot Operating System (ROS) in order to create an effective and well organized architecture. The software is designed to be as accessible as possible, with much of the core functionality written in Python, an increasingly popular low entry-barrier programming language. sciencebot utilizes widely available and relatively inexpensive components. The 3D printed base chassis is covered in a grid of standard 3mm holes, enabling sciencebot to accommodate a wide variety of hardware, sensors, and custom designed mounts. As a highly modular system (both on the software and hardware level), sciencebot can be tailored to the unique needs of a project, whether they be funding constraints, capability requirements, or otherwise.

I've learned a lot over the course of this endeavor, and my hope is that sciencebot can help jump-start your autonomous vehicle research initiative.

--- Lucas

Clone this wiki locally