More Powerful Alternatives To Raspberry Pi 3 (B/B+) For Running ROS

More Powerful Alternatives To Raspberry Pi 3 (B/B+)

More Powerful Alternatives To Raspberry Pi 3 (B/B+)

Lately, I’m quite involved in developing a robot platform capable of navigating autonomously and do tasks outside. The robot will work in the summer at high temperatures and the cooling system for electronics may not keep the temperature at an acceptable value. So I’m trying to reduce the working temperature in the box of the electronic components. The first on the list is the Raspberry Pi 3.

I use the Raspberry Pi 3 to run ROS Kinetic and control the robot. Since the robot will run continuously (24/7), I need a computer suitable for 100% up-time without unnecessary restarts or downtimes.

One of the situations where the Raspberry Pi 3 board would stop running is when the temperature exceeds a certain value. One of the optimizations is to run only the basic applications and the ROS nodes to control the robot. Running on Pi a small number of applications will consume fewer resources resulting in lower operating temperatures generated by the processing units. Even if I do my best to optimize the ROS nodes and the applications that run on Pi, I realize that I’ll need a more powerful alternative to Raspberry Pi 3 (B/B+) to complete the next steps in developing the robot.

The idea is to replace the Pi 3 with a more powerful computer at a decent price. A computer with a price of maximum €150. I did a little research to see the alternatives to Pi 3, and here is the result.

Jetson TK1 / TX1 / TX2 or Intel NUC is out of the question for now. Any of the three Jetson variants or the Intel computer cost a few hundred euros. It is worth investing money in such a board if running ROS along with a number of computer vision applications. Otherwise, I do not see any reason to spend hundreds of euro to run ROS nodes.

  1. ODROID-XU4

    XU4 has a price of about €63, a Cortex-A15 processor that can provide 2Ghz and 2GB of LPDDR3. The only minus of this board is the lack of an integrated WIFi module. For €5 I can buy a WiFi module to provide a complete solution for wireless Internet connection. Otherwise, this board is the first on the list.

  2. ASUS Tinker

    From Asus, we have a Tinker board that can run ROS Kinetic on a QuadCore ARM SOC 1.8GHz processor with 2GB of RAM. It has an on-board WiFi module and a price around €49. I have some doubts about the operating system. Some users from Amazon said that Android and Debian images provided by Asus were unstable and performed very poorly. This makes me think twice about making a decision. It is very important to me that the board will work without stopping for months. An unstable operating system can lead to a large number of reboots and downtime.

  3. Rock64

    Rock64 is a less-known alternative to Pi 3. The board comes in several variants and the strongest has 4GB of RAM and an ARM Cortex A53 64-bit processor. The board has full support for Linux Ubuntu and Debian. The price is also good considering the performance – around €38. The only thing that worries me about this board is the community support. An active community saves me for a lot of hours to fix issues.

The SWEEPER robot

The SWEEPER robot is the first sweet pepper harvesting robot in the world demonstrated in a commercial greenhouse. It is designed to operate in a single stem row cropping system, with a crop having non-clustered fruits and little leaf occlusion.

How To Setup ROS Kinetic To Communicate Between Raspberry Pi 3 and a remote Linux PC

How To Setup ROS Kinetic To Communicate Between Raspberry Pi 3 and a remote Linux PC

I work these days to setup ROS Kinetic to communicate between Raspberry Pi 3 and a remote Linux PC. The Raspberry Pi 3 has limited capabilities for graphics applications such as rviz and other visualization software. In conclusion, I need this setup to remotely monitor and control my robot and for graphics applications.

To link the robot’s Raspberry Pi and the remote computer, I have two options:

  1. both computers communicate on the same network;
  2. both computers communicate via a VPN;

I choose the first option since I have both computers connected to the same WiFi network.

Here is how I did:
Since the robot will work at a fairly large distance away from the remote computer, I decide to use a high power outdoor access point to connect the Pi and the PC to the same WiFi network.

I did a research and I buy a TP-Link 5GHz 300Mbps 13dBi. The price is very good considering that I can control and monitor the robot over a distance of several kilometers. According to the specifications, the access point offers a range of 15 kilometers (I guess in ideal conditions). A range of up to one kilometer is enough for what I need.

