Fejemis ROS2 Software: Difference between revisions
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. | ||
=== 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 == | == 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 ```