Introduction to Junior and Dynamism

Introduction

Welcome to the laboratory portion of ESE 313! This lab will serve as an introduction to general procedure, Linux systems, how to run Junior platform with use of Dynamism as the communication layer and MatLab/Python as behavior development layer.

Lab task: Run an experiment where Junior calibrates itself, stands up, runs for a short time period, stops and sits down. Log the data during this run. Export logging results to MatLab, Python or your other favorite graph visualization tool, plot various variables that are available and mark the phases of the experiment on these plots manually.

Laboratory Procedures

Please read our Lab Rules and Guidelines page to learn what will be expected of your laboratory work this semester, rules and regulations for using the robot, how to submit your work, and how you will be graded.

Prelab

As you've probably noticed, the ESE313 Wiki is a large part of the course that you will be using to review and submit assignments and readings. Create an account using the instructions below, then follow our guided tour of the wiki.

  1. Read Account Setup and follow the instructions to create your own user profile. You must have your own profile to edit pages in the wiki.
  2. Return to the Home page by clicking this link or using the Navigation bar at the top of the page.
    • The Home page contains announcements, the agenda, and a wiki guide
    • Course announcements, due dates, and useful links will be put in the Announcements section as needed
    • The agenda is a summary of the class Calendar. This display should show all upcoming lecture topics and due dates.
  3. Navigate over to Lecture Notes
    • Downloadable lecture slides in either PDF or PPT form will be available on this page throughout the semester
    • If any errors are found on the slides, they will be corrected and posted here
  4. Look at the Communications section
    • Communications assignments will be available here in both Wiki and PDF form
    • PDFs will be handed out in class, but Wiki articles may be updated to have new information, guidance, or links
    • Note that all due dates are shown here as well
  5. Next we go over to the Labs
    • This page shows each lab, its Wiki article link, a brief description, and a list of all associated due dates
    • While labs are posted on the Wiki, reports and prelabs are turned in via Blackboard (unless otherwise noted)
  6. The Coursepack page is currently under construction. Hopefully we'll have more details on this soon.
  7. Team Pages is under construction as well, but will be used more in the second half of the semester when the focus is on group projects
  8. The class Calendar shows what lectures are when, all due dates, etc. It will be updated to reflect any changes discussed in class or via e-mail, so check it frequently.
  9. The Help section of the Wiki will probably be used frequently throughout the semester
    • Major help topics are presented on the main page, and we will be using the Junior Help section extensively in this lab
    • Read Wiki Syntax to complete the following exercise:

Prelab Assignment

Most prelabs will be turned in via Blackboard, but for this first one we will make a simple Wiki page to demonstrate Wiki basics. We encourage you to start this (and all) prelab early so that you can e-mail the TA if anything is keeping you from completion.

  1. Make a new wiki page titled "<yourname>: Prelab 0" of course substituting your name for <yourname>
  2. Add headings of various sizes
  3. Add one list (either bulleted or numbered)
  4. Add a link to your User page (internal link)
  5. Make a link to any external website (external link) and give it text (not just a numbered arrow)
  6. You've finished your page! Now we'll submit it.
    1. Navigate to your User page (you can use the link at the very top of the screen)
    2. Edit your User page
    3. Within the template include, add the line |prelab0=
    4. Follow this with a link to the page you just created, so now the last line within the include looks like
          |prelab0=[[[<yourname>: Prelab 0]]]

This is how we will submit wiki assignments throughout the semester. You will make a link like this one on your user page to communicate that you have completed the assignment.

Introduction to Linux

Unlike previous years, this year we encourage you to use your own computer as Operator Control Unit (OCU) thanks to the Dynamism robot libraries. The Linux distribution installed on Junior platform is Ubuntu. Since it is available for free, we highly recommend you to install a Linux distribution onto your computer in case it is a PC. Dynamism is fully compatible with Mac OS X, and as your TA, I will be using it. Windows via Cygwin is still an option but many packages we use for visualization and joystick control are hard to install, so we don't recommend this.

For more information about necessary packages for installations in various operating systems, refer to Junior OCU Setup.

Running Junior

Communication with the Robot and Data Logging

For this experiment, we will run a python script at the OCU side and a logger at the robot side.

Communication with the Robot

Task 1: Use the lab0_locomotion.py to connect to the the robot via Dynamism interface, let the robot calibrate, stand up, walk for around five seconds and sit down.

Links to applicable Help sections:

Data Logging

Task2: Perform Task 1 once more where, this time, also activate data logging by using lab0_logger.py and get some results. Plot the results by using your favorite graph visualization tool. Label different phases of the experiment manually on these plots. Can you observe any relation between voltage and current variations and leg positions?

Links to applicable Help sections:

Deliverables

Prelab

To be completed and posted to the Wiki by class on Thursday, 1/20.

Demonstration

Show the instructor that your group can run Junior with lab0_locomotion.py and retrieve logged data via lab0_logger.py by Thursday, 1/27

Report

After completing Tasks 1, and 2, write a report summarizing your procedure and results. The goal of your report is to inform the reader of what you did and convince them of any conclusions you have made. In this report, be sure to:

  • Write an introduction to bring the reader into the report.
  • Discuss your procedure: what data you took, why, and how?
  • Discuss your conclusions:
    • In this experiment we logged hip position and target hip position. What is the difference between these two sets of data? What does each represent? Do your results make sense?
    • We also logged leg voltage and current measurements. What can you say about hip positions and these two measurement sets? Again, do your results make sense?
    • Can you manually partition logging results based on various phases of the run? Is it possible to do this in an automated fashion?
  • Write a conclusion to wrap up your ideas and present your results one last time.

To be submitted via Blackboard by Thursday, 1/27