{"id":136,"date":"2016-04-15T20:00:48","date_gmt":"2016-04-16T01:00:48","guid":{"rendered":"http:\/\/robotistry.org\/blog\/?p=136"},"modified":"2016-03-18T18:42:51","modified_gmt":"2016-03-18T23:42:51","slug":"another-brick-in-the-research-wall","status":"publish","type":"post","link":"https:\/\/robotistry.org\/blog\/2016\/04\/15\/another-brick-in-the-research-wall\/","title":{"rendered":"Another Brick From The (Research) Wall"},"content":{"rendered":"<p>In every research project, you eventually run into a wall. \u00a0The wall can take many specific forms, but in general it represents a point at which it seems like your idea can&#8217;t work. \u00a0There are at least four possible responses.<\/p>\n<p>First, you can walk away. \u00a0You can abandon your approach to the problem, backtrack until you find an alternate path, and follow that path to its wall.<\/p>\n<p>Second, you can keep battering at it until it gives way. \u00a0This only works if the wall isn&#8217;t a function of fundamental mechanisms of physics or mathematics. \u00a0Problems that are a function of processing power or available memory can be susceptible to this approach &#8212; if you wait long enough or have enough money, someone will build a computer capable of implementing your idea. \u00a0Sometimes the brute force approach is sufficient.<\/p>\n<p>Third, you can revolve the problem in your mind, looking at it from all sides. \u00a0You can investigate other, apparently unrelated fields, you can attend talks on tangentially related work, and then you can come back to the problem and revolve it in your mind some more. \u00a0You can go talk to the people who will be using it, to see if there are any underlying assumptions you&#8217;ve missed, or something you&#8217;ve misunderstood. \u00a0And eventually you&#8217;ll find a path through the brambles around the side of the wall and come out on the other side. \u00a0You haven&#8217;t gained any understanding of the wall itself, but you have managed to find a new way to think about the problem, and you are likely to end up with an effective solution. \u00a0This is what happened in robotics in the 1980s.<\/p>\n<p>Until that point, the software side of robotics was focused primarily on artificial intelligence approaches. \u00a0When they tried to make their robot operate even in a relatively simple environment, they hit a wall in terms of the required processor power because their interpretation of the problem assumed a high degree of object recognition and understanding of the environment. \u00a0Brooks&#8217; key insight was that it is not necessary to understand the world in order to function within it. \u00a0The robot doesn&#8217;t need to differentiate between tables and chairs in order to avoid them. \u00a0It only needs to differentiate between floor and not-floor. \u00a0He sidestepped the wall (capturing and interpreting the complexity of the environment) and found <a href=\"http:\/\/people.csail.mit.edu\/brooks\/papers\/how-to-build.pdf\">a path through the brambles<\/a> (abstracting the complexity of the world into only the things the robot needs to know).<\/p>\n<p>Fourth, you can disassemble the wall, brick by brick, until you understand it. \u00a0This is the most theoretically sound approach, and often results in the cleanest\u00a0solutions.<\/p>\n<p>After the Wright brothers side-stepped their wall by discovering\u00a0that wings needed to be rounded instead of sharp on the leading edge, engineers disassembled the leading-edge-shape wall until they thoroughly understood it, leading to modern aerodynamics.<\/p>\n<p>The ViCoRob lab\u00a0at the University of Girona ran into the wall of environmental factors when they attempted to <a href=\"http:\/\/cirs.udg.edu\/auvs-technology\/data-processing\/sonar-mosaicing\/\">stitch<\/a> <a href=\"http:\/\/cirs.udg.edu\/auvs-technology\/data-processing\/seabed-mapping-in-2d-and-3d\/\">together<\/a> <a href=\"http:\/\/cirs.udg.edu\/auvs-technology\/data-processing\/mosaicviewer\/\">imagery<\/a> of the same undersea environment at different times. \u00a0Instead of hitting the problem with more and more computer time, or sidestepping the problem by mandating specific vehicle behaviors, they disassembled the wall into many individual image processing elements, each dealing with a specific confounding factor. \u00a0They compensated for brightness variation due to light placement, they compensated for particulates in the water, they compensated for chromatic variation as a function of distance, they compensated for bright and dark spots caused by light refracting through ripples on the surface, they compensated for vehicle motion estimate errors, and they compensated for scaling factors between images. \u00a0They took apart\u00a0the wall, understanding it as they went, and were able to create stunningly beautiful images of large swaths of sea floor. \u00a0This approach is generally expensive and time-consuming.<\/p>\n<p>What to do when you hit a wall is obviously going to be a function of many factors &#8212; how much time you have, how complex the problem is, how much money and hardware you have, and how you intuitively approach problems. \u00a0Some people will naturally gravitate towards each of these approaches, and an approach you&#8217;re good at is likely to be more effective for you than an approach you&#8217;re not good at. \u00a0It is, however, worthwhile to attain at least limited skill in each approach, if only so that you\u00a0are aware of alternatives when your preferred approach fails.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In every research project, you eventually run into a wall. \u00a0The wall can take many specific forms, but in general it represents a point at which it seems like your idea can&#8217;t work. \u00a0There are at least four possible responses. First, you can walk away. \u00a0You can abandon your approach to the problem, backtrack until [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-136","post","type-post","status-publish","format-standard","hentry","category-foundations"],"_links":{"self":[{"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/posts\/136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/comments?post=136"}],"version-history":[{"count":1,"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"predecessor-version":[{"id":174,"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/posts\/136\/revisions\/174"}],"wp:attachment":[{"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robotistry.org\/blog\/wp-json\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}