<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Teaching ROS efficiently to mixed skill classes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Staehle Benjamin</string-name>
          <email>staehle@hs-weingarten.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ertel Wolfgang</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Artificial Intelligence University of Applied Sciences Ravensburg-Weingarten</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>In this work in progress report, we illustrate how to efficiently teach a mixed skill class the foundations of ROS within one semester in a single course. The goal is to equip students with the basic knowledge and tools to join our Robocup@Home team, start a scientific project or thesis. To achieve this in a mixed skill setting we combine blended learning with gamification elements supported by a code versioning system. We believe that this approach is not only the most efficient way to teach this kind of matter but also bridges the gap between academic and industry working concepts.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Developing Service Robots for over a decade, we experienced how frustrating it
can be for students having to deal with multiple barriers before being able to
start working with their actual field of interest. Many students came to our lab
with big visions but then had to spend months understanding the depending
software frameworks and setting up their development environment. We noticed
that such tasks can consume a lot of the initial motivation which can even
lead to a dropout. This also reflects back on researchers and employees of the
university as they have to invest a serious amount of time explaining and assisting
novice students. In order to leverage this problem and to increase efficiency
inside our institute, we decided to start a practical oriented course to create a
balanced foundation for students interested in robotics. This also gives us the
opportunity to include students from non-pure computer-science fields such as
electrical engineering and mechatronics whose curriculum usually covers merely
basic education in complex software development.
1.1</p>
      <p>Robotic Frameworks
[HC11] describe the most relevant toolkits and frameworks for robotic
development. The diversity in the late 2000s made it difficult to build applications upon
other research group’s software. In many cases, this led to the development of
isolated solutions resulting in redundant applications even among different
departments inside the same university. Established frameworks like ROS1, their
vivid communities and broad support of robotic hardware have improved the
collaboration and communication among robotic research groups drastically over
the past years. Yet the complexity of hardware and software on robot systems
remains extraordinary challenging but the foundation laid down by ROS makes
entering the world of robotics much easier and therefore interesting for teaching.
1.2</p>
      <sec id="sec-1-1">
        <title>Teaching Concepts</title>
        <p>The vision of this work is motivating students to transform their already
acquired, but mostly theoretical, knowledge into solutions for real-world problems.
Service Robots are an ideal platform for this transition as they incorporate
aspects of various study fields and therefore can be used to address a broad
audience. Already evolved courses like [Yim+08], [CWC13] and [Cap13] state
that the most effective and fun way to acquire this kind of knowledge is a
practical approach that involves interaction and experimenting along learning the
theoretical concepts. Classic lectures, that separate theory from practical
exercises, cannot meet this requirement as each student has to pass an individual
point of understanding which cannot be forced from outside. This requires an
asynchronous teaching method as proposed in [Kel+06]. Methods like flipped
classroom likewise demand that the student can freely choose when to learn and
at which speed. As the name indicates the method flips the lecture to the
students free time and homework or exercises to the original class session. Still, the
method emphasizes a strict separation between teaching and exercising [Chr16].
Blended learning, however, transforms lecture times into hybrid teach and
exercise sessions in which students can choose how to approach their current problems
while benefiting from group discussions in a workshop-like atmosphere. In this
approach, the teacher is no longer the singular source of knowledge but a mentor
to whom the students can directly address specific questions. A very important
component in this rather loose way of teaching is the strict definition of
deadlines and a consequent reaction if they are not respected. Another way to achieve
this is the usage of gamification elements such as live exercise rankings during
the sessions to trigger a competitive motivation among the students. Also, the
course can be separated into major parts that act similar to an achieved goal
in a computer game. In this work, we combine the mentioned concepts into a
practically oriented course which we describe in the following section.
2
2.1</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Method</title>
      <p>2 https://github.com
3 https://bitbucket.org</p>
      <sec id="sec-2-1">
        <title>Code Versioning and Issue Based Working</title>
        <p>Being familiar with a code versioning system such as git and platforms that are
