{"id":125,"date":"2020-04-06T03:58:09","date_gmt":"2020-04-06T03:58:09","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/?p=125"},"modified":"2020-04-13T04:30:36","modified_gmt":"2020-04-13T04:30:36","slug":"aditis-status-report-4-5","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/2020\/04\/06\/aditis-status-report-4-5\/","title":{"rendered":"Aditi\u2019s status report 4\/5"},"content":{"rendered":"<p>This week, I used BreeySLAM (a SLAM package in python) while moving the robot with commands in real time over SSH to generate several different maps &#8211; <\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/scontent.fagc1-2.fna.fbcdn.net\/v\/t1.15752-9\/92683915_220507972600288_4615242032305143808_n.png?_nc_cat=104&amp;_nc_sid=b96e70&amp;_nc_ohc=tLcFGy5Y0W0AX8xaRII&amp;_nc_ht=scontent.fagc1-2.fna&amp;oh=d362be2f33d1e1d7ff919c205fa31914&amp;oe=5EB20D12\" width=\"1020\" height=\"1064\" class=\"alignnone size-medium\" \/><\/p>\n<p>with scans from a single point, the SLAM was not accurate and noisy.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/scontent.fagc1-2.fna.fbcdn.net\/v\/t1.15752-9\/92491362_539376983448549_2137720349817569280_n.png?_nc_cat=104&amp;_nc_sid=b96e70&amp;_nc_ohc=pjixVLffGf0AX9EGFu5&amp;_nc_ht=scontent.fagc1-2.fna&amp;oh=d2688c651ad0b8155287f5e68ec10459&amp;oe=5EB10BBB\" width=\"1018\" height=\"1060\" class=\"alignnone size-medium\" \/><\/p>\n<p>With multiple scans generated from the robot moving in a line, the map is more coherent although the dimensions look a little off (the map looks too small to represent my room, so the SLAM seems to be extrapolating the positions of walls)<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/scontent.fagc1-1.fna.fbcdn.net\/v\/t1.15752-9\/92022244_555447718683604_130621994264690688_n.png?_nc_cat=110&amp;_nc_sid=b96e70&amp;_nc_ohc=qmd5_LlbcYEAX9SUnK8&amp;_nc_ht=scontent.fagc1-1.fna&amp;oh=9c692d848eabc630d2087c81748eb5fc&amp;oe=5EB1FD9D\" width=\"1022\" height=\"1064\" class=\"alignnone size-medium\" \/><\/p>\n<p>With the roomba moving from my room into the hallway, as well as moving back and forth and making rotations, the map wasn&#8217;t quite as smooth. While the generated map does seem to have captured that the robot was moving from a room to the hallway (see corner on top on top of map), it is quite noisy possibly due to the non linear movement of the robot. <\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/scontent.fagc1-1.fna.fbcdn.net\/v\/t1.15752-9\/91982026_210780170190971_7303189753355042816_n.png?_nc_cat=103&amp;_nc_sid=b96e70&amp;_nc_ohc=umWJKkYzzbIAX9OB-CN&amp;_nc_ht=scontent.fagc1-1.fna&amp;oh=fcc3db47191fae8ffa29b0f8ce6ae7bb&amp;oe=5EB16552\" width=\"1020\" height=\"1066\" class=\"alignnone size-medium\" \/><\/p>\n<p>In contrast, the above map was generate along the same route (bedroom to hallway) but was much more smooth since the robot moved in a straight line. <\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/scontent.fagc1-1.fna.fbcdn.net\/v\/t1.15752-9\/91882641_1315297365525622_2847579801332482048_n.png?_nc_cat=106&amp;_nc_sid=b96e70&amp;_nc_ohc=I6VtVJmN1KMAX-0vzyD&amp;_nc_ht=scontent.fagc1-1.fna&amp;oh=4d5a1b61c9b715bda23db1b280caf1e3&amp;oe=5EB1B8B3\" width=\"1016\" height=\"1064\" class=\"alignnone size-medium\" \/><\/p>\n<p>This final image maps an uncluttered corner of my bedroom, as well as noise generated by surrounding objects. Although this map is relatively smaller than the other, I think it is relatively more accurate in stitching together scans at different positions. This was because I fed it &#8220;dead reckoning&#8221; odometry where I would provide the SLAM algorithm the speed I set the robot at. In this case, I hardcoded the speed and simply moved the robot in a vertical line. <\/p>\n<p>The team agreed that we would definitely be able to generate better maps by giving the the SLAM algorithm real time &#8220;dead reckoning&#8221; odometry data. This coming week, I plan to write a script that would enable me to both move the robot and feed the SLAM odometry data in real time. If the generate maps are still not accurate, I plan to explore other methods of providing odometry including:<br \/>\n&#8211; Calculate speed from consecutive lidar scans<br \/>\n&#8211; soldering on an IMU<br \/>\n&#8211; using a phone IMU<br \/>\n&#8211; looking further into the roomba wheel encoders (they were pretty inaccurate the last time I tried to use them).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, I used BreeySLAM (a SLAM package in python) while moving the robot with commands in real time over SSH to generate several different maps &#8211; with scans from a single point, the SLAM was not accurate and noisy. With multiple scans generated from the robot moving in a line, the map is more coherent although the dimensions look a little off (the map looks too small to represent my room, so the SLAM seems to be extrapolating the&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/2020\/04\/06\/aditis-status-report-4-5\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":256,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,3],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/posts\/125"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/users\/256"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":2,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":127,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/posts\/125\/revisions\/127"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb2\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}