Next, I’ll describe the steps that I did to setup ROS Kinetic to communicate between Raspberry Pi 3 and the remote Linux computer.

  • Step 1: The first step was to check that everything was okay with ROS Kinetic on my remote computer. I installed it some time ago using the steps described here.
  • Step 2: The second step was to install a new Linux image and ROS Kinetic on one of the Raspberry Pi 3 board from my Pi collection. Here it took me some time because I chose to install ROS on the Raspbian Stretch Lite.
    This operating system is what I need for my robot: it doesn’t have desktop applications or a GUI of any kind.
  • Step 3: At this step, I pay some attention at the IP address for the ROS master node (Pi) and the IP for other ROS node (Linux PC).
    1. on Raspberry Pi 3 type the following command:
      sudo nano .bashrc

      Navigate to the end of the file and add these two lines:

      #The IP address for the Master node = the IP address of Raspberry Pi
      export ROS_MASTER_URI=http://192.168.0.1:11311
      
      #The IP address for the Master node= the IP address of Raspberry Pi
      export ROS_HOSTNAME=192.168.0.1
      
    2. on the Linux PC, type the following command:
      sudo nano .bashrc

      Navigate to the end of the file and add these lines:

      #The IP address for the Master node = the IP address of Raspberry Pi
      export ROS_MASTER_URI=http://192.168.0.1:11311
      #The IP address for your Linux PC
      export ROS_HOSTNAME=192.168.1.101

These are all the steps to make two Linux computers communicate and share nodes, topics, and services.

TFmini: A New Single-point Ranging Sensor Module Compatible Arduino, Raspberry Pi, Pixhawk

TFmini LiDAR Sensor

TFmini LiDAR Sensor


There are several types of LiDAR sensors:

  1. sensor designed to bring powerful 360 degrees sensing capabilities to everyone;
  2. single-point ranging module;

This new sensor is part of the second category and is designed to be used for drones, UAVs, robots.

The coverage range of the TFmini sensor is very small. In this case, it can be used to detect only large objects. Do you have a robot and you want to detect the presence of a wall, or a tree or any other large size object at a distance between 0.3 and 12m? This sensor is ideal. But if you want to build an autonomous robot able to navigate in your garden or in a park where are objects of different sizes that need to be detected, it is recommended to use a sensor with 360-degrees sensing capabilities.

The sensor comes with examples for Arduino, Raspberry Pi, ROS, and more.

Today’s Best Deal – Monday, 9 July 2018

Bonus, an autonomous robot.

Asparagus harvest robot

Asparagus harvest robot

Asparagus harvest robot

The robot is called Sparter and was developed and built by Dutch start-up Cerescon in close cooperation with Dutch and German asparagus growers.

The robot is for sale in a 3-, 2- or 1-row setup with a harvesting capacity of 50, 35 and 17 hectares respectively. The robot can detect underground asparagus, cut them, shift the plastic back in place and repair the sand bed. This way less damage to the asparagus occurs, resulting in a higher yield. In addition, the asparagus does not discolour and flower.

source

Infrared Distance Sensor Module With Millimeter-level Resolution In Strong Sunlight Environment

MakerFocus Infrared Distance Sensor Module

MakerFocus Infrared Distance Sensor Module

Often I have avoided from using infrared sensors on robots that work in sunlight. Besides strong light, the temperature would be the second problem for such sensors.

These days I’m looking for the best quality/price option to detect obstacles outdoor in summer and bright light. LiDAR, ultrasonic or video camera with computer vision would be the three options that are working for sure. A fourth option just appeared today in my focus and it’s about an infrared distance sensor from MakerFocus.

This sensor integrates a technology called “HALIOS Detection Technology Strong Temperature Adaptability.” This technology has the role of adapting sensor measurements to light and temperature.

Theoretically speaking (I have not tested it yet), the sensor produces measurements with a millimeter-level resolution.

The measured distance is a plus – it has a range between 0.15 and 10m.

The sensor is powered at 5V and has a UART-TTL output interface. In other words, it works with Arduino and Raspberry Pi.

More details about the sensor can be found on Amazon.

