På bare fire uger er det lykkes et hold af de bedste robotforskere fra
Syddansk Universitet at udvikle verdens første fuldautomatiske
podningsrobot, som efter planen allerede skal pode de første patienter for
covid-19 sidst i juni.
Med et 3d-printet specialdesignet engangsværktøj holder robotten en
podepind og rammer det præcise sted i halsen, hvorfra podningen skal
foretages. Efterfølgende stikker robotten podepinden ned i et glas og
skruer låg på, så prøven forsegles. Og forskerne har testet robotten.
– Jeg var en af de første, som robotten podede. Det gik rigtig godt. Jeg
sidder her jo endnu, griner professor Thiusius Rajeeth Savarimuthu fra SDU Robotics.
10 forskere i døgndrift
– Jeg var overrasket over, hvor blødt robotten formåede at lande podepinden
på det punkt i halsen, den skal ramme; så det var en stor succes.
Thiusius Rajeeth Savarimuthu står i spidsen for det hold af ti forskere,
som i døgndrift har arbejdet i Industri 4.0 Lab på Syddansk Universitet for
hurtigst muligt at udvikle prototypen, så sundhedspersonalet undgår
smittefare ved podninger.
– Vi har med succes demonstreret verdens første fuldautomatiske podning og
leveret et ”Proof of concept” af processerne i en robotpodning, siger
Thiusius Rajeeth Savarimuthu.
- System.Web.HttpUnhandledException (0x80004005): An unhandled exception occurred. ---> System.Web.HttpCompileException (0x80004005): c:\home\site\wwwroot\Views\Article\ArticleQuote.cshtml(17): error CS1061: 'Cabana.SDU.Feature.Article.ArticleQuote' does not contain a definition for 'Text' and no extension method 'Text' accepting a first argument of type 'Cabana.SDU.Feature.Article.ArticleQuote' could be found (are you missing a using directive or an assembly reference?)
- at System.Web.Compilation.BuildManager.PostProcessFoundBuildResult(BuildResult result, Boolean keyFromVPP, VirtualPath virtualPath)
- at System.Web.Compilation.BuildManager.GetBuildResultFromCacheInternal(String cacheKey, Boolean keyFromVPP, VirtualPath virtualPath, Int64 hashCode, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)
- at System.Web.Compilation.BuildManager.GetCompiledType(VirtualPath virtualPath)
- at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
- at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
- at Sitecore.Mvc.Pipelines.MvcEvents.Exception.ShowAspNetErrorMessage.ShowErrorMessage(ExceptionContext exceptionContext, ExceptionArgs args)
- at Sitecore.Mvc.Pipelines.MvcEvents.Exception.ShowAspNetErrorMessage.Process(ExceptionArgs args)
- at (Object , Object )
- at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
- at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists)
- at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
- at Sitecore.Mvc.Pipelines.PipelineService.RunPipeline[TArgs](String pipelineName, TArgs args)
- at Sitecore.Mvc.Filters.PipelineBasedRequestFilter.OnException(ExceptionContext exceptionContext)
- at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
- at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
- at System.Web.Mvc.Controller.ExecuteCore()
- at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
- at Sitecore.Mvc.Controllers.ControllerRunner.ExecuteController(Controller controller)
- at Sitecore.Mvc.Controllers.ControllerRunner.Execute(TextWriter writer)
- at Sitecore.Mvc.Pipelines.Response.RenderRendering.ExecuteRenderer.Render(Renderer renderer, TextWriter writer, RenderRenderingArgs args)
- at Sitecore.Mvc.Pipelines.Response.RenderRendering.ExecuteRenderer.Process(RenderRenderingArgs args)
- at Helpfulcore.RenderingExceptions.Pipelines.RenderRendering.ExecuteRenderer.Process(RenderRenderingArgs args)
Test, test, test siger WHO, men samtidig udsættes sundhedspersonale for
smittefare, når de poder potentielle coronapatienter.
Derfor stod en podnings-robot også højt på ønskelisten, da professor Thiusius Rajeeth Savarimuthu, efter covid-19
gjorde sit indtog i marts, talte med sine forskningskollegaer på Odense
Universitetshospital, OUH.
– Der er perspektiver i at udvikle en podningsrobot, så robotter kan
overtage podningsarbejdet både i forhold til covid-19, men også ved alle
fremtidige vira, siger Thiusius Rajeeth Savarimuthu.
OUH-direktør hilser robot velkommen
Det er lægelig direktør Kim Brixen fra OUH helt enig i. Han har med
interesse fulgt podningsrobotten udvikle sig i forskernes hænder. Han ser
også den store fordel, at robotten ikke bliver træt og ked af monotont
arbejde.
– I øjeblikket tager sundhedspersonale sig af at pode for covid-19, men
arbejdsforholdene kan være en udfordring. Arbejdet er forbundet med lange
arbejdsdage med monotont arbejde. Samtidig er medarbejderne meget
efterspurgte i andre funktioner, siger Kim Brixen og peger på, at robotten
også kan få en hovedrolle i en ny strategi mod mere almindelige
influenzatyper:
– Test i stor skala er en del af strategien for genåbning af vores samfund.
Robotten har et stort potentiale for massescreening af covid-19 i
sundhedsvæsenet men også i forbindelse med grænsekontrol eller i lufthavne.
– Samtidig ser vi, at regelmæssig influenza ser ud til at være aftaget
parallelt med lukningen. Det kan antyde, at vi måske skal gentænke vores
strategi mod influenza.
Podningsrobot til salg
I coronaens skygge har forskerne på rekordtid formået at udvikle en robot,
som man trygt kan overlade podepinden til. Nu er robotten klar til at
flytte fra laboratoriet.
Investorer
Investorerne består af et konsortium, hvor den svenske venturefond Norrsken Foundation går ind med 50 procent, REInvest Robotics og SDU deler de sidste 50 procent. Vækstfonden støtter med to millioner kroner som et konvertibelt lån.
– Vi har skabt virksomheden Lifeline Robotics A/S, hvor vores vision er
hurtigst muligt at få robotten ud at gøre gavn på det globale marked: i
lufthavne, i flygtningelejre og hvor der ellers er behov, siger direktør
Søren Stig fra Lifeline Robotics.
Mens forskerne har knoklet med robotstyring, kraftstyring og
visionteknologi har Søren Stig slidt for at få investeringer på plads og
samle et stærkt team med det mål at gøre podningsrobotten til en kommerciel
international succes på linje med andre stolte robotkoryfæer.
Klar til anden bølge
Tunge kapaciteter som medstifter af Universal Robots og
investeringsvirksomheden REInvest Robotics, Esben Østergaard og Vækstfonden
støtter op om projektet, og hvis alt går efter den ambitiøse plan, så poder
robotten den første patient om en måned.
– Covid-19-pandemien florerer. Ambitionen er derfor, at vi skal på markedet
så hurtigt som muligt. Planen er, at vi har en prototype, som poder
patienter sidst i juni, og robotten er færdigudviklet og klar på markedet
til efteråret, når anden covid-19-bølge rammer, siger direktøren bag
Lifeline robotics, Søren Stig og indskyder:
– Alle i teamet arbejder utrolig hårdt. Hvis vores plan holder, vil vi på
3-4 måneder opnå det, som normalt tager tre år.
- System.Web.HttpUnhandledException (0x80004005): An unhandled exception occurred. ---> System.Web.HttpCompileException (0x80004005): c:\home\site\wwwroot\Views\Article\ArticleQuote.cshtml(17): error CS1061: 'Cabana.SDU.Feature.Article.ArticleQuote' does not contain a definition for 'Text' and no extension method 'Text' accepting a first argument of type 'Cabana.SDU.Feature.Article.ArticleQuote' could be found (are you missing a using directive or an assembly reference?)
- at System.Web.Compilation.BuildManager.PostProcessFoundBuildResult(BuildResult result, Boolean keyFromVPP, VirtualPath virtualPath)
- at System.Web.Compilation.BuildManager.GetBuildResultFromCacheInternal(String cacheKey, Boolean keyFromVPP, VirtualPath virtualPath, Int64 hashCode, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
- at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)
- at System.Web.Compilation.BuildManager.GetCompiledType(VirtualPath virtualPath)
- at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
- at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
- at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
- at Sitecore.Mvc.Pipelines.MvcEvents.Exception.ShowAspNetErrorMessage.ShowErrorMessage(ExceptionContext exceptionContext, ExceptionArgs args)
- at Sitecore.Mvc.Pipelines.MvcEvents.Exception.ShowAspNetErrorMessage.Process(ExceptionArgs args)
- at (Object , Object )
- at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
- at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists)
- at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
- at Sitecore.Mvc.Pipelines.PipelineService.RunPipeline[TArgs](String pipelineName, TArgs args)
- at Sitecore.Mvc.Filters.PipelineBasedRequestFilter.OnException(ExceptionContext exceptionContext)
- at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
- at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
- at System.Web.Mvc.Controller.ExecuteCore()
- at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
- at Sitecore.Mvc.Controllers.ControllerRunner.ExecuteController(Controller controller)
- at Sitecore.Mvc.Controllers.ControllerRunner.Execute(TextWriter writer)
- at Sitecore.Mvc.Pipelines.Response.RenderRendering.ExecuteRenderer.Render(Renderer renderer, TextWriter writer, RenderRenderingArgs args)
- at Sitecore.Mvc.Pipelines.Response.RenderRendering.ExecuteRenderer.Process(RenderRenderingArgs args)
- at Helpfulcore.RenderingExceptions.Pipelines.RenderRendering.ExecuteRenderer.Process(RenderRenderingArgs args)
![Portrætbillede af Esben Østergaard](https://www.sdu.dk/-/media/images/nyheder_sduk/nyheder2020/portraetter/esben-oestergaard-490x295.jpg)
Medstifter af Universal Robots og REInvest Robotics, Esben Østergaard
valgte allerede tidligt i forløbet at investere i udviklingen af en
podningsrobot. Her er hans forklaring:
Som så mange andre blev jeg forfærdet over at se, at Covid-19-krisen
hurtigt udviklede sig. Jeg følte, at jeg skulle gøre noget. Med min
baggrund var det åbenlyse valg at automatisere testprocessen, da test synes
at være nøglen til at håndtere denne form for krise. Den aktuelle manuelle
proces er både vanskelig og besværlig, og en maskine reducerer risikoen for
smitte blandt sundhedspersonale og patienter samt giver testresultater af
højere kvalitet. Det er ingen let opgave at få en robot til at foretage en
halspodning, men heldigvis har vi i Danmark viden i verdensklasse indenfor
robotter og maskinsikkerhed, som gør det muligt for os at udvikle netop
sådan en robot på rekordtid.