Electronics: Difference between revisions

From Rsewiki
No edit summary
Tag: Manual revert
 
(47 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Back to [[Fejemis 2026]]
= Raspberry Pi =
= Raspberry Pi =


Spefications of the two Raspberry Pi 5 used:
The robot uses two Raspberry Pi 5 units, referred to as the "Main" and "Aux" Raspberry Pi.
 
The "Main Pi" is responsible for core robot functionality and launches the odometry, lifecycle management, and bridge-related ROS nodes.
 
The "Aux Pi" handles the majority of the remaining ROS launch packages, including the computationally intensive perception and support nodes.
 
=== Main Raspberry Pi ===
 
* Raspberry Pi 5
* 16 GB RAM
* 60 GB storage (SD card)
 
=== Aux Raspberry Pi ===
 
* Raspberry Pi 5
* 8 GB RAM
* 512 GB external SSD storage
 
== System Architecture ==
 
During testing, it was observed that the Main Pi could not reliably handle all ROS launch packages simultaneously. To improve stability and performance, most workloads were therefore moved to the Aux Pi.
 
One likely reason for this difference is the storage medium. The Main Pi uses an SD card, while the Aux Pi uses an external SSD, which provides significantly faster read/write performance and better handling of high I/O workloads generated by ROS 2 nodes, logging, and vision processing.
 
This split architecture allows the robot to distribute computational load more effectively and improves overall system responsiveness and reliability.
 
= Ethernet Network =
 
=== Router ===
The router is used to connect the Raspberry Pi units and external devices on the robot network. It allows communication between the onboard computers and provides Ethernet access for external computers during development, debugging, and monitoring.
 
The router has a total of five Ethernet ports:
 
* Two ports are currently occupied by the Main and Aux Raspberry Pi units
* The remaining ports can be used to connect external computers directly to the robot network
* Router power supply: 5V / 0.6A
 
=== Network Configuration ===
 
* Network/CIDR: 192.168.1.0/24
 
* Subnet mask: 255.255.255.0
 
=== Ethernet IP Addresses ===
 
* Main Raspberry Pi: 192.168.1.1
* Aux Raspberry Pi: 192.168.1.2
 
=== External Computer Ethernet Setup ===
 
To connect a computer to the robot network through Ethernet, configure the network interface manually. The following settings must be configured:
* Subnet mask: 255.255.255.0
* Assign an available static IP address in the range 192.168.1.x
 
Note: 192.168.1.1 and 192.168.1.2 are already assigned to the Raspberry Pi units and must not be reused
 
== ROS 2 Network Setup ==
 
 
The ROS 2 network is configured so that the Raspberry Pi units and an external computer can communicate over the robot Ethernet network.
 
The setup is already configured on the Raspberry Pi units. This includes:
 
* Static Ethernet IP addresses
 
* ROS 2 environment variables
 
* CycloneDDS as the selected RMW implementation
 
* CycloneDDS network interface configuration
 
The CycloneDDS configuration binds ROS 2 communication to the Ethernet interface. This prevents ROS 2 from using the wrong network interface, such as Wi-Fi.
 
=== External Computer ROS 2 Setup ===
 
To access ROS 2 topics from a local computer, the computer must be connected to the robot router through Ethernet.
 
Configure the computer with a static IP address on the same subnet as the Raspberry Pi units as described in section above.
 
The following [[CycloneDDS Configuration file]] must be created on the local computer:
 
File location:
~/.config/cyclonedds/cyclonedds.xml
 
Then add the ROS 2 environment variables to the terminal setup file, for example .bashrc:
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export ROS_DOMAIN_ID=0
export CYCLONEDDS_URI=file://$HOME/.config/cyclonedds/cyclonedds.xml
 
After saving the file, reload the terminal:
source ~/.bashrc
 
The final step is to add the computer Ethernet IP address to the ROS_STATIC_PEERS variable inside the ''bash_setup.sh'' script located in the bin directory (more info about this file '''[[Fejemis ROS2 Software]]''').
 
Locate the following line:
export ROS_STATIC_PEERS='192.168.1.2,192.168.1.3, 192.168.1.4,192.168.1.5'
 
Add the IP address of the local computer to the list if it is not already included. This enables ROS 2 static peer discovery between the Raspberry Pi units and the external computer. Remember to source the bash file.
 
After the configuration is completed, the computer should be able to discover and communicate with the ROS 2 nodes running on the robot.
 
= Teensy Configuration =
 
[[File:teensy-configuration.png | 600px]]
 
Figure: The main hardware blocks. Two Teensy processors are the interface to the hardware. The drive processor controls the drive motors, safety and battery system. The front processor controls the brush and the front wheel to lift the brush. A main PC integrates the functionality with additional sensors to allow autonomous operation.
 
= Teensy firmware =
 
[[Fejemis Teensy]] software is build using standard Arduino library configurations.
The interface to the main PC is organized as text-lines.
 
= Electrical =
 
[[Fejemis electrical]] wiring etc.
 
= Battery control =
 
The [[Fejemis battery control]] is a 24V system (2x3cell LiPo 5Ah) with power on-off and measurement electronics. There is on-board chargers for all batteries.
 
= Other features =
 
 
=== LD19 LiDAR Sensor ===
 
The LD19 is a 2D DTOF LiDAR sensor used for obstacle detection, mapping, and localization in the Fejemis platform.
 
Technical specifications:
* Scanning range: 360°
* Scan frequency: 10 ± 0.1 Hz
* Sampling rate: 4500 measurements per second
* Communication interface: UART
* Baud rate: 230400 bit/s
* Supply voltage: 5V (4.5V–5.5V)
* Typical logic level: 3.3V
 
More information and full documentation: [https://www.elecrow.com/download/product/SLD06360F/LD19_Development%20Manual_V2.3.pdf LD19_Development Manual]
 
=== Realsense D455 ===
 
The Intel RealSense Depth Camera D455 provides RGB‑D sensing used for mapping, localization and obstacle detection. It is supported by the ''realsense2_camera'' ROS driver and integrates directly with the mapping components in this workspace (RTAB‑Map expects the standard RealSense RGB‑D topics).
Technical specifications:
* Operating range (min–max): 0.6 m – 6 m
* Depth resolution & FPS: 1280×720 up to 90 FPS
* Depth field of view (HxV): 86° × 57°
* Components: RGB sensor: Yes; Tracking module: Yes
* Module dimensions: 124 mm × 29 mm × 26 mm
* System interface type: USB 3.1
Product specifications and details: [https://www.intel.com/content/www/us/en/products/sku/205847/intel-realsense-depth-camera-d455/specifications.html Intel RealSense Depth Camera D455 - Specifications]
 
=== Linear actuator ===
 
The linear actuator used is a 12V DC actuator from Transmotec with a 10:1 gear ratio, 250 N maximum force, and a 150 mm stroke length.
 
More information and full documentation: https://transmotec.com/product/DLA-12-10-A-150-HS2-IP65/


Main Raspi
=== Brush unit ===
uses an sd card witch make it slower storage.
- 15 GB memory, 60GB storage,


Aux Raspi
The Fejemis brush unit is a commercial brush that comes with its own battery (12V), charger and motor control. The unit is slightly modified to to allow measurement and control from the software.
- 8GB memory
- External SSD 512GB storage

Latest revision as of 20:43, 28 May 2026

Back to Fejemis 2026

Raspberry Pi

The robot uses two Raspberry Pi 5 units, referred to as the "Main" and "Aux" Raspberry Pi.

The "Main Pi" is responsible for core robot functionality and launches the odometry, lifecycle management, and bridge-related ROS nodes.

The "Aux Pi" handles the majority of the remaining ROS launch packages, including the computationally intensive perception and support nodes.

Main Raspberry Pi

  • Raspberry Pi 5
  • 16 GB RAM
  • 60 GB storage (SD card)

Aux Raspberry Pi

  • Raspberry Pi 5
  • 8 GB RAM
  • 512 GB external SSD storage

System Architecture

During testing, it was observed that the Main Pi could not reliably handle all ROS launch packages simultaneously. To improve stability and performance, most workloads were therefore moved to the Aux Pi.

One likely reason for this difference is the storage medium. The Main Pi uses an SD card, while the Aux Pi uses an external SSD, which provides significantly faster read/write performance and better handling of high I/O workloads generated by ROS 2 nodes, logging, and vision processing.

This split architecture allows the robot to distribute computational load more effectively and improves overall system responsiveness and reliability.

Ethernet Network

Router

The router is used to connect the Raspberry Pi units and external devices on the robot network. It allows communication between the onboard computers and provides Ethernet access for external computers during development, debugging, and monitoring.

The router has a total of five Ethernet ports:

  • Two ports are currently occupied by the Main and Aux Raspberry Pi units
  • The remaining ports can be used to connect external computers directly to the robot network
  • Router power supply: 5V / 0.6A

Network Configuration

  • Network/CIDR: 192.168.1.0/24
  • Subnet mask: 255.255.255.0

Ethernet IP Addresses

  • Main Raspberry Pi: 192.168.1.1
  • Aux Raspberry Pi: 192.168.1.2

External Computer Ethernet Setup

To connect a computer to the robot network through Ethernet, configure the network interface manually. The following settings must be configured:

  • Subnet mask: 255.255.255.0
  • Assign an available static IP address in the range 192.168.1.x

Note: 192.168.1.1 and 192.168.1.2 are already assigned to the Raspberry Pi units and must not be reused

ROS 2 Network Setup

The ROS 2 network is configured so that the Raspberry Pi units and an external computer can communicate over the robot Ethernet network.

The setup is already configured on the Raspberry Pi units. This includes:

  • Static Ethernet IP addresses
  • ROS 2 environment variables
  • CycloneDDS as the selected RMW implementation
  • CycloneDDS network interface configuration

The CycloneDDS configuration binds ROS 2 communication to the Ethernet interface. This prevents ROS 2 from using the wrong network interface, such as Wi-Fi.

External Computer ROS 2 Setup

To access ROS 2 topics from a local computer, the computer must be connected to the robot router through Ethernet.

Configure the computer with a static IP address on the same subnet as the Raspberry Pi units as described in section above.

The following CycloneDDS Configuration file must be created on the local computer:

File location:

~/.config/cyclonedds/cyclonedds.xml

Then add the ROS 2 environment variables to the terminal setup file, for example .bashrc:

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export ROS_DOMAIN_ID=0
export CYCLONEDDS_URI=file://$HOME/.config/cyclonedds/cyclonedds.xml

After saving the file, reload the terminal:

source ~/.bashrc

The final step is to add the computer Ethernet IP address to the ROS_STATIC_PEERS variable inside the bash_setup.sh script located in the bin directory (more info about this file Fejemis ROS2 Software).

Locate the following line:

export ROS_STATIC_PEERS='192.168.1.2,192.168.1.3, 192.168.1.4,192.168.1.5'

Add the IP address of the local computer to the list if it is not already included. This enables ROS 2 static peer discovery between the Raspberry Pi units and the external computer. Remember to source the bash file.

After the configuration is completed, the computer should be able to discover and communicate with the ROS 2 nodes running on the robot.

Teensy Configuration

Figure: The main hardware blocks. Two Teensy processors are the interface to the hardware. The drive processor controls the drive motors, safety and battery system. The front processor controls the brush and the front wheel to lift the brush. A main PC integrates the functionality with additional sensors to allow autonomous operation.

Teensy firmware

Fejemis Teensy software is build using standard Arduino library configurations. The interface to the main PC is organized as text-lines.

Electrical

Fejemis electrical wiring etc.

Battery control

The Fejemis battery control is a 24V system (2x3cell LiPo 5Ah) with power on-off and measurement electronics. There is on-board chargers for all batteries.

Other features

LD19 LiDAR Sensor

The LD19 is a 2D DTOF LiDAR sensor used for obstacle detection, mapping, and localization in the Fejemis platform.

Technical specifications:

  • Scanning range: 360°
  • Scan frequency: 10 ± 0.1 Hz
  • Sampling rate: 4500 measurements per second
  • Communication interface: UART
  • Baud rate: 230400 bit/s
  • Supply voltage: 5V (4.5V–5.5V)
  • Typical logic level: 3.3V

More information and full documentation: LD19_Development Manual

Realsense D455

The Intel RealSense Depth Camera D455 provides RGB‑D sensing used for mapping, localization and obstacle detection. It is supported by the realsense2_camera ROS driver and integrates directly with the mapping components in this workspace (RTAB‑Map expects the standard RealSense RGB‑D topics). Technical specifications:

  • Operating range (min–max): 0.6 m – 6 m
  • Depth resolution & FPS: 1280×720 up to 90 FPS
  • Depth field of view (HxV): 86° × 57°
  • Components: RGB sensor: Yes; Tracking module: Yes
  • Module dimensions: 124 mm × 29 mm × 26 mm
  • System interface type: USB 3.1

Product specifications and details: Intel RealSense Depth Camera D455 - Specifications

Linear actuator

The linear actuator used is a 12V DC actuator from Transmotec with a 10:1 gear ratio, 250 N maximum force, and a 150 mm stroke length.

More information and full documentation: https://transmotec.com/product/DLA-12-10-A-150-HS2-IP65/

Brush unit

The Fejemis brush unit is a commercial brush that comes with its own battery (12V), charger and motor control. The unit is slightly modified to to allow measurement and control from the software.