Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17254 Discussions

Laserscanner control with FPGA - Driving cubic bezier curves with constant speed

Altera_Forum
Honored Contributor II
1,654 Views

Hello, 

im currently programming a FPGA to control a laserscannerhead. I use a Altera Cyclone II with Quartus II (free edition) but im not bound to that particular FPGA. To communicate with the digital scannerhead i implemented the XY2-100-protocol. The goal is the feed the FPGA with the 4 position points (16-bit x and 16-bit y) of a bezier-curve, let it calculate the curve and put out positions that are (nearly) equidistant from each other, so the laser will move with constant speed. Because the standard bezier funcion puts out coordinates with would corespond to a non-constant speed of the laser im guessing i will have to compute the results of the bezier funcion further. The question is, whats to smartest way to do this? 

My first idea was using the first derivative to somehow find values for t which result in similar velocitys B'(t1) = B'(t2). Another idea was to use a line integral to find the lenth of the bezier curve and divide it into multiple sections and try to approximate constant speed within those sections. I havent tried those approaches yet, im merely asking beforehand if im on the right track and if there are better approaches to solve the problem using the Cyclone II and VHDL or another FPGA/HDL language. 

 

Best regards 

googlplexian
0 Kudos
0 Replies
Reply