Introduction: I-Desk Lamp

In this instructables the process of developing and building a lighting system that tracks you at your desk in an autonomous way is documented.

This protoype of what could eventually be a marketable product, was realised as part of a joint project of the design methodology and mechatronics courses of the BruFace programme.

Because of this, first the development process from need identification to the conceptual design is briefly mentioned after which the practical approach of building the actual prototype is detailed.

Step 1: Table of Contents

  1. Table of Contents
  2. Project Motivation + Need Identification
  3. Functional Analysis + Requirements
  4. Patent Analysis
  5. Conceptual Design
  6. High-Level Design + Embodiment Design
  7. Design of Sub-Systems
  8. Integration Guide
  9. Demo project show + Quick start guide
  10. Review your project critically
  11. Sustainability
  12. Bill of Materials
  13. Presenting The Team
  14. Project Repo

Step 2: Project Motivation + Need Identification

When performing work with precision good lighting is necessary and when working with both hands, adjusting a lighting system yourself at the same time is just not possible. There are many critical situations where a lamp that detects motion and automatically tracks this movement is really convenient. During surgeries, the surgeon needs good visibility at all times and should be able to focus as much as possible during the surgery on the surgery itself and not on adjusting the lighting to continue the surgery. During repairs, which could be in dangerous environments like for example externally to a spacecraft, on a drilling rig or on the seabed such as for pipelines, one needs a light source as well as both hands to carry out the repair. Although these are all dangerous environments, also in less critical environments a product like this could provide convenience. 

The specific situation we design the prototype for manual work performed at a desk or workbench.

“Why a lamp?”

On the one hand, while working at a desk, whether it is studying, working or fixing something, proper lighting is necessary to stay focused and perform the task accurately. More than that, working in a poorly lit environment tires the eyes faster and productivity suffers when there is not enough light to perform the task adequately.

“Okay, so a lamp has its use, but why does it need to be automated and track your movement?”

When one has to worry about adjusting the lighting, the focus and concentration span is interrupted. So, automation provides convenience by eliminating this interruption of concentration so that a continuous focused workflow can be obtained. In addition, some operations, especially in the industry, require the use of both hands at the same time. When working at a large workbench where many tasks are performed in different places requiring both hands, it is not possible to adjust the position of the light source at the same time.

“Okay, but why not illuminating the entire desk with a large and powerful lamp?”

Now, there you have a point. Indeed, most of these problems can be solved by installing a lighting system that is illuminates the entire place at once, however, this also has its issues.

First and foremost, fixed lighting systems lack the flexibility our product offers. When standing between the fixed lamp and the desk, a shadow can be casted on the desk while this product avoids this by positioning itself so that that does not happen.

Secondly, the fixed lamp is not that easy to scale up if a bigger area has to be illuminated. Probably a bigger lamp has to be bought to replace it. Whereas our product’s range of motion just has to be extended which is an easier and cheaper solution.

Last but not least, the automated lamp is an attempt to a more energy efficient solution. The reasoning behind this is that the automated lamp concentrates the light on the place that needs to be illuminated and therefore uses less electricity for the illumination itself. The one thing that does temporarily result in higher electricity consumption is the control of the actuators needed to move the lamp. However, the lamp will only move when working at a different place on the desk, and the hypothesis then states that the customer does not change position very frequently, so that the automated lamp consumes less electricity, averaged over time, than a larger lamp that illuminates the entire surface of the desk with the same level of illuminance.

Need Identification

Now the main idea of the project is established, the need for the product in the market has to be studied. This is done by asking ourselves following questions:

What’s the product’s utility?

  • Illuminate that part of the desk where work is being done in an automated way so you don't have to manually adjust the lighting
  • A greater illuminance is needed for visual comfort when detailed and precise work is done over a long period of time
  • When using both hands to perform a task and moving around the workspace adjusting the lighting is not possible

Who will use it?

The automated desk lamp is meant for situations in industry in which detailed and precise work is done over large periods of time on different places or when both hands are needed to perform a task for which you have to move around the workspace.

What and who does the product interfere with?

While the lamp is in its motion tracking state the lamp shouldn’t be manipulated by the customer. However, in certain circumstances a static, non-tracking state is preferred in which the lamp can be handled manually. For instance, the angular positioning of the lamp could be regulated manually.

Since the lamp is suspended high, it should normally avoid any risk of contact. However, the user must be careful what he attaches it to. Any vibration, shock or contact could make the lamp shift, damaged, or worst, fall.

To which purpose is it developed?

  • Increased efficiency thanks to continued concentration and focus on a task
  • Optimal results and performance thanks to adequate lighting
  • Easier working circumstances by taking away an operation from human intervention by a robotic lamp
  • Better for eye health due to optimal lighting
  • Avoids shadow casting on the desk
  • More energy-efficient than alternatives on the market 

