Robotics is an enormous, poorly defined field. Ask ten different people what a robot is and you’ll likely get ten different answers. Some people might call ChatGPT a robot, since it can simulate human intelligence. Others might call a dishwasher a robot, since it has moving parts and does a task on its own. Even one of the early pioneers of robotics, Joseph Engelberg, once said "I can't define a robot, but I know one when I see one." So where does that leave us?
For our purposes here, I will be focusing on a more traditional definition of a robot: a physical agent capable of perceiving and interacting with its environment autonomously. Think more Roomba, less chatbot.
Following this definition, we need a robot to be able to do three things:
- Interaction – it needs to have some way to actually do something in the world, either by moving around inside the world, or by directly picking up objects and manipulating them.
- Perception – it needs to be able to learn something about the world around it
- Computation – it needs to be able to think about what to do on its own
In order for a robot to be useful, we want it to do all three of these.
How a robot interacts with the world is perhaps the most intuitive. Using a variety of physical tools – wheels, batteries, motors, arms, joints – most of us have an understanding of how different parts of a physical machine can work together to make something move.
Where it gets trickier is, how does a robot develop a sense of the world around it? Decades of research developing more and more advanced sensors has left roboticists with an enormous arsenal of sensors at their disposal.
Perhaps the simplest sensor a robot can have is simply a bump sensor. This sensor is essentially a giant button that, when pressed, lets the robot know that the bump sensor is in contact with something. Roombas, for example, have an enormous bump sensor in their front that is activated whenever the Roomba collides with something in its environment. This information can then be communicated to the Roomba’s computer, which then figures out how to move the Roomba. Bump sensors are excellent safety tools as well, as a robot won’t know that it needs to stop unless it knows that it has bumped into something.
Another commonly used sensor you’ll find on robots is a camera. With the advent of neural networks in computer vision, cameras have become even more effective tools to aid robots in understanding their environment. They can be used to detect and identify different objects in their environment, as well as how far away they are. Standard cameras can see the same visual spectrum of light that human eyes can see, but we are not limited to visible light when it comes to designing cameras. We can even incorporate infrared or ultraviolet cameras capable of seeing light totally invisible to humans. Cameras are cheap, lightweight, and massively versatile, making them a perfect choice to include as a sensor for your robot.
A robot can have sonar (Sound Navigation And Ranging), a tool for precisely measuring how far away an object is. While many people associate sonar with submarines, sonars have actually become reasonably popular as tools for land as well, with many newer cars even having a small sonar to help drivers know that an unseen obstacle might be near, or to help them park in tight situations.
The key concept behind sonar is called the “time of flight” principle, and the mathematics behind it is reasonably simple. Imagine that Superman is flying 1000 miles per hour. It is obvious that after flying an hour, we know that Superman would have traveled 1000 miles. Similarly, if he were to fly for half an hour, we would know he traveled 500 miles.
Now, let's say Superman flies straight from Metropolis to Gotham City, then instantaneously turns around and flies back to Metropolis(maybe he saw the bat signal and knew Bruce Wayne would take care of it). If he was flying at 1000 miles per hour, and it was 1 hour between when he left and returned to Metropolis, we know that he must have traveled 500 miles to Gotham and then 500 miles back, and thus, Gotham City is 500 miles away from Metropolis.
This is the time of flight principle. If we know how fast something is traveling and how long it takes to get from point A to B, we can use that to calculate how far away A is from B. Sonar works the exact same way, only instead of Superman, we are measuring how fast a sound wave takes to travel and then bounce back. And since we know the speed of sound, if we make a noise while timing how long it takes for us to hear its echo, we can use the time of flight principle to calculate how far away the object was.
One of the more complicated sensors commonly used in robotics is called LIDAR, or Light Detection And Ranging. LIDAR also uses the time of flight principle, but in a much more complex way. Firstly, instead of measuring the time of flight of sound, LIDAR uses the time of flight of laser beams to detect how far away an object is. Secondly, instead of only detecting how far away a single object is, LIDAR points lasers in every direction and in 3 dimensions. For every single point that the laser shone on, we now know the distance to that point. We can compile all of this point distance data into what is called a “point cloud,” pictured below:
Hopefully, you now have some understanding of the tools robots have available to them to make sense of their environment.
Comments