building functions around it is an essential skill for any software developer these
days. Popular platforms for code versioning are github2, bitbucket3 or
sourceforge4. We still experience that sometimes even high semester students are not
familiar with these tools. Our approach is centered around a university-hosted
version of gitlab5 but there are no functions used that an online platform such
as github could not easily replace. A core functionality of such platforms aside
from supporting the development process are issue trackers. In general, these
mechanisms are used for bug reports or feature requests. They can have rich
descriptions including code samples or images and have a comment function to
discuss specific topics in the scope of the current issue. We use these mechanisms
to distribute course materials and exercises. Additionally, it is an effective
communication channel to our students as they can ask questions individually and
in relation to their current exercise. Each repository also contains an own wiki
area which the students can use for personal notes. The built-in CI6 pipelines,
similar to the popular jenkins7 and travis8 used in many open-source projects,
evaluate the work in progress of the students at each commit and provide instant
feedback that is visualized in the web frontend as shown in Fig. 1a.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Course Overview</title>
        <p>Our prototype lecture Introduction to Autonomous Mobile Robots is a 5 ECTS9
course with two lab sessions per week. It is separated into four tiers with a rising
degree of difficulty. Also, it is a mixed skill course that masters and bachelor
students of different study fields can attend in parallel. The exercises and course
materials cover the same topics but masters have more challenging exercises and
also have to dig deeper into the theoretical background than bachelors. Each
session is started with a 10min wrap up of the current progress stating how
many students have already reached which level and how the overhaul class
performs. All statistics are anonymized to protect the student’s privacy.
Tier1. The entry part of the course aims to balance the basic skills among the
participants necessary to work in a robotic environment. This includes an
introduction to the Linux shell, git code versioning and Python. For this purpose we
use the well-known, free online learning platform codecademy10 which provides
comprehensible tutorials at a beginner level and live code evaluation. In parallel,
the students get an introduction to our gitlab platform and their tier1
repository. Here they have to solve additional exercises covering relevant topics from
codeacademy and with extra tips and tricks for daily use which are not part of
the online-tutorials. Students that claim to have sufficient skills are allowed to
skip the codecademy courses and only solve the gitlab exercises but in return
have to work more autonomously than other students in this tier.
4 https://sourceforge.net
5 https://about.gitlab.com
6 Continous Integration
7 https://jenkins.io
8 https://travis-ci.org/
9 European Credit Transfer and Accumulation System for students
10 https://www.codecademy.com
43
43
Tier2. The next level consists of plain python exercises and explains the
fundamentals of a robotic system such as actuators and sensors. This tier’s primary
goal is to familiarize students with the gitlab platform and python. All course
materials and exercises are organized inside the gitlab platform from this point
on. The students have to do basic calculations on a given set of simulated laser
data as seen in Fig. 1b and are introduced to creating own tests for the CI engine.
Tier3. In this chapter, the students learn about the most important ROS
concepts such as topics, services, actions and helper tools. Beforehand the students
are introduced to a virtualized development environment. We provide
virtualbox11, docker12 and kvm13 images from which the students can choose based
on their personal preference. All exercises can be conducted inside this
environment using gazebo14, a popular simulation framework. In this environment, the
students only have to do minor adjustments such as generating ssh keys to start
working. The degree of difficulty rises constantly while progressing to encourage
the students to discuss the materials rather than just solving the tasks. This
tier ends with a mini project where the students have to navigate a turtlebot
robot through a gap in a wall. The project is evaluated individually and acts as
a midterm exam.</p>
        <p>Tier4. The course ends with the so-called maze challenge in which the students
get a laser-equipped turtlebot and a training maze which they can use to test
their algorithms. Before, we reflect common mistakes that occurred during the
tier3 mini project and point out what could be improved. After this, the students
get a clean repository which they have to organize and document on their own.
The final grading does not only depend on the performance of their robot in the
challenge, but also on the quality of code and development process (e.g. using
issues, commit messages, tests). The best students of this course are given the
opportunity to become a member of the universities RoboCup@Home15 Team
alongside with project and thesis offerings.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Comparison to Online Platforms</title>
        <p>Flipped and blended learning approaches strongly depend on online teaching
resources and exercise frameworks. Before starting to run an own infrastructure
which has to be set up and maintained it is advisable to check the currently
available online platforms. When we started the course 2016 we enrolled our
students at the robotIgniteAcademy16 offered by the company The Construct.
11 https://www.virtualbox.org
12 https://www.docker.com
13 https://www.linux-kvm.org
14 http://gazebosim.org
15 http://www.robocupathome.org
16 http://www.theconstructsim.com
44
44
(a)</p>
        <p>(b)