Step 3: Functional Analysis + Requirements

As the goal is to create a lighting system for detailed work that illuminates an industrial workspace in the most convenient way, certain functions have to be implemented in the product in order to achieve the wanted performance. Next to these functions, the prototype will also have to fulfill more general requirements. These are all given in tables 1, 2 and 3.

Table 1 lists different objectives in terms of the functions the product should possess. In addition, it shows respectively their relative importance for integration in the product, the physical quantity and the unit in which they are measured, their preferred value, the permissible deviation from this value and the flexibility of how much the preferred value and deviation may be.

In table 2, different functions are listed that were not implemented in the final prototype but which could enhance it even more.

In table 3 more general requirements are given.

The lamp must be positioned to ensure optimal illumination but also safety. For safety reasons but also convenience for attaching the product, the lamp is chosen to be positioned around 90cm above the desk. The horizontal space required corresponds to the desk length since the lamp must be able to illuminate any part of the desk. The area of illumination is not required to illuminate the entire desk since the lamp follows the user around the workplace but nevertheless it is still important that the part of the desk within reach of the user (e.g. for tools) is visible. Therefore the area of illumination is chosen to be a circle with a radius of 0.5m and thus an area of 0.8m2. The volume of operation of the robot is the volume that completely encloses all possible spatial positions the stationary robot can occupy with respect to its point of attachment. User safety is guaranteed when the user can never be inside this volume. This is achieved by developing a concept that, on the one hand, limits the size of the volume of operation and places it far enough out of the user's reach.

Since the lamp will be designed to only move horizontally, it has one degree of freedom namely the horizontal position of the lamp. The speed and acceleration are chosen so that the movement is not too slow for the user while maintaining low risk for injury.

To avoid bending of the rail that holds the whole system, the Young’s modulus has to be high enough and weight low enough. Therefore, the material has to be chosen so that both the limits for the Young's modulus and weight are respected and the ratio of Young's modulus to density is maximized. Also materials that are chosen must be recyclable.

Since the cart will be at a height of around 100cm, the sensors that are used must have a minimum working distance of around 150cm to be able to track the user's torso. When the tracking mode is activated, the lamp should follow the movement of the user. Of course if someone runs in front of the desk, the lamp should not be able to follow it. Considering a precise work, the lamp should therefore be able to track a user moving at a maximum velocity of around 40cm/s, which is way higher than the usual movement speed at a desk.

It is desirable that the lamp does not produce too much noise. For this reason, the maximum noise level has been set at 35dB, which is between the noise produces by whispering and the average noise of the refrigerator at home.

Step 4: State of the Art & Patent Analysis

State of the Art


This section provides a general overview of the main competition for our product in the workplace lighting market. Here a distinction is made between competitors selling a product with a similar form factor, called direct competitors, and competitors selling a product with a different form factor that offers a solution to the same problem and as such satisfy the same need in an alternative way. 

The last picture shows a table that summarises all the requirements that need to be met, and how the different competitors meet them. As can be seen, there is no product on the market that meets all the criteria that the lamp must meet. 

Patent Analysis


In this section of the freedom to operate is explored. Before a product is developed, the existence of similar technologies which are already intellectual property needs to be checked. 

US4130858A Lamp-moving device 

the patent US4130858A \cite{hayakawa_yoshito_lamp-moving_1978} describes a lamp device able to move along a rail. This can be used to do our prototype but as the patent is for medical applications it adds unnecessary complexity. For example, the lamp attachment is inside the rail (this is done to preserve the cleanness of the operating room). The general idea could be simplified and adapted with, for example, a cart outside of the rail to simplify manufacturing. The patent claim is not relevant for carts inside the rail or fully enclose cart, belt and pulley system.  

CN208846190U Moving device of movable guide rail lamp 

the patent CN208846190U \cite{yang_jun_moving_2019} describes a lamp moving along a rail with a cart. This could correspond to our objective. Nevertheless, we can improve and simplify the product compared to the patent. The patent claims are for a lamp moving along a rail with a power supply and the motor on the cart. We could use the same principle but with the motor on the structure and not on the cart with some transmission mechanism to simplify the cable management and limit the moving weight. 

CN105927901A Rotary arm hidden type moving-head lamps 

the patent CN105927901A \cite{wang_zhijun_rotary_2016} describes a lamp head able to rotate and focus the light on a specific location. It could be a solution for our product but the limited space available and the miniaturisation needed to add a lot of difficulties. More over the product is not scalable for big desk unless using multiple product which adds synchronisation difficulties. Moreover we need somewhere to put the lamp head, that is not always the case in the factory. 

WO2010146446A1 ROBOTIZED LIGHTING APPARATUS AND CONTROL METHOD 

The patent WO2010146446A1 describes a desk lamp motorised with some acoustic and camera sensor to follow a hand. This patent corresponds perfectly to our goal, but we must verify that this is the simplest method. 

