Schätzer, Regler, Lighthouse und Grenzen nach dem Bau
Die Parameter eines Crazyflie werden aus Python über Funk gesetzt: mit cf.param.set_value('group.name', value) aus cflib oder im Tab Parameters in cfclient. Jedes der beiden Decks erzwingt das Kalman-Filter, und PID ist der Standardregler; die Basisstationen hier sind Lighthouse V2. Die posCtlPid-Grenzen deckeln, was der Positionsregler verlangen darf, 20° Neigung und 1 m/s, und das sind die Zahlen, mit denen das Flugfeld fliegt.
# cflib 0.1.34 in Python, connected with SyncCrazyflie: cf = scf.cf
cf.param.set_value('stabilizer.estimator', 2) # extended Kalman: either deck forces it anyway
cf.param.set_value('stabilizer.controller', 1) # PID (0, auto select, picks PID too)
cf.param.set_value('lighthouse.systemType', 2) # Lighthouse V2 base stations
cf.param.set_value('lighthouse.method', 1) # sweep angles straight into the Kalman filter (default)
cf.param.set_value('posCtlPid.rLimit', 20) # most roll the position controller asks for, degrees
cf.param.set_value('posCtlPid.pLimit', 20) # and pitch
cf.param.set_value('posCtlPid.xVelMax', 1) # m/s it may ask for along x
cf.param.set_value('posCtlPid.yVelMax', 1) # along y
cf.param.set_value('posCtlPid.zVelMax', 1) # up and down
cf.param.set_value('supervisor.tmblChckEn', 1) # motors off if it tumbles
cf.param.set_value('pm.lowVoltage', 3.2) # V: LED1 goes solid red
cf.param.set_value('pm.criticalLowVoltage', 3.0) # V