Starting from scratch this is one of the most comfortable ways to set up a class.
Besides the great tutorials, the web-based coding and simulation environment
is the key benefit of this approach, as students only need a web browser to
work. Nevertheless, we decided to run our own setup in the end due to flexibility
and cost reduction reasons. Also, we experienced connection issues from time to
time and other small problems that tarnished the experience for our students.
In Table 1 we compare the two approaches. The results only reflect our personal
experience and may depend on external factors, such as connection speed, which
the provider cannot influence.
At the time of writing this work is still in progress and will be evaluated at the
end of 2018. Nevertheless, we can already state that those students which have
completed this course during the last semesters were able to achieve a
homogeneous skill level in the context of ROS basics regardless of their background. This
is also reflected by the composition of our current RoboCup@Home Team where
the amount of mechatronic and computer-science students is equally distributed.
Currently, we are investigating evaluation instruments such as [CWC13] to
document and compare the learning quality among multiple classes and study fields.
Also, we are continuing to improve the instant feedback mechanisms and want
to apply the proposed methods in other lectures to continuously enhance the
learning quality at our university. Further, we plan to establish follow up classes
that are focused on specialized topics of robotics such as manipulation, object
recognition or navigation.
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Acknowledgements</title>
      <p>The Authors would like to thank Martin Preussentanz, Jochen Weissenrieder,
Joerg Wendorff, Benjamin Kathan, Christopher Bonenberger and Markus
Schneider for the inspiring discussions. In addition, we want to thank Sashidhar Reddy
Kanuboddi, Simon Bucher and Igor Chernov for supporting the lecture as tutors
and coworkers. Special thanks go out to Steffen Pfiffner for helping to run this
course in the start phase. This work was conducted within a practically oriented
curriculum development program named WILLE17 founded by the MWK18 State
Department of Baden-Wuerttemberg Germany.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [Cap13]
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Cappelleri</surname>
          </string-name>
          .
          <article-title>“A Novel Lab and Project-Based Learning Introductory Robotics Course”</article-title>
          .
          <source>In: IEEE Transactions on Education 56.1</source>
          (
          <issue>2013</issue>
          ), pp.
          <fpage>73</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [CWC13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Correll</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wing</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Coleman</surname>
          </string-name>
          . “
          <article-title>A one-year introductory robotics curriculum for computer science upperclassmen”</article-title>
          .
          <source>In: IEEE Transactions on Education 56.1</source>
          (
          <issue>2013</issue>
          ), pp.
          <fpage>54</fpage>
          -
          <lpage>60</lpage>
          . issn:
          <volume>00189359</volume>
          . doi:
          <volume>10</volume>
          .1109/TE.
          <year>2012</year>
          .
          <volume>2220774</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [HC11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Harris</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Conrad</surname>
          </string-name>
          . “
          <article-title>Survey of popular robotics simulators, frameworks, and toolkits”</article-title>
          .
          <source>In: Conference Proceedings - IEEE SOUTHEASTCON. IEEE</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>243</fpage>
          -
          <lpage>249</lpage>
          . isbn:
          <volume>9781612847399</volume>
          . doi:
          <volume>10</volume>
          . 1109 / SECON .
          <year>2011</year>
          .
          <volume>5752942</volume>
          . arXiv:
          <volume>0412052</volume>
          [cs]. url: http://ieeexplore.ieee.org/document/5752942/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [Kel+06]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Kelly</surname>
          </string-name>
          et al. “
          <article-title>A non-prescriptive approach to teaching programming”</article-title>
          .
          <source>In: ACM SIGCSE Bulletin 38.3</source>
          (
          <issue>2006</issue>
          ), pp.
          <fpage>217</fpage>
          -
          <lpage>221</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [Yim+08]
          <string-name>
            <given-names>M.</given-names>
            <surname>Yim</surname>
          </string-name>
          et al. “
          <article-title>A practice-integrated undergraduate curriculum in mechanical engineering”</article-title>
          .
          <source>In: ASEE Annual Conference and Exposition, Conference Proceedings</source>
          (
          <year>2008</year>
          ). issn:
          <volume>21535965</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [Chr16]
          <string-name>
            <given-names>Christopher</given-names>
            <surname>Pappas</surname>
          </string-name>
          .
          <source>Blended Learning vs Flipped Learning: Can You Tell The Difference? - eLearning Industry</source>
          .
          <year>2016</year>
          . url: https: / / elearningindustry . com / blended - learning
          <string-name>
            <surname>-</surname>
          </string-name>
          vs
          <string-name>
            <surname>-</surname>
          </string-name>
          flipped
          <article-title>- learning-can-tell-difference (visited on 02/19/</article-title>
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>17 Wissenschaft lernen und lehren, trans: learning and teaching science</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          18 Ministerium fuer Wissenschaft,
          <article-title>Forschung und Kunst, trans: state department for science, research</article-title>
          and art
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>