Two types of doable prototype come from the patent analysis: a standard desk lamp motorised with a camera or a rail with a cart on which the lamp is. the first one is fully protected by a patent and the second is a mix of multiple one and is not protected from what we found  

Step 5: Conceptual Design

The project can be formulated abstractly as: Design a lighting system with high illuminance that automatically tracks motion. 

Two keywords in the abstract formulation directly indicate our first two essential problems, namely high illuminance and autonomous. These two properties really define the product and are therefore crucial points of attention. From these two, other essential problems can be derived. Good directional illumination is necessary but it is also necessary that the product is able to illuminate every part of the desk in this way. So the area of the surface of the desk that the lamp can illuminate must be sufficiently large. To work autonomously, the lamp must be able to detect movement and determine the position of where work is being done at the desk. The lamp must then be able to follow this movement and provide the user with the necessary illumination at all times. The aim of the product is to provide the user with a convenient user experience and it is obvious that safety must be guaranteed at all times.

Certain functions need to be incorporated to respond to these essential problems. In figure 1 above the essential features are linked to the essential problems they respond to. 

Morphological chart

The morphological chart, displayed in figure 2, shows by which means the essential features can be achieved. In extension different concepts are derived from the morphological chart by combining compatible means of achieving the different features. 

Certain features allow to already select a means on which this feature will be realised. On the one hand, because the feature can be implemented in the final product independently of the chosen way of realising the other features. On the other hand, because there are clear and significant advantages in using this sub-solution to realise the feature compared to other sub-solutions. For these features, the different means of how they can be realised will be compared separately in the 'Comparing different means' section. Once this has been established, different concepts will be identified that differ from each other in the combination of the realisations of the features that have not been separately discussed. 

Comparing different means

For making the selection, points will be assigned to the different means in accordance with a predefined grading system:

  1. tolerable
  2. adequate
  3. good
  4. very good

If the means is unsatisfactory for a certain criteria it will be assigned 0 points. The different gradings of the different means corrsponding to a certain feature are given in figure 3.

Light emitting system

It is clear that LED’s will be chosen as a light source for the lamp since they are more durable, more energy-efficient and more responsive than alternatives. In addition they are also very reliable, easy to use and easy to dim. 

Range of motion and DOF

As a first possibility, the articulated robot is proposed. Since preferably every part of the desk should be able to be illuminated in the same way, the robot should be able to take the same relative orientation with respect to every part surface of the desk regardless of its position. Achieving this with the articulated robot requires more degrees of freedom and thus actuators than with the cartesian robot. Therefore, it is preferred over the articulated robot. But another important factor to consider is safety. Since the range of motion of both structures is quite large and it is equipped with large moving parts, there is a real risk of injury due to collision between the robot and the user during normal operation of the robot. Thus, large moving parts with a large range of motion are out of the question. In addition, the number of degrees of freedom compared to the cartesian robot must be reduced to reduce the cost. Therefore, the rail with orientable lamp is proposed. This solution is a great compromise between secure operation, cost and proper illumination. The translational motion of the lamp will be actuated, while the head of the lamp itself will be connected to the rest of the structure by a rotating joint. The three proposed mechanical concepts: the cartesian robot (left), the articulated robot (middle) and the rail with orientable lamp (right) are depicted in figure 4 above. In addition, a sketch of a kinematic diagram of the chosen mechanical concept is given in the same figure.

Safety

As for user safety, it would be possible to equip the robot with sensors that determine the relative position of the user and his distance from the robot so that the robot can anticipate and thus avoid a collision with the user. Another solution is to shield the moving parts as much as possible with a casing. However, it was already discussed that to ensure safety, the robot should not be able to perform large or unexpected movements. As a result, it was decided to have the lamp move along a rail which greatly reduces the risk of collision between the robot and the user since there is sufficient space between them at all times. As this is not required, no further actions are taken to make the robot safer. This avoids unnecessary increased cost and complexity.    

Actuation for translational motion

The means of actuation chosen is the stepper motor: due to its cheapness and high performances at low speed, it is the suitable candidate for the lamp motion. Indeed, it’s not an high speed application and with this solution it’s possible to avoid gearbox and encoder, necessary for servo motor.

Actuation for rotational motion

The angular position of the lamp could be fixed by the operator in accordance with their needs. Indeed, once fixed, the position should remain almost the same for all the work hours. Therefore no actuation is chosen but a rotational joint.

Transmission

The means of transmission preferred is the belt. Despite a lower precision and solidity, if compared to rack and pinion and infinite screw, the belt has a lot of pros: a low friction and so almost no noise, high rapidity of the motion and a convenient price.

Programming unit

