Rodney Brooks (Robust.ai Co-founder) – Unix50 – The Great Robot Migration from Embedded Isles to Unix-ville (Oct 2019)
Chapters
00:00:25 Evolution of Robots and Their Adoption of Unix
Why Robots Took So Long to Use Unix: In 1987, only one robot ran Unix, while millions use it today. Trends suggest that most robots will run Unix in the future. Holdouts may exist due to specific reasons.
Definitions of Robots: Factory robots: no people nearby. Robot toys: Furby, Pleo, and failed business models. Robot vacuum cleaners: iRobot has a large market share. Military robots: iRobot had robots in Afghanistan and Iraq. Nuclear power plant inspection robots: a failed business model for iRobot.
Cars as Robots: Cars are becoming robots with sensing and actuation. The person is currently the primary actuator through beeps and instructions.
00:03:27 Mathematical Complexity of Robot Movement
Early Industrial Robots: Unimate was the first industrial robot, introduced in a GM factory in Trenton, New Jersey, in 1959. Joe Engelberger, the business mind behind Unimate, went international in 1965, licensing and building robots with companies like Marcus and Kawasaki Heavy Industries. Early robots were analog, not digital, limiting their flexibility and control systems.
The Unimate 1900: The Unimate 1900 series was showcased on the Johnny Carson show in 1965, conducting an orchestra and pouring a beer. Despite the showmanship, these early robots lacked computer control and real-time guarantees.
The Need for Affordable Computing in Robotics: The PDP-7 computer, costing $72,000 in 1969, was too expensive for mass production in robotics. Robots needed something cheaper, mass-producible, and capable of over 100,000 floating-point operations per second.
Forward Kinematics and Inverse Kinematics: Forward kinematics calculates the position of the robot’s end point given the joint angles. Inverse kinematics calculates the joint angles needed to move the robot’s end point to a desired position. Trajectory control ensures that the robot moves along a smooth path between points. Applying desired forces allows the robot to interact with its environment and manipulate objects.
The Complexity of Robot Control: Even a simple robot with three degrees of freedom requires complex mathematics to control its movement. Six degrees of freedom, common in industrial robots, add even more complexity.
00:11:08 Inverse Kinematics, Jacobian, and Robotic Dynamics
Forward Kinematics: Forward kinematics involves calculating the position of a robot’s end effector based on the joint angles. It is a relatively simple computation that involves a series of multiplications.
Inverse Kinematics: Inverse kinematics is the process of determining the joint angles required to move the robot’s end effector to a desired position. It is a more complex computation than forward kinematics and involves calculus and matrix inversion.
Jacobian Matrix: The Jacobian matrix is used to calculate the relationship between the joint velocities and the end effector velocity. It is a function of the joint angles and is used to control the velocity of the robot’s joints.
Dynamics and Torque: Dynamics and torque calculations are necessary to control the forces applied by the robot and to ensure its safe interaction with the environment. These calculations are even more complex than inverse kinematics and involve a large number of equations.
Computational Requirements: The computations required for robotic movement are extensive and must be performed at a high frequency (typically 60 times per second). For many years, computers were not powerful enough to handle these computations in real time.
Historical Context: In the early days of robotics, it took an entire semester to teach the kinematics of a simple six-degree-of-freedom arm. In 1992, researchers were still counting the number of additions and multiplications required for these computations.
00:13:54 Early Unix Operating Systems for Robot Control
Operating Systems in Robotics: Early robot arms lacked computational power and operating systems, focusing solely on arithmetic computations. Commercial robot arms used embedded processes with fixed processing loops for real-time control.
Megalos Operating System: In 1986, Bell Labs researchers Bob Gaglianello and Howard Katzeff developed Meglos, a multiprocessor operating system for real-time applications. Meglos ran on a DEC VAX with Motorola 68000 processors, providing low-latency communication between them. It featured a Unix extended kernel, with the VAX controlling satellites and handling file IO, while the 68000s managed real-time processes and communication.
Limitations of Megalos: Despite its capabilities, Megalos lacked support for security, failure handling, and availability, making it unsuitable for commercial use. The 68000 processors, though 32-bit machines, had a 16-bit memory channel and slow division instructions, limiting computation speed.
Russell Anderson’s Ping Pong Playing Robot: Russell Anderson, a technical staff member at Holmdel, built a ping pong playing robot using Megalos. The robot employed a custom chip with 10,000 transistors to compute the center of mass of a white ping pong ball in real time. It utilized multiple vision boards with six custom chips each and compensated for the rolling shutter camera’s time-smeared images. The robot successfully played ping pong in 1987, demonstrating advanced perception and control capabilities.
Importance of “Most Once” Semantics: Megalos introduced the concept of “most once” semantics, which allowed real-time processes to operate independently and receive advice occasionally. This approach is crucial for modern robot architectures, enabling efficient and reliable control.
Limitations of Early Robotics: In the early days of robotics, researchers like Rodney Brooks at MIT faced significant resource constraints compared to well-funded institutions like Bell Labs. They had to work with limited hardware, such as 8-bit processors with minimal RAM, and had to build their own components, like token rings out of serial ports.
Genghis: A Milestone in Rough Terrain Navigation: Genghis, a robot developed by Rodney Brooks, represented a significant achievement in autonomous navigation. It could traverse naturally occurring rough terrain using its whiskers as sensors and adjust its gait to handle challenging obstacles. Despite its limited computational power, Genghis demonstrated the potential of simple algorithms and sensor-based control for effective robot navigation.
Advances in Computation and Kismet: During the 1990s, computational resources became more powerful, enabling the development of more sophisticated robots. Kismet, a robot built by Cynthia Brazil, utilized multiple 100-megahertz PCs and 6807 microcontrollers running Lisp for real-time processing. Kismet could engage in rudimentary interactions with humans, such as responding to prosody in their voices and generating speech-like sounds with appropriate intonation.
The Challenge of Commercialization: While these research robots demonstrated impressive capabilities, commercializing them proved challenging. Factors such as the high cost of production and the need for specialized expertise limited their widespread adoption.
COG: Learning Dynamics and Adapting to Changing Conditions: COG, another robot developed in Rodney Brooks’ lab, showcased the ability to learn dynamics and adapt to changing conditions. It could sense and respond to forces applied to its arm, adjusting its movements accordingly. COG demonstrated the potential for robots to interact with their environment in a more fluid and natural manner.
Frameworks for Robotics: As robotics research progressed, frameworks like YARP emerged to provide a structured approach to robot development. These frameworks offered tools and methodologies for building and controlling robots, making the process more accessible and efficient.
00:24:17 From Embedded Systems to ROS: The Evolution of Robot Software Platforms
The Early Days of Robot Platforms: The first robot platforms were built on real-time operating systems (RTOS). These systems were designed for embedded systems, such as toys and consumer robots, where low price was the driving factor.
The Rise of Unix-Based Robots: As computation became cheaper, robots began to incorporate more powerful processors. This allowed for the use of Unix-based operating systems, which provided a more flexible and powerful environment for developing robot applications.
The Role of ROS: The Robot Operating System (ROS) is a popular framework for developing robot applications. It is a set of software libraries and tools that helps developers build robot applications from drivers, powerful developer tools, etc. ROS is open source and has become the de facto standard for research labs and is starting to be used in real-world applications.
Other Robot Frameworks: There are many other robot frameworks available, such as YARP, Mobility, and Player. These frameworks provide different features and functionalities, and some are more specialized than others.
The Use of Robots in Real-World Applications: Robots have been used in various real-world applications, such as military operations, nuclear power plant inspection, and disaster response. These applications require robots that are reliable, robust, and capable of performing complex tasks.
The Future of Robot Platforms: The future of robot platforms is bright. As computation continues to become cheaper and more powerful, robots will become even more capable and versatile. Robots will play an increasingly important role in our lives, helping us with tasks ranging from household chores to space exploration.
ROS Penetration in Autonomous Driving and Industrial Robots: ROS is gaining traction in autonomous driving systems due to its origins in universities and its penetration into the industrial robot market. ROS is also making inroads into the high-end consumer market.
Unix Integration and Commercial Failure: Universal Robots, a Danish company owned by Teradyne, uses ROS running on Unix for its industrial robots. Rodney Brooks’ company, which later failed, also ran ROS on Ubuntu.
Rethink Robotics’ Marketing Video: Rethink Robotics created a marketing video showcasing the automatic construction of behavior trees using teach by demonstration. The video demonstrated the control of various robots, including KUKA robots, using ROS running on Unix.
Modern User Interface and Force Sensing: ROS offers a modern user interface with Node.js and JavaScript. ROS enables real-time force sensing, allowing robots to perceive forces exerted on their joints.
Safe Interaction with Children: ROS-based robots are safe for interaction with children, as demonstrated in a video where children were able to program and operate the robots without prior instruction.
Real-time Guarantees in ROS: Despite Ubuntu not providing real-time guarantees, ROS achieves real-time performance by running on a separate computer with a real-time operating system.
00:37:01 Unix: The Future Operating System for Robots
Multi-Core Use: Multi-core processors are used in robots to separate real-time and non-real-time tasks. Certain threads are locked down on specific cores for real-time tasks, while other tasks run on other cores. This approach provides real-time comfort, not a guarantee, but it is generally sufficient for most applications.
Real-Time Control: Position and force control loops run at high frequencies (kilohertz or even 30 kilohertz) on embedded processes near the motors. These loops handle tasks such as motor commutation and current control. This separation of real-time and non-real-time tasks allows for efficient and reliable control of the robot’s movements.
Unix Operating Systems in Robotics: Unix-based operating systems are becoming increasingly popular in robots, especially high-end models. Linux is now used in many robots, including the higher-end Roombas, self-driving cars, and some drones. The increased computational power of multi-core processors enables the use of Unix-based operating systems in robots. Unix provides a stable and reliable platform for running complex robotic applications.
Exceptions: Drones, due to their mass and power requirements, often use fully embedded flight software stacks instead of Unix. Some applications, particularly those with low cost, low power, or ultra-high-performance requirements, may not be suitable for Unix-based operating systems.
Conclusion: The use of multi-core processors, real-time control loops, and Unix-based operating systems is shaping the future of robotics. These technologies enable the development of more capable, reliable, and versatile robots for a wide range of applications.
Abstract
The Evolution of Robotics: From Simple Beginnings to Complex Control Systems
Abstract
The world of robotics has undergone a profound evolution in recent decades. This article traces the journey of robotics, focusing on key milestones, challenges, and the increasing prominence of Unix-based systems in controlling robots. Notable developments include the proliferation of robots operating on Unix, the rise of the Robot Operating System (ROS), and the shift towards more powerful and versatile control systems. The remarkable strides made in this field have transformed robotic systems from simple, single-task machines to multi-faceted, intelligent entities capable of navigating complex environments.
Rodney Brooks’ Takeaways: The Proliferation of Robots
Rodney Brooks, a prominent figure in robotics, has observed a significant increase in the number of robots running Unix over the years. He predicts that most future robots will operate on Unix. This growth reflects the evolution of robots from basic factory machines to sophisticated entities like military robots, autonomous cars, and even toy robots like Furby and Pleo.
Understanding the Basics: What is a Robot?
Defining a robot can be complex, as they serve diverse purposes ranging from industrial tasks in factories to playful interactions as toy robots. The common thread among all robots is their ability to perform tasks autonomously or semi-autonomously. Today, robots have penetrated various sectors, including domestic cleaning with iRobot’s Roomba, military applications, and the automotive industry, where cars increasingly resemble robots with their advanced sensors and actuators.
The Dawn of Industrial Robots: Unimate and Beyond
The journey of robotics began with Unimate, the first industrial robot, introduced in a GM factory in Trenton, New Jersey, in 1959. These early robots were controlled by analog circuits and lacked the computational power and real-time capabilities of modern computers like Unix. The introduction of real-time operating systems and Unix-based systems has revolutionized the field of robotics, enabling the development of more sophisticated and capable robots.
Computational Requirements for Robot Movement
Robot movement is a complex interplay of computational processes, including forward and inverse kinematics, trajectory control, and applying desired forces. Each of these processes requires significant computational power, making the control of robots a challenging task, especially in real-time environments with uncertainties and disturbances.
Challenges in Robot Control
The complexity of robot control stems from the multi-dimensional nature of their movements and the need for real-time control. Early robots struggled with these challenges, limited by their computational capabilities. The advent of real-time operating systems like Meglos and the use of Unix-based operating systems have provided the necessary computational power and real-time capabilities to overcome these challenges.
The Legacy of Early Real-Time Operating Systems
The mid-1980s marked a turning point in robotics with the advent of real-time operating systems like Meglos. Meglos, designed for real-time applications, ran on a DEC VAX with multiple Motorola 68000 processors. It facilitated low-latency communication and handled real-time tasks effectively, despite limitations in computational speed due to hardware constraints. This breakthrough paved the way for the development of more sophisticated robotic systems.
Russell Anderson’s Ping Pong Playing Robot: A Milestone
A notable application of the Meglos system was in Russell Anderson’s ping pong playing robot, which used custom chips and vision boards to process images in real time. This robot was a significant milestone, demonstrating the potential of real-time capabilities in robotics. The robot’s ability to play ping pong showcased the advanced perception and control capabilities that could be achieved with the use of real-time operating systems.
Rodney Brooks’ Journey: From Genghis to Kismet
Rodney Brooks’ work in robotics, particularly with Genghis and Kismet, showcased the evolution of computational capabilities in robots. Genghis, with its limited resources, could traverse rough terrain, while Kismet, with more advanced computational power, demonstrated basic human communication. These robots highlighted the potential for robots to operate in complex environments and interact with humans in rudimentary ways.
The Rise of ROS and Unix in Robotics
The Robot Operating System (ROS) has become a dominant platform in robotics, facilitating the development of complex robotic applications. It provides software libraries and tools for building robot applications, including drivers and development tools. The increasing use of Unix-based operating systems, particularly Ubuntu, in modern robots highlights the shift towards more powerful and versatile control systems. Unix-based operating systems offer a stable and reliable platform for running complex robotic applications, enabling the development of more capable and sophisticated robots.
Lessons from Failed Business Models and Success Stories
The journey of robotics is also marked by failures and successes. iRobot’s failed ventures, like the nuclear power plant inspection robots and “My Real Baby,” contrast with their successful deployment in challenging environments like Afghanistan, Iraq, and the Fukushima nuclear disaster. These experiences underscore the importance of digital channels and proper planning for natural disasters in power plants.
ROS: The Backbone of Modern Robotics
Today, ROS is integral to various robotic applications, from autonomous driving systems to high-end consumer robots. Its intuitive programming through behavior trees, real-time force sensing capabilities, and user-friendly interface have made it the go-to choice for many developers. ROS has become the de facto standard for research labs and is beginning to see widespread adoption in real-world applications.
The Future of Robotics: Unix Dominance and Beyond
The future of robotics seems firmly tied to Unix, thanks to its versatility and multi-core capabilities. While low-cost, low-power applications may still pose challenges, most robotic applications can be adapted to run on Unix, solidifying its position as a dominant force. The increasing use of multi-core processors, real-time control loops, and Unix-based operating systems is shaping the future of robotics, enabling the development of more capable, reliable, and versatile robots for a wide range of applications.
Early Developments in Real-Time Operating Systems and Robots
In the early days of robotics, robot arms lacked computational power and operating systems, focusing solely on arithmetic computations. Commercial robot arms used embedded processes with fixed processing loops for real-time control. The introduction of real-time operating systems like Meglos in the mid-1980s marked a turning point, enabling the development of more sophisticated robots. Meglos, running on a DEC VAX with Motorola 68000 processors, provided low-latency communication and handled real-time tasks effectively, despite limitations in computational speed. This breakthrough paved the way for the development of more capable robotic systems.
The Evolution of Robots from Genghis to COG
Rodney Brooks’ work in robotics, particularly with Genghis and Kismet, showcased the evolution of computational capabilities in robots. Genghis, with its limited resources, could traverse naturally occurring rough terrain using its whiskers as sensors and adjust its gait to handle challenging obstacles. Kismet, on the other hand, with more advanced computational power, could engage in rudimentary interactions with humans, such as responding to prosody in their voices and generating speech-like sounds with appropriate intonation. These robots highlighted the potential for robots to operate in complex environments and interact with humans in rudimentary ways.
The Evolution of Robot Platforms: From Real-Time Operating Systems to Unix-Based Robots
The first robot platforms were built on real-time operating systems (RTOS). These systems were designed for embedded systems, such as toys and consumer robots, where low price was the driving factor. As computation became cheaper, robots began to incorporate more powerful processors, enabling the use of Unix-based operating systems, which provided a more flexible and powerful environment for developing robot applications. The Robot Operating System (ROS) emerged as a popular framework for developing robot applications, offering software libraries and tools to facilitate the building of complex robotic systems. Today, Unix-based operating systems and ROS have become the dominant platforms for robotics, providing the necessary computational power and flexibility to develop advanced robotic applications.
In robotics, Unix adoption has revolutionized real-time systems and become a standard in millions of robots today, leading to more capable and user-friendly robots. The transition from analog to digital control systems has enabled complex tasks and the focus on manipulation, surveillance, and real-time requirements remains prominent....
Advancements in robotics, led by figures like Rodney Brooks, are making robots more accessible and user-friendly, transforming industries and everyday life. Baxter, a new class of industrial robot, is designed to be easily installable, programmable, and collaborative, revolutionizing manufacturing practices....
AI and robotics face ethical dilemmas, such as robotic warfare and human-machine symbiosis, while offering potential solutions for demographic shifts. Technological advancements in AI and robotics bring transformative changes, but require responsible innovation and ethical considerations....
Rodney Brooks' contributions redefined robotics, focusing on adaptable and user-friendly robots like Baxter for industrial automation and GestoNurse for healthcare assistance. Robotics trends include collaborative robots, localized manufacturing, and addressing socioeconomic challenges in aging populations....
Rodney Brooks offers a balanced perspective on robotics, highlighting their potential benefits while urging caution regarding ethical implications and AI overestimations. He emphasizes the importance of a measured approach, continued exploration, innovation, and ethical vigilance in the field of robotics....
Collaborative robots like Baxter, designed by Rodney Brooks, enhance productivity and ease human labor in various industries, from manufacturing to healthcare. The rise of human-centric robots, driven by factors like decreasing costs and technological advancements, is reshaping work and creating new opportunities for job creation and economic growth....
Robotics has evolved from specialized research to practical applications in various sectors, driven by technological advancements and the need for human-robot interaction. Collaboration between academia and industry is key to unlocking the full potential of robotics and shaping its impact on society....