Fejemis ROS2 Software: Difference between revisions

From Rsewiki
No edit summary
No edit summary
Line 52: Line 52:
* Enable NTP or systemd‑timesyncd on all Pis so timestamps on messages line up for logging and perception.
* Enable NTP or systemd‑timesyncd on all Pis so timestamps on messages line up for logging and perception.


6. Verify topics
=== Convenience commands ===
* Use `ros2 topic list` and `ros2 topic echo` from the primary Pi to confirm the camera and sensor topics are visible.
These helper commands make working with a two‑Pi setup easier.


* `fejemis launch_aux` — start a launch file on an auxiliary Pi from the primary Pi. This is commonly used to start camera or sensor nodes remotely. Example:
```bash
fejemis launch_aux fejemis robot.launch.py
```
* `fejemis sync_clocks` — synchronise system clocks across Pis (uses SSH and sudo on targets). Run this before recording or starting perception stacks so timestamps align. Example:
```bash
fejemis sync_clocks
```
== Network Configuration ==
== Network Configuration ==


<!-- end -->
<!-- end -->

Revision as of 14:24, 27 May 2026

Fejemis Software Overview

The Fejemis software is split into multiple components. The full ROS2 workspace and related repositories are available on GitHub: https://github.com/Melvin-Angel/Fejemis_Workspace_2026.git

Introduction

This documentation summarises the main software components used on the robot and explains how the system can be distributed across multiple Raspberry Pis (Multi‑Pi setup).

The two primary concerns are:

  • Hardware bridge and low-level microcontroller integration (the Fejemis bridge).
  • The ROS 2 software stack for mapping, perception, and high-level behaviours (the Fejemis ROS2 workspace).

Fejemis Bridge

Fejemis Description

Fejemis Sim

Fejemis Maploc

Fejemis Vision

Multi pi setup

This system supports a multi‑Pi arrangement where some hardware (for example, a RealSense camera or other sensors) runs on an auxiliary Raspberry Pi while the main robot and ROS 2 stack run on the primary Pi.

Recommended minimal steps for a Multi‑Pi setup:

1. Network and host setup

  • Ensure all Pis are on the same local network (switch, VLAN or Wi‑Fi SSID) and can reach each other via IP.
  • Prefer DHCP reservations or static IPs for each Pi to simplify configuration.

2. SSH and automation

  • Install SSH keys on each Pi so you can run remote commands and automation without passwords.

3. Clone the workspace and install dependencies On each Pi that needs software from the repository, clone the workspace and run the provided install scripts:

```bash git clone https://github.com/Melvin-Angel/Fejemis_Workspace_2026.git cd Fejemis_Workspace_2026 ./install.sh source ./activate.sh ```

4. Camera / sensor hosts

  • If the camera is on an auxiliary Pi, run the camera driver or streaming node there and expose the expected ROS topics across the network.
  • In this workspace the mapping components expect RealSense RGB‑D topics; when the camera is on an aux Pi you can launch the camera remotely. Example (run on the primary Pi to start the aux launch):

```bash fejemis launch_aux fejemis_maploc realsense.launch.py ```

5. Time sync and reliability

  • Enable NTP or systemd‑timesyncd on all Pis so timestamps on messages line up for logging and perception.

Convenience commands

These helper commands make working with a two‑Pi setup easier.

  • `fejemis launch_aux` — start a launch file on an auxiliary Pi from the primary Pi. This is commonly used to start camera or sensor nodes remotely. Example:

```bash fejemis launch_aux fejemis robot.launch.py ```

  • `fejemis sync_clocks` — synchronise system clocks across Pis (uses SSH and sudo on targets). Run this before recording or starting perception stacks so timestamps align. Example:

```bash fejemis sync_clocks ```

Network Configuration