User Tools

Site Tools


drone-technolgy:ss2024:about-duckietown

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
drone-technolgy:ss2024:about-duckietown [2024/05/10 09:14] – created harley.laradrone-technolgy:ss2024:about-duckietown [2024/05/27 11:22] (current) – [About Software] harley.lara
Line 19: Line 19:
  
 Interestingly the assembly instructions of the legacy version [[https://docs.duckietown.com/daffy/opmanual-duckiebot/assembly/db21m/index.html|DB21M]] is better documented, has better explained illustrations accompanied by text, warnings, notes and covers many of the points mentioned above, an example is step [[https://docs.duckietown.com/daffy/opmanual-duckiebot/assembly/db21m/index.html#step-13|13]]. Interestingly the assembly instructions of the legacy version [[https://docs.duckietown.com/daffy/opmanual-duckiebot/assembly/db21m/index.html|DB21M]] is better documented, has better explained illustrations accompanied by text, warnings, notes and covers many of the points mentioned above, an example is step [[https://docs.duckietown.com/daffy/opmanual-duckiebot/assembly/db21m/index.html#step-13|13]].
 +
 +===== About Software =====
 +
 +Every robot requires software and mastering software is difficult. This creates a huge barrier to entry for students interested in the field of robotics, as they are faced with the need to master these technologies in order to develop software:
 +  - **GNU/Linux knowledge, filesystem, peripherals management, networking**. The vast majority of robots out there use linux as the main operating system, therefore every student interested in robotics should master the basic concepts of GNU/Linux.
 +  - **Bash, terminal tools and bash scripting**. The most common way to interact with a robot as a software developer is through a terminal, so bash skills and terminal usage is a very useful skill.
 +  - **Programming skills, e.g. Python or C++**. Programming skills are crucial to be able to translate ideas into an executable set of instructions for the robot.
 +  - **Robot Operating System (ROS)**. The de facto standard middleware; it provides a set of tools and packages that allow the reuse of components in robotics.
 +  - **(extra) Docker**: Runtime to run containerized software.
 +
 +Requiring students to learn that stack of software tools in one semester in a autonomous robotics course only causes them to lose focus, because instead of concentrating on concepts, implementation and algorithms for autonomous systems students have to invest time in acquiring the necessary knowledge (if they don't have it) in order to gain the skills that will then allow them to perform the implementations and assignments, for example the student may have never used GNU/Linux and now they have to become familiar with it.
 +
 +The problem of this monumental barrier to entry, is the one that many companies with an educational focus are trying to address, among them of course, duckietown (more about this later); where they provide a "ready-to-use" environment so that the learner can concentrate on the concepts/algorithms and not on the whole stack of software and setups that make it possible to run. As an example (I have to admit that the example is a bit of an exaggeration, but it's just to make the point): No "conventional" computer user studies the Linux Kernel to be able to use the operating system, because __the right level of abstraction is also highly appreciated, and sometimes we just need things to "just work"__. 
 +
 +With that preamble the following is a set of good things, and some things we consider not so good about the Duckietown software stack.
 +
 +**Software on students' laptops:** TBA
 +
 +**Software on the robot:** TBA
 +
  
drone-technolgy/ss2024/about-duckietown.1715325292.txt.gz · Last modified: 2024/05/10 09:14 by harley.lara