Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
9 years ago

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

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
No RepliesBe the first to reply