As for the processor, the use of an external computer is ruled out since the product to be realised must be a stand-alone product connected to the grid. It therefore must be equipped with its own processing unit. There is a wide range of controller boards we can use to realise the system. Two popular choices among them are Arduino and Raspberry Pi. What we can conclude from the table is that the Raspberry Pi is more powerful than the Arduino with an associated higher price. Since it is possible to develop concepts for which the Arduino has enough processing power, the Arduino is the chosen programming unit. At the time this report was written, there was also a shortage of Raspberry Pi in the global market. 

Concepts

Now different concepts can be discussed, all of which incorporate the sub-solutions already chosen but differ from each other in the way the sensing is done, i.e. movement is detected and the position of the user is obtained. 

Concept 1

A first way of detecting movement and acquiring the position is to use a camera and image processing to track the hands of the user. Although the image processing is a too demanding a task for the Arduino, several camera modules, called CMUcam’s, exist to extend the capabilities of the Arduino and make image processing possible. It must be remarked that the module is only able to track objects that are characterized by a certain combination of color and size. So also tracking hands will be a too difficult task for this module but what would be possible is to track a bracelet or ring with a specific color. The Pixy2 costs around €65 but in the context of the subject mechatronics, however, the use of a camera module is not allowed and therefore a different approach has to be sought.

Concept 2

The idea is that, in order to determine the specific position of the hands of the user on the table, some sort of mapping of the table has to be carried out. This can be done with the use of an array of ToF sensors, like sonar or infrared lidar sensors. Thanks to their relatively low cost, they can be disposed in a row and by rotating the array around its axis a scan of the whole desk can be obtained. This is depicted in figure 5.

In a scan of the surface of the desk, given in figure 6, the surface is divided into smaller sub-compartments for which the distance from the rotating array to this compartment is measured. The problem with this concept, however, is that it relies on accurate enough measurements of the distance with little fluctuation. Tests have been carried out in order to quantify the fluctuation and determine the minimal height any object on the desk with the size of a hand must have in order to distinguish it from fluctuations. The conclusions of the tests were that the fluctuations of the measurements were too high to be able to detect any object with the size of a hand on the desk that has a height below 15 cm. Therefore it is not possible to detect hands with this concept. 

Besides, it is not necessary to determine the actual position of the hands, the position of the user's body suffices.

Concept 3

A static array of ToF sensors would be possible but highly inefficient because of the relatively low resolution and the usage of a relatively high number of sensors compared to alternative solutions. A first alternative solution is to fix one single ToF sensor pointed in the direction for which we want to determine the coordinate, namely the x-coordinate. This is depicted in figure 7. The main drawback to this concept is still that the measurement of a single ToF sensor shows a lot of fluctuations that can be interpreted as movement so they have to be filtered out somehow. 

Concept 4

The last concept to be considered uses two ToF sensors in order to determine the position of the user. These are connected to the cart rather than connected to a fixed structure. The initial idea is the following. When the system is turned on, a first scan along the entire length of the table is performed to determine where the person is standing. If one of both sensors get a measurement reading instead of “out of range”, the lamp will be positioned so that the user is in between the fields of view of the two sensors. A drawing of this concept is given in figure 8.

But since the user is inside a blind spot of the two sensors, there is no distinction between the situation where the user is in between the two FOV's and the situation where the user is completely somewhere else or nobody is in the proximity of the desk. To overcome this problem the FOV's of the sensors should partly overlap and if one of both sensors get a measurement reading “out of range”, the lamp will reposition so that the user's torso is intercepted by both sensors. From this point on this same logic will be applied so that the user is in between the two sensors at all times.  

Selection of most promising variant

Concept 4 is chosen over other concepts thanks to its numerous advantages. Firstly, it is simple and compact. Everything is directly connected on the rail and structure. The use of an external sensor is avoided, which would be complicated to place for the user, so that the correct operation of the product is guaranteed in every situation and independent from the desk size.

Secondly, TOF sensors are cheaper compared to a camera and the acquiring and processing data from the sensor doesn't require a lot of computing power. Furthermore, the sensors are connected to the cart on the rail on which the lamp itself is connected. Since the actuation for the lamp is integrated anyways, no extra actuators are required for the sensing (like the servomotors for the second concept to rotate the array) which leads to a simplified design, lower cost and lower power consumption.

Lastly, the fourth concept allows us to limit the number of sensors used which has two main advantages: the cost and the scalability. Our prototype can be easily adjusted to any desk by changing the rail size without adding components, an extra excessive cost or need to upgrade other components to keep up with the general complexity. It’s important to notice that not all the criteria for selecting the most promising variant has the same weight: this is considered by the weight given by the importance factor, from 1 (not very important) to 4 (essential). In figure 9, the comparison between the several variants is illustrated.

Step 6: High-Level Design + Embodiment Design

