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”
The Robot Operating System (ROS) is typically associated with big robots but [Grassjelly] decided to prove differently by creating Linorobot. This small, differential drive robot is similar in appearance to many small Arduino based robots often used for line following. Linorobot packs a lot more computing power with a Teensy 3.1 connected to a Radxa Rock Pro. The Teensy handles the motors, reading their encoders, and acquisition of IMU data.
The Radxa, new to us here at Hackaday, is a single board computer based on the quad-core ARM Cortex-A9 1.6 GHz CPU. It may not have been seen on our pages but if you’re at Hackaday Belgrade you can attend a session on building a cluster using it. The ability to run Linux is key to using ROS, which is an open source system for controlling robots. With the Radxa running ROS it interfaces directly to the Neato XV-11 Lidar’s dedicated controller board.
Avoiding the hand.
Mapping with lidar.
The Linorobot packs into a small robot the capabilities usually seen in much larger and expensive robots such as the Turtlebot 2. With this diminutive robot hackers can learn about doing SLAM (Simultaneous Localization and Mapping) and autonomous navigation, plus the other capabilities of ROS.
[Grassjelly] has a tutorial on building the robot which is also a good introduce to ROS. He provides the software as open source. It’s an impressive project which provides a small, comparatively affordable robot for learning and working with ROS. A video of Linorobot SLAMing and navigating [Grassjelly’s] lab is after the break.
Continue reading “Petite Package Provides Powerful Robot”
Ever heard about the Robot Operating System? It’s a BSD-licensed open-source system for controlling robots, from a variety of hardware. Over the years we’ve shared quite a few projects that run ROS, but nothing on how to actually use ROS. Lucky for us, a robotics company called Clearpath Robotics — who use ROS for everything — have decided to graciously share some tips and tricks on how to get started with ROS 101: An Introduction to the Robot Operating System.
The beauty of the ROS system is that it is made up of a series of independent nodes which communicate with each other using a publish/subscribe messaging model. This means the hardware doesn’t matter. You can use different computers, even different architectures. The example [Ilia Baranov] gives is using an Arduino to publish the messages, a laptop subscribed to them, and even an Android phone used to drive the motors — talk about flexibility!
It appears they will be doing a whole series of these 101 posts, so check it out — they’ve already released numéro 2, ROS 101: A Practical Example. It even includes a ready to go Ubuntu disc image with ROS pre-installed to mess around with on VMWare Player!
And to get you inspired for using ROS, check out this Android controlled robot using it! Or how about a ridiculous wheel-chair-turned-creepy-face-tracking-robot?
We have no idea why, but since we featured Botiful, the Android-powered telepresence robot a few days ago, the tip line has been awash in robot/Android mashups. Here’s a few of the cool ones.
Using an Android as a remote control
[Stef] used a Samsung Galaxy S3 to control an old rc tank. The Android sends accelerometer and gyro data over Bluetooth to an Android where it powers a pair of H-bridges to turn the wheels.
Turning Android into a Robotic Operating System
ROS, or the Robot Operating System, provides a bunch of utilities for any type of robot such as point-cloud mapping to multi-joint arm control. [Lentin] sent in a guide on installing ROS on Android. So far, he can get accelerometer data, stills from the on-board camera, have the robot speak and use the small vibrator motor. Here’s a (somewhat limited) demo of [Lentin] playing with ROS in a terminal.
“Just a quick procrastination project”
Last May, [Josh] wrote in asking if a tread-based robot controlled through Skype would be a cool idea. We said ‘hell yeah’ and [Josh] scurried off to his workshop for a few months. He’s back with his tank-based robot. One really interesting bit is the robot responds to DTMF tones, allowing it to be controlled through Skype without any additional hardware. That’s damn clever. You can see a video of the SkypeRobot after the break.
Continue reading “Android Controlled Robot Extravaganza”