Robot System Development Environment

In this lesson, we will understand the overview of elements used in robot system development environments.

Learning Objectives

By the end of this lesson, you will be able to:

  • Understand the essential tools and environments for robot development
  • Know the basic Linux commands needed for ROS 2 development
  • Understand version control with Git and GitHub
  • Recognize the role of containers (Docker) and remote access (SSH) in development

1. Linux Commands

Linux, an Operating System (OS), is commonly used in computer and robot research and development.
ROS 2 (hereinafter referred to as ROS) used in this lecture often runs on Linux (especially the Ubuntu distribution), so some knowledge of Linux is necessary to use ROS.
In particular, understanding Linux commands will help you understand ROS itself more smoothly.

Why Linux for Robotics?

  • Most robotics software and tools are developed for Linux
  • ROS 2 is primarily designed for Linux systems
  • Linux provides better control over system resources
  • Many robot hardware drivers are Linux-compatible
"""
Since we cannot fully explain Linux commands here, we will only provide examples of commands.
We recommend learning by using them yourself along with detailed sites.
"""

# Check the current directory (the directory you are currently in)
pwd

# Display files and directories in the directory
ls

# Change the current directory
cd <DirectoryName>

# Create a directory
mkdir <NewDirectoryName>

# Delete a directory
rmdir <DirectoryName>

# Create a file
touch <NewFileName>

# Delete a file
rm <FileName>

# Display the contents of a file
cat <FileName>

2. Editor

Tools used when writing code in programming languages are called editors.
Since they are tools for editing text files, you can do the same thing with Notepad, but editors have many convenient features that allow you to edit code more efficiently.

Why use a proper code editor?

  • Syntax highlighting makes code easier to read

  • Auto-completion speeds up coding

  • Integrated debugging tools

  • Extensions for ROS 2 and Python support

  • Git integration for version control

  • vscode

    • Visual Studio Code
    • Can add various features and is very convenient
    • Website

3. Git/GitHub

What is Git

Git is a distributed version control system that tracks changes in your code. It allows you to:

  • Keep a history of all changes to your files
  • Work on different features simultaneously (branches)
  • Revert to previous versions if something goes wrong
  • Collaborate with others without conflicts

Learning Resources:

What is GitHub

GitHub is a web-based platform that hosts Git repositories. It provides:

  • A service that allows you to share files managed with Git with others
  • Collaboration tools for team development
  • Issue tracking and project management
  • Code review capabilities

Common Uses:

  • Publishing your code for others to use
  • Using code published by others (open source)
  • Collaborating on projects with team members
  • Learning from other robotics projects

Resources:

4. Docker

What is Docker

Docker is a platform that uses containerization to isolate applications and their dependencies. It allows you to:

  • Package applications with all their dependencies
  • Run the same environment on different machines
  • Isolate different projects from each other
  • Ensure consistent development environments

Why use Docker in robotics?

  • Different projects may require different ROS versions

  • Avoid conflicts between system dependencies

  • Easy to share development environments

  • Reproducible builds and deployments

  • Detailed article

5. SSH

What is SSH

SSH (Secure Shell) is a protocol for securely accessing remote computers over a network. It allows you to:

  • Remotely operate a development PC from your own PC
  • Securely transfer files between computers
  • Run commands on remote systems
  • Access robots or servers from anywhere

Common Use Cases in Robotics:

  • Accessing a robot’s onboard computer

  • Working on a powerful development server

  • Controlling robots in remote locations

  • Collaborating on shared development machines

  • What is SSH

Exercises