The first subsystem that can be identified is the rail with its cart on which two other subsystems are attached, the lamp on the one hand and the sensors on the other. The cart is driven using a stepper motor and a belt. Also, the placement of the Arduino has to be chosen well because of cable management. Wires run from the Arduino to a power supply for the Arduino, the stepper motor, the lamp, the sensors, the On/Off switch and the potentiometer. On the other hand, also from the power supply to the stepper motor and the lamp. A high-level block diagram of the system is given in figure.  

The user interacts with the system through the user interface, which consists of a light switch, a switch to turn motion tracking on/off and a potentiometer to dim the lamp. This information is sent to the Arduino which is the central processing unit of the system. Next to turning the light on/off and dimming the light, the Arduino also communicates with the sensors through a I2C serial communication bus and drives the stepper motor. The Arduino and stepper motor are mounted on the side of two plates and the rail is in between the two plates. The two plates form the support of the system and the connection between the system and the environment. In addition the supporting structure will also function for cable management. On the rail, the cart is attached to which the sensors are connected through the sensor hub and the lamp is connected via its base. In the following the sections of the different subsystems will be detailed.  

Step 7: Design of Sub-Systems

General structure 

The general structure aims to hold all the other component and allow the cart to slide on the rail. We builded the structure arround a 30mmx30mm alluminium profiles wich is used as a rail for the cart. the length of the rail is not important and can be tuned to fit on a desk, for our prototype we chose a 1.60m rail because it corresponds to the desk we had at our disposition.  

At both ends of the rail we've fixed two 60mmx30mm profiles on which we will fix every component usefull. To fix the profiles together we used standard profiles attachement (bracket and rail insert). Then we designed lazer cutted support for arduino, micro stepper driver, stepper motor and limit switch. They are attached to the rail with rail insert and bolt.  

For micro stepper driver, arduino and limit switch the lazer part plate are just plate with adapted hole to attach the part and the profile. For the motor we builded a L casing to hold the motor with the screw hole and near it’s axis to avoid bending. 

This profiles system allow us to be highly modular, to have an easy assembly and to adapt our system easily. As profilies are highly standardize the user can easily add thing on the structure and we can put attachement on all the side to fix it on the wall, ceiling, desk,... for testing the structure is only putted abbove the desk with boxes to raise it 

Motor - cart subsystem 

general concept 

This subsystem is the one who deal with all the movement of the cart, it has a part fixed on the general structure: motor, motor driver, allimentation, limit switches and a cart that move  

mechanical Part 

The mechanical part of this subsystem is divided in two main parts:  

Cart 

The cart must be able to slide rapidly without too much resistance and friction on the rail. It must also be able to hold the sensor subsystem, the lamp and some belt attachment.  

To do so we chose a design with two plates around the rail that allow us to fit a lot of part on it without increasing its size much. The two plate are lazer-cutted with M3 hole with standard spacing that allow us to fix any future part easily without the need to design new plate each time. To be able to move the cart has 4 wheel, two above the rail and two bellow. We chose to put wheel also bellow the cart to hold it firmly on the rail. We must pay attention that the wheel are not pressed against the rail to not add friction but that they are near enough to go in the slot an prevent the cart from falling from the rail 

The wheel are custom made to fit on the slot of our rail, to be able to slide easily but also prevent the cart to slide of the rail. They are 3d printed with high precision setting to be sure of there roundness and uniformity. To allow smooth movement the wheel are placed on two bearing and on a bolt attached to the two lateral plat . The wheel is a critical part to allow smooth, regular and uniform movement 

Motor-Belt system 

The cart is motorized by the 42A02C step motor with 0.42Nm of torque that allow us to control precisely the movement and also to do rapid translation. We chose to put the motor on the main structure and not on the cart to limit the number of cables hanging from the cart. To transmit movement from the structure to the cart we used a GT2 timing belt. The belt is attached to the cart and driven by a pulley on the motor axes an another idler pulley on the other side of the structure. She is attached on a bolt that is fixed to the structure with a standart profile bracket. We used idler pulley on the side without the motor to reduce friction and noise.  

On the side of the motor we need to be sure that the axis is turning at the same speed than the belt to we used teethed pulley to prevent slipping. To attache the belt on the cart we use two part that have a U slot with teeth, the teeth are the inverse of the belt teeth. that allow us to hold the belt tightly and without risk of sliding. The belt tensionning is done on the cart part, the pieces holding the belt are attached to the cart by bolt, but not in hole put on a slot on the belt attachement. that allow us to slide the belt tensionner to tension the belt. to secure it once the belt is tension there is some side hole on the slot. The belt tensionner is 3d printed, the presision of the 3d printing is realy important to have a tight fit. To be sur that the teeth wil hold the belt tightly they are a little bit bigger the one of the belt also the part is printed with the U horizontal to be sure that all the teeth are the same and with maximum accuracy.  

The multiple hole on the cart and the profile structure allow us to move easily the pulley, motor and belt tensionner to be sure that they are on the same axis parrallel to the rail. This is important to limit wear and tear  

