Sensors are critical in robotics. A robot relies on its sensor package to perform its programmed duties. If sensors are damaged or non-functional, the robot can perform unpredictably, or even fail entirely. [Dheera Venkatraman] has been working to make debugging sensor issues easier with the rosshow package for Robot Operating System.
Normally, if you want to be certain a camera feed is working on a robot, normally you’d have to connect a monitor and other peripherals, check manually, then put everything away again when you’re finished. [Dheera] considered this was altogether too much of a pain for basic sensor checks.
Instead, rosshow uses the power of SSH to speed things along. Log in to the robot, fire off a few command line instructions, and rosshow will start displaying sensor data in the terminal on your remote machine. It’s achieved through the use of Unicode Braille art in the terminal. Sure, you won’t get a full-resolution feed from your high-definition camera, and the display from the laser scanner isn’t exactly perfect. But it’s enough to provide an instant verification that sensors are connected and working, and will speed up those routine is-it-connected checks by an order of magnitude.
Putting autonomous vehicles on public roads takes major resources beyond most of our means. But we can explore all the same general concepts at a smaller scale by modifying remote-control toy cars, limited only by our individual budgets and skill levels. For those of us whose interest and expertise lie in software, Amazon Web Services just launched AWS DeepRacer: a complete package for exploring machine learning on autonomous vehicles.
At a hardware level, the spec sheet makes it sound like they’ve bolted their AWS DeepLens machine vision computer on an 1/18th scale monster truck chassis. But the hardware is only the tip of the iceberg. The software behind DeepRacer is AWS RoboMaker, a set of tools for applying AWS to robot development. Everything from running digital simulations on AWS to training neural networks on AWS. Don’t know enough about machine learning? No problem! Amazon has also just opened up their internal training curriculum to the world. And to encourage participation, Amazon is running a DeepRacer League with races taking place both digitally online and physically at AWS Summit events around the world. They’ve certainly offered us a full plate at their re:Invent conference this week.
So if the goal is to start racing little autonomous cars, we have options to buy pre-built hardware or enjoy the flexibility of building our own. Either way, it’s just another example of why this is a great time to get into neural networks, with or without companies like Amazon devising ways to earn our money. Of course, this isn’t the only Amazon project trying to build a business around an idea explored by an existing open source project. We had just talked about their AWS Ground Station offering which covers similar ground (sky?) as our 2014 Hackaday Prize winner SatNOGS.
Microsoft is bringing ROS to Window 10. ROS stands for Robot Operating System, a software framework and large collection of libraries for developing robots which we recently wrote an introductory article about, It’s long been primarily supported under Linux and Mac OS X, and even then, best under Ubuntu. My own efforts to get it working under the Raspbian distribution on the Raspberry Pi led me to instead download a Pi Ubuntu image. So having it running with the support of Microsoft on Windows will add some welcome variety.
To announce it to the world, they had a small booth at the recent ROSCon 2018 in Madrid. There they showed a Robotis TurtleBot 3 robot running the Melodic Morenia release of ROS under Windows 10 IoT Enterprise on an Intel Coffee Lake NUC and with a ROS node incorporating hardware-accelerated Windows Machine Learning.
Why are they doing this? It may be to help promote their own machine learning products to roboticists and manufacturing. From their recent blog entry they say:
We’re looking forward to bringing the intelligent edge to robotics by bringing advanced features like hardware-accelerated Windows Machine Learning, computer vision, Azure Cognitive Services, Azure IoT cloud services, and other Microsoft technologies to home, education, commercial, and industrial robots.
Initially, they’ll support ROS1, the version most people will have used, but also have plans for ROS2. Developers will use Microsoft’s Visual Studio toolset. Thus far it’s an experimental release but you can give it a try by starting with the details here.
A robot is made up of many hardware components each of which requires its own software. Even a small robot arm with a handful of servo motors uses a servo motor library.
Add that arm to a wheeled vehicle and you have more motors. Then attach some ultrasonic sensors for collision avoidance or a camera for vision. By that point, you’ve probably split the software into multiple processes: one for the arm, another for the mobility, one for vision, and one to act as the brains interfacing somehow with all the rest. The vision may be doing object recognition, something which is computationally demanding and so you now have multiple computers.
Break all this complexity into modules and you have a use case for ROS, the Robot Operating System. As this article shows, ROS can help with designing, building, managing, and even evolving your robot.
Small wheeled robots are great for exploring robotics and it’s easier than ever to get started, thanks to growing availability and affordability of basic components. One such component is a small motorized wheel assembly commonly shown when searching for “robot wheel”: a small DC motor mounted in a gearbox to drive a single plastic wheel (inevitably yellow) on which a thin rubber tire has been mounted for traction. Many projects have employed these little motor + gearbox + wheel modules, such as these three entries for 2018 Hackaday Prize:
BoxBotics takes the idea of an affordable entry point and runs with it: build robot chassis for these wheels out of cardboard boxes. (Maybe even the exact box that shipped the yellow wheels.) Cardboard is cheap and easy to work with, making cardboard projects approachable to any creative mind. There will be an audience for something like a Nintendo Labo for robotics, and maybe BoxBotics will grow into that offering.
Cing also intends to make a friendly entry point for robotics and they offer a different chassis solution. Instead of cardboard, they use a circuit board. The yellow gearbox is mounted directly to the main circuit board making it into the physical spine, along with its copper traces serving as the spinal cord of the robot. While less amenable to mechanical creativity than BoxBotics, Cing’s swappable modules might be a better fit for those interested in exploring electronics.
ROS Starter Robot caters to those who wish to go far beyond simple “make it move” level of robot intelligence. It aims to lower the barrier to enter the world of ROS (robot operating system) which has historically been the domain of very capable (but also very expensive) research-oriented robots. This project could become the bridge for aspiring roboticists who wish to grow beyond hobbyist level software but can’t justify the cost typical of research level hardware.
All three of these projects take the same simple motorized wheel and build very different ideas on top of them. This is exactly the diversity of ideas we want to motivate with the Hackaday Prize and we hope to see great progress on all prize contestants in the month ahead.
The robot runs on Robot Operating System at its core. ROS is interesting because of its decentralized and input/output agnostic messaging system. For example, if you leave everything alone but swap out the motor output from actual motors to a simulator, you can see how the robot would respond to any arbitrary input.
[Nurgak] uses another piece of software called V-REP to demonstrate this. V-REP is a simulation suite for robotics and has a few ROS nodes built in. So in order to make a simulated line-following robot, [Nurgak] tells V-REP to send a simulated camera image to the decision making node of the robot in ROS. It then sends the movement messages back to V-REP which drives the pretend robot around.
He runs through a few more examples, proving that it’s entirely possible to become if not a roboticist, at least a really good AI programmer without ever dropping the big money on parts to build a robot.
[Jack Qiao] wanted an autonomous robot that could be handy around an ever-changing shop. He didn’t want a robot he’d have to baby sit. If he said, ‘bring me the 100 ohm resistors’, it would go find and bring them to him.
He iterated a bit, and ended up building quite a nice robot platform for under a thousand dollars. It’s got a realsense camera and a rangefinder from a Neato robotic vacuum. In addition to a mircrophone, it has a whole suite of additional sensors in its base, which is a stripped down robotic vacuum from a Korean manufacturer. A few more components come together to give it an arm and a gripper.
The thinking is done on a Nvidia Jetson TK1 board. The cores on the integrated graphics card are used to perform faster computer vision calculations. The software is all ROS based.
As can be seen in the video after the break. The robot uses SLAM techniques to successfully navigate and complete tasks such as fetch resistors, get water, and more. [Jack Qiao] is happy with his robot, and we would be too.