Cleaning robot

Robots: the more the merrier

The glorious assembly of THE CLAW, episode 2

We’ve managed to assemble most of the main components: claw, forearm, base motor for vertical sliding. Few adjustments are still needed.

Next: support mechanisms for 1 x brick, 2 x sensors, 1 x camera, 1 x laptop; coding.

The glorious assembly of THE CLAW, episode 1

Will they all fit?

Next day: everything went as expected. They did not fit. Most of the parts fit though (except rod connectors & frame’s fixture).

Worry not, because tomorrow there’ll be replacements for all the wrongful pieces. Also, the component that ties our forearm with the vertical sliding support should be ready by then.

Object detection or SURFing

This is the first attempt in detecting objects. In this experiment we’ll focus on PET bottles only. A future experiment should emphasize the feasibility of glass/cup detection.

We’re using SURF (Speeded Up Robust Features) features extracted from training images taken from various angles.

Our object detector is feeded with frames captured with an old Creative WebCam Live! device, which focuses on a scene with 3 objects, noted from left to right as follows:

  • – object X: a 2.0L bottle, very similar to others, but with a slightly different shape, which should remain undetected throughout the experiment;
  • – object A: a 2.5L empty bottle; this should be detected;
  • – object B: a 2.5L half filled bottle; this should also be detected.

Test 1 – horizontal angles

Training: 4 angles per object

  • 1 x Frontal
  • 2 x Profile
  • 1 x Rear

Description: tests from few horizontal angles

Result: no detection, except when angles are very closely matched


Test 2 – horizontal angles

Training: 8 angles per object

  • 1 x Frontal
  • 2 x Three-quarter front
  • 2 x Profile
  • 2 x Three-quarter rear
  • 1 x Rear

Description: tests from few horizontal angles

Result: both A & B detected; overall a good detection in horizontal angles;


Test 2.1 – vertical angles

Training: same as in Test 2

Description: vertical angles test

Result: almost no detection in vertical angles (need more vertical angles in training images)


Test 3 – scalar invariance

Training: same as in Test 2

Description: testing scalar invariance

Result: 75% success, this could definitely be improved

Conclusion: SURF is a top candidate for our robot’s object detection capabilities in real time.

Clamping and lifting mechanism

Since we’re looking to grab bottles and glasses of various diameters, an U-Clamp mechanism (more like a V-Clamp) should perform better.


  • Added Sima’s improved piece that ties up the mobile frame to the forearm’s inner threaded rod.
  • Added Radu’s part of forearm.
Perspective view:


Perspective view:
Side view:
Top view:
Movement (click on image):


  1. diff() 2 pairs of screwholes into that claw support (fixture for mobile frame)
  2. measurements between claw support & forearm (ie. distances between screeholes)

Concept, draft #1

The basic idea of this robot:

  1. explore nearby area in the search of two things: (first attempt)
    1. a table to be cleaned (Source)
    2. a place to deposit the Objects found on table (Destination)
  2. once it has a description for Source & Destination:
    1. find a way back to Source
      1. detect an Object
      2. if Source looks empty, jump to step 3
      3. pick Object (U-Clamp mechanism)
      4. lift Object
    2. approach Destination
      1. deposit Object
      2. bounce back to step 2
  3. Sing [insert-song-here] and turn off

Case 1. If we’d implement SLAM (Simultaneous localization and mapping), we could describe our Source & Destination by looking on the map for:

  1. a rectangular object with a height (Source)
  2. an empty space, respresented by a virtually bounded area (Destination)

Object: a PET bottle or a glass (description of Object will be refined and/or restricted further more)

Robot Concept

Robots are becoming more and more popular. They are used nowadays not only in manufacturing plants, but also at home. As you may know most programmers like to drink beer when they gather together for a party. After the party there are a lot of empty bottles left on the table. So, it was decided to program robot to collect empty bottles from the table.

The table is a rectangle with the length l and width w. Robot starts at the point (xr, yr) and n bottles are located at points (xi, yi) for i = 1, 2, …, n. To collect a bottle robot must move to the point where the bottle is located, take it, and then put it in a bag. Robot can hold only one bottle at the moment and for simplicity of the control program it is allowed to release bottle only at the set point.