00:00:24.040
Ron and Damon Evans presented at the Marconi in 2009. They gave an interesting presentation on flying robots, featuring a flying blimp. If you watch the video online, you'll find it quite fascinating. Ron is known for his incredibly high energy. For the past four years, besides his work at Hybrid Group, he has been driving a program called Kids Ruby. Let's give a round of applause for that!
00:01:03.790
If you haven't seen Kids Ruby, I encourage you to check it out. There's an event happening tomorrow, and another in two weeks up in Bend, Oregon. Kids Ruby focuses on educating and teaching programming to children, starting from ages six to eight, but more around eight if they can use a mouse.
00:01:17.360
I wanted to share a quick story. At RubyConf 2009, for those who don’t know, I run a company called ConFreaks, which records this conference and about a dozen others each year. Back then, we were using robotic pan-tilt-zoom cameras, which was an impressive setup but caused quite a headache. We ended up with the wrong set of cables.
00:01:34.070
At the software development conference, I had to trek 45 minutes away to buy cables. This was especially challenging because the conference was held at a hotel near the San Francisco airport, with no electronics stores nearby. We made the trek and returned with the wrong type of cables, which had molded plastic ends, making it impossible to rewire them. I posted a tweet asking if anyone had a voltmeter. Fifteen to twenty minutes later, Ron appeared with his multimeter, and he saved the day.
00:02:05.180
We managed to rewire the cables and record the sessions. You can watch those sessions online if you’re interested. Ron has been a tremendous friend throughout the Ruby community and to both Junior and me at LA RubyConf. So, when we discussed who the keynote speaker should be this year, Junior and I agreed that Ron, who has contributed so much energy to our community and given outstanding presentations, was a perfect choice.
00:02:30.020
We're delighted to have him here and hope you all enjoy what he has to share. Junior has something to add.
00:03:14.840
395 thousand dollars, 250 thousand dollars, 180 thousand dollars. If I break it, you have over a million dollars worth of cars within 30 feet of you. Have fun! Just call me Magnum. Well, welcome everyone! This is the Los Angeles Ruby Conference, and I want to thank Junior, Connie Fendt, and Kobe for the extraordinary effort they put into organizing this conference. Let's give them a big round of applause!
00:03:37.340
I'm DeadProgram on Twitter, and I'm Ron Evans. I work at Hybrid Group here in Los Angeles, a software development company. This keynote is in three parts because I don't know if I will ever get asked to keynote again. I really wanted to express this message: The Signal.
00:05:06.510
In the beginning, there was noise, and it had no distinguishable form, so it was not very useful. Then man made the signal, and it was good. This is what we need to communicate. We took these signals, combined them, and created messages. From these messages, the entire universe of human thought sprang into being.
00:05:35.280
This man, Claude Shannon, is the creator of information theory. He understood that with just two states, on and off, the entire universe of thought can be represented. Yet, this idea was rooted in earlier concepts introduced by Ada Lovelace, who recognized the difference between things and their representation.
00:06:00.530
This fundamental idea laid the foundation for later concepts of information and entropy posited by Stephen Hawking. Grace Hopper further developed this idea of communication abstraction, allowing us to communicate using the same language with different types of machines.
00:06:16.530
Kevin Ashton is the man who coined the term the Internet of Things, which defines the connected future we are part of today. Rob Pike, who invented much of what we call UNIX today, gave an influential talk on the differences between parallelism and concurrency that shaped my thinking. Then, there’s John Little, who created queuing theory, and Alan Kay, the creator of object-oriented programming and someone who realized that the message is the fundamental unit of communication.
00:06:30.780
Lastly, Ray Kurzweil sees beyond our current reality into the future. All of these thinkers are examples of Isaac Newton's idea: 'If I have seen further, it is by standing on the shoulders of giants.' These individuals have influenced the thoughts and ideas that will be shared in this talk today.
00:06:48.580
As you embark on your journey of intellectual creation, remember that every thought you ever had was a message sent by someone else. So, be humble.
00:07:07.940
That concludes part one: Creating the Machines. Now, for part two, Ruby on Robots.
00:07:15.500
For this section, I would like to introduce some of my colleagues at Hybrid Group. We have Adrian Zanuck, our flight engineer; my brother Damon Evans, the test pilot; and Sean Engorley, our photographer at large.
00:07:29.770
There’s a question many have asked: Is innovation dead? Some claim we’ve invented everything there is to invent. But I say that's nonsense. Innovation is not dead; it's all around us. As William Gibson said, 'The future is already here; it's just not evenly distributed.' In 2009, when my brother Damon and I showcased the first Ruby-powered unmanned aerial vehicle, we had pieced together various parts ordered from China. Times have changed since then; you can now buy a drone at Sharper Image or a robotic vacuum at Best Buy. The future is already here, but the challenge lies in making it do something useful.
00:08:15.120
When we built our Ruby-powered flying robot, it was incredibly difficult. Achieving anything useful requires integrating not just hardware but also software. That's what's holding back the advancements in robotics. Today, I am proud to introduce R2, a Ruby-powered microframework for robotics and physical computing. It supports multiple hardware devices, allowing for communication with various devices concurrently.
00:08:35.300
Many believe that Ruby doesn't scale, but they don't realize something called Celluloid. Celluloid is a framework created by the brilliant Tony Arcieri, and it incorporates powerful ideas from influential thinkers I shared earlier. The key points are Rob Pike's talks on concurrency and parallelism, and Alan Kay's ideas about message passing. Celluloid takes a different approach to message handling in Ruby.
00:09:19.890
In Ruby, when we call a method, we expect it to execute immediately. However, Celluloid allows us to understand that things can happen in time and space at different times. This is concurrency — when multiple tasks can happen simultaneously — and it should not be confused with parallelism, which involves breaking a task into smaller parts. Celluloid changes the way we think about handling messages in Ruby; every Ruby object can respond to these messages and act independently.
00:10:05.600
By combining Celluloid with Celluloid IO — an extension of Celluloid that enhances event-driven IO — we have a framework that allows us to use actor-based message handling while also incorporating TCP and UDP sockets. This creates a clean and efficient way to connect with hardware that utilizes event-driven programming.
00:10:56.900
R2 runs on JRuby because we need a Ruby implementation that supports real threading. My personal favorite is Rubinius, which has a powerful threading model and is built on the low-level virtual machine, making it very fast and compatible with various hardware platforms. The way R2 operates is by utilizing various design patterns, specifically the adapter pattern. Similar to Ruby on Rails, where database connections are managed, R2 allows a robot to communicate with various types of machines using an adapter.
00:12:15.750
This adapter establishes how we communicate with a device, which is crucial for basic communication and controlling its behavior. On top of that, R2 employs a publish and subscribe architecture, facilitating event communication back to the robot when different things occur, enabling it to respond and act appropriately.
00:12:50.750
In R2, device drivers are designed to control communication with the device, determining how we interact with it. As we script and code, the capabilities and nuances of R2 allow us to streamline robotics development and communication, making it much more accessible and efficient.
00:13:26.000
Now, let’s transition to part three, which is all about the practical applications of our framework.
00:14:10.020
I'm excited to show you a demo today! Let's dive into some practical examples of using R2. We’ll start with showcasing a robot system that relies on a series of hardware components. My brother Damon will introduce our favorite piece of hardware, the Arduino. Many of you might be familiar with them; they’re versatile and accessible.
00:14:29.740
Initially, when we started exploring hardware and robotics, Arduinos were new gadgets, usually available only online or through DIY methods. Thankfully, you can find them at local electronics stores like Radio Shack, which is back in business. We’ve created a prototyping board where we link various components together for our demonstrations.
00:14:58.030
Now, let’s take a look at some code setup. Here’s a very simple R2 program. I hope you can see the code clearly. We’re requiring the R2 gem and using an adapter called Fermata, which establishes a connection to the Arduino for communication with its digital and analog input/output.
00:15:17.670
This example demonstrates how to communicate with the Arduino using the socket-to-serial interface. We’ll toggle an LED on the board every second, providing a straightforward demonstration of our hardware communication.
00:15:43.050
Next, we will run another sketch, this one allowed for interaction using a button that has been wired up to query the Fermata to get button events, showcasing how we can instruct the LED to toggle on button presses. This interactive capability illustrates the ease of R2’s implementation with real-time hardware control.
00:16:02.490
Building off that functionality, we’ve set the stage to introduce another piece of innovative hardware: Sphero. This is an incredible robotic toy that offers a lot of potential for interactive projects. Damon will now provide insight into Sphero’s functionalities and features.
00:16:30.890
The Sphero is essentially a ball that can be controlled wirelessly. Within it, you'll find various sensors and motors that facilitate movement through a change in weight distribution. It also has LED lights that allow for visual effects, enhancing our robotic applications.
00:17:10.000
As we explore further applications and demonstrate interaction with the Sphero, we can link it using Bluetooth. With the proper setup, we can issue commands and responses, allowing us to create interesting and engaging interactions.
00:17:32.890
By programming the Sphero to roll in a random direction using the R2 framework, we can create less predictable behavior while demonstrating robotics principles. Furthermore, controlling it through physical interactions, such as buttons and movements, enhances the user's experience.
00:18:12.560
While it is important to demonstrate a variety of functionalities, we should also emphasize the importance of coding. Understanding how to manage these robotic toys is crucial for developers as they work on embedding intelligence within their creations, utilizing programming to harness the true capabilities of hardware.
00:19:05.220
We can program the actions of multiple Spheros to interact with one another, allowing for more dynamic and complex setups, paving the way for swarm behaviors in robotics. This showcases how R2 allows easy setup for multiple devices while demonstrating various patterns of interaction that can be achieved with incremental coding.
00:19:46.000
Now, let’s take a step forward and see how we can combine R2 with the AR. Drone. This drone can demonstrate the practical applications of how various hardware platforms can be controlled and operated together. It utilizes a slightly different interface but demonstrates the same underlying principles of our robotics framework.
00:20:22.820
As we set up to execute commands to the AR. Drone, we can show real-time responses through its navigation capabilities, combining visual feedback with command execution. Demonstrating how all of these systems can work in tandem really brings our understanding of robotics to life.
00:20:56.300
By showing how the drone can take off, operate, and return safely, we highlight the advantages of our programming framework in managing complex tasks in real-time. Plus, with visual and interactive feedback, audiences can see how every component fits together into the larger robotics picture.
00:21:42.000
In conclusion, there’s so much practicality and potential in using R2 and combining it with various hardware platforms. We’ve just scratched the surface of its capabilities today. As developers and enthusiasts, it’s our duty to explore these possibilities further and expand the boundaries of what robotics can achieve.
00:22:58.000
If you’re interested in this technology, you can find more about what we've developed. Be sure to visit artoo.io for additional resources and information. This also opens the door for collaboration; we invite you to check out the GitHub, contribute, and help us improve this framework for others in the robotics community.
00:23:21.000
Now, it’s time for the final part of my keynote titled 'Welcome to the Machines.' Here, we will explore the impact of robotics and automation in our modern society and what that means for humanity moving forward.
00:23:43.750
As we embrace the robotic revolution, it is essential to consider the ramifications for the traditional workforce. The integration of intelligent robots into various industries raises questions about job security, ethical programming decisions, and the future interaction between humans and robots.
00:24:40.000
Importantly, will robots become sentient, and how will they behave towards us? The concept of robot ethics arises from questionings about whether robots will have their own intuition and moral compass—and how will that shape our coexistence? The future indeed looks both exciting and uncertain.
00:25:20.000
To illustrate these points, I’d like to reference a visualization I created based on scenario analysis of future interactions between robots and humans. If robots remain non-sentient and unfriendly, we remain in a dysfunctional cycle, reminiscent of the film Brazil. If they become intelligent yet adversarial, we may find ourselves facing the consequences portrayed in the Terminator movies.
00:26:10.000
Conversely, if robots become friendly yet lack intelligence, perhaps we find ourselves in leadership roles akin to cyborgs in sci-fi narratives. Ultimately, the ideal scenario would be the friendly robots achieving consciousness, which could usher in an era of collaboration—where we are no longer adversaries but allies.
00:26:50.000
Isaac Asimov articulated three essential laws of robotics long ago. These laws intended to govern robot behavior and interactions with humans, promoting a safer integration of technology into society. We must reflect on how these principles have evolved and consider their relevance as we embrace the future.
00:27:30.000
Of course, it’s crucial to remember that current robotic capabilities are human-controlled processes, often resulting in outcomes beyond our intentions. Perhaps it’s more important to focus on how we, as creators, choose to implement robotics instead of just focusing on the technology itself.
00:28:12.000
In rethinking Asimov’s first law—that robots may not harm humans—let's explore how this may influence our technological landscape. Perhaps the future necessitates a deeper understanding of our own ethical frameworks as we venture deeper into the realm of robotics and automation.
00:28:52.000
As we look towards these possibilities, it becomes increasingly important for us as developers and innovators to engage actively in the, discussion on robotics and automated systems. It’s our responsibility to embrace not only the technology but also the principles of ethics, morality, and empathy that will ensure a positive future.
00:29:32.000
This journey into robotics is as much about the human experience as it is about the technology itself. Let’s strive to keep humanity at the forefront of our advancements as we move into an era populated by machines.
00:30:10.000
Thank you for allowing me to share this vision with you today. I am excited about the future, and I hope you are too! Let’s work together to shape a hopeful and constructive future for robotics technology.