SOFTWARE ENGINEERING FOR ROBOTICS

  1. Course Description
    Successful software development depends on an in-depth understanding of how the phases and supporting activities of the software development life cycle work together. Each phase of the life cycle contributes to a reliable, maintainable product that satisfies user requirements. The application of good engineering practices throughout the cycle dramatically improves the likelihood of delivering a quality software project on time, in scope and within budget. While there are many rigorous methodologies, in fact most approaches and tools have a mixture of strengths and weaknesses. Traditional development approaches result in models that are incomplete and quickly become out-of-sync with the application source code. Many modeling approaches focus on describing software designs, rather than solving business problems. This course presents modern software engineering techniques and examines the software life-cycle, including software specification, design, implementation, testing and maintenance
  2. Course Objectives
    This course will help students achieve the following objectives: 1. Understand software processes. 2. Understand key concepts in requirements engineering, design engineering, quality assurance, risk control, and software project management. 3. Gain skills in eliciting and modeling software requirements, describing different elements of a requirements model using UML. 4. Gain skills in deriving software design and describing various design models using UML. 5. Develop a basic understanding of software testing strategies and preliminary skills in writing test cases. 6. Learn the essential elements of the robot operating system 7. Learn how to simulate a robotic environment with Gazebo 8. Discover how ROS provides a flexible and unified software environment for developing robots in a modular and reusable manner. 9. Learn how to manage existing ROS packages within a project and write your own ROS Nodes in C++.
  3. Teachnig Method
    I. Classroom Rules (1.1) Class begins promptly at the beginning of the class period. It is advisable that students be in their seats and ready to start participating in a class at that time. (1.2) When the student has a question or comment, s/he needs to raise her/his hand first as a courtesy to her/his classmates. Remember, questions are NOT an imposition – they are welcome. Asking questions will help the students to learn more, and questions also make the class more interesting. II. Tardiness/ Absences (2.1) I expect students' full attention for the entire class period. If the student knows that s/he will need to leave before the class is over, s/he has to inform me before the start of the class; also, s/he needs to try to sit as close to the door as possible so as not to disrupt others. Similarly, if the student arrives in class late, s/he needs to slip in as quietly as possible and take the first available seat s/he comes to. (2.2) If the student has an emergency or illness, s/he needs to contact me ahead of time to let me know that s/he will be absent, s/he also must provide formal documentation that supports her/his claims. If the student misses a class, it is s/he responsibility to contact me, outside of regular class time, to determine a plan to make up the missed work. III. Assignments & Quizzes (3.1) Students must complete and submit assignments/quizzes by the due date. Assignments/quizzes began in class and are completed at home, or home assignments/quizzes need to be submitted by students on the next class or given due date. (3.2) Failure to bring assignments/quizzes to class on the due date will result in a missing assignment grade. When the assignment is submitted late the following week, there will be a 5-point penalty deduction. (3.3) Assignments/quizzes not received by the second week past the due date will receive a grade of zero. No assignments will be accepted more than two weeks late. IV. Do Not Use Mobile Phones During Class!
  4. Textbook
  5. Assessment
  6. Requiments
  7. Practical application of the course
  8. Reference