PRE2024 3 Group6: Difference between revisions
(→Planning and milestones: Added time spent) |
m (updated spelling and wording) |
||
(53 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Group Members (Group 6) | |+Group Members (Group 6) | ||
Line 22: | Line 21: | ||
=== Problem statement === | === Problem statement === | ||
Blackboards are widely used even in the digital age. At the Technical University of Eindhoven blackboards are beloved with teachers and students alike. There are many reasons for the love for blackboards, however one downside is that cleaning the blackboards is inefficient. While the professor is cleaning the blackboard the lesson is momentarily halted and the chalk can get everywhere which can make for an unclean environment. A blackboard cleaning robot could mean that a teacher does not need to pause their lecture and could lessen the unsanitary environment of the teacher. | Blackboards are widely used even in the digital age. At the Technical University of Eindhoven blackboards are beloved with teachers and students alike. There are many reasons for the love for blackboards, however one downside is that cleaning the blackboards is inefficient. While the professor is cleaning the blackboard the lesson is momentarily halted and the chalk can get everywhere which can make for an unclean environment. Designs exist to clean the dusters automatically, but that still leaves cleaning the blackboard to the teacher.<ref>Jagtap, S., & Tuljapure, S. (n.d.). ''DESIGN OF BLACKBOARD DUSTER CLEANING MACHINE''.</ref> A blackboard cleaning robot could mean that a teacher does not need to pause their lecture and could lessen the unsanitary environment of the teacher. | ||
=== Objective === | === Objective === | ||
The objective of this project is to develop a robot that can efficiently and without much drawbacks clean the blackboard. The robot should be able to reach all the spaces on the blackboard and clean them. This is the basic requirement of the robot, furthermore several things are preferred. First of all the robot should be able to detect if parts are not necessarily erased and avoid erasing these locations. Second, the space the robot takes up should be minimized and the chalk residue should be stored, as to lessen the need for routine cleaning of the machine. Lastly the robot should clean the robot efficiently as to be as small as a distraction for students and professors as possible. | The objective of this project is to develop a robot that can efficiently and without much drawbacks clean the blackboard. The robot should be able to reach all the spaces on the blackboard and clean them. This is the basic requirement of the robot, furthermore several things are preferred. First of all the robot should be able to detect if parts are not necessarily erased and avoid erasing these locations. Second, the space the robot takes up should be minimized and the chalk residue should be stored, as to lessen the need for routine cleaning of the machine. Lastly the robot should clean the robot efficiently as to be as small as a distraction for students and professors as possible. | ||
=== | === Who are the users? === | ||
The primary users of a blackboard cleaning robot include '''teachers, lecturers, and school staff''' that rely on blackboards for instruction. Additionally, people working at '''companies, research labs, and conference halls''' that use whiteboards or blackboards could also utilize these robots. '''Janitorial staff''' working at these institutions can also benefit from the robot as it reduces their workload. | The primary users of a blackboard cleaning robot include '''teachers, lecturers, and school staff''' that rely on blackboards for instruction. Additionally, people working at '''companies, research labs, and conference halls''' that use whiteboards or blackboards could also utilize these robots. '''Janitorial staff''' working at these institutions can also benefit from the robot as it reduces their workload. It was also decided to focus in specific on '''Dutch universities''' for our design, since we have better access to these institutions. | ||
=== What do they require? === | === What do they require? === | ||
Users need robots to be better than humans in some aspects of the task of wiping the blackboard, such as faster, cleaner, and dust-free, or have some additional intelligent functions, such as | Users need robots to be better than humans in some aspects of the task of wiping the blackboard, such as faster, cleaner, and dust-free, or have some additional intelligent functions, such as controlling with phone app, saving erased content or providing intelligent assistant services. After meeting the main requirements and some minor requirements, we will try to make the robot more stable, reliable and cheap, and apply it to more different blackboards. | ||
== Goals == | == Goals == | ||
'''Core goal:''' Clean the blackboard | '''Core goal:''' Clean the blackboard quietly and effectively, leaving no dead corners. | ||
'''Secondary goals:''' | '''Secondary goals:''' | ||
Line 42: | Line 41: | ||
2. Remote control through a mobile app. | 2. Remote control through a mobile app. | ||
3. Provide a dust removal solution to prevent dust pollution from affecting the health of users. | 3. Provide a dust removal solution to prevent dust pollution from affecting the health of users.<ref>Y. A. Maruthi 1 & S. Ramprasad 1 & N. Lakshmana Das 2; Trace Elemental Characterization of Chalk Dust and Their Associated Health Risk Assessment</ref> | ||
4. | 4. Provide selective cleaning, leaving important parts on the board uncleaned | ||
== | == Outcomes user interviews == | ||
Some highlights/recurring thoughts encountered during interviews conducted with potential users of our product: | |||
Problems current use with the cleaning of blackboard | |||
* Hands get chalky | |||
* Dirty boards at start of lecture | |||
Preferred timing of cleaning | |||
* Clean during breaks | |||
* Automatically after lectures | |||
Additional preferred features | |||
* Scan in notes | |||
* Erasing certain parts and leaving others out, would be nice to have organic shapes cleaned | |||
* Dry and wet cleaning options | |||
Robot specifications | |||
* Should clean board in 5 minutes | |||
* Should not block the board in any way | |||
* Should be able to clean the whole board | |||
* Robot should be quiet | |||
Robot-user interaction | |||
* Swiping away the places that should be cleaned on a tablet | |||
== RPCs == | == RPCs == | ||
Line 72: | Line 81: | ||
* Able to clean entire blackboard - (some interviewees wanted this, some not. For broadest appeal we want the ability to clean the entire board) | * Able to clean entire blackboard - (some interviewees wanted this, some not. For broadest appeal we want the ability to clean the entire board) | ||
* Able to selectively clean board, avoiding areas indicated by user - (Most interviewees viewed this as very helpful) | * Able to selectively clean board, avoiding areas indicated by user - (Most interviewees viewed this as very helpful)<ref>M. Umbarkar 1, S. Kattitharayil 1, F. Rozario 1; Design & Fabrication of Smart Board Cleaner | ||
International Research Journal of Engineering and Technology (IRJET), vol. 6, no. 4, pp. 1645–1650, Apr. 2019</ref> | |||
* Able to withstand accidental bump during operation (an interviewee mentioned this) | * Able to withstand accidental bump during operation (an interviewee mentioned this) | ||
* Design can work on multiple sizes of blackboard (an interviewee viewed this as useful) | * Design can work on multiple sizes of blackboard (an interviewee viewed this as useful) | ||
Line 93: | Line 104: | ||
* Should not block any of significant areas when not in use, i.e. areas outside of corners (interviewees didn’t mind it sitting in a corner, but would like the board to be accessible) | * Should not block any of significant areas when not in use, i.e. areas outside of corners (interviewees didn’t mind it sitting in a corner, but would like the board to be accessible) | ||
== Design | == Design evaluation == | ||
In this section, | In this section, designs will be introduced and evaluated how well they fit the RPC's. | ||
=== Car wipers design === | === Car wipers design === | ||
The car | This is a design based on a car windshield wiper. Through the combination of six connecting rods, it can achieve a similar effect to a car windshield wiper and wipe the blackboard surface very quickly. The advantages are small size and extremely fast speed. However the car wiper design is bound to have blind spots, it will block part of the blackboard and making it able to selectively clean parts is not possible. Thus the car wipers design does not fit the RPC's.<ref>V. A. 1, N. Abinesh 1, J. Abiram 1, C. Abishack 1, V. A. Kumar 1; Design and Fabrication of Blackboard Cleaner | ||
International Journal of Engineering Applied Sciences and Technology (IJEAST), vol. 5, no. 11, pp. 229–237, Mar. 2021</ref> | |||
=== Drone design === | === Drone design === | ||
While brainstorming, a lot of designs couldn't service multiple blackboards at the same time. Therefore, it might be cost-efficient to design a robot which is able to clean every blackboard in the room. There is another benefit to this: the dimensions of the blackboard do not matter as much, since the robot won't be attached to it. One way to realize this idea is with a drone. The drone could be 'resting' in a corner of the room, charging, until it is called to action. It then flies up, identifies the blackboard(s) that need cleaning and flies there, giving a wide berth to any obstacles in its way. Using an eraser affixed to its body, it can clean the board side to side or in swaths going up, paying close attention to its balance. Once done, it flies back to its charging station where the eraser can also be cleaned for next time. | |||
This approach has some benefits, but also major drawbacks. Next to the benefits detailed above, drone technology has become mainstream. It could be possible to simply adapt an existing drone frame for this purpose, speeding up development. However, the main drawback would be sound. If the lecturer wants the board to be cleaned ''during'' the lecture, the drone might drown out their voice. Safety is also a big concern which would need extra attention during development. | |||
=== Crane design === | === Crane design === | ||
This is a variation of the traditional design, where the vertical brush heads are replaced with a small robot suspended on the top track, which moves left and right through the track and up and down through the suspension system. The advantage is that it is smaller and lighter, but the disadvantage is that the erasing speed is necessarily very low.<ref>张立勋, 夏占, 齐李, 张永发, 韩亮, & Ltd, Z. Y. R. T. C. (2013, February ''CN203184863U - Cantilever type sliding rail mechanism applied to rectangular coordinate system welding robot - Google Patents''. <nowiki>https://patents.google.com/patent/CN203184863U/en</nowiki></ref> Another disadvantage is that the control of such a design can get quite complicated due to the swinging of the robot.<ref>TIANLEI WANG, NANLIN TAN, et al; "Global-Equivalent Sliding Mode Control Method for Bridge Crane"</ref> | |||
The crane design likely satisfies our requirements and constraints, although we cannot guarantee the cleaning speed without doing testing first. We believe this design might be too slow for our requirements. The design also would have to be tweaked for different blackboard sizes. | The crane design likely satisfies our requirements and constraints, although we cannot guarantee the cleaning speed without doing testing first. We believe this design might be too slow for our requirements. The design also would have to be tweaked for different blackboard sizes. | ||
=== Traditional design === | === Traditional design === | ||
[[File:Traditional.jpg|thumb|Tradition design used in japan]] | |||
This is the most traditional design of a blackboard-wiping robot. It is a rectangular block with the same width as the blackboard. It moves left and right in front of the blackboard via upper and lower tracks and cleans with row-by-row blackboard brushes. The advantages of this design are stability, speed, maturity, and a large number of examples that have been put on the market. There is a lot of redundant space to add additional components such as dust removal modules. The disadvantage is that it is too large and must be installed with two rows of upper and lower tracks.<ref>Prashanth Pai Manihalla, Yathin Krishna, Nagaraja Anand Naik, Naveen Kumar, Rakshith, Rakshith Billava Ramappa; Design and fabrication of an electromechanical system to clean the blackboard. ''AIP Conf. Proc.'' 20 May 2020; 2236 (1): 050006. <nowiki>https://doi.org/10.1063/5.0007099</nowiki></ref><ref>V. Mohanavel, C. Kailasanathan, T. Sathish, V. Kannadhasan, S. Vinoth Joe Marshal, K. Sakthivel, Modeling and fabrication of automatic blackboard dust remover, Materials Today: Proceedings, Volume 37, Part 2, 2021, Pages 527-530, ISSN 2214-7853, <nowiki>https://doi.org/10.1016/j.matpr.2020.05.487</nowiki>.</ref><ref>https://patents.google.com/patent/US3731335A/en</ref><ref>FENGYIBAO 1, RESIN XIAODAN 1, WU SONGZUE 1, XU HAO 1, SU HAILONG 1, FUMIN 1; Intelligent and Automatic Blackboard Cleaning Nacgube | |||
(School of Mechanical Engineering, Tianjin University of Science & Technology, Tianjin 300222, China)</ref> | |||
The ‘traditional’ design satisfies our requirements and constraints, though we would need to carefully implement it to ensure it is not too loud. The problem with this design is that it already exists, meaning that we would need to work on something to improve upon this design. The design also would have to be tweaked for different blackboard sizes. For the traditional design the improvement we wanted to look into was selective cleaning. At the end the traditional design was considered to not be innovative enough and be too bulky to our liking. | The ‘traditional’ design satisfies our requirements and constraints, though we would need to carefully implement it to ensure it is not too loud. The problem with this design is that it already exists, meaning that we would need to work on something to improve upon this design. The design also would have to be tweaked for different blackboard sizes. For the traditional design the improvement we wanted to look into was selective cleaning. At the end the traditional design was considered to not be innovative enough and be too bulky to our liking. | ||
=== Cable car design === | === Cable car design === | ||
[[File:Cableexample.jpg|thumb|Example of how a cable driven robot could look]] | |||
This is a design similar to a glass-wiping drone, which is attached to the blackboard surface by magnets. The highlight of its design is that there are two taut cables between it and the two corners of the blackboard, which can provide a certain support for its weight and help the robot accurately locate its position on the blackboard at any time, eliminating the trouble of self-positioning in similar designs. Studies show similar designs performed quite well in comparable applications. <ref>Tang, L., Tang, X., Jiang, X., & Gosselin, C. (2015). Dynamic trajectory planning study of planar two-dof redundantly actuated cable-suspended parallel robots. ''Mechatronics'', ''30'', 187–197. <nowiki>https://doi.org/10.1016/j.mechatronics.2015.07.005</nowiki></ref><ref>German, J. J., K.W. Jablokow, & Cannon, D. J. (2002). ''The cable array robot: theory and experiment''. ''3'', 2804–2810. <nowiki>https://doi.org/10.1109/robot.2001.933047</nowiki></ref> | |||
The cable design does satisfy all requirements and constraints. The cable design could be quiet depending on the motors used and is ideal for selective cleaning. There are some reservations about being able to properly develop it within the time frame and the long term use of such a robot. Even so the cable design is novel and does fit well with the requirements set. | The cable design does satisfy all requirements and constraints. The cable design could be quiet depending on the motors used and is ideal for selective cleaning. There are some reservations about being able to properly develop it within the time frame and the long term use of such a robot. Even so the cable design is novel and does fit well with the requirements set. | ||
=== Free form design === | === Free form design=== | ||
The free form design has a wide variety of possible designs. This design does adhere to the RPC’s, but the free form design would be complex and costs would be higher than for other designs. With the limited time and money at our disposal other designs were preferred. | The free form design has a wide variety of possible designs <ref>Junru Zhu, Yongqiang Zhu, Pingxia Zhang, Review of advancements in wall climbing robot techniques, Franklin Open, Volume 8, 2024, 100148, ISSN 2773-1863, <nowiki>https://doi.org/10.1016/j.fraope.2024.100148</nowiki>.</ref><ref>Chan, Brian & Balmforth, Neil & Hosoi, AE. (2005). Building a better snail: Lubrication and adhesive locomotion. Physics of Fluids - PHYS FLUIDS. 17. 10.1063/1.2102927. </ref><ref>VertiGo - a Wall-Climbing Robot including Ground-Wall Transition</ref>. This design does adhere to the RPC’s, but the free form design would be complex and costs would be higher than for other designs. With the limited time and money at our disposal other designs were preferred.<ref>Junyu Hu, Xu Han, Yourui Tao, Shizhe Feng, A magnetic crawler wall-climbing robot with capacity of high payload on the convex surface, Robotics and Autonomous Systems, Volume 148, 2022,103907, ISSN 0921-8890, <nowiki>https://doi.org/10.1016/j.robot.2021.103907</nowiki>.</ref><ref>Qin, J., & Wei, Q. (2020). Wall-climbing obstacle-avoiding full-automatic lampblack cleaning device. ''IOP Conference Series Materials Science and Engineering'', ''793''(1), 012036. <nowiki>https://doi.org/10.1088/1757-899x/793/1/012036</nowiki></ref> | ||
Following these considerations, we chose the cable car design. It fits well with our requirements and is a novel way in tackling the blackboard cleaning problem. | |||
== Working out the cable car design== | |||
After choosing the cable car design, the scope of our prototype was decided. Within this scope, we identified different parts to work out: the duster, connection of the duster to the motors, the motors, the path planning for the duster, and the image recognition. These subproblems were then divided amongst us to solve individually. After solving a subproblem, it will be integrated together with other subproblems to form the solution of the entire design. | |||
===Hardware=== | |||
== | |||
=== Cable connection === | ====Cable connection==== | ||
There were several possible problems identified with the cables: sagging, being too elastic, and spooling up the wire in the wrong way. | There were several possible problems identified with the cables: sagging, being too elastic, and spooling up the wire in the wrong way. | ||
Line 129: | Line 153: | ||
Lastly, spooling up the cable is also important for positioning. Using a 'standard' spool, the cable could move laterally over the barrel. It could overlap other pieces of cable while another part of the barrel was still free. This means that with one rotation of the motor, it is unknown how much cable has been released or gathered. This could be measured in other ways, but that would add complexity. Another solution would be to use a levelwind spool - this however would also increase complexity and use more space. We decided on using a spool with a barrel-width the same as the diameter of the cable. This way, at every point in a rotation you know how much cable you are moving. The only downside here is that the driving motor would need more torque, since the maximum diameter of the spool is larger. Assuming a 1mm diameter cable however, this maximum diameter is less than 7 cm. | Lastly, spooling up the cable is also important for positioning. Using a 'standard' spool, the cable could move laterally over the barrel. It could overlap other pieces of cable while another part of the barrel was still free. This means that with one rotation of the motor, it is unknown how much cable has been released or gathered. This could be measured in other ways, but that would add complexity. Another solution would be to use a levelwind spool - this however would also increase complexity and use more space. We decided on using a spool with a barrel-width the same as the diameter of the cable. This way, at every point in a rotation you know how much cable you are moving. The only downside here is that the driving motor would need more torque, since the maximum diameter of the spool is larger. Assuming a 1mm diameter cable however, this maximum diameter is less than 7 cm. | ||
=== Motor selection === | ====Cable Design:==== | ||
To drive the cables, motors are needed. Since we want to control the position of the motor relatively accurately to ensure the position of the duster is also accurate, we had to decide between a servo motor and a stepper motor. Comparing the two, we decided for a stepper motor since it was the cheaper option and we did not need the features servos offered over it. After this decision, the next important decision was needed: the required torque. For every position on a blackboard, the required force on the cables was calculated. Directly | [[File:Cable duster blackboard.png|thumb|cable design]] | ||
To reduce cable tension, a design was chosen where the cable extends to the edge of the board and then loops back. On the edge of the blackboard, the cable attaches to the spool on one end and is secured with a knot to the case surrounding the motor on the other end of the cable. | |||
On the duster, the cable attaches to the upper side to prevent it from rotating and ensure the cleaning surface remains properly oriented. The cable attachment on the motor side is straightforward, a simple 3D-printed loop to which the cable can be attached with a know will suffice. However, on the duster side, it is important for the cable connection to be adjustable to allow for testing different configurations. | |||
To achieve this, a bar is mounted as depicted in the figure below. A pulley can slide along this bar and be fixed at different positions, making it easy to experiment with various cable placements. | |||
====Cleaner Design:==== | |||
[[File:Cleaner design.png|thumb|Cleaner Design]] | |||
The cleaner utilizes a treadmill concept to achieve wet and dry cleaning. The image is a side view of the design. The design incorporates a belt (black) made of "felt" for dry cleaning as one half and "microfiber" for wet cleaning as the other. The reason they are chosen is because felt is traditionally used in cleaners and is water-resistant whereas microfiber can easily absorb water and is generally used for cleaning. Furthermore, they are easily available. | |||
To move the belt, there is one active rolling motor (yellow) and one passive roller (grey). These can be used to switch between the dry and wet sections. A water tank is located between the rollers which is used to moisten the microfiber. The disposal mechanism (green) still needs to be worked on but the current idea is to utilize capillary action to passively spread the water on the microfiber. | |||
The mechanism is surrounded by a casing (red) with magnets (purple) to stick to the blackboard. | |||
====Balance Design:==== | |||
[[File:Balance.png|thumb|Balance Design with water tank]] | |||
In the later version of the prototype design, we added a water tank to support the wet cleaning function. In order to stabilize the robot during operation, we designed a counterweight system, using the water tank as the counterweight of the entire robot. Its specific form is shown in the right figure. The water tank is rigidly connected to the duster, contain the water a distance lower than the duster, which greatly lower the overall center of gravity. The cable connection is the core force point of the entire device, lateral rotation tendency will be centered at this point, and the water tank will generate a torque in the opposite direction due to the rigid connection when any rotation occured, driving the duster back to the horizontal direction. | |||
Turning the view to the side, we can see that the linkage between the water tank and the duster is using a ball bearing, which allows the water tank to generate an opposite torque when the entire system produces an unbalanced rotation on the side, pressing the duster to the surface of the blackboard to maintain overall balance. | |||
====Motor selection==== | |||
To drive the cables, motors are needed. Since we want to control the position of the motor relatively accurately to ensure the position of the duster is also accurate, we had to decide between a servo motor and a stepper motor. Comparing the two, we decided for a stepper motor since it was the cheaper option and we did not need the features servos offered over it. After this decision, the next important decision was needed: the required torque. For every position on a blackboard, the required force on the cables was calculated. Directly in between the motors the highest forces were calculated: this makes sense, since the vertical component of the forces along cables is small compared to the horizontal forces. Taking a mass of 1 kg and a height difference of 10 cm between the motors and the attachment to the duster, the force on each cable was 70 N. Combining that with the maximum diameter possible on our spool (7 cm) we get a required torque of 2.5 Nm. To reduce this, a pulley is attached to the duster and through the pulley the cable is run back. This increases the maximum spool diameter, but also halves the force. To further reduce this needed torque, the minimum height difference between duster and motors can be increased, halving the required forces if set at 20 cm. | |||
==== Motor attachment to blackboard==== | |||
To connect the motors to the blackboard, a set of clamps will be used. These clamps can be loosened by the user, moving the motor and spool to a new location if desired. This functionality means the blackboard can be cleaned and used at the same time, should the user desire this. | |||
A | ====Controller design==== | ||
[[File:Block diagram of control loop on distance.png|thumb|Block diagram of control]] | |||
A start has been made on a controller design. The plan is currently to use feed forward to account for the majority of the necessary motion. Feedback will be used to account for errors, for example when the cable sits differently on the spool than expected. | |||
== | The control variable will be the desired distance between the motor and the duster. For each position, there's only one specific distance that places the duster exactly at that spot. So, once the desired position is known, the required distance can be easily calculated and used as input for the controller. The controller then combines both the feed forward and feedback signals and sends the result to the motors. | ||
===Software=== | |||
Our software must be able to detect the blackboard from an image, which can be supplied either manually by the user, or by a camera filming the blackboard. From this, it must be able to detect the areas that have to be cleaned and create a path along all of these areas, after which it should return to its starting position. Unfortunately, there is no known polynomial time algorithm for finding such a path (see [https://en.wikipedia.org/wiki/Travelling_salesman_problem Travelling salesman problem]), meaning a suitable approximation will have to be used to find a path. Our software could be able to scan in the notes that a lecturer has taken, before cleaning, to aid in studying. Additionally, the software could allow for areas to be avoided when cleaning, along with providing an option whether wet or dry cleaning is to be used. All of these functionalities should be made available for the user through an interface of an app. | |||
==Prototype== | |||
To test the feasibility of our design, we decided to make a prototype of it. This prototype has a couple of important changes compared to the design outlined above. A video of some of the testing done can be found [https://youtu.be/Yv8YkTtmVr8 here]. | |||
=== Hardware === | |||
[[File:Spool.png|thumb|left|200x200px|Spool which connected to the motors]] | |||
[[File:Duster.png|thumb|200x200px|Duster holder design]] | |||
Two NEMA 23 stepper motors were used with a torque of approximately 1.9 Nm. The duster prototype, spools and motor casings were made out of PLA and clamped to the board using nuts and bolts. The duster design had multiple placeholders for cylindrical magnets so the strength to the board could be tweaked. A counterweight hanging from a linkage was connected to the duster to prevent it from pivoting from its axis. Butcher's twine was used for the rope material to link the motors to the duster due to ease of availability and use. | |||
[[File:Clampcombined.png|thumb|Front and back view of the clamp design used]] | |||
Some parts of the mechanical design, like implementing pulleys, were infeasible to produce in such a short time frame. Mostly the duster design was too complex, due to its many small parts and water included in it. For the prototype, the duster was changed into a holder for a blackboard duster with a static counterweight to replace the water tank. | |||
The clamps attaching the motors to the blackboard are also different than envisioned. Building a dependable hand-operated system that provided enough clamping force to keep the motors in place would take too long, so it was decided to use bolts and nuts to provide the force for this. | |||
===Software=== | |||
The software of our prototype is split into to main parts, the blackboard & text detection, and the path-finding algorithm. Python was used for both of these parts, along with some imported packages, most notably numpy, for calculations, and OpenCV, for image operations. The text detection consists of three main parts, all of which rely on OpenCV methods to do image operations. First, we need a source image of the blackboard. This image does not need to be perfect, but should at least clearly have the corners and edges of the blackboard in frame. Second, we apply a number of filters to this image in order to do edge detection.The blackboard is then found by evaluating the largest area enclosed by a set of edges found during edge detection. This method proved very successful during testing. We can then crop out the blackboard out of the source image and transform it into a new image with dimensions proportional to those of the blackboard. Finally, using this new image of only the blackboard, we apply more filters to get only the text on the blackboard. This is done by evaluating each pixel and coloring those that meet a certain value white. While coloring those that do not are colored black. | |||
[[File:Blackboard1.jpg|thumb|Source image of the blackboard]] | |||
For the path-finding, we first need to know which parts of the blackboard we need to clean. To do this, we add a rectangular grid over the text image, and for each rectangle we check if there is text on the board there. We then do path-finding on all the rectangles, denoted by coordinates in our grid, that need to be cleaned. For our path-finding algorithm we chose to implement a greedy algorithm that goes to the nearest uncleaned area next. We chose for this algorithm, since it was easy to implement, and most often does not result in a much larger path than the shortest path over all points. After running the path-finding algorithm, we end up with a queue of points on the blackboard to be visited. We translate this to a queue of motor commands for the stepper motors, by calculating how much the cable lengths must change to go to the next position. Finally, we send this over to the raspberry pi. | |||
The raspberry pi runs a main process and one process for each motor. The main process handles interception of messages from the blackboard detection and path-finding software and passes this onto the motor processes. The motor processes wait for a message from the main process telling them for how long and in which direction the motor should spin. After a motor has stopped, it's corresponding process sends a message back to the main process, which will wait for both motors to finish before sending new commands. When the entire queue of motor commands has been cleared, the processes will get an exit message, after which they will terminate. | |||
After calculating the path through the program, we designed a python script to calculate the relative relationship between the cable and the dust collector position to ensure that the required cable length can be accurately controlled at each point on the path. This program is based on the mechanical analysis of the entire system, but after combining all the physical equations, we get a set of equations with four unknowns (the specific forces and angles of the two cables), which can only be fitted. Without giving a guess value, the code cannot calculate the exact result. Therefore, in the prototype program, we used a simple program that does not consider the rotation of the connecting rod at all. It assumes that the entire duster and its connecting device will always be horizontal to the ground. Although this does not allow us to accurately and perfectly control the position of the robot through the cable, it is already a relatively accurate enough solution. | |||
In the subsequent improvement plan, we will combine the camera's image recognition technology to observe and feedback the specific position and status of the robot in real time. These data can be used as guesses and input into the program version based on physical analysis to obtain more accurate control effects.[[File:Warped.jpg|thumb|Cropped out and translated image of the blackboard]] | |||
[[File:Text1.jpg|thumb|Text of the blackboard]] | |||
===Accounting of parts=== | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
! Amount | |||
!Type | |||
!Total mass (g) | |||
!Cost/unit (€) | |||
!Total cost (€) | |||
|- | |||
|2 | |||
|NEMA 23 stepper motor | |||
|2100 | |||
|24.50 | |||
|49.00 | |||
|- | |||
|2 | |||
|TMC2209 stepper motor driver | |||
|8 | |||
|7.00 | |||
| 14.00 | |||
|- | |||
|1 | |||
|Raspberry Pi 3 | |||
|45 | |||
| 50.00 | |||
|50.00 | |||
|- | |||
|1 | |||
|Assortment of DuPont cables | |||
|10 | |||
|2.00 | |||
|2.00 | |||
|- | |||
|1 | |||
|16 meters of 0.75 mm copper cable | |||
|120 | |||
|2.00 | |||
|2.00 | |||
|- | |||
|1 | |||
|PC power supply | |||
|1300 | |||
|0.00 | |||
|0.00 | |||
|- | |||
|1 | |||
|3D-printed duster cover | |||
|70 | |||
|1.40 | |||
|1.40 | |||
|- | |||
|2 | |||
|3D-printed clamp | |||
|160 | |||
| 1.60 | |||
|3.20 | |||
|- | |||
|2 | |||
|3D-printed spool | |||
|60 | |||
|0.60 | |||
|1.20 | |||
|- | |||
|1 | |||
|3D-printed cable-duster linkage | |||
|50 | |||
|1.00 | |||
| 1.00 | |||
|- | |||
|1 | |||
|20 meters of butcher's twine | |||
|30 | |||
|0.96 | |||
|0.96 | |||
|- | |||
|'''13''' | |||
|'''Total''' | |||
|'''3953''' | |||
| | |||
|'''124.76''' | |||
|} | |||
In the table above all used parts can be seen. Combined the cost for these is around 125€. For future development into a product, costs could be reduced in the following areas: | |||
*Motors: The current motors are chosen based on a conservative calculation. Further testing, a dual cable setup as detailed earlier, or gearing between the motor and spool can reduce the necessary torque and drive down the cost. | |||
*Micro controllers: For easier testing a Raspberry Pi was used, but this application could possibly also be run on something like an Arduino, or a board of our own design. | |||
*Scale: Buying the parts in bulk saves money compared to buying them in small orders. | |||
Some things would add cost in future iterations, like a camera to capture the board state. Overall we feel that 100€ is around the right order for the cost of a finished product. | |||
==Future steps== | |||
Building the prototype allowed us to get some valuable insights. | |||
*Our choice of magnets was subpar, a better choice would be magnet strips for better distribution of force | |||
*The movement should be a bit smoother, as right now the motors jerked around the duster too much | |||
*The cable spools were too wide, bumping into the blackboard poles when put onto the blackboard nearest to the wall. This could be prevented by a type of pulley-system | |||
*Building a real-time positioning system combined with a camera will enable real-time correction of the robot's position in the system through image recognition technology. This will enable us to more accurately locate whether the duster is in the area it should clean and avoid cleaning areas that should not be cleaned. | |||
*Improve the cable calculation program by combining the camera positioning system. | |||
*Currently the prototype is working with a PC power supply, this is very bulky. For the actual cleaner it would be better to have a smaller power supply to make it easier to install. | |||
==References== | |||
<references /> | |||
==Appendix== | |||
===Deliverables=== | |||
At the end of this project we aim to have the prototype of a robot which is able to clean a blackboard automatically. | |||
{| class="wikitable" | |||
|+Planning and Milestones | |||
!Week | !Week | ||
!Activities | !Activities | ||
!Milestones | !Milestones | ||
|- | |- | ||
Line 150: | Line 339: | ||
|- | |- | ||
|'''3''' | |'''3''' | ||
|Decide on design and start working out design, decide on cleaning path algorithm | | Decide on design and start working out design, decide on cleaning path algorithm | ||
|Design chosen, cleaning path algorithm chosen | |Design chosen, cleaning path algorithm chosen | ||
|- | |- | ||
|'''4''' | |'''4''' | ||
|Put together mechanical aspects of prototype, combine software with actuators | | Put together mechanical aspects of prototype, combine software with actuators | ||
|Mechanical part prototype finished, software finished | |Mechanical part prototype finished, software finished | ||
|- | |- | ||
Line 162: | Line 351: | ||
|- | |- | ||
|'''6''' | |'''6''' | ||
|Test out prototype on blackboards, prepare presentation | | Test out prototype on blackboards, prepare presentation | ||
|Tests finished | |Tests finished | ||
|- | |- | ||
|'''7''' | |'''7''' | ||
|Present, write out improvement points for robot. | |Present, write out improvement points for robot. | ||
| | | | ||
|} | |} | ||
===Task division=== | |||
=== Task division === | |||
{| class="wikitable" | {| class="wikitable" | ||
!Name | ! Name | ||
!Task | !Task | ||
|- | |- | ||
Line 188: | Line 374: | ||
|- | |- | ||
|Merlin | |Merlin | ||
| | | Software design | ||
|- | |- | ||
|Haochen | | Haochen | ||
| | | Physics analysis & programming | ||
|} | |} | ||
== Time division == | ==Time division== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Week 1 | |+Week 1 | ||
!Name | !Name | ||
!Total | !Total | ||
!Breakdown | ! Breakdown | ||
|- | |- | ||
|Dev | |Dev | ||
|9h | |9h | ||
|4h reading papers, 2h additional research (blogs, videos, ideating), 1.5h designing concepts, 1h meeting, 0.5h writing docs | |4h reading papers, 2h additional research (blogs, videos, ideating), 1.5h designing concepts, 1h meeting, 0.5h writing docs | ||
|- | |- | ||
|Geert | |Geert | ||
Line 210: | Line 396: | ||
|- | |- | ||
|Michiel | |Michiel | ||
| | |||
|7h | |||
|5h reading and finding papers, 1h writing problem statement and objectives, 1h meeting | |5h reading and finding papers, 1h writing problem statement and objectives, 1h meeting | ||
|- | |- | ||
|Merlin | |Merlin | ||
|10h | |10h | ||
|4h reading papers. 1h watching videos. 1h meeting. 1h thinking of ideas. 3h discussing with fellow students/getting feedback. | |4h reading papers. 1h watching videos. 1h meeting. 1h thinking of ideas. 3h discussing with fellow students/getting feedback. | ||
|- | |- | ||
|Haochen | |Haochen | ||
Line 225: | Line 412: | ||
!Name | !Name | ||
!Total | !Total | ||
!Breakdown | !Breakdown | ||
|- | |- | ||
|Dev | |Dev | ||
|4h | |4h | ||
|1h interview, 2h meetings and RPC formulation, 1h designing concepts | | 1h interview, 2h meetings and RPC formulation, 1h designing concepts | ||
|- | |- | ||
|Geert | |Geert | ||
|4.5h | |4.5h | ||
|2h interviews and working out results, 2h meetings and RPC formulation, 0.5h updating wiki | |2h interviews and working out results, 2h meetings and RPC formulation, 0.5h updating wiki | ||
|- | |- | ||
|Michiel | |Michiel | ||
|3h | |3h | ||
|1h interviews, 2h meetings and RPC formulation | |1h interviews, 2h meetings and RPC formulation | ||
Line 243: | Line 430: | ||
|1h meetings, 1.5h work on cable design, 1h reading, 1h discussing with other students | |1h meetings, 1.5h work on cable design, 1h reading, 1h discussing with other students | ||
|- | |- | ||
|Haochen | | Haochen | ||
| | |4h | ||
| | |1h meetings, 2h working on car wiper and traditional design,1h reading paper. | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Week 3 | |+Week 3 | ||
!Name | !Name | ||
!Total | !Total | ||
!Breakdown | !Breakdown | ||
Line 258: | Line 445: | ||
|- | |- | ||
|Geert | |Geert | ||
|5.5h | |5.5h | ||
|3h meeting, 1h evaluating designs, 1h interview, 0.5h updating wiki | |3h meeting, 1h evaluating designs, 1h interview, 0.5h updating wiki | ||
|- | |- | ||
|Michiel | |Michiel | ||
| 6h | |6h | ||
|3h meeting, 1h research designs, 1h updating wiki, 1h interview | |3h meeting, 1h research designs, 1h updating wiki, 1h interview | ||
|- | |- | ||
|Merlin | |Merlin | ||
| 7h | |7h | ||
|1h watching videos on whiteboard cleaners, 1h evaluating designs, 1h meetings, 1h editing wiki, 1h self study on cable design, 1h discussing with other students, 0.5h miscellaneuos. | |1h watching videos on whiteboard cleaners, 1h evaluating designs, 1h meetings, 1h editing wiki, 1h self study on cable design, 1h discussing with other students, 0.5h miscellaneuos. | ||
|- | |- | ||
|Haochen | |Haochen | ||
| | |5h | ||
| | |3h meetiing, 1h research design, 1h interview | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 280: | Line 467: | ||
|- | |- | ||
|Dev | |Dev | ||
| | |8h | ||
| | |3h meetings, 3h concepting cleaner designs and materials, 2h detailing treadmill concept and updating wiki | ||
|- | |||
|Geert | |||
|11h | |||
|3h meetings, 2h researching motors and calculating maximum forces, 2h calculating cable inaccuracies, 2h figuring out inertial matching in with changing forces, 1h checking turning of duster due to cables, 1h editing wiki | |||
|- | |||
|Michiel | |||
|7h | |||
|3h meetings, 1h tests on blackboard, 2h cable design, 1h wiki updating | |||
|- | |||
|Merlin | |||
|9h | |||
|2h meetings, 2h reading opencv documentation, 5h working on blackboard detection software. | |||
|- | |||
|Haochen | |||
|11h | |||
|3h meetings, 3h learning computation, 5h programing path finding code. | |||
|} | |||
{| class="wikitable" | |||
|+Week 5 | |||
!Name | |||
!Total | |||
!Breakdown | |||
|- | |||
| Dev | |||
|7h | |||
|3h meetings, 4h concepting and designing prototype duster design | |||
|- | |||
|Geert | |||
|10h | |||
|2h meetings, 1.5h inventarising necessary materials + meeting with Ruud, 1h balancing duster, 4h designing + printing spool, 1.5h control | |||
|- | |||
|Michiel | |||
|11h | |||
|3h meetings, 2h setting up raspberry pi, 6h setting up motor+driver and coding for the driver | |||
|- | |||
|Merlin | |||
|9h | |||
|8h working on blackboard detection software, 1h meetings | |||
|- | |||
|Haochen | |||
|9h | |||
|3h meetings, 6h improving and finished path finding computation | |||
|} | |||
{| class="wikitable" | |||
|+Week 6 | |||
!Name | |||
!Total | |||
!Breakdown | |||
|- | |||
|Dev | |||
| 7h | |||
|4h printing duster and linkage, 1h fixing duster components, 2h working with raspi | |||
|- | |||
|Geert | |||
|16.5h | |||
| 1h meetings, 1.5h testing magnets, 14h building prototype | |||
|- | |||
|Michiel | |||
|12h | |||
|1h meetings, 9h making motors+rapspi work, 2h researching communication PC&Rapspi, | |||
|- | |||
|Merlin | |||
|13h | |||
|1h meetings, 5h detection software, 4h working on processing text image, 1h work on raspberry | |||
pi software, 2h reading on processes | |||
|- | |||
|Haochen | |||
|5h | |||
|1h meeting, 2h help building prototype, 2h cable caculation code design | |||
|} | |||
{| class="wikitable" | |||
|+Week 7 | |||
!Name | |||
!Total | |||
!Breakdown | |||
|- | |||
|Dev | |||
| 7h | |||
|2h redesigning duster, 2h software, 2h help with building and testing, 1h presentation | |||
|- | |- | ||
|Geert | |Geert | ||
| | |20h | ||
| | |14h building prototype, 1h calculating positioning, 2h preparing cables, 3h presentation | ||
|- | |- | ||
|Michiel | |Michiel | ||
| | |11h | ||
| | |10h building prototype, 1h presentation | ||
|- | |- | ||
|Merlin | |Merlin | ||
| | |12h | ||
| | |4h working on raspberry pi software + testing, 3h presentation, 5h path planning software | ||
|- | |- | ||
|Haochen | |Haochen | ||
|7h | |||
|3h cable calculation code programing, 3h help building prototype,1h presentation | |||
|} | |||
{| class="wikitable" | |||
|+Week 8 | |||
!Name | |||
!Total | |||
!Breakdown | |||
|- | |||
|Dev | |||
| | | | ||
| | | | ||
|- | |||
|Geert | |||
|5h | |||
|1.5h meeting, 3.5h updating wiki | |||
|- | |||
|Michiel | |||
|4.5h | |||
|1.5h meeting, 3h updating wiki | |||
|- | |||
|Merlin | |||
|3h | |||
|1.5h meeting, 1.5h updating wiki | |||
|- | |||
|Haochen | |||
|3.5h | |||
|1.5h meeting, 2h updating wiki | |||
|} | |} | ||
Latest revision as of 21:26, 10 April 2025
Name | Student Number |
---|---|
Dev Joshi | 1787101 |
Geert Langhout | 1721704 |
Haochen | 1533819 |
Merlin | 1734008 |
Michiel Sweere | 1762435 |
Problem statement
Blackboards are widely used even in the digital age. At the Technical University of Eindhoven blackboards are beloved with teachers and students alike. There are many reasons for the love for blackboards, however one downside is that cleaning the blackboards is inefficient. While the professor is cleaning the blackboard the lesson is momentarily halted and the chalk can get everywhere which can make for an unclean environment. Designs exist to clean the dusters automatically, but that still leaves cleaning the blackboard to the teacher.[1] A blackboard cleaning robot could mean that a teacher does not need to pause their lecture and could lessen the unsanitary environment of the teacher.
Objective
The objective of this project is to develop a robot that can efficiently and without much drawbacks clean the blackboard. The robot should be able to reach all the spaces on the blackboard and clean them. This is the basic requirement of the robot, furthermore several things are preferred. First of all the robot should be able to detect if parts are not necessarily erased and avoid erasing these locations. Second, the space the robot takes up should be minimized and the chalk residue should be stored, as to lessen the need for routine cleaning of the machine. Lastly the robot should clean the robot efficiently as to be as small as a distraction for students and professors as possible.
Who are the users?
The primary users of a blackboard cleaning robot include teachers, lecturers, and school staff that rely on blackboards for instruction. Additionally, people working at companies, research labs, and conference halls that use whiteboards or blackboards could also utilize these robots. Janitorial staff working at these institutions can also benefit from the robot as it reduces their workload. It was also decided to focus in specific on Dutch universities for our design, since we have better access to these institutions.
What do they require?
Users need robots to be better than humans in some aspects of the task of wiping the blackboard, such as faster, cleaner, and dust-free, or have some additional intelligent functions, such as controlling with phone app, saving erased content or providing intelligent assistant services. After meeting the main requirements and some minor requirements, we will try to make the robot more stable, reliable and cheap, and apply it to more different blackboards.
Goals
Core goal: Clean the blackboard quietly and effectively, leaving no dead corners.
Secondary goals:
1. Provide a function to save the blackboard content before erasing, which can be linked with the projector to recall the previously erased content.
2. Remote control through a mobile app.
3. Provide a dust removal solution to prevent dust pollution from affecting the health of users.[2]
4. Provide selective cleaning, leaving important parts on the board uncleaned
Outcomes user interviews
Some highlights/recurring thoughts encountered during interviews conducted with potential users of our product:
Problems current use with the cleaning of blackboard
- Hands get chalky
- Dirty boards at start of lecture
Preferred timing of cleaning
- Clean during breaks
- Automatically after lectures
Additional preferred features
- Scan in notes
- Erasing certain parts and leaving others out, would be nice to have organic shapes cleaned
- Dry and wet cleaning options
Robot specifications
- Should clean board in 5 minutes
- Should not block the board in any way
- Should be able to clean the whole board
- Robot should be quiet
Robot-user interaction
- Swiping away the places that should be cleaned on a tablet
RPCs
The following RPCs have been formulated based on the interviews conducted.
Requirements
- Able to clean entire blackboard - (some interviewees wanted this, some not. For broadest appeal we want the ability to clean the entire board)
- Able to selectively clean board, avoiding areas indicated by user - (Most interviewees viewed this as very helpful)[3]
- Able to withstand accidental bump during operation (an interviewee mentioned this)
- Design can work on multiple sizes of blackboard (an interviewee viewed this as useful)
- Under 35 decibels during lecture time (WHO limit for disturbing educational activities, lecturers also preferred it to be <= whispering level)
- Can be used during lectures and breaks (some interviewees wanted to use it while teaching, some only during the break)
- Should clean biggest blackboard at TU/e within 5 mins (this guarantees the cleaning process is done before the break ends)
- Has wet cleaning option (desired by interviewees to ensure fully clean board)
Preferences
- Should put less dust into the air than when cleaning using a normal chalkboard eraser (preference of ours, to enhance safety since the dust is harmful to health)
- Idiot-proof, simple interaction (interviewees didn’t always want to have to learn how to control it, ‘just press a button’)
- Production is CO2 neutral for the university (offered by one interviewee, can be used as selling point)
- Automatically cleans board at end of lecture (brought up by some interviewees so they know the board is clean when they start teaching)
- Can connect to phone/device where lecturers can control it (enables some extra functionality, which a few interviewees viewed as helpful)
Constraints
- Cannot interfere with normal functioning of lecture, i.e. blackboard sliding down because of weight (interviewees were hesitant to use it if it interrupted their teaching)
- Should not block any of significant areas when not in use, i.e. areas outside of corners (interviewees didn’t mind it sitting in a corner, but would like the board to be accessible)
Design evaluation
In this section, designs will be introduced and evaluated how well they fit the RPC's.
Car wipers design
This is a design based on a car windshield wiper. Through the combination of six connecting rods, it can achieve a similar effect to a car windshield wiper and wipe the blackboard surface very quickly. The advantages are small size and extremely fast speed. However the car wiper design is bound to have blind spots, it will block part of the blackboard and making it able to selectively clean parts is not possible. Thus the car wipers design does not fit the RPC's.[4]
Drone design
While brainstorming, a lot of designs couldn't service multiple blackboards at the same time. Therefore, it might be cost-efficient to design a robot which is able to clean every blackboard in the room. There is another benefit to this: the dimensions of the blackboard do not matter as much, since the robot won't be attached to it. One way to realize this idea is with a drone. The drone could be 'resting' in a corner of the room, charging, until it is called to action. It then flies up, identifies the blackboard(s) that need cleaning and flies there, giving a wide berth to any obstacles in its way. Using an eraser affixed to its body, it can clean the board side to side or in swaths going up, paying close attention to its balance. Once done, it flies back to its charging station where the eraser can also be cleaned for next time.
This approach has some benefits, but also major drawbacks. Next to the benefits detailed above, drone technology has become mainstream. It could be possible to simply adapt an existing drone frame for this purpose, speeding up development. However, the main drawback would be sound. If the lecturer wants the board to be cleaned during the lecture, the drone might drown out their voice. Safety is also a big concern which would need extra attention during development.
Crane design
This is a variation of the traditional design, where the vertical brush heads are replaced with a small robot suspended on the top track, which moves left and right through the track and up and down through the suspension system. The advantage is that it is smaller and lighter, but the disadvantage is that the erasing speed is necessarily very low.[5] Another disadvantage is that the control of such a design can get quite complicated due to the swinging of the robot.[6]
The crane design likely satisfies our requirements and constraints, although we cannot guarantee the cleaning speed without doing testing first. We believe this design might be too slow for our requirements. The design also would have to be tweaked for different blackboard sizes.
Traditional design
This is the most traditional design of a blackboard-wiping robot. It is a rectangular block with the same width as the blackboard. It moves left and right in front of the blackboard via upper and lower tracks and cleans with row-by-row blackboard brushes. The advantages of this design are stability, speed, maturity, and a large number of examples that have been put on the market. There is a lot of redundant space to add additional components such as dust removal modules. The disadvantage is that it is too large and must be installed with two rows of upper and lower tracks.[7][8][9][10]
The ‘traditional’ design satisfies our requirements and constraints, though we would need to carefully implement it to ensure it is not too loud. The problem with this design is that it already exists, meaning that we would need to work on something to improve upon this design. The design also would have to be tweaked for different blackboard sizes. For the traditional design the improvement we wanted to look into was selective cleaning. At the end the traditional design was considered to not be innovative enough and be too bulky to our liking.
Cable car design
This is a design similar to a glass-wiping drone, which is attached to the blackboard surface by magnets. The highlight of its design is that there are two taut cables between it and the two corners of the blackboard, which can provide a certain support for its weight and help the robot accurately locate its position on the blackboard at any time, eliminating the trouble of self-positioning in similar designs. Studies show similar designs performed quite well in comparable applications. [11][12]
The cable design does satisfy all requirements and constraints. The cable design could be quiet depending on the motors used and is ideal for selective cleaning. There are some reservations about being able to properly develop it within the time frame and the long term use of such a robot. Even so the cable design is novel and does fit well with the requirements set.
Free form design
The free form design has a wide variety of possible designs [13][14][15]. This design does adhere to the RPC’s, but the free form design would be complex and costs would be higher than for other designs. With the limited time and money at our disposal other designs were preferred.[16][17] Following these considerations, we chose the cable car design. It fits well with our requirements and is a novel way in tackling the blackboard cleaning problem.
Working out the cable car design
After choosing the cable car design, the scope of our prototype was decided. Within this scope, we identified different parts to work out: the duster, connection of the duster to the motors, the motors, the path planning for the duster, and the image recognition. These subproblems were then divided amongst us to solve individually. After solving a subproblem, it will be integrated together with other subproblems to form the solution of the entire design.
Hardware
Cable connection
There were several possible problems identified with the cables: sagging, being too elastic, and spooling up the wire in the wrong way.
Sagging could make the positioning of the duster less accurate. If the cable sags, the predictable straight-line distance between motor and duster is no longer accurate. However, the maximum sag was calculated (with some assumptions and roundings) to be ~1.4 cm. Using this sag, the estimated change in length for the cable to reach the duster compared to the straight-line distance is less than a mm, well within an acceptable range.
Being too elastic would also hurt the accuracy of positioning. By a quick calculation, the maximum force would only elongate the cable by at most 1 mm using steel, and 1 cm using plastic. Not significant enoug to endanger the functioning of the robot.
Lastly, spooling up the cable is also important for positioning. Using a 'standard' spool, the cable could move laterally over the barrel. It could overlap other pieces of cable while another part of the barrel was still free. This means that with one rotation of the motor, it is unknown how much cable has been released or gathered. This could be measured in other ways, but that would add complexity. Another solution would be to use a levelwind spool - this however would also increase complexity and use more space. We decided on using a spool with a barrel-width the same as the diameter of the cable. This way, at every point in a rotation you know how much cable you are moving. The only downside here is that the driving motor would need more torque, since the maximum diameter of the spool is larger. Assuming a 1mm diameter cable however, this maximum diameter is less than 7 cm.
Cable Design:
To reduce cable tension, a design was chosen where the cable extends to the edge of the board and then loops back. On the edge of the blackboard, the cable attaches to the spool on one end and is secured with a knot to the case surrounding the motor on the other end of the cable.
On the duster, the cable attaches to the upper side to prevent it from rotating and ensure the cleaning surface remains properly oriented. The cable attachment on the motor side is straightforward, a simple 3D-printed loop to which the cable can be attached with a know will suffice. However, on the duster side, it is important for the cable connection to be adjustable to allow for testing different configurations.
To achieve this, a bar is mounted as depicted in the figure below. A pulley can slide along this bar and be fixed at different positions, making it easy to experiment with various cable placements.
Cleaner Design:
The cleaner utilizes a treadmill concept to achieve wet and dry cleaning. The image is a side view of the design. The design incorporates a belt (black) made of "felt" for dry cleaning as one half and "microfiber" for wet cleaning as the other. The reason they are chosen is because felt is traditionally used in cleaners and is water-resistant whereas microfiber can easily absorb water and is generally used for cleaning. Furthermore, they are easily available.
To move the belt, there is one active rolling motor (yellow) and one passive roller (grey). These can be used to switch between the dry and wet sections. A water tank is located between the rollers which is used to moisten the microfiber. The disposal mechanism (green) still needs to be worked on but the current idea is to utilize capillary action to passively spread the water on the microfiber.
The mechanism is surrounded by a casing (red) with magnets (purple) to stick to the blackboard.
Balance Design:
In the later version of the prototype design, we added a water tank to support the wet cleaning function. In order to stabilize the robot during operation, we designed a counterweight system, using the water tank as the counterweight of the entire robot. Its specific form is shown in the right figure. The water tank is rigidly connected to the duster, contain the water a distance lower than the duster, which greatly lower the overall center of gravity. The cable connection is the core force point of the entire device, lateral rotation tendency will be centered at this point, and the water tank will generate a torque in the opposite direction due to the rigid connection when any rotation occured, driving the duster back to the horizontal direction.
Turning the view to the side, we can see that the linkage between the water tank and the duster is using a ball bearing, which allows the water tank to generate an opposite torque when the entire system produces an unbalanced rotation on the side, pressing the duster to the surface of the blackboard to maintain overall balance.
Motor selection
To drive the cables, motors are needed. Since we want to control the position of the motor relatively accurately to ensure the position of the duster is also accurate, we had to decide between a servo motor and a stepper motor. Comparing the two, we decided for a stepper motor since it was the cheaper option and we did not need the features servos offered over it. After this decision, the next important decision was needed: the required torque. For every position on a blackboard, the required force on the cables was calculated. Directly in between the motors the highest forces were calculated: this makes sense, since the vertical component of the forces along cables is small compared to the horizontal forces. Taking a mass of 1 kg and a height difference of 10 cm between the motors and the attachment to the duster, the force on each cable was 70 N. Combining that with the maximum diameter possible on our spool (7 cm) we get a required torque of 2.5 Nm. To reduce this, a pulley is attached to the duster and through the pulley the cable is run back. This increases the maximum spool diameter, but also halves the force. To further reduce this needed torque, the minimum height difference between duster and motors can be increased, halving the required forces if set at 20 cm.
Motor attachment to blackboard
To connect the motors to the blackboard, a set of clamps will be used. These clamps can be loosened by the user, moving the motor and spool to a new location if desired. This functionality means the blackboard can be cleaned and used at the same time, should the user desire this.
Controller design
A start has been made on a controller design. The plan is currently to use feed forward to account for the majority of the necessary motion. Feedback will be used to account for errors, for example when the cable sits differently on the spool than expected.
The control variable will be the desired distance between the motor and the duster. For each position, there's only one specific distance that places the duster exactly at that spot. So, once the desired position is known, the required distance can be easily calculated and used as input for the controller. The controller then combines both the feed forward and feedback signals and sends the result to the motors.
Software
Our software must be able to detect the blackboard from an image, which can be supplied either manually by the user, or by a camera filming the blackboard. From this, it must be able to detect the areas that have to be cleaned and create a path along all of these areas, after which it should return to its starting position. Unfortunately, there is no known polynomial time algorithm for finding such a path (see Travelling salesman problem), meaning a suitable approximation will have to be used to find a path. Our software could be able to scan in the notes that a lecturer has taken, before cleaning, to aid in studying. Additionally, the software could allow for areas to be avoided when cleaning, along with providing an option whether wet or dry cleaning is to be used. All of these functionalities should be made available for the user through an interface of an app.
Prototype
To test the feasibility of our design, we decided to make a prototype of it. This prototype has a couple of important changes compared to the design outlined above. A video of some of the testing done can be found here.
Hardware
Two NEMA 23 stepper motors were used with a torque of approximately 1.9 Nm. The duster prototype, spools and motor casings were made out of PLA and clamped to the board using nuts and bolts. The duster design had multiple placeholders for cylindrical magnets so the strength to the board could be tweaked. A counterweight hanging from a linkage was connected to the duster to prevent it from pivoting from its axis. Butcher's twine was used for the rope material to link the motors to the duster due to ease of availability and use.
Some parts of the mechanical design, like implementing pulleys, were infeasible to produce in such a short time frame. Mostly the duster design was too complex, due to its many small parts and water included in it. For the prototype, the duster was changed into a holder for a blackboard duster with a static counterweight to replace the water tank.
The clamps attaching the motors to the blackboard are also different than envisioned. Building a dependable hand-operated system that provided enough clamping force to keep the motors in place would take too long, so it was decided to use bolts and nuts to provide the force for this.
Software
The software of our prototype is split into to main parts, the blackboard & text detection, and the path-finding algorithm. Python was used for both of these parts, along with some imported packages, most notably numpy, for calculations, and OpenCV, for image operations. The text detection consists of three main parts, all of which rely on OpenCV methods to do image operations. First, we need a source image of the blackboard. This image does not need to be perfect, but should at least clearly have the corners and edges of the blackboard in frame. Second, we apply a number of filters to this image in order to do edge detection.The blackboard is then found by evaluating the largest area enclosed by a set of edges found during edge detection. This method proved very successful during testing. We can then crop out the blackboard out of the source image and transform it into a new image with dimensions proportional to those of the blackboard. Finally, using this new image of only the blackboard, we apply more filters to get only the text on the blackboard. This is done by evaluating each pixel and coloring those that meet a certain value white. While coloring those that do not are colored black.
For the path-finding, we first need to know which parts of the blackboard we need to clean. To do this, we add a rectangular grid over the text image, and for each rectangle we check if there is text on the board there. We then do path-finding on all the rectangles, denoted by coordinates in our grid, that need to be cleaned. For our path-finding algorithm we chose to implement a greedy algorithm that goes to the nearest uncleaned area next. We chose for this algorithm, since it was easy to implement, and most often does not result in a much larger path than the shortest path over all points. After running the path-finding algorithm, we end up with a queue of points on the blackboard to be visited. We translate this to a queue of motor commands for the stepper motors, by calculating how much the cable lengths must change to go to the next position. Finally, we send this over to the raspberry pi.
The raspberry pi runs a main process and one process for each motor. The main process handles interception of messages from the blackboard detection and path-finding software and passes this onto the motor processes. The motor processes wait for a message from the main process telling them for how long and in which direction the motor should spin. After a motor has stopped, it's corresponding process sends a message back to the main process, which will wait for both motors to finish before sending new commands. When the entire queue of motor commands has been cleared, the processes will get an exit message, after which they will terminate.
After calculating the path through the program, we designed a python script to calculate the relative relationship between the cable and the dust collector position to ensure that the required cable length can be accurately controlled at each point on the path. This program is based on the mechanical analysis of the entire system, but after combining all the physical equations, we get a set of equations with four unknowns (the specific forces and angles of the two cables), which can only be fitted. Without giving a guess value, the code cannot calculate the exact result. Therefore, in the prototype program, we used a simple program that does not consider the rotation of the connecting rod at all. It assumes that the entire duster and its connecting device will always be horizontal to the ground. Although this does not allow us to accurately and perfectly control the position of the robot through the cable, it is already a relatively accurate enough solution.
In the subsequent improvement plan, we will combine the camera's image recognition technology to observe and feedback the specific position and status of the robot in real time. These data can be used as guesses and input into the program version based on physical analysis to obtain more accurate control effects.
Accounting of parts
Amount | Type | Total mass (g) | Cost/unit (€) | Total cost (€) |
---|---|---|---|---|
2 | NEMA 23 stepper motor | 2100 | 24.50 | 49.00 |
2 | TMC2209 stepper motor driver | 8 | 7.00 | 14.00 |
1 | Raspberry Pi 3 | 45 | 50.00 | 50.00 |
1 | Assortment of DuPont cables | 10 | 2.00 | 2.00 |
1 | 16 meters of 0.75 mm copper cable | 120 | 2.00 | 2.00 |
1 | PC power supply | 1300 | 0.00 | 0.00 |
1 | 3D-printed duster cover | 70 | 1.40 | 1.40 |
2 | 3D-printed clamp | 160 | 1.60 | 3.20 |
2 | 3D-printed spool | 60 | 0.60 | 1.20 |
1 | 3D-printed cable-duster linkage | 50 | 1.00 | 1.00 |
1 | 20 meters of butcher's twine | 30 | 0.96 | 0.96 |
13 | Total | 3953 | 124.76 |
In the table above all used parts can be seen. Combined the cost for these is around 125€. For future development into a product, costs could be reduced in the following areas:
- Motors: The current motors are chosen based on a conservative calculation. Further testing, a dual cable setup as detailed earlier, or gearing between the motor and spool can reduce the necessary torque and drive down the cost.
- Micro controllers: For easier testing a Raspberry Pi was used, but this application could possibly also be run on something like an Arduino, or a board of our own design.
- Scale: Buying the parts in bulk saves money compared to buying them in small orders.
Some things would add cost in future iterations, like a camera to capture the board state. Overall we feel that 100€ is around the right order for the cost of a finished product.
Future steps
Building the prototype allowed us to get some valuable insights.
- Our choice of magnets was subpar, a better choice would be magnet strips for better distribution of force
- The movement should be a bit smoother, as right now the motors jerked around the duster too much
- The cable spools were too wide, bumping into the blackboard poles when put onto the blackboard nearest to the wall. This could be prevented by a type of pulley-system
- Building a real-time positioning system combined with a camera will enable real-time correction of the robot's position in the system through image recognition technology. This will enable us to more accurately locate whether the duster is in the area it should clean and avoid cleaning areas that should not be cleaned.
- Improve the cable calculation program by combining the camera positioning system.
- Currently the prototype is working with a PC power supply, this is very bulky. For the actual cleaner it would be better to have a smaller power supply to make it easier to install.
References
- ↑ Jagtap, S., & Tuljapure, S. (n.d.). DESIGN OF BLACKBOARD DUSTER CLEANING MACHINE.
- ↑ Y. A. Maruthi 1 & S. Ramprasad 1 & N. Lakshmana Das 2; Trace Elemental Characterization of Chalk Dust and Their Associated Health Risk Assessment
- ↑ M. Umbarkar 1, S. Kattitharayil 1, F. Rozario 1; Design & Fabrication of Smart Board Cleaner International Research Journal of Engineering and Technology (IRJET), vol. 6, no. 4, pp. 1645–1650, Apr. 2019
- ↑ V. A. 1, N. Abinesh 1, J. Abiram 1, C. Abishack 1, V. A. Kumar 1; Design and Fabrication of Blackboard Cleaner International Journal of Engineering Applied Sciences and Technology (IJEAST), vol. 5, no. 11, pp. 229–237, Mar. 2021
- ↑ 张立勋, 夏占, 齐李, 张永发, 韩亮, & Ltd, Z. Y. R. T. C. (2013, February CN203184863U - Cantilever type sliding rail mechanism applied to rectangular coordinate system welding robot - Google Patents. https://patents.google.com/patent/CN203184863U/en
- ↑ TIANLEI WANG, NANLIN TAN, et al; "Global-Equivalent Sliding Mode Control Method for Bridge Crane"
- ↑ Prashanth Pai Manihalla, Yathin Krishna, Nagaraja Anand Naik, Naveen Kumar, Rakshith, Rakshith Billava Ramappa; Design and fabrication of an electromechanical system to clean the blackboard. AIP Conf. Proc. 20 May 2020; 2236 (1): 050006. https://doi.org/10.1063/5.0007099
- ↑ V. Mohanavel, C. Kailasanathan, T. Sathish, V. Kannadhasan, S. Vinoth Joe Marshal, K. Sakthivel, Modeling and fabrication of automatic blackboard dust remover, Materials Today: Proceedings, Volume 37, Part 2, 2021, Pages 527-530, ISSN 2214-7853, https://doi.org/10.1016/j.matpr.2020.05.487.
- ↑ https://patents.google.com/patent/US3731335A/en
- ↑ FENGYIBAO 1, RESIN XIAODAN 1, WU SONGZUE 1, XU HAO 1, SU HAILONG 1, FUMIN 1; Intelligent and Automatic Blackboard Cleaning Nacgube (School of Mechanical Engineering, Tianjin University of Science & Technology, Tianjin 300222, China)
- ↑ Tang, L., Tang, X., Jiang, X., & Gosselin, C. (2015). Dynamic trajectory planning study of planar two-dof redundantly actuated cable-suspended parallel robots. Mechatronics, 30, 187–197. https://doi.org/10.1016/j.mechatronics.2015.07.005
- ↑ German, J. J., K.W. Jablokow, & Cannon, D. J. (2002). The cable array robot: theory and experiment. 3, 2804–2810. https://doi.org/10.1109/robot.2001.933047
- ↑ Junru Zhu, Yongqiang Zhu, Pingxia Zhang, Review of advancements in wall climbing robot techniques, Franklin Open, Volume 8, 2024, 100148, ISSN 2773-1863, https://doi.org/10.1016/j.fraope.2024.100148.
- ↑ Chan, Brian & Balmforth, Neil & Hosoi, AE. (2005). Building a better snail: Lubrication and adhesive locomotion. Physics of Fluids - PHYS FLUIDS. 17. 10.1063/1.2102927.
- ↑ VertiGo - a Wall-Climbing Robot including Ground-Wall Transition
- ↑ Junyu Hu, Xu Han, Yourui Tao, Shizhe Feng, A magnetic crawler wall-climbing robot with capacity of high payload on the convex surface, Robotics and Autonomous Systems, Volume 148, 2022,103907, ISSN 0921-8890, https://doi.org/10.1016/j.robot.2021.103907.
- ↑ Qin, J., & Wei, Q. (2020). Wall-climbing obstacle-avoiding full-automatic lampblack cleaning device. IOP Conference Series Materials Science and Engineering, 793(1), 012036. https://doi.org/10.1088/1757-899x/793/1/012036
Appendix
Deliverables
At the end of this project we aim to have the prototype of a robot which is able to clean a blackboard automatically.
Week | Activities | Milestones |
---|---|---|
1 | Decide on subject, start literature research and user study | |
2 | Carry out user study, generate RPCs based on responses | RPC list done |
3 | Decide on design and start working out design, decide on cleaning path algorithm | Design chosen, cleaning path algorithm chosen |
4 | Put together mechanical aspects of prototype, combine software with actuators | Mechanical part prototype finished, software finished |
5 | Combine software, mechanical, actuators into one prototype | Prototype put together |
6 | Test out prototype on blackboards, prepare presentation | Tests finished |
7 | Present, write out improvement points for robot. |
Task division
Name | Task |
---|---|
Dev | Mechanical design |
Geert | Mechanical design |
Michiel | Electrical design |
Merlin | Software design |
Haochen | Physics analysis & programming |
Time division
Name | Total | Breakdown |
---|---|---|
Dev | 9h | 4h reading papers, 2h additional research (blogs, videos, ideating), 1.5h designing concepts, 1h meeting, 0.5h writing docs |
Geert | 8h | Intro lecture + meeting after [2.5h], researching papers [3.5h], update meeting [1h], adding planning and drone explanation to wiki [1h] |
Michiel | 7h | 5h reading and finding papers, 1h writing problem statement and objectives, 1h meeting |
Merlin | 10h | 4h reading papers. 1h watching videos. 1h meeting. 1h thinking of ideas. 3h discussing with fellow students/getting feedback. |
Haochen | 8h | 5h finding and reading papers, 1h brain stroming with reaserch result, 2h discussing and summerizing. |
Name | Total | Breakdown |
---|---|---|
Dev | 4h | 1h interview, 2h meetings and RPC formulation, 1h designing concepts |
Geert | 4.5h | 2h interviews and working out results, 2h meetings and RPC formulation, 0.5h updating wiki |
Michiel | 3h | 1h interviews, 2h meetings and RPC formulation |
Merlin | 4.5h | 1h meetings, 1.5h work on cable design, 1h reading, 1h discussing with other students |
Haochen | 4h | 1h meetings, 2h working on car wiper and traditional design,1h reading paper. |
Name | Total | Breakdown |
---|---|---|
Dev | 5h | 3h meeting, 1h researching designs, 1h evaluating designs |
Geert | 5.5h | 3h meeting, 1h evaluating designs, 1h interview, 0.5h updating wiki |
Michiel | 6h | 3h meeting, 1h research designs, 1h updating wiki, 1h interview |
Merlin | 7h | 1h watching videos on whiteboard cleaners, 1h evaluating designs, 1h meetings, 1h editing wiki, 1h self study on cable design, 1h discussing with other students, 0.5h miscellaneuos. |
Haochen | 5h | 3h meetiing, 1h research design, 1h interview |
Name | Total | Breakdown |
---|---|---|
Dev | 8h | 3h meetings, 3h concepting cleaner designs and materials, 2h detailing treadmill concept and updating wiki |
Geert | 11h | 3h meetings, 2h researching motors and calculating maximum forces, 2h calculating cable inaccuracies, 2h figuring out inertial matching in with changing forces, 1h checking turning of duster due to cables, 1h editing wiki |
Michiel | 7h | 3h meetings, 1h tests on blackboard, 2h cable design, 1h wiki updating |
Merlin | 9h | 2h meetings, 2h reading opencv documentation, 5h working on blackboard detection software. |
Haochen | 11h | 3h meetings, 3h learning computation, 5h programing path finding code. |
Name | Total | Breakdown |
---|---|---|
Dev | 7h | 3h meetings, 4h concepting and designing prototype duster design |
Geert | 10h | 2h meetings, 1.5h inventarising necessary materials + meeting with Ruud, 1h balancing duster, 4h designing + printing spool, 1.5h control |
Michiel | 11h | 3h meetings, 2h setting up raspberry pi, 6h setting up motor+driver and coding for the driver |
Merlin | 9h | 8h working on blackboard detection software, 1h meetings |
Haochen | 9h | 3h meetings, 6h improving and finished path finding computation |
Name | Total | Breakdown |
---|---|---|
Dev | 7h | 4h printing duster and linkage, 1h fixing duster components, 2h working with raspi |
Geert | 16.5h | 1h meetings, 1.5h testing magnets, 14h building prototype |
Michiel | 12h | 1h meetings, 9h making motors+rapspi work, 2h researching communication PC&Rapspi, |
Merlin | 13h | 1h meetings, 5h detection software, 4h working on processing text image, 1h work on raspberry
pi software, 2h reading on processes |
Haochen | 5h | 1h meeting, 2h help building prototype, 2h cable caculation code design |
Name | Total | Breakdown |
---|---|---|
Dev | 7h | 2h redesigning duster, 2h software, 2h help with building and testing, 1h presentation |
Geert | 20h | 14h building prototype, 1h calculating positioning, 2h preparing cables, 3h presentation |
Michiel | 11h | 10h building prototype, 1h presentation |
Merlin | 12h | 4h working on raspberry pi software + testing, 3h presentation, 5h path planning software |
Haochen | 7h | 3h cable calculation code programing, 3h help building prototype,1h presentation |
Name | Total | Breakdown |
---|---|---|
Dev | ||
Geert | 5h | 1.5h meeting, 3.5h updating wiki |
Michiel | 4.5h | 1.5h meeting, 3h updating wiki |
Merlin | 3h | 1.5h meeting, 1.5h updating wiki |
Haochen | 3.5h | 1.5h meeting, 2h updating wiki |