Getting Started - lukasholtkamp/b.ob GitHub Wiki

Introduction

Bob, the Bertrandt office bot, is here to make your office life easier. Designed for seamless teamwork and automated tasks, Bob is your trusty office companion.

  • ROS (Robot Operating System) is the foundation of the project, playing a pivotal role in controlling robotic systems. It serves as the backbone, enabling efficient communication between project components and providing essential tools for task execution and sensor integration.

  • Bob operates within a Linux environment, specifically Ubuntu 22.4, chosen for its compatibility with the ROS distribution utilized in the project. This ensures reliability and seamless integration with various software and hardware configurations.

  • Git is employed in the project to track code changes, facilitating smooth collaboration among developers.

  • In this project, Visual Studio Code is used as the IDE. It simplifies coding, speeds up program development, and provides syntax highlighting. With its wide language and framework support, VS Code serves as an all-around solution for coding needs.

Before getting into the software details of Bob, you can explore the hardware components built into Bob by visiting this link: Hardware Components. Additionally, you can see how these components are wired together in the wiring diagram by clicking on this link: Wiring Diagram.

Setup and Tutorials

Linux

If you haven't worked with Linux before, this video provides a good overview: Linux Crash Course for Beginners

Git

Getting Started with Git

If you're new to Git, the first step is to install it on your Ubuntu system. Here's how to do it:

  1. Open a terminal window (Ctrl + Alt + T).
  2. Run the following command to update the package index:
sudo apt update

and then

sudo apt upgrade
  1. Once the update and the upgrade are complete, install Git by running:
sudo apt install git
  1. After the installation is finished, you can verify that Git was successfully installed by checking its version:
git --version

For a good introduction to Git, check out this helpful YouTube playlist: Git and GitHub Tutorial for Beginners.

Cloning the Repository

Cloning GitHub

To clone the GitHub repository in your own laptop, go to the project website, press the "Code" button, and copy the HTTPS link.
In the SSH terminal, type:

git clone <URL>
  • See all branches:
git branch -a
  • Switch branches:
git checkout <BRANCH-NAME>
  • Navigating Commit History:

We can use git log --oneline for a quick, simplified view of the commit history, which helps in easily scanning through commits.

For a visual representation of the commit history, we can use gitk --all& to see all branches in a graphical format while keeping the terminal available for other tasks. To use this feature, ensure that gitk is installed by running the following command in the terminal:

sudo apt-get update
sudo apt-get install gitk

VS Code

Installing VS Code on Ubuntu

To install Visual Studio Code on Ubuntu via the Ubuntu Software:

  1. Open the Ubuntu Software application from the applications menu.
  2. In the search bar, type "Visual Studio Code".
  3. Click on the "Visual Studio Code" entry from the search results.
  4. Click the "Install" button.
  5. Once the installation is complete, you can launch VS Code from the applications menu.

Necessary Extensions

To install extensions in VS Code:

  1. Open VS Code.
  2. Click on the Extensions icon in the Activity Bar on the side of the window or press Ctrl+Shift+X.
  3. In the Extensions view, type the name of the extension you want to install in the search bar.
  4. Click the "Install" button for the desired extension.

You will find a list of the most important extensions here.

In addition, you can download the following extensions:

  • C/C++ Extension Pack
  • Python Extension Pack
  • ROS Extension
  • Remote - SSH Extension

ROS2

ROS (Robot Operating System) is a framework that provides libraries and tools to help software developers create robot applications. It offers functionality such as hardware abstraction, device drivers, communication between processes, and package management. ROS is widely used in robotics research and industrial applications.

You can learn more about ROS and its applications from the following links:

In this project, we use ROS2, specifically the Humble distribution.

For a comprehensive understanding of ROS and how to install it, you can refer to this tutorial: ROS Tutorial Playlist. This tutorial covers ROS concepts and installation procedures.

Additionally, if you prefer learning ROS concepts in C++, you can watch this video: ROS Tutorial in C++.

After understanding the basics, you can explore more tutorials on topics like turtlesim, services, and clients in the ROS Documentation.

Fritzing

Fritzing is a free and easy-to-use tool for creating circuit diagrams, PCB layouts, and schematics.

Uses of Fritzing

  • Circuit Design: With Fritzing, designing electronic circuits is as simple as dragging and dropping components onto a virtual breadboard. This allows users to visualize connections and test configurations before building.

  • PCB Layout: Once a circuit is finalized, Fritzing helps convert it into a printed circuit board (PCB) layout. Users can arrange components, define traces, and generate ready-to-manufacture PCB designs.

  • Schematic Capture: Fritzing supports schematic capture, enabling users to create professional-looking schematics that document circuit connections and functionality.

How to Download Fritzing

To download Fritzing on Ubuntu, follow these steps:

  1. Open a terminal window (Ctrl + Alt + T).
  2. Update the package index by running:
sudo apt update
sudo apt upgrade
  1. Install Fritzing by running:
sudo apt-get install fritzing
  1. Once the installation is complete, you can launch Fritzing from the applications menu or by typing fritzing in the terminal.

Doxygen

Doxygen is a tool for generating documentation from source code, making it easier to understand and maintain projects.
To install Doxygen on Ubuntu, use:

sudo apt install doxygen
⚠️ **GitHub.com Fallback** ⚠️