{"id":767,"date":"2017-12-08T08:15:06","date_gmt":"2017-12-08T08:15:06","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/?p=767"},"modified":"2017-12-08T08:15:06","modified_gmt":"2017-12-08T08:15:06","slug":"proposal-2017-12-08-sve-goals","status":"publish","type":"post","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/2017\/12\/08\/proposal-2017-12-08-sve-goals\/","title":{"rendered":"Proposal 2017-12-08 SVE Goals"},"content":{"rendered":"<div class=\"\">Below are the SVE goals and process I am envisioning:<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">1, manually\/automatically drive a rover, R1, onto an obstacle and get it stuck (high-centered).<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1)\u00a0core goal<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) the rover drives onto the obstacle by itself (without operator picking it up to the obstacle);<\/div>\n<div class=\"\">&#8211; (2) drive forward for 5 seconds, drive backward for 5 seconds, it cannot escape<\/div>\n<div class=\"\">&#8211;\u00a0reasons:<\/div>\n<div class=\"\">&#8211; (1) shows that this is a valid and reasonable stuck scenario, instead of the rover drops down from the sky and gets stuck; (the obstacle shall be smaller than the log)<\/div>\n<div class=\"\">&#8211;\u00a0(2) restrict our \u201cstuck\u201d definition to \u201chigh-centered\u201d, without generalizing it to such as slip in sand, etc. (or shall we generalize the stuck scenarios?)<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">2, the stuck rover, R1, shall detect entrapment automatically, and broadcast SOS to notify the other rover, R2.<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) core goal<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) after R1 gets stuck, we shall show the status of R1 being \u201centrapped\u201d on RVIZ (using marker, perhaps with the corresponding likelihood)<\/div>\n<div class=\"\">&#8211; (2) after R1 gets stuck, we shall show the status of R2 being \u201cSOS received\u201d on RVIZ<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) demonstrate that our rovers have the capability of detecting entrapment autonomously and automatically;<\/div>\n<div class=\"\">&#8211; (2) demonstrate that the SOS signal can be broadcasted over the rover network and be received by its partner rover.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">3, human operator run a ROS node\/service to signify starting the autonomous rescue procedure.<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) necessary operation (core goal)<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) R2 status becomes \u201crescuing R1\u201d on RVIZ<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) we need to drive R1 forward and backward to show it is really stuck, so we need to make sure the panel is aware that R1 is really stuck before the rescue procedure starts.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">(after 3, no human operator interference)<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">4, Within a 5m X 5m vicinity with at most 2 avoidable obstacles, R2 shall plan and autonomously approach R1, and stop at an acceptable pre-tow pose.<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211;\u00a0(1) core goal<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) R2 shall plan a path, and display it on RVIZ;<\/div>\n<div class=\"\">&#8211; (2) the planned path shall end up at a pose such that the male docking mechanism of R2 aligns to the female docking mechanism of R1;<\/div>\n<div class=\"\">&#8211; (3) R2 shall follow the planned path and stops at a pose with error such that err_angle &lt; 6 degrees, err_|p| &lt; 10cm;<\/div>\n<div class=\"\">&#8211; (4) R2 shall avoid all obstacles;<\/div>\n<div class=\"\">&#8211; (5) the estimated error of R2 end pose shall be displayed on RVIZ;<\/div>\n<div class=\"\">&#8211; (6) the estimated path of R2 shall be displayed on RVIZ.<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) demonstrates that the planner can come up with a path that avoids all obstacles and ends up at valid pre-tow pose;<\/div>\n<div class=\"\">&#8211; (2) demonstrates that the rover motion controller can accurately execute the path plan within acceptable error (under close-loop control);<\/div>\n<div class=\"\">&#8211; (3) demonstrates that the rescuer rover, R2, in random pose, can approach the stuck rover, R1; (generalization of original rover poses)<\/div>\n<div class=\"\">&#8211; (4) restrict the rescue mechanism to be towing, without generalizing it to such nudging or hitting.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">5, The rescuer rover R2 shall dock to R1 autonomously.<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) core goal<\/div>\n<div class=\"\">&#8211; potential upgrade:<\/div>\n<div class=\"\">&#8211; (1) since the the docking mechanisms are no at the same height, which may require using an actuated manipulator with computer vision to perform the alignment and docking.<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) the docking mechanism shall get into a post-docking status, (e.g. if we use claw and ring, the claw shall close).<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) demonstrates that the rescuer rover, R2, can autonomously dock to the stuck rover, R1.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">6, The rescuer rover R2 shall (release its winch, go to a safe location and) tow, whereas the stuck rover R1 shall collaborate (by driving towards the same direction).<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) core goal<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) under the help of R2, the stuck rover R1 shall get rid of the stuck situation and move to a safe location;<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) demonstrates that the stuck rover R1 can escape under external help from R2;<\/div>\n<div class=\"\">&#8211; (2) restrict the towing plan to be towing towards the original direction R1 was going, without generalizing it to such as towing with some angle.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">7, Both rovers shall release the docking mechanisms and reset them to original status, and drive apart by at least 1m.<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) core goal<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) the docking mechanisms are released and reset to the original status;<\/div>\n<div class=\"\">&#8211; (2) the two rovers drive apart by 1m.<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) demonstrates a close-loop use case (all devices are reset to the pre-stuck status, so the rescue procedure is repeatable);<\/div>\n<div class=\"\">&#8211; (2) demonstrates the the rovers can resume the original mission, by showing that the can drive apart by 1m.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">8, Make the scenario more \u201creal\u201d:<\/div>\n<div class=\"\">&#8211; substeps:<\/div>\n<div class=\"\">&#8211; (1)\u00a0before [step 1], set\/plan a path for R1 and R2 outside the gates highbay, so that they drive for more than one minute;<\/div>\n<div class=\"\">&#8211; (2) R1 comes back to the highway and perform [step 1], while R2 continues what it was doing;<\/div>\n<div class=\"\">&#8211; (3) after R2 receives SOS signal, it wait for [step 3].<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) stretch goal (priority: 2rd)<\/div>\n<div class=\"\">&#8211; reasons:<\/div>\n<div class=\"\">&#8211; (1) shows that the rovers were on some (collaborative) mission before R1 gets stuck.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">9, visual odometry in loop (for EKF and entrapment detection).<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) stretch goal (priority: 1st)?<\/div>\n<div class=\"\">&#8211; (2) seems not a stretch goal, but a core goal, because if we only have a vive lighthouse on R1, then R1 cannot detect entrapment without extra reference of its velocity.<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) shows that the entrapment detection did not use vive (seems it cannot actually use vive in almost all situations);<\/div>\n<div class=\"\">&#8211; (2) shows that the visual odometry and wheel odometry are updating EKF without vive.<\/div>\n<div class=\"\">&#8211; reason:<\/div>\n<div class=\"\">&#8211; (1) more realistic for planetary missions;<\/div>\n<div class=\"\">&#8211; (2) it seems that we have to have this if we need to do entrapment detection for R1.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">10, Points of interest discovery: drive the rover outside (e.g. in Lafarge), and collect the video stream while it is driving. (not necessarily using the actual rovers, an iPhone + a cart would be good)<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) stretch goal (priority: 3rd), actually this is what NASA is trying to solve (an actually valuable problem)<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) with unsupervised learning, shall classify \u201cdifferent\u201d scenes (e.g. mountains, sand, rocks, \u2026), above 10% accuracy bonus?<\/div>\n<div class=\"\">&#8211; (2) with active learning \/ semi-supervised learning, shall classify \u201cdifferent\u201d scenes, or pick \u201cinteresting\u201d scenes, above 15% accuracy bonus?<\/div>\n<div class=\"\">&#8211; reason:<\/div>\n<div class=\"\">&#8211; (1) shows that during a mission, the rovers does not throw away potentially useful information along the way to their destinations;<\/div>\n<div class=\"\">&#8211; (2) shows that we do not need prior knowledge base for this bonus task.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">11, Taking pictures for each other.<\/div>\n<div class=\"\">&#8211; type:<\/div>\n<div class=\"\">&#8211; (1) stretch goal (priority: 4th)<\/div>\n<div class=\"\">&#8211; success:<\/div>\n<div class=\"\">&#8211; (1) send back some pictures, with 60%+ of them have the the entire target inside the picture.<\/div>\n<div class=\"\">&#8211; reason:<\/div>\n<div class=\"\">&#8211; (1) demonstrate an advantage of have a multi-agent robotic system on a planetary exploration mission.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">Why restricting the scenarios, instead of generalizing them:<\/div>\n<div class=\"\">&#8211; (1) we can first pass all the above test cases robustly, and then come up with generalizations as \u201csurprise\u201d during SVE, if we have extra time;<\/div>\n<div class=\"\">&#8211; (2) demonstrating a complete and fully autonomous use case (like the above) is more appealing than diving deeper in one step;<\/div>\n<div class=\"\">&#8211; (3) there ARE necessary generalizations in the above test case, such as initial poses, high-centering scenarios (R1 may get high-centered in different way in the above case).<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">The core goals above correspond to the below story (use case):<\/div>\n<div class=\"\"><\/div>\n<div class=\"\">\n<div class=\"\">\n<div class=\"\">(a) two rovers collaborate together in a planetary exploration mission;<\/div>\n<div class=\"\">(b) one rover, for example the rover AK1, is entrapped during the mission, where the entrapped rover, AK1, is not capable of extricating itself, and such an entrapment is detected autonomously;<\/div>\n<div class=\"\">(c) the entrapped rover, AK1, broadcasts a SOS signal across the rovers network to request rescue;<\/div>\n<div class=\"\">(d) the other rover, for example the rover AK2, receives the SOS signal, so it suspends its current task and become the rescuer rover;<\/div>\n<div class=\"\">(e) the rescuer rover, AK2, approaches the entrapped rover, AK1, in an autonomous manner;<\/div>\n<div class=\"\">(f) after getting close enough to the entrapped rover, AK1, the rescuer rover, AK2, launches the autonomous rescue procedure to extricate the entrapped rover, AK1;<\/div>\n<div class=\"\">(g) after the entrapped rover, AK1, is extricated, the two rovers, AK1 and AK2, resume their original tasks.<\/div>\n<\/div>\n<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">I propose that:<\/div>\n<div class=\"\">&#8211; (1)\u00a0we shall discuss about the SVE goals before the beginning of the next semester, so that we have very solid and concrete goals to strive for. And we can better plan our schedule;<\/div>\n<div class=\"\">&#8211; (2) after discussion, we shall lock down our \u201cmaximum\u201d SVE core goals before the next semester begins;<\/div>\n<div class=\"\">&#8211; (3) after locking down the goals, we will only remove core goals, and never add any of them;<\/div>\n<div class=\"\">&#8211; (4) if we have extra time, we can add new goals, but make them stretch goals, and present them as \u201csurprises\u201d without putting them down onto the test sheet. (I am open to ambitious goals, but I guess we shall have the \u201cMVP\u201d before implementing those goals, so that we can have a \u201crobust\u201d pace towards a functional and robust system.)<\/div>\n<div class=\"\">&#8211; (5) we do need to kind-of \u201clock down\u201d something for the CDR, because CDR generally means we shall not modify the design of our system after that.<\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<p>How do you think about the SVE goals?<\/p>\n<div class=\"\"><\/div>\n<div class=\"\"><\/div>\n<div class=\"\">\n<div class=\"\">&#8212;<\/div>\n<div class=\"\">David (Dicong Qiu), MRSD Student<br class=\"\" \/>Robotics Institute, Carnegie Mellon University<br class=\"\" \/>5000 Forbes Avenue, Pittsburgh, PA 15213<\/div>\n<div><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Below are the SVE goals and process I am envisioning: 1, manually\/automatically drive a rover, R1, onto an obstacle and get it [&hellip;]<\/p>\n","protected":false},"author":118,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-767","post","type-post","status-publish","format-standard","hentry","category-meeting-notes"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/posts\/767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/users\/118"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/comments?post=767"}],"version-history":[{"count":1,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/posts\/767\/revisions"}],"predecessor-version":[{"id":768,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/posts\/767\/revisions\/768"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/media?parent=767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/categories?post=767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2017teami\/wp-json\/wp\/v2\/tags?post=767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}