electronical part 

The step motor is driven by a micro-stepper driver that allow us to drive the motor smoothly. The motor is rated up to 35V and 1.5A, to be able to send these kind of power we need an external power source as the Arduino can only output 5V. The micro stepper driver allows us to control the power sent to the motor. We only use 12V for 1.5A, experiment showed that this was the best compromise between speed, smooth movement and noise. But this can be easily changed in function of the use case.  

It is not necessary to know the absolute position of the cart since it is moved with respect to the user position. Doing so simplifies the code a lot. It is however necessary to be careful not to let the cart collide with one of the extremities of the rail. To do so limit switches are used, which allows to stop the cart whenever it would reach the end of the rail. Limit switch are attached to the rail with profile insert, that allow us to limit the range of the cart by just sliding the limit switch without any change in the code or electronic. 

Sensor Hub

In order to guarantee a correct functioning of the movement detection and tracking of the product, the sensors have to be positioned slightly outwards. This is necessary because the sensors are positioned next to each other on the cart and for optimal sensing their fields of view (FOV) are supposed to only partly overlap. Evidently, if the fields of view overlap completely, there is no distinction between the left and right sensor and the system would not know to go in which direction once the user is out of sight. In the other extremity where the sensors are angled outwards too much, a blind spot appears in between the two fields of view of the sensors. Although, with using the same logic as for partly overlapping FOV's, the system would still work in the same way for the user inside the blind spot, this configuration has a major disadvantage. Namely, there is no distinction between the situation where the user is in between the two FOV's and the situation where the user is completely somewhere else or nobody is in the proximity of the desk. So the FOV's of the sensors need to partly overlap and the amount of overlap is regulated by the design of the sensor support onto which the two sensors are attached as it dictates the relative angle between the sensors. In the situation where the FOV's only partly overlap, the accuracy and sensitivity of the tracking increase with increasing relative angle between the sensors.

The sensor subsystem is made up of three different types of plates fixed together with the aid of bolts. The dimensions of the plates are determined in function of the optimal angle between the sensors so that the system tracking behaviour of the system is satisfactory in accuracy and sensitivity. By performing tests, the optimal angle is determined to be 15 degrees and the support is then designed so that this angle is realised.

Sensors

For the sensors infrared time of flight (TOF) sensors are chosen because of their low cost compared to alternatives, their availability in the market, their compatibility with Arduino and their limited but still diverging field of view. For choosing the right TOF sensor different aspects are regarded, namely the angular aperture, the maximal measuring distance, I2C interface for data transfer to Arduino and again the cost and availability. Taking all these important aspects into account, the VL53L0X ToF sensor of STMicroelectronics is chosen.

Certain tests on the ToF sensors lead us to conclude that an array of ToF sensors does not succeed in determining the position of the user. A hand detection test and body detection test were carried out and it can be seen from these tests that the ToF sensor is only able to detect an object the size of a hand up to 50 cm which means that the sensors would have to be put too close to the desk’s surface. A torso on the other hand is detected up to 120 cm. This is the main reason why other concepts than concept 2 had to be investigated and in the end concept 4 is chosen as final concept.

For concept 4, since the proximity sensor measures how far away an object is from the sensor, it actually gives more information than what we are initially interested in, namely if something is inside the FOV or not. Therefore, one could argue that a sensor with a limited angular aperture but which only lets us know if something is inside the FOV or not is more suited for the job. But this extra information of how far away an object is, is actually used to limit the FOV in the distance to an object. More specifically, by disregarding measurements more than 2m for example, the system only gets activated for somebody working at the desk and not for someone passing by at more than 2m from the sensors and thus around 1m from the desk.

Software

The chosen concept implies a displacement strategy of the cart with respect to the position of the user, or in other words, with respect to the sensing outputs. For this matter a code that can be seen as the brain of the hole system has been written. 

If the lamp is positioned correctly in regard to the user in between the two fields of view of the sensors there is a zone in which the user is either detected by both sensors at the same time or not detected at all. In this case the lamp has to stay in the same position. This zone is either a blind spot or a zone where detection is indifferent. If the user would first be detected by both sensors and moves so that one sensor doesn’t detect the user anymore, the lamp has to move in the direction of the sensor which detects the user. The same reasoning holds in the case that the user would initially not be detected by any sensor. These two zones where only one sensor detects the user are called the detection zones.  

The code is the brain of the hole system. It does repeated loops that ensure to have both a good moving of the lamp and a good sensing. This was actually the critical part. Indeed, as explained before, the step-motor needs repeated impulses to work correctly. The delay between each impulse is of 30µs. After some measurement tests it was noticed that the reading of the lidars takes approximately 83ms. Also, the reading of the switches takes some ms. It is therefore necessary to read the sensors at repeated intervals that give enough time to the motor to move the cart. It is however important to keep sufficiently frequent sensing to have correct feedback about the user position. 

