O. C. Goemans, A. Levandowski, Ken Goldberg, A.F. van der Stappen
{"title":"On the design of guillotine traps for vibratory bowl feeders","authors":"O. C. Goemans, A. Levandowski, Ken Goldberg, A.F. van der Stappen","doi":"10.1109/COASE.2005.1506749","DOIUrl":null,"url":null,"abstract":"The vibratory bowl feeder remains the most common approach to the automated feeding (orienting) of industrial parts. We study the algorithmic design of a trap in the bowl feeder track that filters out all but one orientation of a given polygonal part. We propose a new class of traps that we call guillotine traps, which remove a portion of the track between two parallel lines. A major advantage of guillotine traps over previously studied traps is that they permit feeding the part in a user-specified stable orientation, whereas these other traps offered no control over the orientation to be fed. The capability of feeding a part in any priorly specified orientation for example offers the user a means of control over the feed rate. We present a complete algorithm that takes as input any polygonal part consisting of n vertices, along with its center of mass, and a desired output orientation of the part. Our algorithm computes a guillotine trap for a vibratory bowl feeder that outputs parts in the desired orientation, or reports that no such trap exists. The algorithm runs in O(n/spl alpha/(n) log n + nk), where /spl alpha/(n) is the extremely slowly growing inverse of the Ackermann function, and k is the number of candidate solutions. Although the value of k is trivially bounded by O(n), we conjecture that k is a small constant except for highly symmetric and regular parts. Surprisingly, our algorithm is considerably more efficient than the algorithm for the more restricted and hence less powerful gap trap, which was shown to run in O(n/sup 2/ log n) time. We have implemented our complete algorithm in Mathematica and C++.","PeriodicalId":181408,"journal":{"name":"IEEE International Conference on Automation Science and Engineering, 2005.","volume":"166 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2005-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"14","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE International Conference on Automation Science and Engineering, 2005.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/COASE.2005.1506749","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 14
Abstract
The vibratory bowl feeder remains the most common approach to the automated feeding (orienting) of industrial parts. We study the algorithmic design of a trap in the bowl feeder track that filters out all but one orientation of a given polygonal part. We propose a new class of traps that we call guillotine traps, which remove a portion of the track between two parallel lines. A major advantage of guillotine traps over previously studied traps is that they permit feeding the part in a user-specified stable orientation, whereas these other traps offered no control over the orientation to be fed. The capability of feeding a part in any priorly specified orientation for example offers the user a means of control over the feed rate. We present a complete algorithm that takes as input any polygonal part consisting of n vertices, along with its center of mass, and a desired output orientation of the part. Our algorithm computes a guillotine trap for a vibratory bowl feeder that outputs parts in the desired orientation, or reports that no such trap exists. The algorithm runs in O(n/spl alpha/(n) log n + nk), where /spl alpha/(n) is the extremely slowly growing inverse of the Ackermann function, and k is the number of candidate solutions. Although the value of k is trivially bounded by O(n), we conjecture that k is a small constant except for highly symmetric and regular parts. Surprisingly, our algorithm is considerably more efficient than the algorithm for the more restricted and hence less powerful gap trap, which was shown to run in O(n/sup 2/ log n) time. We have implemented our complete algorithm in Mathematica and C++.