Electronics: Difference between revisions
No edit summary Tag: Manual revert |
|||
| (36 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 | The "Main Pi" is responsible for core robot functionality and launches the odometry, lifecycle management, and bridge-related ROS nodes. | ||
The "Aux | The "Aux Pi" handles the majority of the remaining ROS launch packages, including the computationally intensive perception and support nodes. | ||
=== Main Raspberry Pi === | === Main Raspberry Pi === | ||
| Line 23: | Line 23: | ||
== System Architecture == | == System Architecture == | ||
During testing, it was observed that the Main | 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 | 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 = | |||
=== 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: | |||
=== Network Configuration === | === Network Configuration === | ||
| Line 54: | Line 51: | ||
* Aux Raspberry Pi: 192.168.1.2 | * Aux Raspberry Pi: 192.168.1.2 | ||
=== Setup | === 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 | * Subnet mask: 255.255.255.0 | ||
* Assign an available static IP address in the range 192.168.1.x | * Assign an available static IP address in the range 192.168.1.x | ||
| Line 65: | Line 59: | ||
Note: 192.168.1.1 and 192.168.1.2 are already assigned to the Raspberry Pi units and must not be reused | 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]] | [[File:teensy-configuration.png | 600px]] | ||
| Line 83: | 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 = | |||
[[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 = | |||
[[Fejemis electrical]] wiring etc. | [[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. | 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 | 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.