The tests showed that the following combinations are optimal. Every 1.25 seconds both the measurements of the lidars are taken. The cart will then move in consequence during the following 1.25s as explained above or stay at its place. Every 200ms the switches states are checked before sending the PWM signal to the step driver. If the one at the right extremity is on, then the cart is only allowed to move to the left, and vice-versa   

After some tests it was noticed that there was a small probability that the user would be at a certain position such that the cart goes repeatedly from left to right without stopping at the good position. Therefore the code was slightly modified in a way that this problem can't happen anymore. When lidars are read, the values are saved. If two consecutive lidar readings happen to be either left then right or right then left, the code understands that the situation is the one described above. It will thus divide the time of displacement of the cart such that it goes back half way to stop on the right position. 

The final tests showed that the code does the work. The lamp follows the chest of the user and therefore illuminates correctly the working zone. One of the way of improving the code would be to find a better compromise between the interval between each lidar measurement, the speed of the cart and the switches measurement frequency. It would be interesting to implement different options depending on the working circumstances. For example it would be interesting to have a very accurate mode in which the lidar measurements would be taken very often, which implies jurky movements of the lamp but high accuracy on its position. 

Step 8: Integration Guide

In the following integration guide a list of assemblies and components is provided, together with explanations of how to combine all the components. A detailed explanation is given in the attached pdf.

First of all, the various subsystems of our product are:

·       Main structure

·       Sensor hub

·       Cart

Main structure

As shown in the picture, the main structure is made up of several components. Side and frontal rail are joined with the aid of brackets, rail inserts T-nut and screws. The detailed picture of how to fix these components is given.

Two of these joints are needed for each side rail to be fixed. In addition, this joint is also used for fixing the 3d printed pulley for the belt. In the pulley an M6 bolt it’s used as a shaft and two compatible bearings are inserted for making the movement smoother.

The motor is fixed on the opposite side of the pulley through a MDF plate screwed to two rail inserts. The ARDUINO and its hub, an MDF plate, are not shown in the 3D model. However, they are fixed with screws and rail inserts too. The same combination is used for fixing the two limit switches’ plates on which we attach the sensors by bolts.

Sensor hub

First the two sides of the sensor hub are attached together with M3 bolts and clamped by teeth. Finally, the sensor hub is fixed with M3 bolts to the cart.

Cart

In the picture below it’s shown how to assembly the cart. Two bearings are inserted in the wheel and locked on the other side by spacers. A M8 bolt keeps the two plates together.

Step 9: Demo Project Show + Quick Start Guide

Now that the technical implementation of the prototype has been explained, a quick guide to its use is provided.  

  1. It is important to first find a place to fix the lamp. The rail must be as horizontal as possible to optimize the tracking and the moving of the lamp. Make sure that there are no objects in the area where the lamp will move to avoid collision. 
  2. (optional) As long as the prototype is not plugged in to the power supply, you can position the lamp wherever you want on the rail by hand.  
  3. Connect the power supply of 12V to the step-driver. The lamp is now ready to track you. 
  4. If for some reason the lamp loses your position, you can either come back in front of it and go slowly to your desired position, or simply draw it towards your position with your hand. 
  5. Enjoy your work! 

Step 10: Review Your Project Critically


The current prototype meets the basic requirements: The cart can track a person and follow a person sitting on a desk. Due to the limited time for this project, we have focused on finishing the movement and sensing functionality. Therefore, a dedicated lamp is not yet implemented on the system, but as a proof of concept, we have added a battery powered flashlight. Nevertheless, adding a lamp to this design shouldn’t be too difficult.  

Of course, some improvements could be made in terms of mechanical design as well as for electronics and software.  

Improvements to be made:  

  • Using rubber wheels on the cart and making use of an eccentric nut could reduce play between cart and rail. 
  • using two Arduino’s to separate the sensor reading and the motor control functionality will result in a smoother movement of the cart. Since one dedicated Arduino could be used to read out sensor values, it will not interrupt the generation of pulses going to the motor driver. Two Arduino’s could communicate via GPIO pins or via a communication protocol like UART. 
  • Cable management: Cables are bundled into a cable sleeve but are still hanging freely. This could interfere with objects or a person sitting at the desk. This could be solved by using a cable carrier that gets supported by a part of the rail. 

Solving these problems would make our prototype a more robust and reliable product. In addition, some extra functionalities could be added: 

  • Upgrading software to change the acceleration of the cart. 
  • Adding buttons to switch between modes: enable/disable movement. 
  • Dimming the lamp as a function of the ambient light. 
  • … 

It goes without saying that this list can be expanded further in various ways.  

Step 11: Sustainability

The majority of the pieces are not machined in house but bought and assembled. This causes little to no direct impact on the environment on our side but we must pay attention that the supplier is environmentally cautious. It is chosen to use mainly metal parts which can be made up of recycled metal. 

