FALCONS Team Description Paper

Andre Pool, Anita van de Wetering, Bart Baeten, Cees van der Leeuw, Coen Tempelaars, Diana Koenraadt, Edwin Schreuder, Erik Kouters, Ivo Matthijssen, Jaap Vos, Jan Feitsma, Jasper Witte, Krzystof Labinowicz, Lars Coenegracht, Lex Coenen, Marco Cipolla, Martijn van Veen, Mauro Antonello, Maxim Loginov, Mehrdad Alishahi, Michel Koenen, Pantelis Tzenetidis, Peter Bradley, Prabhu Mani, Raf van Son, Ronald van der Weide, Roxana Nijdam, Ruben Poorters, Simon van den Boom, Sjoerd Aarts, Stan Mertens, Tim Kouters, Tom Evers, Ton van de Wiel, Wouter Geelen

ASML


Abstract FALCONS is a RoboCup team based in Veldhoven in the Netherlands and consists of ASML employees who share the same passion and vision; work with robots as a hobby and become champions at Robocup MSL in the coming years. The Falcons team was formed in November 2013, encouraged and supported by ASML, and today counts more than 30 members.

Introduction

FALCONS is a RoboCup team based in Veldhoven in the Netherlands and consists of ASML employees who share the same passion and vision; work with robots as a hobby and become champions at Robocup MSL in the coming years.

The Falcons team was formed in November 2013, encouraged and supported by ASML, and today counts more than 30 members.

The team is divided in several groups:

  • Hardware
  • Firmware
  • Motion
  • Team play
  • Vision
  • World Model
  • Simulator and diagnostics
  • Logistics
  • Branding-Recruitment
  • Legal
  • Facilities
  • Goalkeeper
  • Test and integration
  • Demo team
Team image
Team image

Facilities and Infrastructure

The FALCONS team shares a building with VDL Robot Sports team in Veldhoven, the Netherlands. The building is equipped with a full size 18x12 m MSL soccer field (protected area with a net), Wi-Fi, meeting room and work areas which can be used for hosting Robocup Workshops and local events. (Including work space and tools for repairs).

Facilities building
Facilities building

Robot Design Roadmap

The MSL robots from the Falcons team are based on the Turtle 5K design.

The FALCONS team has defined a technical roadmap which will constantly enrich the functionality of the existing robots and improve parts which are fully utilized or end of life. That roadmap in addition to the yearly evolving MSL rules will lead to the ultimate Robocup goal; becoming world champion!

3.1 Current Design

The current robot hardware (mechanics & electronics) design of the FALCONS team is based on the Turtle 5K design with many changes. The software design is built from scratch and it is been worked on for over three years. Stability and responsiveness are constantly improving.

Normal Turtle 5K Design

The electrical design has been improved and made safer compared to the original Turtle 5K design but the main architecture remains the same.

There are 2 batteries of 24V, connected in parallel, which supply the whole robot. Before they reach the electrical parts and peripherals, the voltages are regulated and protected with fuses while the whole robot can be disabled / enabled by an emergency switch. The onboard PC runs the needed software while all actuators (motors, solenoid and sensors) are reached via peripheral control boards. The internal communication was done with RS422 communication protocol, but has changed to USB in 2016. The Comm. board in the drawing below has been changed to a USB hub and communication electronics on the motor driver and ball handling boards has been altered to accommodate this USB design.

Electrical system diagram
Electrical system diagram

Current Mechanical Design

The mechanical design is not much changed from the original Turtle 5K design, but it will be in the coming years. The supporting frame of the robot consists of a 6mm thick steel baseplate on which an aluminium frame is bolted. Sheet metal parts are used to reduce costs and milling time.

The covers of the robot are made of 3mm aluminium sheets.

The Turtle 5K uses 3 separate motors with gear boxes that drive 3 omni-wheels which allow the robot to move freely in any direction.

The ball handling mechanism consists of 2 rotating aluminium arms; each of them has one actively driven wheel. They are driven by 2 Maxon motors via a gearbox. Two springs and gravity will make sure the wheels keep in touch with the ball.

Working principle:

  1. The Turtle 5K moves towards the ball while the active wheels are spinning.
  2. The Ball makes contact with at least 1 active wheel.
  3. The wheel spins the ball in such a way that moves to the center of the robot and makes contact with the 2nd wheel.
  4. Now the ball gets pulled inside the Turtle 5K until the hall sensors reach a defined setpoint
  5. While the robot is moving, the active wheels spin the ball in a certain way so it follows the robots movement and rolls in its natural direction.

