Best deals this week #2

In my research for products/articles/information related to robotics, I chose a list of discounts on prices for products used in robotics. The list includes robotics kits and hardware components. Below you can find them together with the online store where you can buy those products.

Amazon:

Sparkfun:

RobotShop:

Please help. What do you use as your third hand?

Some time ago I bought a third-hand kit from Sparkfun. Aside from the fact that from my mistakes I broke one of the arms, I tried to use the other one as much as possible. Until now, the unbroken arm has accomplished his mission if I use it to solder thin wires.

I could not say that I was very pleased with the choice made. Also, this kind of kit can be used only for wires. If you want to solder a pin to a sensor…becomes a nightmare. So, I need a third hand to be stable and fix in place some large components like sensors, controllers, and even small DC motors.

I saw in this video a small vise, similar to this. I think that is exactly what I need.

Is there anyone who used such a vise to help me with an opinion? Also, any other solution is welcome.

Home Vise

Home Vise

Few Ideas About Tank Chassis for Robotics Applications

I’ve been playing over the years with a series of robotic kits including two tracked robots[one, two, three]. The experience of using a robot tank versus a robot on wheels is different for the most part.

I like these platforms because are capable to overcome obstacles much easier than a wheeled robot. For me, this was the most exciting thing about these.

The downside was that the driving speed is lower for a robot tank compared with a robot on wheels with the same specifications for DC motors. Another disadvantage would be the plastic tracks that are not very resistant. The good thing is that these can be replaced very easily.

Since last year catches my attention a series of metal platforms with tank tracks. These platforms usually come with a metallic chassis, two DC motors, and that’s all. The small number of components included in the kit has the advantage of letting the user choose which motor driver and controller to use. Since most platforms have two 6 or 9V motors, choosing the motor driver is not difficult.

Choosing the motor driver also leads to the choice of the controller. Among the options are the most used DIY boards – Arduino and Raspberry Pi.

Another feature of these robot platforms is the space. The metal chassis and the tank track that distribute the weight of the robot over its entire surface, allow the platform to be loaded with a higher number of accessories and high capacity batteries. You want to attach a robotic arm, a series of sensors, a large battery, a webcam, all of which can be attached to the chassis – one at a time or all at once.

Another feature of these platforms is the ease with which the user can assemble them. A chassis kit with wheels has several components to assemble, so there may be assembly errors or you need a manual to get to the final product. On a chassis track kit, things are simpler. There are fewer components to assemble, so the space for errors in assembling is much smaller. Usually, there is no need for a manual to assemble such kits.

Below I made a list of five such platforms. These are easy to assemble and control with an Arduino board if you want a remote controlled or autonomous robot. For a remote-controlled, Internet controlled or autonomous robot, Raspberry Pi 3 (WiFi and Bluetooth) is probably the best solution.

All the platforms are available on Amazon.

  • XiaoR Geek Big track Robot Car Chassis Smart Tank Platform | Price: $84.90
  • KOOKYE Robot Car Chassis Smart Tank Platform Metal | Price: $79.99
  • Mountain ark Tracked Robot Smart Car Platform Aluminum alloy Chassis | Price: $49.99
  • Devastator Tank Mobile Platform | Price: $108.90
  • Tracked Robot Smart Car Platform Metal Aluminium Alloy Tank Chassis | Price: $89.99

Two controllers for large DC motors: 4QD-200 and 4QD-300

4QD range: Reversing, 24V – 60V, 300A

4QD range: Reversing, 24V – 60V, 300A

4qd is a new name for me, but two motor controllers capture my attention. Lately, I’ve been looking for 24 / 36V DC motor controllers and 60A per channel. For 36V, the only viable option was the RoboteQ drivers. These motor drivers can support a lot of power, but the lack of support for Arduino boards is an impediment to me.

For 24V I have a choice between Sabertooth 2 x 60A, SmartDrive160 and Cytron. Working in the past with Sabertooth drivers with lower power, I chose to go this way. It works in the autonomous and manual mode, and is Arduino compatible.

The two 4QD (4QD-200 and 4QD-300) motor controllers have the power to work with large DC motors.