On the other hand,the parts machined in house are mainly made up of plastic part and lazer cutted wood.

We have estimated the power needed for the system, our product consume 7.75Wh (5Wh for the lamp,1 Wh for arduino and sensor and 1,25 Wh for the motor as it’s not used continiously). The production of a kWh in Europe corresponds, on average, to 250 g of equivalent CO2 emission. Nevertheless, this is really dependent on the means of electricity production used in the country. While used, our product releases indirectly 1.93 g of equivalent CO2 in the atmosphere due to his power consumption. 

The limiting factor for the life span of our prototype is the electronic components, which loose their performances by the time passing, and the plastic parts subjected to wear. The main structure, the motor holder, pulley holder, arduino case, micro stepper driver case, cart, sensor hub are made with strong enough material and are not subjected to to much constrain to be really durable. Even if we arrive at the end of the product life, these parts can be reused or recycle easily. 

We can divide the part susceptible to break in two groups: the part easily reparable/changeable and the other. All of the following parts can be easily changed by the user 

  • Belt: It's the part the most susceptible to break but it is accessible and easily available on the market and can be changed easily. 
  • Wheels: this part suffer a lot of wear and tear, it must be changed regularly. Irregularity on the surface would cause problems in the smoothness of the movement. Nevertheless, it is relatively easily changeable even though it requires disassembling the cart. They are made of plastic, the plastic can be chosen to be recyclable. 
  • Motor: the motor can be easily replaced. Or sent to the manufacturer to be repared. If not reparable most of the part are reusable or recyclable  
  • Belt tensioners: Made of plastic, the plastic can be chosen to be recyclable. It can be easily removed from the cart. 

Mechanical components easily changeable are previously. Thus, the main problem results to be the electronic part: it cannot be easily changed by the user. Indeed, it is difficult to determine the source of problems. The product can be repaired if the user resend it to the factory. At the end of the life, the electronic components are also the most problematic ones.Indeed, they are unlikely to be recycled. 

In conclusion, most of the components are recyclable while some of them are also directly reusable. Components susceptible to break are easily replaceable by the user. 

Step 12: Bill of Materials

The components needed to realise this project are given in the bill of material list.

In order to make some components yourself, you will also need to have access to:

·       CAD software

·       3D printer

·       Lasercutter

·       Metal saw

·       Power supply

Step 13: Presenting the Team

  • Andrea Zanaglio: I am a student currently attending the double degree program in Mechanical engineering both at Politecnico di Milano and ULB. I graduated in Mechanical engineering at Politecnico di Milano in July 2022. The part I worked more on was the mechanical design of each component of the prototype and of the entire assembly. Since I have mainly a theoretical background, I really enjoyed the practical work in this project: for instance, using 3D printing machines and laser cut but also assembly all the parts for obtaining the result.
  • Nathan De Smedt: I am a student in the robotics option of the Electromechanical master for Bruface. I have done my bachelor at ulb. I worked mainly on the mechanical design, CAD design and embodiment of the prototype. As it's the part that interests me the more and on which I plan on specialising me. I already work a lot with 3D printers and other small manufacturing process but this project allowed me to improve and discover new manufacturing and assembly process.
  • Viktor De Groote: I am a master student in Electromechanical engineering, more specifically robotics in the programme BruFacE, the engineering collaboration between the VUB and ULB. During a project, management is sometimes needed to steer everything in the right direction. For this project that was no different and when my environment needs this, I'm happy to take this responsibility on me. One of the challenges we faced in this project was the fact that everyone had his own preference in way of working and approach towards the project. My contribution for the report consisted of writing the foundation, i.e. need identification, functional analysis and requirement list and conceptual design, and then continuing on the sensing. My contribution in building the prototype consisted of keeping the general overview and designing mechanical parts, assembly of the prototype, integration of the sensors and some programming.
  • Jef De Cubber: I am a master student Electromechanical engineering robotics as well. Previous year, I got my master’s degree in Engineering Technology: Electromechanics at VUB. During this education program, I have been involved in several prototyping/mechatronics projects. I have tried to share as much knowledge from the previous years with my teammates and to propose solutions for problems we encountered during the whole project, based on experience. I like both mechanics and electronics. I mostly worked on the sensors and electronics parts. I also designed and improved some mechanical parts. 
  • Nathan Nascimento: After finishing my bachelor's degree in engineering sciences at ULB, I am now doing a master's degree in robotics in the VUB-ULB bruface programme. During this project, I mainly worked on the electronic and computing aspects, handling the components first separately and then together. The part I really enjoy is always to think of the best strategy to achieve the desired behavior of the prototype and to translate it into a code as robust as possible. 

Step 14: Project Repo

In this ZIP-file, you can find all the CAD, dxf and stl files related to the design, laser cutting and 3D printing of parts.