Assignments

BLOG #10

Due: June 5, 5:00pm

We're in the final stretch! Besides completing your project implementations and working on your final video assignment, you have a few more things to do this week:

  • A mini-evaluation of your project: At this point it is difficult to measure the success of your projects in terms of metrics that a potential investor might care. However, it is still important to demonstrate that your technology is reliable, general, and usable. While a demo demonstrates that your technology works in one time, in one particular situation, with one particular user, an evaluation demonstrates that it works repeatedly, in different situations, with different users. For this assignment we would like you to choose one or more of these metrics (reliability, generalizability, usability), perform an evaluation of your project, and report the results in a blog post. If you're able to obtain them in time, you can feature these results in your video too. (We will post examples shortly!)
  • Team evaluations and reflection: It is time to fill out your peer evaluations. Everyone should fill those out individually. In addition, we would like you to reflect as a team and write a brief blog post about your reflection. In particular, talk about which strategies from Blog #3 Post 2 did you actually adopt as a team, what other strategies did you adopt along the way, which ones worked well, and which did not.
  • Course evaluations and feedback: Reflect individually and as a team about the Robotics Capstone Spring 2017 offering touching on (a) what was most fun, (b) what was most useful, (c) what was not so useful, (d) what would have been useful but was missing. As this is a continually changing course, we would like to hear from you any information that can help make future offerings better. Please have everyone in your team fill out the course evaluation by June 4th (Sunday night). In addition, for any feedback where anonymity does not make sense, please send us an email or write a blog post.
  • Post a final progress update on your project.

Submit links (one for each blog post) as text entry on Canvas. See Canvas for more details on grading.

BLOG #9

Due: May 29, 5:00pm

It is crunch time! Only two weeks left to complete your projects :-) This week you'll continue to execute the project implementation plan proposed in Blog #7 and get started on your final presentation video. Your assignments will involve reporting on your progress and writing a draft script for your final presentation video. See the final video assignment below for more details and examples. As before, you may have multiple progress updates from different subgroups focusing on different aspects of the project. Make sure to indicate who has been working on what. Have a separate blog post for the video script.

Optionally, post any updates to your business model, design, target use cases, and technical requirements, as well as refinements to your project plan and system architecture.

Submit links (one for each blog post) as text entry on Canvas. See Canvas for more details on grading.

FINAL VIDEO

Due: June 6th, 11:59am

In your final assignment you will create a video that presents your project, based on the script you prepared in Blog #9. Your video should be three minutes or shorter. Your video should both introduce and "sell" your design. The following example videos might inspire you:

Your video script (Blog #9) should include a plan for narration and accompanying visuals (footage or images). Your script should be in the form of a three column table.

  1. The first should include a section number and a short section title (e.g. "introduction", "demonstration of task 1" or "testimonial from test user").
  2. The second should be the a description of visual elements that will be shown in the video (e.g. "talking head of team member A", "video of robot manipulating object", "screen recording of someone using the UI"). Include sufficient details such that someone who reads your description could go and shoot that video for you.
  3. The last should be the narration text that will be read voice-over on the video, if the video does not already include relevant audio. This includes what will be said in "talking head" shots.

To allow for creative freedom and avoid obtaining many cookie-cutter videos, we are not constraining the sections in your video. But please make sure that your video follows these guidelines:

  • Your video should clearly describe and motivate the problem. Get the viewers to care about the problem.
  • Your video should clearly describe your solution and convince the viewer that it addresses the problem.
    • It should be clear what your design is useful for to someone who is hearing about the project for the first time.
    • Your video should demonstrate the use of your robot. This can be done by walking through different tasks that your robot supports. Be sure to set context for the use and demonstrate the outcome (just like in your storyboards).
  • Your video should feature positive feedback from potential users regarding your design (quotes from your interviews or new recordings of people saying what they like about your design or describing contexts in which they would use your design if it were real).
  • Your video should introduce you, the team.

You will receive feedback about your scripts shortly after submitting them. Afterwards you will have a week to shoot and edit your videos. Try to incorporate any feedback you received about your script.

The evaluation of this assignment will be done by a panel of judges and it has two components:

  • Evaluation of the video: In addition they will assess the quality of your video. Besides covering important content, it is important for your video to have appeal.
  • Evaluation of the project: The judges will assess the importance and quality of your project. Note that this assessment depends on the judge's ability to understand your project based on the video.

The rating sheet that the judges will use is available here. To avoid file format related challenges and allow judges to view videos remotely, we request that you upload your video to YouTube (you can make it Unlisted if desired) and submit a link to the video on Canvas.

BLOG #8

Due: May 22, 5:00pm

From here on you will execute the plan you proposed in Blog #7. Your assignments will involve reporting on your progress according to this plan. Besides your progress on the implementation, we expect that you will report on your evaluation and do some reflection as part of Blog #10. In addition, Blog #9 will involve drafting a script for your final presentation video.

At this point in the project it is likely that you are working in parallel on several aspects of the project in subgroups. We recommend that each subgroup posts a separate progress update. For example if you have one person working on the UI, that person can be responsible for posting a progress update on that. Progress updates should include the different deliverables mentioned in your plan (Post #2, Blog #7), e.g. pictures, videos, screenshots, or any other evidence of progress. Make sure to indicate who has been working on what.

Optionally, post any updates to your business model, design, target use cases, and technical requirements, as well as refinements to your project plan and system architecture.

Submit links (one for each blog post) as text entry on Canvas. See Canvas for more details on grading.

BLOG #7

Due: May 15, 5:00pm

This week we go deeper into perception with PointCloud processing and segmentation and start thinking about implementing our projects.

1. (3 points) Post #1: Labs 30-33 will give you new ways of extracting knowledge from the robot's PointCloud stream. For this assignment we would like you to tune the methods you learn in the labs for the particular perception capabilities needed for your project and assess the feasibility of using these methods for your project. Your blog post should include the following:

  • A list of objects/landmarks that need to be perceived for your project. You might already have this in Blog #2, Post #2 (or in later revisions of your technical requirements). Discuss with the instructors if you are unsure what the full list is.
  • A screen capture video showing a visualization of the outcome of your segmentation algorithm (similar to the screenshot in Lab 32) in a scene containing those objects/landmarks. Use a placeholder for objects that you do not have yet. Demonstrate the outcomes for different configurations of the scene by moving the objects around. Describe how you tuned the method to make it work for some objects/landmarks in your project.
  • For each object/landmark that needs to be perceived for your project, discuss the robustness of the clustering-based perception system you developed, how it might be improved, and whether it is a better option than using fiducials.

2. (3 points) Post #2: You have only three weeks left to complete your projects! The good news is you now know almost everything you need to implement your projects. The labs from now on will be optional labs with additional tools that might help some teams. So this is a good time to create an action plan for the next three weeks so you can complete your projects on time. To that end, your blog post should include the following:

  • A description of your minimal and stretch goals in terms of capabilities you will demonstrate. You can reference previous blog posts for details.
  • A graphical representation of your final system architecture showing the different ROS nodes that need to be implemented and the interface (messages, services, actions) between them. Annotate this graph with the information of (i) what is already implemented, (ii) what needs to be implemented for your minimal goal, and (iii) what needs to be implemented for your stretch goal.
  • A three week plan of how you will implement and test your system. We recommend spending two weeks on implementing and testing sub-components and one week on integration and full system evaluation. Describe how you will evaluate your system to demonstrate its usefulness and usability. Provide details about the three milestones which you will report as part of the next three assignments.
  • (Optional) A list of additional labs you would like to have to help with your projects.

3. (Optional) Post any changes or refinements to your lean canvas (i.e. your business model), sketch (i.e. your design), story board (i.e. your target use cases), or technical/environmental requirement based on the feedback you get from peers or the teaching staff or based on your elaborations.

Submit two (or three) links (one for each blog post) as text entry on Canvas. See Canvas for more details on grading.

BLOG #6

Due: May 8, 5:00pm

This week we jump into perception with detection and tracking of so called “AR markers” or “fiducials”. We will also have our first fabrication tutorial.

1. (4.5 points) Post #1: Labs 27-28 will show you how to work on perception problems in simulation and introduce you to a package for tracking fiducials in the pointcloud stream from Fetch’s PrimeSense camera. Using this and other functionality developed in previous assignments, you will develop a new system that allows you to (a) save end-effector poses relative to a fiducial and (b) move the robot’s arm to the same relative poses after the fiducial has been moved. This will allow you to define basic actions to manipulate objects (localized based on a fiducial fixed to it), as a sequence of end-effector poses and gripper states (open/closed) relative to that object.

The system should be designed such that you do not need to hard-code pose offsets. You should physically move the robot's arms to the poses and have the system save the pose based on the robot's sensor data (i.e., using TF). You will need some kind of interface (command-line or web-based) to save poses after moving the arm to each pose. For each pose, you will need to use your interface to specify which fiducial the pose is relative to (or if the pose is relative to the base frame). Once you have finished defining an action, you should use your interface to save the action to a file. You also need to build a program executor that can load an action from a file and execute it.

To demonstrate the tools developed in this assignment, assume that you have box shaped object with a fiducial (F1) on its front face that can be moved on the table to indicate the target. Make a video that demonstrates the use of your tool *on the real robot* to define the following three actions and use each of them in two different configurations of the fiducials (i.e. six total executions):

(i) Push: Make the object with F1 move side-to-side by pushing it one way, then pushing it the other way.

(ii) Poke: Make the object with F1 tip over by poking it from front-to-back.

(iii) Pick-and-place: Pick up the object with F1 from the top. Place the object on a second fiducial, F2.

Your actions should actually succeed. So if you find that the action fails when you test it, you need to go back and re-define your actions differently (e.g. try having a different number of poses, using different pose configurations, or adjusting the motion speed).

2. (1.5 points) Post #2: In the fabrication tutorial you will learn to design objects that can be laser cut or 3D printed. As part of this assignment, you will create an initial design for something that you would like to fabricate as part of your projects, e.g. a custom tool for your robot to handle boxes; a custom handle to attach to objects that the robot will need to manipulate; shelf dividers that position items so they are graspable by the robot, etcetera. Let us know if you are unsure about what to design. Post a picture of your CAD model and briefly explain what it is for.

3. (Optional) Post any changes or refinements to your lean canvas (i.e. your business model), sketch (i.e. your design), story board (i.e. your target use cases), or technical/environmental requirement based on the feedback you get from peers or the teaching staff or based on your elaborations.

Submit two (or three) links (one for each blog post) as text entry on Canvas. See Canvas for more details on grading.

BLOG #5

Due: May 1, 5:00pm

This week you will continue to learn about ROS and Fetch capabilities that will form the basis of your proposed projects. Your blog posts for the week include two videos based on lab milestones as well as some work on your project ideas.

  1. (2 points) Post #1: Labs 19-22 will introduce you to Inverse Kinematics (IK) and motion planning with obstacles and constraints. At the end of Lab 22 you will develop an RViz-based interface that involves an InteractiveMarker, shaped like the robot's gripper, which can be moved around to specify a target gripper pose and send the robot to that pose. When moved around, the marker should change color to reflect whether the corresponding gripper pose is reachable by the robot or not. After testing it in simulation, you will test this interface *on the real robot* to grasp a soft object. To do this, use your interface to (i) send the robot gripper to a "pre-grasp" pose near the object, (ii) then send it to a "grasp" pose, (iii) close the gripper, and (iv) send the gripper to a "lift" pose. Make a video that shows both the use of your RViz interface and the successful grasping the object by the robot. Post this video with a brief description of what it demonstrates.
  2. (2 points) Post #2: Labs 23-26 will introduce you to coordinate frame transforms using TF and transformation matrices. At the end of Lab 26 you will have an RViz-based interface that involves an InteractiveMarker corresponding to a world object which can be moved around. You will use transform arithmetic to compute "pre-grasp", "grasp", and "lift" poses for the gripper relative to the current pose of the object. You can use any type of visualization to indicate whether an object pose has reachable gripper poses associated with it (e.g. change color of the object and attach text or separately visualize the associated gripper poses in different colors). After testing it in simulation, you will test this interface *on the real robot* to grasp a soft object. To do this, use your interface to (i) place your interactive object marker approximately where the object appears in the robot's pointcloud stream, and (ii) send the robot to computed pre-grasp, grasp, and lift poses one at a time (close the gripper before lifting). Make a video that shows both the use of your RViz interface and the successful grasping the object by the robot. Post this video with a brief description of what it demonstrates.
  3. (2 points) Post #3: Post a bullet list of objects, components, tools, and materials you would like to purchase or fabricate in order to create the demo scenario for your project. Include a justification of why you need each item, and, if applicable, a link for purchasing (Amazon.com when available). Make sure your list is comprehensive. Your budget is roughly $200 (excluding tablets/smartphones which we already have), but exceptions can be made if justified.
  4. (Optional) Post any changes or refinements to your business model, design, target use cases, or technical/environmental requirements.

Submit three (or four) links (one for each blog post) as text entry on Canvas. See the rubric on Canvas for details on grading.

BLOG #4

Due: APR 24, 5:00pm

The next group assignment involves the following blog posts based on the tools you will develop in this week’s labs.

  1. (1.5 points) Post #1: Labs 11-15 will introduce you to a visualization tool in ROS, called RViz, and teach you how to create custom interactive visualizations of internal hidden information. By the end of Lab 15 your RViz setup and your custom “Markers” provide a visualization of the robot’s path as it moves around. Your “InteractiveMarkers” should allow you to send the robot towards a requested target by servoing towards it using odometry. Make a screen capture video of your RViz interface demonstrating both capabilities by first manually driving the robot around to visualize its path and then sending it to two different InterativeMarker targets. Post this video with a short description of what it demonstrates.
  2. (1.5 points) Post #2: Labs 16-18 will introduce you to basics of robot navigation and teach you how to make, localize in, and navigate a map through RViz and through code. By the end of Lab 17 you will make a tool that allows you to annotate a map by driving the robot to a desired location in the map, and using command line inputs to trigger the annotation process and name the location. The same tool should allow you to send the robot to a previously annotated location on the map. Make a screen capture video that demonstrates driving the robot around to annotate distinct locations on the map and sending the robot to those locations. Post this video with a short description of what it demonstrates.
  3. (3 points) Post #3: Lab 18 involves putting together what you learned this week to build a tool that allows you to annotate a map through a web/RViz interface and send the robot to annotated locations. Make a screen capture video demonstrating the use of this tool to annotate distinct locations on the map and sending the robot to those locations. Post this video with a short description of what it demonstrates.
  4. (Optional) Post any changes or refinements to your lean canvas (i.e. your business model), sketch (i.e. your design), story board (i.e. your target use cases), or technical/environmental requirement based on the feedback you get from peers or the teaching staff or based on your elaborations.

Submit three (or four) links (one for each blog post) as text entry on Canvas. See the rubric on Canvas for details on grading.

BLOG #3

Due: APR 17, 5:00pm

Your next assignment will demonstrate the successful completion of this week's labs and build on your previous assignments to push your project ideas forward. Here is what we would like to see on your blog next week.

  1. (3 points) Post #1: Labs 1-10 will guide you through ways of controlling different actuators of the Fetch robot in ROS and making a browser-based user interface integrated with ROS. By the end of these labs, you will develop a tele-operation interface that lets you remotely control different parts of the robot. For this assignment, you will use this browser-based tool to control the simulated Fetch robot to do the following tasks. The tele-operator should be able to do these tasks without looking at the simulation (Gazebo) screen and relying on their memory.
    • Drive from the starting pose to the table.
    • Raise the torso and lower the head to look at the table
    • Move the arm (and possibly the base and torso) and open/close the gripper to pick up the blue cube on the table, without colliding with the table.

Make a screen capture video of the teleoperation process. At the end open the Gazebo window to show that the object was successfully picked up by the robot. Upload your video to Youtube and post a link on your blog with a description of all elements on your tele-operation interface.

2. (1 points) Post #2: Assign team roles to everyone in your project team, considering common potential roles in this class. Write a blog post that describes everyone's roles and concrete responsibilities. Consider weekly responsibilities as well as quarter-term project responsibilities. In addition, write a paragraph about strategies you will follow to ensure everyone in the team acquires the knowledge and skills they hope to get out of the class (e.g. everyone in the team learns ROS).

3. (2 points) Post #3: Next, you will critique two project proposals by your peers. Review the sketch, storyboard, technical requirements (Post #2 in Assignment #2) and the associated Lean canvas (Post #1 in Assignment #2) for each project. Provide a critique in the following format:

    • What do you like about the project?
    • What are potential issues with the project? Try to identify potential flaws in the business model as well as implementation challenges that the team might not have considered or might have underestimated.
    • Any suggestions you have for pivoting the project or resolving the identified issues.

We will separately post an assignment of projects that each team will critique with links to the relevant posts.

4. (Optional) You will likely pivot or refine your projects throughout the course of the quarter. We would like you to keep documenting these changes or refinements on your blog. Post any changes or refinements to your lean canvas (i.e. your business model), sketch (i.e. your design), story board (i.e. your target use cases), or technical/environmental requirement based on the feedback you get from peers or the teaching staff or based on your elaborations.

Submit three links (one for each blog post) as text entry on Canvas. See the rubric on Canvas for details on grading.

BLOG #2

Due: APR 10, 5:00pm

Here is what we would like to see as part of your first assignment as a team.

  1. (0 points) Go to Canvas groups page, claim one of the groups (1-6) and add all members of your team to the group.
  2. (0 points) Have one team member create a team blog and add all others to the blog so they can post on it.
  3. (3.5 points) Post #1: Pick your top two project ideas from the proposed list and fill out a lean canvas for both of them. Discuss both ideas and decide as a team which one you would invest in. Post the lean canvases on your blog with a statement of which project you will pursue and why you think it has more potential.
  4. (2 points) Post #2: Post a sketch and a storyboard for your chosen project (based on the class activity on Thursday). List all the environmental modifications needed to make your project feasible. Also list all technical capabilities you will need to implement (e.g. object recognition and localization, people recognition, navigation, pick-and-place, etcetera) with details of their scope (e.g. which objects need to be recognized/manipulated, etcetera).
  5. (0.5 points) Choose a company name and a product name (they could be the same) and create a logo. Update your blog with this information. You can change these later, but pick something to start with.

Submit two links to your blog posts on Canvas. See the rubric on Canvas for more details on grading.

BLOG #1

Due: APR 3, 5:00pm

Since you do not yet have teams this assignment will be done individually and posted on the shared course blog. Here is what you need to do.

  1. (0 points) If you do not yet have one, create a GitHub and a Tumblr account. Send your usernames to Justin so you can be added as a member on the course blog.
  2. (2 points) Post #1: Post a "company profile" (see previously posted example) for an existing robotics application startup.
  3. (4 points) Post #2-3: Post two "imaginary company profile"s (see previously posted example) for two of your own ideas based on your need finding activities (will be covered on 3/30 Thu). Your two ideas should be based on a field trip, contextual inquiry, or interview performed in two separate contexts. One of these contexts can be one you have personal experience with, but at least one of them should be unfamiliar and new to you. Provide at least one picture from each context. You are welcome to do these activities together with other classmates, but post your ideas separately.

Submit three links (one for each blog post) as text entry on Canvas.