Mini-course in programming and simulating robots
- Course description
- Homebrew text and notes
- Video lectures
- Final project
- Academic integrity policy
- Access and accommodations
- Sexual misconduct/sexual harassment reporting
- University sanctioned activities
- Center for Learning, Writing, and Advising
- COVID-19 Policies
This is a mini-course introduction to programming and simulating robots. The programming framework is a Python client library of the open-source Robot Operating System (ROS). Some familiarity with programming is required, but experience with Python or ROS is not.
Morgan Quigley, Brian Gerkey, William Smart. Programming Robots with ROS: A Practical Introduction to the Robot Operating System. O’Reilly Media, 2015. (Required. Henceforth: Qu)
Homebrew text and notes
A partial texts (with fill-ins) I’m writing will be posted on the _Robotics: programming and simulation (henceforth: Ro) page.
Everyone is required to join the messaging service called “Slack.” We’ll use it to communicate with each other during the semester. The Slack team you need to join is called drrico. That’s a signup link. Be sure to join the channel
Most lectures will be available online on my YouTube channel. I recommend subscribing and familiarizing yourself with the playlist for this course.
The following schedule is tentative. Bonus lectures denoted “+” are optional, but so is this class.
05.00 Introducing ROS
05.01 ROS methodology
Resource 1.1 Setting up VirtualBox+Ubuntu
Resource 1.2 Setting up ROS dev env: ROS
Resource 1.3 Setting up a Python ROS dev. env.
|1||Qu Ch 1|
06.01 ROS graphs
06.02 ROS packages
06.03 Running and launching ROS nodes
06.04 Coordinate transformations and tf2
|2||Qu Ch 2||Ass. 1|
Resources 2+3 Textbook code and git
07.01 Publishing to ROS topics
07.02 Subscribing to ROS topics
07.03 Custom ROS messages
07.04 Other ROS topics considerations
|3||Qu Ch 3||Ass. 2|
08.01 ROS services introduction
08.02 Serving and calling a ROS service
|4||Qu Chs 4, 5||Ass. 3|
09.01 ROS actions introduction
09.02 Serving and calling a ROS action
|5||Qu Ch 6||Ass. 4|
|6||Qu Chs 7||Ass. 5|
|final project due||7|
Assignments are due Monday of the week they appear in the schedule.
- Do the assigned reading.
- Set up your development environment.
- Do the assigned reading.
- Do Ro Exercise 06.1.
- Do the tutorial: Navigating the ROS Filesystem.
- Do the tutorial: Understanding ROS Nodes
- Do the assigned reading.
- Do the tutorial: Understanding ROS Topics
- Do the tutorial: Writing a Simple Publisher and Subscriber.
- Do the assigned reading.
- Do the tutorial: Using rosed to edit files in ROS
- Do the tutorial: Creating a ROS msg and srv
- Do the tutorial: Writing a Simple Service and Client
- Do the tutorial: Examining the Simple Service and Client
The final project will be due at the end (midnight) of Thursday of the final exam week.
The project is to write your own ROS packages covered in Ro. If you’ve been following along, making your own
my_actions, you only have a few things left to do!
- The submission must be a GitHub repository.
- The repository must include distributable ROS packages
my_actions, compatible with the class development environment.
- You must write a launch file for each package. (We covered this in general, but not for each package.)
- The repository must include a
README.mdfile. Use the About READMEs and the Basic writing and formatting syntax GitHub articles to guide you. Your
README.mdshould include all the elements in this sample
READMEshould include clear instructions for launching each of your packages and what it should do.
- The code must be well-organized and include documentation in the form of comments.
- Make sure you edit your
package.xmlto include your information.
- For obvious reasons, your packages cannot be named
rico_whatever. Definitely do not simply put my code in your repository.
If you do not want your repository to be public, create a private repository and add me (username:
ricopicone) as a collaborator on the repository.
Academic integrity policy
Cheating or plagiarism of any kind is not tolerated and will result in a failing grade (“F”) in the course. I take this very seriously. Engineering is an academic and professional discipline that requires integrity. I expect students to consider their integrity of conduct to be their highest consideration with regard to the course material.
Cheating is academic dishonesty as well as unprofessional for prospective teachers. Do not copy other students' assignments, have someone else write your papers or plagiarize published or unpublished materials, or submit work previously graded by other instructors. See Saint Martin's University Student Handbook. Students will be graded not only on their academic success, but on professional conduct as well. Students who fail to show professionalism in their academic or personal conduct (e.g. constant tardiness, excessive absences, and/or other unprofessional behavior) may earn a lower letter grade than the total of semester accumulated points, or may even earn a failing grade.
Access and accommodations
Your experience in this class is important to me. If you have already established accommodations with Disability Support Services for Students (DSS), please communicate your approved accommodations to me at your earliest convenience so we can discuss your needs in this course.
If you have not yet established services through DSS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DSS at 360-438-4580 or firstname.lastname@example.org or email@example.com DSS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions. Reasonable accommodations are established through an interactive process between you, your instructor(s) and DSS. It is the policy and practice of the Saint Martin’s University to create inclusive and accessible learning environments consistent with federal and state law.
Sexual misconduct/sexual harassment reporting
Saint Martin’s University is committed to providing an environment free from sex discrimination, including sexual harassment and sexual violence. There are Title IX/sexual harassment posters around campus that include the contact information for confidential reporting and formal reporting. Confidential reporting is where you can talk about incidents of sexual harassment and gender-based crimes including sexual assault, stalking, and domestic/relationship violence. This confidential resource can help you without having to report your situation to the formal reporting process through unless you request that they make a report. Additional information and or reports can be made to the Title IX Team here on campus through the Dean of Students – Ms. Melanie Richardson, Associate VP of Human Resources – Ms. Cynthia Johnson, Public Safety – Mr. Will Stakelin, or the Provost/Vice President of Academic Affairs, Dr. Kate Boyle. Please be aware that in compliance with Title IX and under the Saint Martin’s University policies, educators must report incidents of sexual harassment and gender-based crimes including sexual assault, stalking, and domestic/relationship violence. If you disclose any of these situations in class, on papers, or to me personally, I am required to report it.
University sanctioned activities
If a student is absent from class due to university sanctioned activities, such as sports, it is the student's responsibility to request that the absence be excused, otherwise, the absence will be recorded as unexcused. Absent students are responsible for catching up with the class, and if any assignments are due on the day of the absence, it is the student's responsibility to turn in the assignments on time (prior to class). Assignments may be submitted as an attachment to email: firstname.lastname@example.org. Please request the policy handout, “Requirement for receiving Excused Absence” on the first day of the class if you think this policy might apply to you.
Center for Learning, Writing, and Advising
The Center for Student Learning, Writing and Advising is an integrated learning assistance program that offers services for students at all levels of achievement in pursuit of intellectual growth and academic excellence! The Center offers peer tutoring, study support, first year/early major advising, and writing support. Please investigate ways in which to support your learning.
- Students and faculty perform self-check for COVID-19 symptoms before coming to class Students and faculty should perform a self-check each day before coming to campus, and stay away from campus if they are ill. Students who are ill should inform faculty. Faculty who are ill should arrange for a communication plan with students if they need to miss class. Faculty are encouraged to give a gentle reminder at the beginning of each face-to-face class that students experiencing symptoms listed on the checklist should elect to remove themselves from campus. Anyone diagnosed with COVID-19, or living with/caring for someone diagnosed with COVID-19, should notify the Office of Public Safety.
- Support for students who are unable to attend classes for any reason due to COVID-19 (including illness, travel restrictions, and quarantine): Faculty should attempt to make reasonable accommodations for students who are unable to attend classes or complete coursework due to the pandemic. Students adversely impacted by COVID-19 should notify their faculty and academic advisor to arrange for accommodations as soon as they become aware that they will be needed. Another alternative is to use the Saints Care form on the SMU website.
- Attendance: This attendance policy consists of two elements. One relates to support of contact tracing efforts throughout this period of COVID-19 potential threats. The second relates to the use of attendance as a course grading element.
- For tracking purposes, if needed, in all face-to-face courses faculty should maintain a record of attendance throughout the semester. The attendance needs to be taken by voice call or faculty recognition of students attending each individual session. Records should be kept via the Self-Service attendance feature or some other record the instructor maintains and can produce on demand should an inquiry be necessary for tracing purposes. Attendance should not be taken by passing around an attendance sheet or having students sign in as they enter the classroom as this handling could compromise attendees.
- In an effort to support students who are considered high-risk or vulnerable as defined by public health officials and/or are unable to attend due to concerns about illness, campus safety, or need to care for familial obligations, attendance should not be used as a grade element during the Fall or any subsequent semesters affected by continuing COVID-19 requirements.
- Face Covering: The university will follow Washington state policies regarding face mask exemptions and requirements: https://coronavirus.wa.gov/information-for/you-and-your-family/face-masks-or-cloth-face-covering Employees, students, and visitors must wear fabric or disposable surgical-style masks that cover their nose and mouth when they are inside university buildings, and when they are outdoors in situations where social distancing of at least six feet is not possible. In some cases, plastic that shields nose and mouth can be substituted for a fabric mask. Face masks must be worn at all times when inside any campus building, except when alone in an enclosed room, such as an office or enclosed study room, or while participating in activities in which a face mask or shield cannot practically be worn, such as when eating and drinking or playing a musical instrument or singing, as part of work. Community members should make every effort to eat and drink only when appropriately distanced from others, or in designated areas. A limited number of classrooms that contain plexiglass barriers in the podium area will allow the instructor to remove their mask, as long as they remain behind the plexiglass barrier. Students must wear masks in classrooms at all times. Prior to stepping beyond the barrier the instructor must re-mask. It is the responsibility of all of the campus community to address students and others on campus who are not following the mandate for face masks. Any student, instructor or visitor who is not wearing a mask will be directed to: (1) the Office of Public Safety or another designated location for a disposable mask; or (2) Public Safety, Disability and Support Services (DSS), or Human Resources to clarify the guidelines and need for compliance. All exemptions must be cleared in advance, similar to other classroom accommodations, with Disability and Support Services Office, or the Human Resources Office. Designated locations for masks: • Public Safety (2nd Floor Old Main) • JBLM: Night Monitor in Stone Education Center Kiosk • Looking into additional locations (perhaps library and rec center)
- Social Distancing in the Classroom: Faculty, students, and guests must maintain minimum physical distancing whenever possible of six feet between all on-campus personnel, including with visitors, and where physical distancing cannot be maintained, implement administrative or engineering controls to minimize exposure.
- Classroom arrangement: Desks and tables will be placed in a fixed manner to allow for a minimum of six feet between students seated in their desks, and from the faculty leading the class. Desks may not be re-arranged or shifted. When directing students into smaller discussion or work groups, faculty need to ensure that students maintain the six-foot physical distancing standard. Students also need to continue to use PPE (cloth facial coverings or face shields) during these activities. Recognizing that use of small group activities while enforcing physical distancing may have an impact on classroom volume, faculty are encouraged to take this into consideration when planning classroom activities.
- Passing out/collecting paper materials: Faculty should avoid distributing and collecting “handouts” or printed materials by hand. Ideally, the materials are uploaded to the class Moodle site before class. Some classes may need to have students bring digital devices to class. Exceptions will be made for tests that cannot be delivered electronically. When tests are hand-administered and hand-collected, faculty and students should take precautions to reduce the risk of transmission. For example, faculty may wish to use disposable gloves while handing out and collecting tests. Students should not pass tests to other students. Students and faculty may wish to use hand sanitizer before and after handling tests.
- Cleaning: Classrooms and laboratories will be cleaned and disinfected regularly and thoroughly by custodial staff. However, because many people will be using these spaces throughout the day, students and faculty should protect themselves by disinfecting the area and objects they will come into contact with. Students and faculty should also be considerate of others and clean up and disinfect their work area as much as possible before they leave the room. a. Upon entry into the classroom, faculty and students should disinfect surfaces in their immediate area where they will be sitting: chair, stool, desk, table, computer workstation, etc., using the appropriate cleaning products available in the classroom as follows: i. Copy machine/computer screen/smartboards: screen cleaning solution ii. Other surfaces, including keyboard/mouse: disposable wipes (e.g., Clorox wipes); iii. Used wipes should go in the garbage receptacles provided in the classroom b. Special instructions for laboratories: department-specific laboratory cleaning and disinfecting protocols must be followed. In addition, students and faculty should disinfect their work area upon arrival, as indicated above c. Before leaving the classroom, faculty should disinfect the whiteboard, computer/electronic equipment, and other surfaces they have touched (faculty will be provided with their own whiteboard markers and erasers material) d. Sanitizing stations will be available at building entrances and exits, as well as other designated areas. Students and faculty are encouraged to wash hands frequently and/or carry their own hand sanitizer. Note: each classroom will have a cleaning/disinfecting kit with appropriate solutions and applicators (spray bottle, sanitizing wipes, towels, hand sanitizer). Faculty and students are encouraged to also bring their own hand sanitizer and sanitizing wipes.
- Food and beverages: Because consuming food and beverages require removal of the mask, no food or beverages can be consumed in the class. If students or faculty must drink water or eat during class, they should step outside the classroom. Faculty may wish to consider giving refreshment breaks during courses that meet longer than 50 minutes.
- Storage of personal items (jackets, bags, umbrellas, etc.): Items such as backpacks, bags, umbrellas, and articles of clothing, should be kept in areas close to their owner. Shared lockers or common storage areas should not be used since these areas could lessen social distancing. Spaces under student chairs or desks are the best places to store these types of items.
- Emergency drills and events (fire, active shooter, etc.): Continue training opportunities and exercises. The COVID-19 environment provides trainers a real-time opportunity for training students, faculty, and staff.
- Compliance: Compliance with these policies is covered by regulations stipulated in the university contract signed by students. Students who violate these regulations repeatedly or egregiously may be referred to the Dean of Students.