The shooting mechanism is powered by a solenoid and a High Voltage driver. It pushes a kicker with a high force against the ball. The High Voltage and therefore the kicker force are adjustable via software. The kicker is adjustable in height to shoot lob shots. This is done by a stepper motor which drives the arm to lift the kicker.

Ball handling mechanism
Ball handling mechanism

Electrical design changes in 2017

  • CPU has been changed into an Intel I7 for more computing power
  • Hall sensors for the ball handler angles are changed into a digital sensor for more accurate readings and less interference from noise
  • USB isolators have been added to prevent ground loop issues
  • Shooterbox has been upgraded for more reliability and power

Mechanical design changes for 2017

  • The design of the kicker has been improved for better shooting accuracy.
  • New mounting parts for the ball handler angle hall sensors

Other changes

In the last year we've worked on tuning the control loops of the robot. This results in a more responsive robots and a higher accuracy in driving, positioning and shooting. Most tests are automated and are easy repeatable to test future upgrades.

Current Software Design

The software is built on Robot Operating System (ROS) software and runs on Linux. The software data flow is represented in the figure below.

The software architecture can roughly be divided into Vision, World Model, Team Play and Motion.

The Vision package of the software comprises of two main nodes that perform ball/obstacle detection and localization. The Vision package communicates with the Robot to receive input from the camera and compass. With the information gathered from Vision and Motion the World Model is created.

Team Play uses information from the World Model to determine an action plan. This action plan is communicated to nodes that define Motion: path planning, driving, shooting and ball handling. Together these nodes perform the predefined action plan.

Team Play is the software development and architecture which aims to develop software that can make strategic decisions based on current robot status and gameplay situation.

Motion deals with the driving, shooting and ball handling of the robot.

Each peripheral has a microcontroller and its firmware. ROS accesses all Firmware via the peripheral interface. Both ROS and the peripheral interface run in Linux environment. The peripheral interface (also known as the API or Driver) is a software layer in between the ROS software and the Firmware. It uses an own created protocol to communicate with ROS and uses USB ports to communicate with the hardware peripherals (firmware).

Software data flow architecture
Software data flow architecture

Software improvements

Omni vision and front camera vision both are changed from relative X, Y, Phi coordinates to spherical coordinates including a camera location per spherical measurement. The spherical coordinates are incorporated into our entirely new worldmodel that is created from scratch. The design of the new worldmodel separates data, control and algorithms; enabling parallel work, improving encapsulation and improving performance. The point cloud of obstacles and balls are synchronized amongst the robots, making synchronizing clocks between the robots critical. Furthermore with the new algorithms it's now possible to track balls and obstacles with stable velocity vectors; improving ball interception and snaking behaviour. At the same time with the new algorithms we are able to filter out ghost balls that are hanging in the air.

Last year we introduced the front vision camera for the keeper. With the new algorithms in our worldmodel as prerequisite, this year we introduce the front vision camera for each robot.

During previous matches, we experienced difficulties when hardware (e.g. motor boards) would temporarily stop responding or hiccups in serial and/or USB communication. We made the effort to redesign our hardware interfacing library such that it is robust for these kinds of problems, and can propagate improved diagnostics for quicker troubleshooting. This improves the overall start-up and recovery time before and during matches.

This overhaul also resulted in a more maintainable and extensible software component, while needing fewer resources. This allowed for new features to be integrated, such as a power down of individual motors and future improvements in ball handling.

For an improved robot motion, we have spent effort on different levels. Starting from the bottom, we have redesigned the firmware of the motors to enable a faster control loop (400Hz), better diagnostics, and using motor encoders as feedback for more accurate robot positioning.

As a result of redesigning the motor board firmware, we have re-tuned the motors using the improved diagnostics data offered by the motor board. Now being able to plot the motor's motion profiles, we were able to tune the motors to be much more responsive.

Furthermore, we worked on Key Performance Indicators (KPIs) which define in a measurable way how well the robot performs at several basic actions.

Team's performance on past Events

Although the team is quite new, it successfully participated and supported the RoboCup community.

The team participated in:

  • MSL workshop 2016 Kassel, Germany
  • Robocup World Championship 2016 Leipzig, Germany
  • Portuguese Robotics open 2016 Braganca, Portugal
  • European Open 2016 Eindhoven, The Netherlands
  • MSL International workshop 2015 Aveiro, Portugal
  • Robocup World Championship 2015 Hefei, China
  • Portuguese Robotics open 2015 Villa Real, Portugal
  • MSL International workshop 2014 Eindhoven, The Netherlands