Komplexiteten hos humanoida robotar ökar med tillgången på nya sensorer, inbyggda processorer och ställdon. Denna rikedom av teknik gör det möjligt för forskare att undersöka nya problem som multimodal sensorisk fusion, helkroppskontroll och multimodal människa-robot interaktion. Under huven på dessa robotar har programvaruarkitekturen en viktig roll: den gör det möjligt för forskare att få tillgång till robotfunktioner som främst fokuserar på deras forskningsproblem och stöder kodåteranvändning för att minimera utveckling och felsökning, särskilt när ny hårdvara blir tillgänglig. Men ännu viktigare, det gör det möjligt att öka komplexiteten i de experiment som kan utföras innan systemintegration blir ohanterlig, och debugging drar mer resurser än forskning själv. I den här artikeln illustrerar vi programvaruarkitekturen hos iCub humanoid roboten och de mjukvarutekniska bästa metoder som har dykt upp drivet av behoven i vår forskningsgemenskap. Vi beskriver den senaste utvecklingen av middleware som stöder gränssnittsdefinition och automatisk kodgenerering, loggning, ROS-kompatibilitet och kanalprioritering. Vi visar robotens abstraktionslager och hur det har modifierats för att bättre möta användarnas behov och för att stödja ny hårdvara när den blev tillgänglig. Vi beskriver också testramen, och vi har nyligen antagit för att utveckla kod med hjälp av en testdriven metod. Vi avslutar med att diskutera de lärdomar vi lärt oss under de senaste 11 åren av mjukvaruutveckling på iCub humanoid roboten.
REF sammanfattar den senaste utvecklingen av iCubs programvaruarkitektur, inklusive kompatibiliteten med robotoperativsystemet (ROS) och införandet av ett nytt testramverk.
The iCub Software Architecture: Evolution and Lessons Learned
{'venue': 'Front. Robot. AI', 'journal': None, 'mag_field_of_study': ['Computer Science']}