Open-source robotics: Difference between revisions

Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{Cn}}
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(49 intermediate revisions by 14 users not shown)
Line 1:
{{Short description|Open-source branch of robotics}}
{{Use dmy dates|date=April 2023}}
[[Image:Icub full bodyP058324-119830_(cropped).JPGjpg|thumb|right|An open source [[iCub]] robot mounted on a supporting frame. The robot is 104 cm high and weighs around 22 kg.]]
'''Open-source robotics''' is a branch of [[robotics]] where robots are developed with [[open-source hardware]] and [[free and open-source software]], publicly sharing [[blueprint]]s, [[schematics]], and [[source code]]. It is thus closely related to the [[open design]] movement, the [[Maker culture|maker movement]]<ref>{{Cite book|last=Gibb|first=Alicia|title=Building Open Source Hardware: DIY Manufacturing for Hackers and Makers|___location=New York|publisher=Addison-Wesley|pages=253–277|year=2015|isbn=978-0-321-90604-5}}</ref> 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 [[standardization|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]] and [[HardwareX]].
 
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.
Line 37:
| doi = 10.1016/j.rcim.2013.11.003
| url =https://www.sciencedirect.com/science/article/pii/S0736584513001002
| doiurl-access = freesubscription
}}</ref> or Thor<ref>{{cite web
| title = The Thor open-source robotic arm
Line 72 ⟶ 73:
}}
</ref>
* UAV quadcopters (drones) such as [[Agilicious]]<ref>{{cite journal |last1=Foehn |first1=Philipp |last2=Kaufmann |first2=Elia |last3=Romero |first3=Angel |last4=Penicka |first4=Robert |last5=Sun |first5=Sihao |last6=Bauersfeld |first6=Leonard |last7=Laengle |first7=Thomas |last8=Cioffi |first8=Giovanni |last9=Song |first9=Yunlong |last10=Loquercio |first10=Antonio |last11=Scaramuzza |first11=Davide |title=Agilicious: Open-source and open-hardware agile quadrotor for vision-based flight |journal=Science Robotics |date=22 June 2022 |volume=7 |issue=67 |pages=eabl6259 |doi=10.1126/scirobotics.abl6259 |pmid=35731886 |arxiv=2307.06100 |s2cid=249955269 |language=en |issn=2470-9476}}</ref>
* Humanoid robots, e.g. [[iCub]], Berkeley Humanoid Lite<ref>{{cite arXiv |last1=Chi |first1=Yufeng |last2=Liao |first2=Qiayuan |last3=Long |first3=Junfeng |last4=Huang |first4=Xiaoyu |last5=Shao |first5=Sophia |last6=Nikolic |first6=Borivoje |last7=Li |first7=Zhongyu |last8=Sreenath |first8=Koushil |title=Demonstrating Berkeley Humanoid Lite: An Open-source, Accessible, and Customizable 3D-printed Humanoid Robot |year=2025 |eprint=2504.17249 |class=cs.RO }}</ref>
* Humanoid robots, e.g. [[iCub]]
* [[Self-driving car]]s, e.g. OpenPodcar<ref>{{cite journal
| last1 = Camara | first1 = Fanta
Line 88 ⟶ 89:
| arxiv = 2205.04454
}}</ref> (→ [[Personal rapid transit]])
* [[Laboratory robotics#Applications|Laboratory robotics]] such as chemical liquid handling <ref>{{cite journal
| last1 = Faina | first1 = Andres
| last2 = Nejati | first2 = Brian
| last3 = Stoy | first3 = Kasper
| year = 2020
| title = Evobot: An open-source, modular, liquid handling robot for scientific experiments.
| journal = [[Applied Sciences]]
| volume = 10
| issue = 3
| pages = 814
| doi = 10.3390/app10030814
| doi-access = free
}}</ref>
* [[Robot fish]], eg. OpenFish<ref>{{cite journal
| last1 = van den Berg | first1 = Sander
Line 113 ⟶ 101:
| doi = 10.1016/j.ohx.2022.e00320
| doi-access = free
| pmid = 35694325
| pmc = 9178345
| arxiv = 2108.12285
}}</ref>
* [[Laboratory robotics#Applications|Laboratory robotics]] such as chemical liquid handling <ref>{{cite journal
* Vertical farming<ref> {{cite journal
| last1 = Faina | first1 = Andres
| last2 = Nejati | first2 = Brian
| last3 = Stoy | first3 = Kasper
| year = 2020
| title = Evobot: An open-source, modular, liquid handling robot for scientific experiments.
| journal = [[Applied Sciences]]
| volume = 10
| issue = 3
| pages = 814
| doi = 10.3390/app10030814
| doi-access = free
}}</ref>
* Vertical farming<ref> {{cite journal
| last1 = Wichitwechkarn | first1 = Vijja
| last2 = Fox | first2 = Charles
Line 127 ⟶ 130:
| arxiv = 2210.04975
}}</ref>
* Swarm robots, e.g. HeRoSwarm<ref> {{cite book
| last1 = Starks | first1 = Michael
| last2 = et | first2 = al
Line 139 ⟶ 142:
| s2cid = 253384613
}}</ref>
* Domestic tasks: [[Robotic vacuum cleaner#Open-source designs|vacuum cleaning]]{{Broken anchor|date=2025-06-17|bot=User:Cewbot/log/20201008/configuration|target_link=Robotic vacuum cleaner#Open-source designs|reason= The anchor (Open-source designs) [[Special:Diff/1283333601|has been deleted]].|diff_id=1283333601}}, [[Scooba (brand)|floor washing]]<ref>{{cite web|url=https://github.com/saiyam-agrawal/Floor-Cleaning-Robot-v2?tab=readme-ov-file|title=Floor cleaning robot|website=[[GitHub]] |access-date=13 September 2024}}</ref> and grass mowing<ref>{{cite web|url=https://github.com/ClemensElflein/OpenMower|title=Open Mower|website=[[GitHub]] |access-date=13 September 2024}}</ref>
* Domestic tasks: [[Roomba|vacuum cleaning]],<ref>{{cite web|url=http://www.redferret.net/?p=9491|title=DIY commercial vacuum robot|work=The Red Ferret Journal|date=30 October 2007 |access-date=13 September 2014}}</ref><ref>{{cite web|url=http://www.curiousinventor.com/projects/Diy_roomba|title=DIY Roomba preposition on Arduino motherboard|access-date=13 September 2014|archive-url=https://web.archive.org/web/20101203102636/http://www.curiousinventor.com/projects/Diy_roomba|archive-date=3 December 2010}}</ref> [[Scooba (brand)|floor washing]]{{citation needed|date=August 2022}} and automated mowing{{citation needed|date=August 2022}}.
* Robot sports including [[combatrobot robotscombat]]<ref>{{citationcite neededweb|datetitle=AugustOpen 2022builds Battlebots|url=https://us.openbuilds.com/battlebots/}}</ref> and racing[[autonomous racing]]<ref>{{cite web|title=f1tenth|url=https://f1tenth.org/}}</ref>
* Education<ref>{{cite book |last1=Vrochidou |first1=Eleni |last2=Manios |first2=Michail |last3=Papakostas |first3=George A. |last4=Aitsidis |first4=Charalabos N. |last5=Panagiotopoulos |first5=Fotis |title=2018 26th International Conference on Software, Telecommunications and Computer Networks (SoftCOM) |chapter=Open-Source Robotics: Investigation on Existing Platforms and Their Application in Education |date=September 2018 |pages=1–6 |doi=10.23919/SOFTCOM.2018.8555860|isbn=978-9-5329-0087-3 |s2cid=54438146 }}</ref>
* 3D [[photogrammetry]]<ref>{{cite book |last1=Jensen |first1=Austin M. |last2=Morgan |first2=Daniel |last3=Chen |first3=YangQuan |last4=Clemens |first4=Shannon |last5=Hardy |first5=Thomas |title=Volume 3: ASME/IEEE 2009 International Conference on Mechatronic and Embedded Systems and Applications; 20th Reliability, Stress Analysis, and Failure Prevention Conference |chapter=Using Multiple Open-Source Low-Cost Unmanned Aerial Vehicles (UAV) for 3D Photogrammetry and Distributed Wind Measurement |date=1 January 2009 |pages=629–634 |doi=10.1115/DETC2009-87586|isbn=978-0-7918-4900-2 }}</ref>{{additional citation needed|date=August 2022}}
 
==Hardware subcomponents==
{{See also|List of open-source hardware projects#Robotics|l1=List of open-source robotics hardware}}
 
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.
 
Line 152 ⟶ 154:
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 hardware robotics interface boards<ref>{{cite journal
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 simulator|Gazebo]], running on the open source [[Linux]] operating system.
| last1 = Waltham | first1 = Chris
| last2 = Soni | first2 = Rakshit
| last3 = Perrett | first3 = Andy
| last4 = Fox | first4 = Charles
| year = 2025
| title = R4: rapid reproducible robotics research open hardware control system
| journal = Journal of Open Hardware
| volume = 9
| issue = 1
| arxiv = 2402.09833
}}</ref> can simplify interfacing between middleware software and physical hardware.
 
== Software subcomponents ==
{{See also|List of free and open-source software packages#Robotics|l1=List of open-source robotics software}}
 
=== 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 [[Robot Operating System|ROSROS2]], the robot operating system, now as version 2. Other alternatives include ROS1, YARP -- used in the [[iCub]], [[URBI]], and [[Orca]]. Open source middleware is usually run on an open source operating system, especially the [[Ubuntu]] distribution of [[Linux]].
 
=== Driver software ===
Line 166 ⟶ 179:
=== Simulation software ===
 
Open source robotics simulators include [[Gazebo simulator|Gazebo]], [[MuJoCo]] and [[Webots]]. Open source 3D game engines such as [[Godot (game engine)|Godot]] are also sometimes used as simulators, when equipped with suitable middleware interfaces.<ref>{{cnCitation |last=nordstream3 |title=nordstream3/Godot-4-ROS2-integration |date=October2025-03-07 |url=https://github.com/nordstream3/Godot-4-ROS2-integration |access-date=2025-03-09}}</ref><ref>{{Cite web |title=ProviewR X Godot |url=https://www.nexedi.com/blog/P-OSIE-Blog.ProviewR.Godot |archive-url=https://web.archive.org/web/20240302131907/https://www.nexedi.com/blog/P-OSIE-Blog.ProviewR.Godot |archive-date=2 March 2024 |access-date=2025-03-09 |website=Nexedi |url-status=live }}</ref><ref>{{Cite arXiv |eprint=2412.18408 |last1=Peraltai |first1=Daniel |last2=Qin |first2=Xin |title=Exploring Flexible Scenario Generation in Godot Simulator |date=2024 |class=cs.AI }}</ref><ref>{{Citation |title=plaans/gobot-sim |date=2025-01-27 |url=https://github.com/plaans/gobot-sim |access-date=2025-03-09 |publisher=PLAN @ LAAS (plaans)}}</ref>
 
=== Automation software ===
 
At the level of [[AI]], many standard algorithms have open source software implementations, mostly in [[Robot Operating System|ROSROS2]]. Major components include:
 
* [[Machine vision]] systems such as the [[YOLOYou (algorithm)Only Look Once|YOLO]] object detector.
* SLAM such as [[gmapping]]
* 3D [[photogrammetry]]<ref>{{cite book |last1=Jensen |first1=Austin M. |last2=Morgan |first2=Daniel |last3=Chen |first3=YangQuan |last4=Clemens |first4=Shannon |last5=Hardy |first5=Thomas |title=Volume 3: ASME/IEEE 2009 International Conference on Mechatronic and Embedded Systems and Applications; 20th Reliability, Stress Analysis, and Failure Prevention Conference |chapter=Using Multiple Open-Source Low-Cost Unmanned Aerial Vehicles (UAV) for 3D Photogrammetry and Distributed Wind Measurement |date=1 January 2009 |pages=629–634 |doi=10.1115/DETC2009-87586|isbn=978-0-7918-4900-2 }}</ref>{{additional citation needed|date=August 2022}}
* Mobile robot planning such as [[move_base]]
* Navigation including [[Simultaneous localization and mapping|SLAM]] and planning such as nav2<ref>{{cite web
* Arm inverse kinematics such as [[moveIt]]
| title = nav2
* [[Machine vision]] systems such as the [[YOLO (algorithm)|YOLO]] object detector.
| url = https://docs.nav2.org//
| access-date = 2024-10-20
}}</ref>
* Arm inverse kinematics such as [[moveIt]]moveIt2<ref>{{cite web
| title = MoveIt 2
| url = https://moveit.picknik.ai/humble/index.html
| access-date = 2024-10-20
}}</ref>
 
==Community==
 
The first signs of the increasing popularity of building robotsand yourselfsharing robot designs were found with the [[DIYmaker culture]] 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 (robot)|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.
Line 192 ⟶ 213:
| access-date = 2024-10-20
}}</ref> conference to discuss development of ROS itself and automation components built on it.
 
==See also==
{{Portal|Free and open-source software|Internet}}
{{colbegin}}
*[[OpenStructures]]
*[[Standardization]]
*[[Timeline of computing 2020–present]]
{{colend}}
 
==References==
{{Reflist}}
 
 
{{Robotics}}