We don’t have to tell you that drones are all the rage. But while new commercial models are being released all the time, and new parts get released for the makers, the basic technology used in the hardware hasn’t changed in the last few years. Sure, we’ve added more sensors, increased computing power, and improved the efficiency, but the key developments come in the software: you only have to look at the latest models on the market, or the frequency of Git commits to Betaflight, Butterflight, Cleanflight, etc.
With this in mind, for a Hackaday prize entry [int-smart] is working on a quadcopter testbed for developing algorithms, specifically localization and mapping. The aim of the project is to eventually make it as easy as possible to get off the ground and start writing code, as well as to integrate mapping algorithms with Ardupilot through ROS.
The initial idea was to use a Beaglebone Blue and some cheap hobby hardware which is fairly standard for a drone of this size: 1250 kv motors and SimonK ESCs, mounted on an f450 flame wheel style frame. However, it looks like an off-the-shelf solution might be even simpler if it can be made to work with ROS. A Scanse Sweep LIDAR sensor provides point cloud data, which is then munched with some Iterative Closest Point (ICP) processing. If you like math then it’s definitely worth reading the project logs, as some of the algorithms are explained there.
It might be fun to add FPV to this system to see how the mapping algorithms are performing from the perspective of the drone. And just because it’s awesome. FPV is also a fertile area for hacking: we particularly love this FPV tracker which rotates itself to get the best signal, and this 3D FPV setup using two cameras.
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.
Continue reading “Modular Robotics Made Easier With ROS”
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.
[Nurgak] shows how one can use some of the great robotic tools out there to simulate a robot before you even build it. To drive this point home he builds the tutorial off of the easily 3D printable and buildable Robopoly platform.
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.
Continue reading “Hackaday Prize Entry: BunnyBot Helps Out All On Its Own”
Hackerboards got a chance to sit down with Intel’s latest attempt to turn hackers into a willing and steady revenue stream, the, “Euclid.” The board is cool in concept, a full mini computer with stereo cameras, battery, Ubuntu, and ROS nicely packaged together.
We would be more excited if we knew how much it costs, but in principle the device is super cool. From a robotics research perspective it’s a sort of perfect package. ROS is a wonderful distributed and asynchronous robotic operating system, test, and development platform. The Intel developers designed this unit around the needs of ROS and it comes pre-installed on the camera.
For those who haven’t used ROS before, this is a really cool feature. ROS is natively distributed. It really doesn’t care where the computer supplying its data lives. So, for example, if you already had a robot and wanted to add stereo vision to it. You could offload all the vision processing components of your existing ROS codebase to the Euclid and continue as if nothing changed.
The other option is to use the board as the entire robot brain. It’s self contained with battery and camera. It’s a USB to serial connection away from supercharging any small robotics project.
Unfortunately the board is still a demo, and based on Intel’s history, likely to be too expensive to lure ordinary hackers away from the RasPis and import cameras they already know how to hack together into more or less the same thing. Universities will likely be weak at the knees for such a development though.
Let’s face it: 3-dimensional odometry can be a computationally expensive problem often requiring expensive 3D cameras and optimized algorithms that can be difficult to wrap our head around. Nevertheless, researchers continue to push the bounds of visual odometry forward each year. This past year was no exception, as [Christian], [Matia], and [Davide] have tipped the scale in terms of speed with an algorithm that can track itself in 3D in real time.
In the video (after the break), the landmarks are sparse, the motion to track is relentlessly jagged, but SVO, or Semi-Fast Visual Odometry [PDF warning], keeps tracking its precision with remarkable consistency, making use of “high frequency texture” as a reference. Several other implementations require two cameras or a depth camera variant, but not SVO. It uses a single camera with a high frame rate between 55 and 300 frames per second. Best of all, the trio at the University of Zürich have made their codebase open source and available as a package for ROS.
Continue reading “Insanely-Quick 3D Tracking with 1 Camera”