Electronics: Difference between revisions

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


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


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


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


=== Main Raspberry Pi ===
=== Main Raspberry Pi ===
Line 23: Line 23:
== System Architecture ==
== System Architecture ==


During testing, it was observed that the Main Raspi could not reliably handle all ROS launch packages simultaneously. To improve stability and performance, most workloads were therefore moved to the Aux Raspberry Pi.
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 Raspberry Pi uses an SD card, while the Aux Raspberry 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.
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.
This split architecture allows the robot to distribute computational load more effectively and improves overall system responsiveness and reliability.


== Ethernet Network ==
= Ethernet Network =


=== Router ===
=== Router ===
Line 38: Line 38:
* Two ports are currently occupied by the Main and Aux Raspberry Pi units
* 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
* The remaining ports can be used to connect external computers directly to the robot network
 
* Router power supply: 5V / 0.6A
Router power supply:
 
* 5V / 0.6A


=== Network Configuration ===
=== Network Configuration ===
Network/CIDR:


* 192.168.1.0/24
* Network/CIDR: 192.168.1.0/24


Subnet mask:
* Subnet mask: 255.255.255.0
 
* 255.255.255.0


=== Ethernet IP Addresses ===
=== Ethernet IP Addresses ===
Line 57: Line 51:
* Aux Raspberry Pi: 192.168.1.2
* Aux Raspberry Pi: 192.168.1.2


=== Setup for External Computers ===
=== 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


To connect a computer to the robot network through Ethernet, configure the network interface manually.
== ROS 2 Network Setup ==


The following settings must be configured:


* Subnet mask: 255.255.255.0
The ROS 2 network is configured so that the Raspberry Pi units and an external computer can communicate over the robot Ethernet network.
* Assign an available static IP address in the range 192.168.1.x
 
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.


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


* 192.168.1.1 and 192.168.1.2 are already assigned to the Raspberry Pi units and must not be reused
The following [[CycloneDDS Configuration file]] must be created on the local computer:
* Example valid addresses:
    ** 192.168.1.10
    ** 192.168.1.20
    ** 192.168.1.100


After configuration, the computer should be able to communicate with both Raspberry Pi units over Ethernet.
File location:
~/.config/cyclonedds/cyclonedds.xml


=== Linear actuator ===
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


The actuator is a ...
After saving the file, reload the terminal:
source ~/.bashrc


=== Lidar ===
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]]''').


The lidar is a ...
Locate the following line:
export ROS_STATIC_PEERS='192.168.1.2,192.168.1.3, 192.168.1.4,192.168.1.5'


=== Realsense D455 ===
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.


The camera is a ...
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 ===
= Teensy Configuration =


[[File:teensy-configuration.png | 600px]]
[[File:teensy-configuration.png | 600px]]
Line 94: Line 110:
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.
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 =====
= Teensy firmware =


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


===== Electrical =====
= Electrical =


[[Fejemis electrical]] wiring etc.
[[Fejemis electrical]] wiring etc.


=== Battery control ===
= 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.
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/


=== Brush unit ===
=== 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.
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.

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.