It's good to share
Posted on 26 September 2011
It's good to share
We continue with the blog posts from our new Agents. Simon Choppin, a sports engineering researcher from Sheffield Hallam, looks into the benefits of sharing code.
Many software users are also software writers. Whether a simple spreadsheet macro or a million lines of code, custom programs are essential tools for researchers of all disciplines. These silent workhorses gather and process our data, they solve problems and help to create ideas. To many of us they're an indispensable aspect of our working lives.
For some, creating custom software is relatively straightforward, but if you're in need of a particularly complex routine or are an inexperienced programmer, this can be a lengthy and potentially costly process. Even if you're experienced, having access to a ready-made piece of code gives you more time to focus on the aspects of your work which are new and unique. Thankfully, no matter what the flavour of programming language, communities and resources exist which provide scripts and routines to perform a myriad of different tasks. In some cases benevolent groups of programmers have created entire software libraries for others to use freely.
The Robot Operating System (ROS), Open Computer Vision (OpenCV) and Point Cloud Library (PCL) are a trio of projects that constitute a formidable bank of code aimed at every aspect of robotics. Each project is supported by the Willow Garage group (among others), whose aim is to "lay the groundwork for the use of personal robotics applications in everyday life". They are doing so by releasing their software completely open source and free to use for research and even commercial applications. The ROS library provides drivers and tools for hardware and sensors; OpenCV provides over 500 image-processing functions to allow a robot to make sense of the visual world; PCL processes 3D environments for navigation and object recognition. For researchers working in robotics and computer vision these tools are clearly invaluable, they form a basis on which to build and develop robotic solutions and don't even rule out making a profit. Given the strength and variety of tools on offer, it's also important that their use is not limited to a single purpose. Anyone who uses cameras and sensors, manipulates images, or navigates clouds of data points can benefit from the software in these libraries (Nicolas Burrus' RGBDemo being an excellent example). For example, facial recognition algorithms aren't only used to help robots locate humans, they can count people in crowds, distinguish between sexes and even measure emotions. There are hundreds of other functions on offer.
Projects such as these invite software writers to create unique and powerful tools for their own purposes. If they, in turn, are able to offer them freely to others, the cycle of development continues. Powerful, open-source software makes a real impact in research and influences others in ways which the original authors may have never conceived. It crosses continents and research disciplines, giving researchers the head start and inspiration which may otherwise be difficult to achieve.