The most important specifications are:

  • can be used between 18v to 66v;
  • motor speed controllers for currents up to 300A;
  • direct voltage control, or PWM control by Pi or Arduino;
  • joystick and radio control;
  • regenerative braking;
  • reversing;
  • over temperature shutdown;
  • battery discharge protection;

The price is a measure of performance. Depending on the option selected, these can be purchased at a price starting with £249 and up to £399.

Honda Unveiled an Autonomous All-Terrain Robot Platform – 3E (Empower, Experience, Empathy)

Some interesting details:

  • the platform is full electric;
  • the tires are airless (you do not have to worry about not finding a vulcanization);
  • the user can send commands to the robot via a smartphone/tablet or a smart clock application;
  • the robot chassis is designed based on an ATV chassis (which leads me to think that the robot should resist quite well at rust and dirt, and move heavy loads);
  • the batteries can be charged directly to the platform or can be detached and charged separately;
  • the platform can host a number of modules used in various fields of activity for:
    • -moving tools or materials;
    • -search and rescue;
    • -lawn mower;
    • -harvesting;

As a first impression, I really like the Honda’s vision for an all-terrain robot. It’s a robot based on an ATV chassis, which means it’s rugged from all points of view. Using electricity, the platform can be recharged using solar panels. Sometimes this is the best solution when you are isolated in the wilderness and the nearest gas station is hundreds of kilometers away.

ROS 2 Ardent Apalone was officially released. I made a list of 5 reasons why you should use it for your robot.

Coincidentally or not, after 10 years of ROS 1, the Open Source Robotics Foundation has launched a new version called ROS 2. ROS 2 (the code name “Ardent Apalone” – Apalone is a genus of turtles in the family Trionychidae) was officially released at the end of 2017. The release of the new ROS has gone a little unobserved by the usual ROS users, and it is understandable since there are few articles in online about this release.

So in this article, I will try to describe why Ardent Apalone appeared and what gaps left by ROS 1 will be covered by the new ROS 2 version.

Before going into the subject, I will remind that ROS (The Robot Operating System) is not an operating system as we know. ROS (or ROS 1) is a solution designed to be hosted by an operating system like Linux. Or, as the majority calls it, this is a meta-operating system. And of course, it’s designed for robots.

Like ROS 1, the ROS 2 is the network of nodes that allows communication/exchange of information between the components used in the robot. So far, nothing new. Everything is the same as we know it today.

One of the reasons behind the launch of a completely new version (ROS 2) and not the improvement of ROS 1 is the significant changes to the framework. The team that developed ROS 2 has chosen to implement the new changes safely in the new framework. So, they did not want to alter the ROS 1 variant to not affect the performance and stability of the current versions of ROS. From my point of view, it’s a wise decision. Especially because there is a plan to implement the ROS 1 nodes to work with the ROS 2 nodes together on the same robot. So there will not be significant changes to the systems that will work with both ROS variants.

Below I made a list of the new features of ROS 2.

  1. Three compatible operating systems
    One of the news is that besides Linux, ROS 2 is compatible with Windows 10 and Mac OS X 10.12 (Sierra). If the support of OS X is not new (officially ROS 1 were compatible with OS X as an experimental part), the support for Windows is something new for ROS.
  2. Real-time support
    ROS 1 has not been designed for real-time applications. The goal of ROS 1 was to create a simple system that can be re-used on various platforms. In other words, the use of ROS has led to a significant reduction in the development of a robot.

    A real-time system must update periodically to meet deadlines. The tolerance to errors is very low for these systems.

    The example below is used by the ROS team to describe a situation when a system needs real-time support.

    A classic example of a controls problem commonly solved by real-time computing is balancing an inverted pendulum. If the controller blocked for an unexpectedly long amount of time, the pendulum would fall down or go unstable. But if the controller reliably updates at a rate faster than the motor controlling the pendulum can operate, the pendulum will successfully adapt react to sensor data to balance the pendulum. [source]

    In other words, the real-time support is more about computation delivered at the correct time and not performance. If a system fails to send a response is as bad as giving a wrong response. This new feature is very useful in safety- and mission-critical applications such as autonomous robots and space systems.

  3. Distributed discovery
    This new feature facilitates, in some way, the communication between nodes. In other words, the nodes in ROS 2 do not need the master node to change messages between them. If you run a C ++ written node and another in Python (a talker and a listener), the nodes will identify each other and start communicating automatically. You may be wondering how to identify the nodes if there is no master node to allow authentication. In ROS 2, the role of the master node was taken over by the ROS_DOMAIN_ID environment variable. When a ROS 2 node is launched, it makes its presence known in the network to other nodes that share the same ROS domain.
  4. Node lifecycle management

    Managed nodes are scoped within a state machine of a finite amount of states. These states can be changed by invoking a transition id which indicates the succeeding consecutive state. [source]

    The most important thing is that a managed node presents a known interface and is executed according to a known life cycle machine. This means that the developer can choose how to manage the life cycle functionality.

  5. Security
    ROS 1 had no security issues because it did not exist. With ROS 2 we can talk about security. It integrates the transport layer of ROS 1 with an industry standard transport layer that includes security. The layer is called Data Distribution System (DDS).

