Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Slimme Pen: Real-time Handgeschrift- & Bewegingstracking met Raspberry Pi en IMU

Inleiding

In het huidige digitale tijdperk vereist het vastleggen van handgeschreven invoer meestal capacitieve touchscreens of stylo-pennen. Hoewel precies, zijn deze oplossingen beperkt door oppervlaktevereisten en missen echte ruimtelijke vrijheid. Onze Slimme Pen elimineert die beperkingen door een Raspberry Pi te combineren met een inertiële meetunit (IMU) om beweging te volgen en trajecten direct te reconstrueren. Het systeem steunt uitsluitend op de gyroscoop en accelerometer van de IMU, en stuurt data draadloos naar de Pi. Aangepaste algoritmes herstellen dan de oriëntatie en positie van het apparaat, slaan de data op en renderen het in realtime op de TFT-display van de Pi via pygame. Een enkele drukknop start en stopt de opname, wat flexibel gebruik op penningen, robots of draagbare toepassingen mogelijk maakt. Deze benadering levert een veelzijdige, oppervlakte-onafhankelijke oplossing voor het vastleggen van handschrift, bewegingsanalyse en meer.

Doelstelling

De kern is het ontwikkelen van een modulaire tracking-unit die bevestigd kan worden aan penningen, robots of zelfs menselijke ledematen. Wanneer de host beweegt, registreert de module de traject en projecteert het pad op een horizontaal wereld-frame op scherm. In tegenstelling tot conventionele stylo-systemen, werkt ons ontwerp onafhankelijk van een vooraf gedefinieerd vlak, wat tracking in vrije lucht of op oneffen oppervlakken mogelijk maakt. De oriënterings-ongevoelige prestaties van de module garanderen consistente resultaten ongeacht kanteling of plaatsing.

IMU Kalibratie

Fabricatietoleranzen laten de assen van de IMU's accelerometer en gyroscoop vaak mislopen, wat leidt tot afwijkingen in berekende Euler-hoeken. We gebruiken een zes-positie kalibratieroutine om deze offsets te kwantificeren en te corrigeren. Een aangepaste kalibratiejig (Figuur XX) houdt de IMU in elke oriëntatie, en registreert ruwe sensorwaarden. De kalibratiematrix afgeleid van deze zes metingen wordt vervolgens toegepast op elke accelerometer-metingen:

\[\mathbf{A}_{\text{cal}} = \begin{bmatrix}A_x\\A_y\\A_z\end{bmatrix}, \quad \mathbf{a}_{\text{raw}} = \begin{bmatrix}a_x\\a_y\\a_z\end{bmatrix}\]

Na kalibratie vervangt het gecorrigeerde versnellingsvector \(\mathbf{A}_{\text{cal}}\) de ruwe data voor verdere verwerking.

Sensorfusie voor Ruwe Data

Om een robuuste oriëntatieschatting te verkrijgen, voegen we de uitgangen van de gyroscoop en accelerometer samen met behulp van quaternion-wiskunde. Quaternionen bieden een singulariteitsvrije rotatievoorstelling en vereenvoudigen vectortransformaties. De conversie tussen quaternion \(q\) en Euler-hoeken \((\alpha,\beta,\gamma)\) wordt gegeven door:

\[\displaystyle q = \cos\frac{\theta}{2} + \sin\frac{\theta}{2}\bigl(\cos\alpha\,\mathbf{i} + \cos\beta\,\mathbf{j} + \cos\gamma\,\mathbf{k}\bigr)\]

Voor een vaste vector \(\mathbf{V} = V_x\mathbf{i} + V_y\mathbf{j} + V_z\mathbf{k}\), wordt quaternion-rotatie uitgevoerd als \(\mathbf{V}' = q \circ \mathbf{V} \circ q^{-1}\).

Omdat de gyroscoop alleen in de loop van de tijd afdwaalt, corrigeren we continu de bias door de gemeten zwaartekrachtsvector van de accelerometer te vergelijken met de door de gyroscoop afgeleide zwaartekrachtsestimaat. De UpdateIMU routine voert 2.000 iteraties uit terwijl de sensor stilstaat, bouwt een proportioneel-integrale (PI) feedback-lus die de hoekfout minimaliseert. De kern van het algoritme wordt hieronder getoond:

 def UpdateIMU(self, Gyr, Acc): if np.linalg.norm(Acc) == 0: warnings.warn("Accelerometer magnitude is zero. Algorithm update aborted.") return Acc = np.array(Acc / np.linalg.norm(Acc)) v = np.array([[2*(self.q[1]*self.q[3] - self.q[0]*self.q[2])], [2*(self.q[0]*self.q[1] + self.q[2]*self.q[3])], [self.q[0]**2 - self.q[1]**2 - self.q[2]**2 + self.q[3]**2]]) error = np.cross(v, np.transpose([Acc]), axis=0) self.IntError += error Ref = Gyr - np.transpose(self.Kp*error + self.Ki*self.IntError) pDot = 0.5 * self.quaternProd_single(self.q, [0, Ref[0,0], Ref[0,1], Ref[0,2]]) self.q += pDot * self.SamplePeriod self.q /= np.linalg.norm(self.q) self.Quaternion = self.quaternConj(self.q) 

De gecorrigeerde gyroscoopdata (Ref) voedt de quaternion-update, wat resulteert in een stabiele oriëntatieschatting die de trajectreconstructie aangedreven wordt die op de Pi wordt weergegeven.

Lees meer: Slimme Pen: Eindproject voor ECE5725

Productieproces

  1. FirePick Delta Project Log: Een Open-Source MicroFactory Bouwen met OpenPnP
  2. Bouw Een 'Go Away' Robot – Eenvoudige Arduino Starter Kit Voor Kinderen
  3. Slimme 3D-sensor: Stemgeactiveerde lampbesturing voor Amazon Echo
  4. Health Band: slimme weerebare assistant voor senioren
  5. Top Slimme Thuis-upgrades Om Uw Woonruimte Te Moderniseren
  6. De juiste automatiseringsproject kiezen: een strategische gids
  7. Smart Manufacturing 2021: 10 Opkomende Trends Die Productie Herscheppen
  8. ROI Maximaliseren in Slimme Productie: Terugverdientijd & Data-gedreven Succes
  9. Sensor-Gebaseerde Projectideeën voor Afstudeerende Technische Studenten
  10. Revolutionaire ultra-dunne sensor verbetert slimme contactlensfunctionaliteit
  11. Slimme verlichting: de hoeksteen van een echt verbonden stad