Warehouse Stock Automation Project - Part I

Note: this article is for educational purpose only. Lasers are dangerous and can do damage to the eyes.

Our stock is growing, stock is moving around and to become more efficient we need to implement an automated system to retrieve and possibly manage our stock automatically.

Note – visuals of this projects progress are available on Facebook. When the project is complete a video will be posted to Youtube where you can witness the operation of this project.

Our first objective is a visual assistant. The software will position the servos and pulse the laser to indicate the desired item. When the item is scanned the laser will move to the next item - matching the closest proximity of the current item. When stock comes in from our suppliers - simply scan the stock-item barcode and once again the laser will indicate the current location of that stock item.

What we have built so far is a laser guided stock assistant. We took an off the shelf CAT5 wall mount, a servo bracket, 2 servos, a laser, an Arduino and an Arduino Ethernet shield and the result can be seen here.

I am adding a joystick which will ease with the movement of the servos. The Arduino code can be downloaded here:

The data protocol between the software and Arduino is in simple text format – which allows for easy readability – for a production environment I would definitely recommend some form of encryption / authentication. Simply telnet into the Arduino on port 80 to control the stock laser. The following commands are available:

  • L00 – disables laser 0;
  • L01 – pulse laser 0 (adjust the duty cycle and duration in the source code);
  • S0XXX – move laser 0 to position XXX (0 – 179 on X – axis);
  • S1XXX – move laser 1 to position XXX (0 – 179 on Y – axis).

The Windows software consists of a back-office application and an MSSQL database. The database contains the information of the product item (barcode) and the positions for the X & Y servos.

The focus of the laser can be adjusted by turning the knob at the front of the laser – from a 1mm2 dot to approximately 10cm2.

I mount the hardware on a 3U face plate instead of using the specially design enclosure which can house the Arduino and Ethernet shield. The face plate can be installed in a half-height 19” server rack containing some of my other projects.

In our next part we are going to build a mobile robot carrier which will use a wireless solution ( XBee or Bluetooth), instead of the Ethernet shield, stepper motors, more servos, proximity sensors, a vacuum pump and some extruded  T-Slotted aluminium to build an wireless automatic stock picker. The Arduino will be replaced by a Mega – to accommodate for more I/O.

The robot carrier will be powered by LiPo batteries and dock itself for charging. The carrier is also able to identity stock items by scanning our entire warehouse. This way we can add or move stock around and the robot will find the item after doing a stock-sweep.

In our third part we want to robot to automatically manage inventory - stock coming in from suppliers will be collected and dispatched to the correct shelf. The major challenge here is that 99% of our stock is hanging. We perforate our stock packaging an hang it on hangers. The challenge for the robot is to match the perforated hole and slotting it into the hanger. One idea is to retrieve the stock from an existing hanger at a fixed position. That way the Y - axis would remain the same. A CMOS camera , feeding images back to the PC for processing, can assist in tracking and locating the hanger.

The software & design is open source  - its still in pre-Alpha stage – but if you are interested you can email  and I can provide you with the source code.


Leave your comment