NVIDIA DRIVE Xavier is not bad

DRIVE Xavier is a board designed for the AI car systems that are used in self-driving and semi-autonomous cars. So the board must support a wide range of sensors plus the artificial intelligence algorithms.

According to the NVIDIA boss, the board should consume only 30 watts of power, which is not much for how many calculations it can make. Also, do not forget that this board will be used especially on electric cars and any watt consumed counts.

The most important features:

  • include a deep-learning accelerator
  • include a new computer-vision accelerators
  • can process 30 trillion operations per second;
  • 8-core CPU
  • 512-core Volta GPU
  • 8K HDR video processor
  • support the NVIDIA DRIVE software stack (AI software for autonomous driving)

PS: I’m almost sure that the price will have many zeros.

I made a police light application with a tower light and Arduino

A few days ago I bought a three-color tower light with buzzer for visual and audible alerts. And because I’m a big kid, I thought to build as the first application a game of lights in the style of a police car. The result will be seen at the bottom of this article.

Before entering into the connection and programming area, I give you some details about the product. The tower light has three colors and a buzzer. The tower can be easily controlled by an Arduino board, four N-channel MOSFETs or NPN transistors, and four resistors.

The light tower is branded Adafruit and produced in China. At least this is written on the product that I use in this tutorial. Also, there is a schema somewhere on it with Chinese letters. Thank you Adafruit!

Everywhere I’ve been looking for information about how it works and how I can control it, I’ve given this tutorial. The tutorial is dedicated to the RGB LED strips and less to a light tower. Generally, Adafruit produces good tutorials, so I think that I don’t have to make a great effort to turn ON the lights. But this time I was a bit misguided by the schema with connections found in the tutorial. For the NPN Bipolar Transistors (PN2222), I recommend you carefully look how the three pins of the transistor are located or use the schema from this article. When I connected the light tower just like in the Adafruit’s tutorial (the NPN schema), the result was a tower light that just makes some noise and has two lights on. Obviously, the pins of the transistors were wrongly connected.

Let’s get to the practical side.

Components:

  • 1 X Tower Light – Red Yellow Green Alert Light & Buzzer (I buy it from here, but you can buy it also from Amazon)
  • 4 X NPN Bipolar Transistors (PN2222) (link on Amazon)
  • 4 X 100-220 Ohm resistors (link on Amazon)
  • 1 X Arduino board (I think you already have one, but in case I’m wrong, you can take one from here)
  • some wires (link on Amazon)

The schema:

Tower light and Arduino Schema

Tower light and Arduino Schema

The Arduino code:

//Constants
#define REDPIN 9
#define YELLOWPIN 10
#define GREENPIN 11
#define BUZZ 12

//Variables
int  ledDelay=50;
long previousMillisLights = 0;    
long intervalLights = 500;   
long previousMillisTemperature = 0;    
long intervalTemperature = 1000;  

void setup()
{   
    Serial.begin(9600);
    pinMode(REDPIN, OUTPUT);
    pinMode(YELLOWPIN, OUTPUT);
    pinMode(GREENPIN, OUTPUT);
    pinMode(BUZZ, OUTPUT);

}

