The Robot Operating System (ROS) 101

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?

Safety Systems For Stopping An Uncontrolled Drone Crash

We spend a lot of time here at Hackaday talking about drone incidents and today we’re looking into the hazard of operating in areas where people are present. Accidents happen, and a whether it’s a catastrophic failure or just a dead battery pack, the chance of a multi-rotor aircraft crashing down onto people below is a real and persistent hazard. For amateur fliers, operating over crowds of people is simply banned, but there are cases where professionally-piloted dones are flying near crowds of people and other safety measures need to be considered.

We saw a skier narrowly missed by a falling camera drone in 2015, and a couple weeks back there was news of a postal drone trial in Switzerland being halted after a parachute system failed. When a multirotor somehow fails while in flight it represents a multi-kilogram flying weapon widow-maker equipped with spinning blades, how does it make it to the ground in as safe a manner as possible? Does it fall in uncontrolled flight, or does it activate a failsafe technology and retain some form of control as it descends?

Continue reading “Safety Systems For Stopping An Uncontrolled Drone Crash”

Designing An Advanced Autonomous Robot: Goose

Robotics is hard, maybe not quite as difficult as astrophysics or understanding human relationships, but designing a competition winning bot from scratch was never going to be easy. Ok, so [Paul Bupe, Jr’s] robot, named ‘Goose’, did not quite win the competition, but we’re very interested to learn what golden eggs it might lay in the aftermath.

The mechanics of the bot is based on a fairly standard dual tracked drive system that makes controlling a turn much easier than if it used wheels. Why make life more difficult than it is already? But what we’re really interested in is the design of the control system and the rationale behind those design choices.

The diagram on the left might look complicated, but essentially the system is based on two ‘brains’, the Teensy microcontroller (MCU) and a Raspberry Pi, though most of the grind is performed by the MCU. Running at 96 MHz, the MCU is fast enough to process data from the encoders and IMU in real time, thus enabling the bot to respond quickly and smoothly to sensors. More complicated and ‘heavier’ tasks such as LIDAR and computer vision (CV) are performed on the Pi, which runs ‘Robot operating system’ (ROS), communicating with the MCU by means of a couple of ‘nodes’.

The competition itself dictated that the bot should travel in large circles within the walls of a large box, whilst avoiding particular objects. Obviously, GPS or any other form of dead reckoning was not going to keep the machine on track so it relied heavily on ‘LiDAR point cloud data’ to effectively pinpoint the location of the robot at all times. Now we really get to the crux of the design, where all the available sensors are combined and fed into a ‘particle filter algorithm’:

What we particularly love about this project is how clearly everything is explained, without too many fancy terms or acronyms. [Paul Bupe, Jr] has obviously taken the time to reduce the overall complexity to more manageable concepts that encourage us to explore further. Maybe [Paul] himself might have the time to produce individual tutorials for each system of the robot?

We could well be reading far too much into the name of the robot, ‘Goose’ being Captain Marvel’s bazaar ‘trans-species’ cat that ends up laying a whole load of eggs. But could this robot help reach a de-facto standard for small robots?

We’ve seen other competition robots on Hackaday, and hope to see a whole lot more!

Video after the break: Continue reading “Designing An Advanced Autonomous Robot: Goose”

LEGO-Based Robot Arm With Motion Planning

Robotic arms have found all manner of applications in industry. Whether its welding cars, painting cars, or installing dashboards in cars, robotic arms can definitely do the job. However, you don’t need to be a major automaker to experiment with the technology. You can build your own, complete with proper motion planning, thanks to Arduino and ROS.

Motion planning is important, as it makes working with the robotic arm much easier. Rather than having to manually specify the rotation of each and every joint for every desired movement, instead mathematics is used to figure everything out. End effectors can be moved, and software will figure out the necessary motions required to achieve the end results. This functionality is baked into Robot Operating System (ROS) and proves useful to this project.

The construction of this particular arm is impressive in its simplicity, too. It has 7 degrees of freedom, which is plenty to play with. The arm is built out of LEGO Technic components, which are attached to the servos with the addition of some 3D printed components. It’s a smart and simple way to integrate the servos into the LEGO world, and we’re surprised we don’t see this more often.

Robotic arms remain an area of active research; there are even efforts to allow them to self-correct in the event of damage. Video after the break.

Continue reading “LEGO-Based Robot Arm With Motion Planning”

Robot Harvesting Machine Is Tip Of The Agri-Tech Iceberg

Harvesting delicate fruit and vegetables with robots is hard, and increasingly us humans no longer want to do these jobs. The pressure to find engineering solutions is intense and more and more machines of different shapes and sizes have recently been emerging in an attempt to alleviate the problem. Additionally, each crop is often quite different from one another and so, for example, a strawberry picking machine can not be used for harvesting lettuce.

A team from Cambridge university, UK, recently published the details of their lettuce picking machine, written in a nice easy-to-read style and packed full of useful practical information. Well worth a read!

The machine uses YOLO3 detection and classification networks to get localisation coordinates of the crop and then check if it’s ready for harvest, or diseased. A standard UR10 robotic arm then positions the harvesting mechanism over the lettuce, getting force feedback through the arm joints to detect when it hits the ground. A pneumatically actuated cutting blade then attempts to cut the lettuce at exactly the right height below the lettuce head in order to satisfy the very exacting requirements of the supermarkets.

