Waarom robotica je een betere software-engineer maakt
Jaren robotica lesgeven aan HKDI hebben mijn kijk op software veranderd. Dit leerde motion planning me over systeemontwerp.
De discipline van beperkingen
Robotica dwingt je om in beperkingen te denken. Een servo heeft grenzen. Een sensor heeft ruis. Een realtime lus heeft een deadline. Dat zijn geen excuses; dat is juist de ontwerpruimte.
In software kunnen we vaak slordig zijn. We voegen geheugen toe, starten nog een server of vangen de exception af. Robotica vergeeft dat soort denken niet zo makkelijk.
Wat ik leerde tijdens het lesgeven aan HKDI
Toen ik lesgaf aan Hong Kong Design Institute zag ik dat studenten die worstelden met abstracte softwareconcepten ze opeens begrepen zodra we ze koppelden aan een fysiek systeem. Een robotarm zien falen door een fout in een state machine maakt state machines ineens heel concreet.
Hoe ik dit toepas op code
Nu ik software ontwerp, denk ik aan:
- Deadlines: wat gebeurt er als dit traag is?
- State: hoe ziet het systeem er op elk moment uit?
- Faalmodi: als het stukgaat, hoe gaat het dan stuk?
Die vragen komen rechtstreeks uit robotica. En ze leveren uiteindelijk betere software op.