16-311 Introduction to Robotics
|Main Schedule Homework Labs Links|
16-311 Homework 0
One of the skills necessary for this class is proficiency with C. We will use a programming language called ROBOTC, which is based on C, but geared toward common educational robotics platforms like the LEGO MINDSTORMS (which will be used in Labs 3 through 10). Though 15-122 is not a prerequisite for this course, knowledge of C or the willingness to pick it up is necessary.
The following is a list of helpful C resources:
MATLAB is a programming language and envirnment that can be extremely useful for editing images. We will be using it to manipulate and extract information from images for our Vision Unit. You do not need to be an expert in MATLAB to take this course, we feel that proficiency in most common languages will carry over to MATLAB and that you will be able to learn the imageiediting functions as you go.
MATLAB is available on Virtual Andrew and most cluster computers. You can access virtual Andrew through a web browser or through VMware Horizon client: Virtual Andrew.
All students at Carnegie Mellon can download a version of MATLAB that will work when they are on the CMU network. MATLAB Version 2018b is recommended for HW2. Some students (depending on their major) are permitted to download the standalone version. Both downloads are available from this site: CMU Software Downloads. If you have the network-dependent version, you can use it anywhere with CMU wifi or in conjunction with a VPN client like Cisco AnyConnect: CMU Cisco AnyConnect Download.
If you have never used MATLAB to manipulate an image, here is a sample file that you can run with basic image manipulation. First find a small .png image and save it in the same directory as this function. Then you can run the function with that image as the input.Python
Python is one of the most common scripting languages for Robotics. For this assignment, you will be using Python 3 to create a basic program. If you don't already have Python 3 downloaded, you can download it from here: python.org/downloads. Python documentation can be found here: python.org/doc/.Websites
First, you need to create the website document. You can create this using HTML with any text editor or create a document in another language (for example a Word Document) and convert it to HTML. This website provides an online editor and HTML tutorials: w3schools HTML Tutorial.
After this, you need to put your HTML file online. CMU provides every student with webspace (CMU Personal or Course Pages). This tutorial was created by CMU students and provides good instructions for publishing your page through your CMU account: How To Publish Your Personal Website Using the Andrew File System.
Google Sites is another free method of sharing webpages that is perhaps more visual than writing and publishing HTML through your AFS space(Google Sites).Academic Documents
Additionally, this homework has a LaTeX component. LaTeX is a common program for creating academic documents including published papers and theses. LaTeX enables the user to keep an automatically updating reference list, easily caption and refer to images and create items like a table of contents more easily than a word processor like MS Word. You do not need to have experience with LaTeX before taking this course, but we feel it is a helpful still to have in academia.
To use LaTeX, we recommend using an editor/compiler or using a web-based tool. We recommend overleaf.com, which works very similar to Google Docs. You can edit your document from any computer with internet access and collaborate live with other people. Overleaf also has templates you can start from and great help resources. Alternatively, a nice editor is texstudio, which can be downloaded from texstudio.org.
A note on file format: a LaTeX compiler will likely create many different files while creating the finalized .pdf. If you are sharing the document with someone and you want them to be able to edit it, it is important to sent them the .tex file, as well as any images that you embed in the file.Linear Algebra
Linear algebra refers to the study of vectors and linear functions. Linear algebra come up all the time in robotics from computer vision to manipulation. It is helpful to have a solid understanding of vectors and matrices for robotics. This homework touches on the basics of vector definitions and matrix arithmetic. A good review of linear algebra can be found here:Linear Algebra Review (linked with permission). Further reading can be found here: Orthogonal Matrix, Transpose and Inverse.
The Specifications for Homework are presented in the following document.
ExtensionsAdditional Courses on These Topics:
Last updated 1/14/2020 by Hannah Lyness
(c) 1999-2020: Howie Choset, Carnegie Mellon