Rather strangely, the main control hardware is just a standard laptop which handles 2 consumer grade USB cameras with overall combined detection and classification speeds of about 0.212 seconds. The software is ROS (Robot Operating System) with custom nodes written in Python by members of the team.

Although the machine is slow and under-powered, we were very impressed with the fact that it seemed to work quite well. This particular project has been ongoing for several years now and the machine rebuilt 16 times! These types of machines are currently (2019) very much in their infancy and we can expect to see many more attempts at cracking these difficult engineering tasks in the next few years.

We’ve covered some solutions before, including: Weedinator, an autonomous farming ‘bot, MoAgriS, an indoor farming rig, a laser-firing fish-lice remover, an Aussie farming robot, and of course the latest and greatest from FarmBot.

Video after the break:

Continue reading “Robot Harvesting Machine Is Tip Of The Agri-Tech Iceberg”

Nvidia Jetson Robots Get A Head Start With Isaac Software Tools

We live in an exciting time of machine intelligence. Over the past few months, several products have been launched offering neural network processors at a price within hobbyist reach. But as exciting as the hardware might be, they still need software to be useful. Nvidia was not content to rest on their impressive Jetson hardware and has created a software framework to accelerate building robots around them. Anyone willing to create a Nvidia developer account may now play with the Isaac Robot Engine framework.

Isaac initially launched about a year ago as part of a bundle with Jetson Xavier hardware. But the $1,299 developer kit price tag pushed it out of reach for many of us. Now we can buy a Jetson Nano for about a hundred bucks. For those familiar with Robot Operating System (ROS), Isaac will look very familiar. They both aim to make robotic software as easy as connecting common modules together. Many of these modules called GEMS in Isaac were tailored to the strengths of Nvidia Jetson hardware. In addition to those modules and ways for them to work together, Isaac also includes a simulator for testing robot code in a virtual world similar to Gazebo for ROS.

While Isaac can run on any robot with an Nvidia Jetson brain, there are two reference robot designs. Carter is the more expensive and powerful commercially built machine rolling on Segway motors, LIDAR environmental sensors, and a Jetson Xavier. More interesting to us is the Kaya (pictured), a 3D-printed DIY robot rolling on Dynamixel serial bus servos. Kaya senses the environment with an Intel RealSense D435 depth camera and has Jetson Nano for a brain. Taken together the hardware and software offerings are a capable and functional package for exploring intelligent autonomous robots.

It is somewhat disappointing Nvidia decided to create their own proprietary software framework reinventing many wheels, instead of contributing to ROS. While there are some very appealing features like WebSight (a browser-based inspect and debug tool) at first glance Isaac doesn’t seem fundamentally different from ROS. The open source community has already started creating ROS nodes for Jetson hardware, but people who work exclusively in the Nvidia ecosystem or face a time-to-market deadline would appreciate having the option of a pre-packaged solution like Isaac.

Welding Robot Takes On A Hot, Dirty, Dangerous Job

They used to say that robots would take over the jobs too dirty or dangerous for humans. That is exactly what [Joel Sullivan] had in mind when he created this welding robot. [Joel] designed the robot for the OSB industry. No, that’s not a new operating system, it’s short for Oriented Strand Board. An engineered lumber, OSB is made of strands (or chips) of wood. It’s similar to plywood but doesn’t require large thin sheets of lumber. To make a panel of OSB, a 5-inch thick matt of wood chips is mixed with glue and compressed down to 5/16″ at 7500 PSI and 400° F.

The presses used to make OSB are a massively parallel operation. 20 or more boards can be pressed at once. Thy press is also a prime area for damage. A nut or bolt hidden in the wood will dig into the press, causing a dent which will show up on every sheet which passes through that section. The only way to fix the press is to shut it down, partially dismantle it, and fill the void in with a welder. [Joel’s] robot eliminates most of the downtime by performing the welding on a still hot, still assembled press.

The robot looks like it was inspired by BattleBots, which is fitting as the environment it works in is more like a battleground. It’s a low, wide machine. In the front are two articulated arms, one with a welder, and one with a die grinder. The welder fills any voids in the press platen, and the die grinder grinds the fresh welds flat.  An intel NUC controls things, with plenty of motor drives, power supplies, and relays on board.

[Joel’s] bot is tethered, with umbilicals for argon, electricity and compressed air. Air travels through channels throughout the chassis and keeps the robot cool on the hot press. Everything is designed for high temperatures, even the wheels. [Joel] tried several types of rubber, but eventually settled on solid aluminum wheels. The ‘bot doesn’t move very fast, so there is plenty of traction. Some tiny stepper motors drive the wheels. When it’s time to weld, pneumatic outriggers lock the robot in place inside the narrow press.

Cameras with digital crosshairs allow the operator to control everything through a web interface. Once all the parameters are set up, the operator clicks go and sparks fly as the robot begins welding.

If you’re into seriously strong robots, check out trackbot, or this remote-controlled snow blower!

Continue reading “Welding Robot Takes On A Hot, Dirty, Dangerous Job”