Open-source robotics
Open-source robotics is a branch of robotics where robots are developed with open-source hardware and free and open-source software, publicly sharing blueprints, schematics, and source code. It is thus closely related to the open design movement, the maker movement[1] and open science.
Requirements
Open source robotics means that information about the hardware is easily discerned, so that others can easily rebuild it. In turn, this requires design to use only easily available standard subcomponents and tools, and for the build process to be documented in detail including a bill of materials and detailed ('Ikea style') step-by-step building and testing instructions. (A CAD file alone is not sufficient, as it does not show the steps for performing or testing the build). These requirements are standard to open source hardware in general, and are formalised by various licences, certifications, especially those defined by the peer-reviewed journals HardwareX and Journal of Open Hardware.
Licensing requirements for software are the same as for any open source software. But in addition, for software components to be of practical use in real robot systems, they need to be compatible with other software, usually as defined by some robotics middleware community standard.
Hardware systems
Applications to date include:
- Robot arms, e.g. PARA[2][3] or Thor[4]
- Wheeled mobile robots. e.g. OpenScout[5]
- Four-legged robots such as the Open Dynamic Robot Initiative[6]
- UAV quadcopters such as Agilicious[7]
- Humanoid robots, e.g. iCub
- Self-driving cars, e.g. OpenPodcar[8] (→ Personal rapid transit)
- Robot fish, eg. OpenFish[9]
- Laboratory robotics such as chemical liquid handling [10]
- Vertical farming[11]
- Swarm robots, e.g. HeRoSwarm[12]
- Domestic tasks: vacuum cleaning, floor washing[13] and grass mowing[14]
- Robot sports including robot combat[15] and drone racing[16]
- Education[17]
Hardware subcomponents
Most open source hardware definitions allow non-open subcomponents to be used in modular design, as long as they are easily available. However many designs try to push openness down into as many subcomponents as possible, with the aim of ultimately reaching fully open designs.
Open hardware manual-drive vehicles and their subcomponents, such as from Open Source Ecology, are often used as starting points and extended with automation systems.
Open subcomponents can include open-source computing hardware as subcomponents, such as Arduino and RISC-V, as well as open source motors and drivers such as the Open Source Motor Controller and ODrive.
Open source robots are often used together with, so are designed to interface to, the open source robotics middleware Robot Operating System and various open source simulators such as Gazebo, running on the open source Linux operating system.
Software subcomponents
Middleware
Robotics middleware is software which links multiple other software components together. In robotics, this specifically means real-time communication systems with standardized message passing protocols. The predominant open source middleware is ROS, the robot operating system, now as version ROS2. Other alternatives include YARP—used in the iCub, URBI, and Orca.
Driver software
Most robot sensors and actuators require software drivers. There is little standardization of open source software at this level, because each hardware device is different. Creating open drivers for closed hardware is difficult as it requires both low level programming and reverse engineering.
Simulation software
Open source robotics simulators include Gazebo, MuJoCo and Webots. Open source 3D game engines such as Godot are also sometimes used as simulators, when equipped with suitable middleware interfaces.[citation needed]
Automation software
At the level of AI, many standard algorithms have open source software implementations, mostly in ROS. Major components include:
- Machine vision systems such as the YOLO object detector.
- 3D photogrammetry[18]
- SLAM such as gmapping
- Mobile robot planning such as move base
- Arm inverse kinematics such as moveIt
Community
The first signs of the increasing popularity of building robots yourself were found with the DIY community. What began with small competitions for remote operated vehicles (e.g. Robot combat), soon developed to the building of autonomous telepresence robots such as Sparky and then true robots (being able to take decisions themselves) as the Open Automaton Project. Several commercial companies now also produce kits for making simple robots.
The community has adopted open source hardware licenses, certifications, and peer-reviewed publications, which check that source has been made correctly and permanently available under community definitions, and which validate that this has been done. These processes have become critically important due to many historical projects claiming to be open source but them reverting on the promise due to commercialisation or other pressures.
As with other forms of open source hardware, the community continues to debate precise criteria for 'ease of build'. A common standard is that designs should be buildable by a technical university student, in a few days, using typical fablab tools, but definitions of all of these subterms can also be debated.
Compared to other forms of open source hardware, open source robotics typically includes a large software element, so involves software as well as hardware engineers. Open source concepts are more established in open source software than hardware, so robotics is a field in which those concepts can be shared and transferred from software to hardware.
While the community in open source robotics is multi-faceted with a wide range of backgrounds, a sizable sub-community uses the ROS middleware and meets annually at the ROSCon[19] conference to discuss development of ROS itself and automation components built on it.
References
- ^ Gibb, Alicia (2015). Building Open Source Hardware: DIY Manufacturing for Hackers and Makers. New York: Addison-Wesley. pp. 253–277. ISBN 978-0-321-90604-5.
- ^ Tai, Albert; al, et (2021). "PARA: A one-meter reach, two-kg payload, three-DoF open source robotic arm with customizable end effector". HardwareX. 10 (209): e00209. doi:10.1016/j.ohx.2021.e00209. PMC 9123426. PMID 35607683.
- ^ Manzoor, Sarah; al, et (2014). "An open-source multi-DOF articulated robotic educational platform for autonomous object manipulation". Robotics and Computer-Integrated Manufacturing. 30 (3): 351–362. doi:10.1016/j.rcim.2013.11.003.
- ^ "The Thor open-source robotic arm". Retrieved 20 October 2024.
- ^ Carter, Sam; Tsagkopoulos, Nikolaos; Clawson, Garry; Fox, Charles (2023). "OpenScout: Open Source Hardware Mobile Robot". Journal of Open Hardware. 7 (1). doi:10.5334/joh.54.
- ^ Grimminger, F; Meduri, A; et, al (2020). "An Open Torque-Controlled Modular Robot Architecture for Legged Locomotion Research". IEEE Robotics and Automation Letters. 5 (2): 3650–3657. arXiv:1910.00093. doi:10.1109/LRA.2020.2976639. S2CID 203610542.
- ^ Foehn, Philipp; Kaufmann, Elia; Romero, Angel; Penicka, Robert; Sun, Sihao; Bauersfeld, Leonard; Laengle, Thomas; Cioffi, Giovanni; Song, Yunlong; Loquercio, Antonio; Scaramuzza, Davide (22 June 2022). "Agilicious: Open-source and open-hardware agile quadrotor for vision-based flight". Science Robotics. 7 (67): eabl6259. arXiv:2307.06100. doi:10.1126/scirobotics.abl6259. ISSN 2470-9476. PMID 35731886. S2CID 249955269.
- ^ Camara, Fanta; Waltham, Chris; Churchill, Grey; Fox, Charles (2023). "OpenPodcar: An Open Source Vehicle for Self-Driving Car Research". Journal of Open Hardware. 7 (1). arXiv:2205.04454. doi:10.5334/joh.46.
- ^ van den Berg, Sander; Scharff, Rob; Rusák, Zoltan; Wu, Jun (2022). "OpenFish: Biomimetic design of a soft robotic fish for high speed locomotion". Hardware X. 12: e00320. arXiv:2108.12285. doi:10.1016/j.ohx.2022.e00320. PMC 9178345. PMID 35694325.
- ^ Faina, Andres; Nejati, Brian; Stoy, Kasper (2020). "Evobot: An open-source, modular, liquid handling robot for scientific experiments". Applied Sciences. 10 (3): 814. doi:10.3390/app10030814.
- ^ Wichitwechkarn, Vijja; Fox, Charles (2023). "MACARONS: A Modular and Open-Sourced Automation System for Vertical Farming". Journal of Open Hardware. 7 (1). arXiv:2210.04975. doi:10.5334/joh.53.
- ^ Starks, Michael; et, al (2023). "HeRoSwarm: Fully-Capable Miniature Swarm Robot Hardware Design with Open-Source ROS Support". 2023 IEEE/SICE International Symposium on System Integration (SII). pp. 1–7. arXiv:2211.03014. doi:10.1109/SII55687.2023.10039174. ISBN 979-8-3503-9868-7. S2CID 253384613.
- ^ "Floor cleaning robot". GitHub. Retrieved 13 September 2024.
- ^ "Open Mower". GitHub. Retrieved 13 September 2024.
- ^ "Open builds Battlebots".
- ^ "f1tenth".
- ^ Vrochidou, Eleni; Manios, Michail; Papakostas, George A.; Aitsidis, Charalabos N.; Panagiotopoulos, Fotis (September 2018). "Open-Source Robotics: Investigation on Existing Platforms and Their Application in Education". 2018 26th International Conference on Software, Telecommunications and Computer Networks (SoftCOM). pp. 1–6. doi:10.23919/SOFTCOM.2018.8555860. ISBN 978-9-5329-0087-3. S2CID 54438146.
- ^ Jensen, Austin M.; Morgan, Daniel; Chen, YangQuan; Clemens, Shannon; Hardy, Thomas (1 January 2009). "Using Multiple Open-Source Low-Cost Unmanned Aerial Vehicles (UAV) for 3D Photogrammetry and Distributed Wind Measurement". Volume 3: ASME/IEEE 2009 International Conference on Mechatronic and Embedded Systems and Applications; 20th Reliability, Stress Analysis, and Failure Prevention Conference. pp. 629–634. doi:10.1115/DETC2009-87586. ISBN 978-0-7918-4900-2.
- ^ "ROSCon". Retrieved 20 October 2024.