How to Install ROS Kinetic on Raspberry Pi 3 running Raspbian Stretch Lite

I want to install a Raspberry Pi 3 board on an autonomous robot and use it to monitor and control the robot. All communication is via WiFi Internet with ROS Kinetic working on multiple machines.

To use Pi resources more efficiently, I thought I needed an operating system like Raspbian Stretch Lite. The interaction with this system is done through type commands. It doesn’t have GUI and other software included with the Desktop version. In conclusion, it is a perfect operating system if you want to not stress the Pi board with too many tasks that you do not need anyway.

The system will be configured so that Raspberry Pi is the master. The Roscore will run on the robot instead on the remote PC. On the PC I just want to see the message that coming from Pi or send some manual correction back to the robot.

In this tutorial, you will find the steps necessary to install the ROS Kinetic version with no GUI tools (ROS-Commo includes ROS package, build, and communication libraries).

  • Step 1: Download and install Raspbian Stretch Lite
    The installation instructions for Raspberry Lite on Raspberry Pi 3 are described here.

  • Step 2: Connect via SSH to Raspberry Pi to run more easily the ROS Kinetic installation controls.
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
    sudo apt-get update
    sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
    sudo apt install dirmngr
    sudo rosdep init
    rosdep update
    rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
    wstool init src kinetic-ros_comm-wet.rosinstall
    rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch
    sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2
    source /opt/ros/kinetic/setup.bash
    echo 'source /opt/ros/kinetic/setup.bash' >> ~/.bashrc
    mkdir -p ~/catkin_workspace/src
    cd catkin_workspace/src
    catkin_init_workspace
    cd ~/catkin_workspace/
    catkin_make
    source ~/catkin_workspace/devel/setup.bash
    echo 'source ~/catkin_workspace/devel/setup.bash' >> ~/.bashrc
    export | grep ROS
  • Step 3 (optional): The installation process takes at least two hours. If you have problems and want to reinstall the operating system with ROS Kinetic, the simplest solution is to clone the memory card as soon as you have finished the initial installation. Here are the steps needed to clone the memory card.

Because I’m not an expert on Linux or ROS commands, I’ve found valuable information here and here.

A New Rotating Lidar Sensor for Hobbyists – JD-F10

FiduRobot JD-F10 Rotating Lidar Sensor - 360

FiduRobot JD-F10 Rotating Lidar Sensor – 360

In recent years, have been releasing a series of LiDAR sensors in the hobby area – in other words, LiDAR sensors with low specs at a reasonable price.

It is not recommended to make an autonomous car with such a cheap LiDAR sensor, but it is a good sensor to build a robot capable to mow the grass in the garden.

JD-F10 is a new LiDAR sensor from these guys:

Hefei Fidurobot technology Co., Ltd. is a company specializing in creating learning platform for lidar sensor, visual navigation, robot arm, robot navigation, SLAM algorithm and ROS sharing community for Geek develop and communication,which is located in Hefei high tech development zone.

The specifications of this sensor are much better compared to most competitors like RPLIDAR and Sweep. But performance comes at a price that is almost double compared to competitors.

In addition to the above specifications, it should be added that the sensor is ROS compatible.

Robot Kit With Raspberry Pi 3 Model B+ for Computer Vision Applications

Robot Kit With Raspberry Pi 3 Model B+ for Computer Vision Applications

Robot Kit With Raspberry Pi 3 Model B+ for Computer Vision Applications

One of my priorities is to search and identify what’s new in robotics – from sensors, motor controllers to robot kits and books. Everything that can be useful for those who’s working in the DIY area.

One of the kits that caught my attention is CQRobot. It’s a new kit for computer vision applications and less for beginners in the robotics field. The video camera attached to a pan and tilt system can be programmed to detect lines, obstacles, or used for video monitoring, etc.

The new Raspberry Pi 3 B + comes with a faster processor (19%) and memory (20%) than the previous model – the Pi 3.

If with the OpenCV library you can run detection and tracking applications on the previous Pi model, with the new Pi B + you can make more interesting applications using computer vision.

What I like about this kit is that some hardware can be replaced if it fails or broken. More details on what the kit contains can be found here.