The 2020 Consumer Electronics Show (CES) is full of engineering marvels. Many of these marvels are manifested as advances in robots. For example, consider UBTech highlights are this year’s show. The company’s intelligent humanoid service robot named “Walker” won the Best of CES 2019 and will be back with additional features at the 2020 show. According to the company, Walker will be faster and demonstrate more human-like walking as well as yoga poses that show its huge improvement in motion control. The robot will also demonstrate the ability to push a cart, draw pictures, and write characters, plus showing improved static balance with full-body compliance control.
There’s another robot system that the technical community might find equally interesting if a bit less flashy. France’s Pollen Robotics is displaying their “Reachy” robot at CES2020. In collaboration with the INCIA Neuroscience Institute in France, the company has developed a 3D-printed robot arm that’s 100% open source. Reachy is billed as an expressive humanoid service robot specializing in interacting with people and manipulating objects. This robot is built with prepackaged AI and modular robotics that should easily accommodate many real-world applications, such as extensions for disabled people (human augmentation), helping out at events (like CES), assisting small businesses and even as a receptionist.
According to the company, Reachy can be easily programmed in Python and offers ready-to-use operational environments for game play, serving coffee, making music, handing out specific objects, and more. The robot is also fully customizable with open hardware, software and data!
The company invites developers to join their open source community and participate on Github, although the company explains that Reachy is currently still under development. The open source hardware, software and data won’t be released until the robot is ready, toward the end Q1-2020.
|Image source: Pollen Robots / Reachy|
But what does it really mean to say a company or platform supports open hardware and software/
Open Source Hardware
Open source typically relates to software, which is easy to create, compile and distribute. However, the open source model also extends to hardware but with some changes.
Open hardware for robotics focuses on open source mechanical and electrical hardware, including design specifications of the robot such as schematics, blueprints, logic diagrams, CAD drawing files and the like. Like open source software, the hardware source materials are available for modification or enhancement by anyone under permissive licenses. Users with access to the tools that can read and manipulate these source files can update and improve the code that serves as the baseline for a physical device.
Open hardware platforms tailored for robotics are numerous. Many run only on Arduino and Raspberry Pi platforms. But there are a few noticeable ones that run on other hardware. Here are a few that are similar in functionality – i.e., using a manipulating arm – to the Reachy robot mentioned earlier:
- Poppy Humano, by Generation Robots - The humanoid, bipedal Poppy runs the Ubuntu OS on an octa-core Odroid-XU4 small board computer. The kit includes servomotors and 3D printed parts. The hand grippers may be controlled by a separate Raspberry Pi board. It is all fully open source.
- Rapiro, by Switch Science - Another humanoid, bipedal robot is Rapiro, which typically ships with a control board that can be programmed via the micro-USB port using the Arduino IDE. Adding Raspberry Pi enables additional sensors, WiFi and Bluetooth control, and a camera with image recognition capabilities. An abundance of servos provide movement to the neck, waist, arms, and feet. Rapiro can walk and dance, and its dual grippers can pick up light objects, to grip a pencil and type on a keyboard.
- TurleBot3, by Robotis – TurtleBot3 is the 3rd-Generation of the TurtleBot series. The development of the robot is still guided by Open Robotics, a part of the Open Source Robotics Foundation (OSBR). TurtleBot3runs uses open source Ubuntu while running on Raspberry Pi 3 or Intel Joule based compute boards (now discontinued by Intel). The robot features a Robotis OpenCR board for controlling the motor servos, as well as touch, infrared, color, and IMU sensors. The board can run Arduino 32-bit, Arm Cortex-M7 microcontroller.
The afore mentioned Open Robotics supports the development, distribution, and adoption of open software and hardware for use in robotics. The organization offers two open source products: ROS and Gazebo. The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications. Gazebo accurately simulates indoor and outdoor robots. You get a physics engine, high-quality graphics, and graphical interfaces. And it's all open source.
|Image Source: Poppy Project / M. Lapeyre|
Robots, like any electronic, microprocessor-based system, need software to perform all their primary functions. But programming a microprocessor typically requires understanding of assembler, C/C++, or Java programing languages.
To reach a larger audience, open-source robotic projects often use more visual and user friendly languages to program their robots. Here are a few examples:
|Image source: Lego / LeJOS|
- LeJOS - Have you ever attended a First League competition where elementary, middle- and high-school students engage in hands-on STEM experiences? LeJOS is a drop-in firmware replacement for Lego Mindstorms programmable bricks used in First League competitions. LeJOS is a tiny Java Virtual Machine (JVM) that allows users to program their Mindstorms robots easily using the Java programming language.
- Rock – This is a software framework for the development of robotic systems. It is modeled after the Orocos RTT (Real Time Toolkit). Rock provides all the tools required to set up and run high-performance and reliable robotic systems for wide variety of applications.
- ROS - The Robot Operating System is a framework for writing software for robots, that includes various tools and libraries to simplify the process. It is designed for collaborative development, with modular components. It is sponsored by the Open Source Robotics Foundation.
The advent of AI and machine language programs have not been lost on the open source community. But how might AI work in an open source robot like “Reachy?”
Leading software companies such as Microsoft, Google, Facebook and Amazon have been making considerable progress developing AI systems. Lately, they have released much of their work to the public for free use, exploration, adaptation and perhaps improvement.
The business advantage to this openly collaborative approach is that it allows the best minds at various companies to work together and contribute to the whole – including the leading AI companies. Also, the resulting technology is often cheaper and more widely available for developers.
Here a short-list of AI-related technologies that have been openly released to the public in the last 5 years:
- Amazon’s Alexa, the voice-command system in the company’s Echo device
- Google’s TensorFlow, its image search technology
- Facebook’s M personal assistant
- Microsoft’s Computation Network Tool Kit
Open Source Tools
Open-source hardware and software are essential to develop an open source robot. But design and testing tools are also needed. Several software development tools have already been covered, e.g., the robot operating systems and simulators like Gazebo. But let’s not forgot the need for the software application development aid known as the Integrated Development Environment (IDE) platform.
A typical IDE platform provides programmers and software developers with a comprehensive set of tools. IDEs are built to work with specific application platforms (e.g., Unix, Windows and Apple OS), to make it easy to write, link, compile and debug code throughout the lifecycle of software development. Some of the more well known, open source IDE’s include Visual Studio, Xcode, Eclipse, Arduino, PyCharm and others.
But what about the tools required to create the hardware, e.g., CAD and board development.
There is an active open source CAD community. In fact, most CAD vendors offer free versions of their CAD packages. All such programs provide schematic capture, bill of materials generation, netlisting, analog and digital simulation and PCB layout. The open source community tools are typically released under the GNU General Public License.
In addition to designing all of the components for a robot, you can use CAD programs to create many of them on a 3D-printer. Here are but a few of the available open source and free CAD software tools: FreeCad, nanoCAD and LibreCAD. Further, tools like KiCad help develop schematics for boards.
There you have it! If you want to create an open source robot, you really should use open source hardware, software and development tools. Just make sure you use the latest versions of these tools and be sure to share back with the open source community.
|Image source: By Cedar101, Arduino IDE|
John Blyler is a Design News senior editor, covering the electronics and advanced manufacturing spaces. With a BS in Engineering Physics and an MS in Electrical Engineering, he has years of hardware-software-network systems experience as an editor and engineer within the advanced manufacturing, IoT and semiconductor industries. John has co-authored books related to system engineering and electronics for IEEE, Wiley, and Elsevier.