void loop()
{
 unsigned long currentMillis = millis();
   
    if ((unsigned long)(currentMillis - previousMillisLights) >= intervalLights) {
    redPoliceLights();
    yellowPoliceLights();
    greenPoliceLights();
  //add here the code if you want the turn on the buzzer
 //analogWrite(BUZZ, HIGH);
   intervalLights = currentMillis;
   }
  }

//turn ON and OFF the red light
void redPoliceLights(){
   analogWrite(REDPIN, HIGH);
   delay(ledDelay);
   analogWrite(REDPIN, LOW);
   delay(ledDelay);
   analogWrite(REDPIN, HIGH);
   delay(ledDelay);
   analogWrite(REDPIN, LOW);
   delay(ledDelay);
   analogWrite(REDPIN, HIGH);
   delay(ledDelay);
   analogWrite(REDPIN, LOW);
   delay(ledDelay);
  }

//turn ON and OFF the yellow light
void yellowPoliceLights(){
   analogWrite(YELLOWPIN, HIGH);
   delay(ledDelay);
   analogWrite(YELLOWPIN, LOW);
   delay(ledDelay);
   analogWrite(YELLOWPIN, HIGH);
   delay(ledDelay);
   analogWrite(YELLOWPIN, LOW);
   delay(ledDelay);
   analogWrite(YELLOWPIN, HIGH);
   delay(ledDelay);
   analogWrite(YELLOWPIN, LOW);
   delay(ledDelay);
  }

//turn ON and OFF the green light
  void greenPoliceLights(){
   analogWrite(GREENPIN, HIGH);
   delay(ledDelay);
   analogWrite(GREENPIN, LOW);
   delay(ledDelay);
   analogWrite(GREENPIN, HIGH);
   delay(ledDelay);
   analogWrite(GREENPIN, LOW);
   delay(ledDelay);
   analogWrite(GREENPIN, HIGH);
   delay(ledDelay);
   analogWrite(GREENPIN, LOW);
   delay(ledDelay);
  }

Tower Light Demo:

A cheap idea for an autonomous system applied to an all-terrain robot

For some time I have been searching for a simple solution for an autonomous robot able to navigate long distances and avoid obstacles.

The conditions are as follows:

  • the navigation system is compatible and can be integrated with Arduino and Raspberry Pi (I plan to use ROS nodes);
  • the price should be under $500;
  • the system is functional for large land areas (ranging from 1 to 50 hectares);
  • localization with an accuracy of up to 30cm;
  • the navigation system can be used with easy-to-buy components (preferably at any online store with DIY components);

All the ideas that come to my mind are around two products: Navio 2 and Pixhawk.

The project below includes everything I need right now. A navigation system and a series of sensors for obstacle detection.

This self-navigating system uses Pixhawk and ultrasonic sensors for obstacle detection. It is a simple, low cost and easy-to-buy components.

The Pixhawk module costs around $127, and five HC-SR04 sensors costs around $10 on Amazon.

No matter how big you are when you look into the future

What future for self-driving cars?

What future for self-driving cars? (image source)

The deal with VW could expand to put Aurora software into other vehicles (delivery vans, trucks, shuttles), and use cases (urban and long haul shipping, micro-transit). The Hyundai agreement will put Aurora’s software into the Korean automaker’s cars, including some custom-developed rides that will roam cities all on their own.

This article speaks nicely about the partnership between Aurora Innovation and two car companies (Volkswagen and Hyundai) to produce autonomous cars.

The specifics of these deals are sparse, but the basic impetus is clear: Aurora can make cars drive themselves, but it can’t make cars. And while VW has worked on various automation schemes since the late 1980s, it hasn’t shown much progress on fully driverless vehicles. Hyundai has also been lagging, and a partner like Aurora should help bring it toward the front of the pack.

Aside from this news, I think that there is another aspect of this partnership. No giant automobile manufacturers manage to bring a self-driving car to the market without the help of companies able to produce the necessary systems to turn a normal car into an intelligent one. Which means that the car companies, regardless of the funds invested in research and development, did not shape the appropriate teams to produce by itself autonomous cars.

One of Aurora’s founders comes from Tesla, one from Google, and one from Uber.