Fejemis 2026: Difference between revisions

From Rsewiki
 
(32 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[File:Fejemis.jpeg | 600px]]


== Introduction ==
== Introduction ==
Fejemis is an autonomous cleaning robot developed to clean the Asta building. The building is divided into different cleaning areas, where the robot navigates autonomously to a selected point, plans a cleaning path, and performs the cleaning task using its brushing system while following the generated route.
[[File:Fejemis.jpeg | 600px]]


== Start up guide ==
== Start up guide ==


== Hardware ==
To turn on Fejemis, you need to press the turn on button for more than 2 seconds. If not, both Raspberry Pis wont boot. To turn it off you need to press it for more than 7 seconds.
 
To work with Fejemis, you can connect directly using a monitor and keyboard. The monitor can be connected to one of the Raspberry Pis, while the keyboard connects through USB. After booting, log into the Ubuntu system using the provided credentials.
 
Fejemis uses two Raspberry Pis:
 
Main Raspberry Pi and Auxiliary Raspberry Pi
 
The Raspberry Pis can be also accessed through SSH.(The IP some time changes, check it by connecting directly with the monitor)
Main lab
local@10.197.213.227
Aux lab
local@10.197.213.226
Main asta
local@10.197.219.238
Aux lab
local@10.197.219.237
 
The last way of connecting is through Ethernet.
Main
197.168.1.1
Aux
197.168.1.2
 
If you are connected to the main Raspberry Pi,the auxiliary Raspberry Pi can also be accessed using:
ssh fejemis-aux
 
=== Launch===
 
Launching the bridge (from anywhere):
ros2 launch fejemis_bridge bridge.launch.py
 
Launching the mixer + gamepad control (from anywhere):
ros2 launch fejemis_bridge mixer.launch.py
 
You need to press the "BACK" button on the gamepad to actually start the control from the gamepad.
 
You can launch both at once with the following command: ros2 launch fejemis_bridge control.launch.py
 
This launch file runs the latest version of the autonomous cleaning software:
 
ros2 launch fejemis robot.launch.py
 
It must be launched on both Raspberry Pis, since each device handles different parts of the system.
 
Arguments:
localization:=true/false, map_location:=asta/lab
 
Default: localization true, map loc asta
 
If the argument "localization:=false" is provided, the robot will automatically start a new mapping process and overwrite the current map.
 
 
After ''fejemis robot.launch.py'' is running on both Raspberry Pis, you can optionally start a few helper nodes depending on what you want to test:
* <code>ros2 run fejemis_maploc rviz_goal_relay.py</code> lets you send a navigation goal from RViz if you want to drive the robot to a specific point.
* If the robot does not localize itself automatically, you can set the initial pose in RViz.
* <code>ros2 run fejemis_maploc mission_trigger.py</code> starts the cleaning behaviour once the robot is ready.
* <code>ros2 run fejemis_maploc fixed_complete_coverage_planner.py</code> or <code>ros2 run fejemis_maploc complete_coverage_planner.py</code> can be used to test only the cleaning path generation and coverage following.
 
If Fejemis crash (one of the battery display will turn off), you need to plug it in before turning it on again.
 
=== Troubleshooting / usual problems ===
 
Common issues seen during daily operation:
 
*'''Main Raspberry Pi crashes while building the full workspace'''
The main Raspberry Pi may crash or run out of resources when building everything at once.
Use symlink install and only build the packages you changed:
 
  colcon build --symlink-install --packages-select <changed_package_1> <changed_package_2>
 
*'''Robot shuts down while driving (high speed / acceleration)'''
If commanded speed or acceleration is too aggressive, the battery management system can cut power and both Raspberry Pis may shut down.
Reduce drive aggressiveness and avoid sudden acceleration spikes.
 
*'''System behaves inconsistently between main and aux Pi'''
This is often caused by the two Raspberry Pis having unsynchronised clocks.
Run this from the main Raspberry Pi:
 
  fejemis sync_clocks
 
*'''Only one Raspberry Pi appears to boot'''
You must hold the power button for a few seconds so both Raspberry Pis start correctly.
 
*'''Left battery does not engage after BMS cutoff'''
If the left battery turns off due to battery management protection, plug in the robot before booting again, otherwise that battery may not re-engage.
 
*'''Unstable wireless connection in ASTA'''
Wi-Fi in ASTA is often unreliable. Prefer connecting your PC over Ethernet for stable control and monitoring.
 
=== Other utilities ===
 
If you want to generate a square signal, you can use the node I made:
 
ros2 run arcana_tools signal_generator --ros-args -p frequency:=<signal_freq> -p out_type:=<output ROS2 type> -r /sig_out:=<output topic> -p bias:=<signal bias> -p range:=<vmax-vmin>
 
Typically you wight want to send it as if it was a gamepad input:
 
ros2 run arcana_tools signal_generator--ros-args -p frequency:=0.5 -p out_type:=geometry_msgs.msg.Twist.linear.x -r /sig_out:=/joy_control/cmd_vel -p range:=0.5


=== Mechanics ===
You can display graphs using the rqt tool (type rqt in a terminal). There's a plugin "Vizualization>Plot" that integrate the python 3 matplotlib package.


=== Electronics ===
To enable the fetching of the wheels velocities from the bridge, you may need to edit the file "~/.config/fejemis_bridge/bridge.yaml" and set enable: true instead of false in the vel section.


==== Raspberry Pi ====
== Hardware ==
The two raspi are, bad 15 GB memory, 60GB storage, sd card memory slower.


=== Mechanics ===


You can access the technical description of the [[Mechanics]] in this page.


=== Electronics ===


good 8GB, flash storage ram both wit Ram and one with an 512GB storage Memorry also faster becaus


=== Ethernet Router ===
You can access the technical description of the [[Electronics]] in this page.


== Software ==
== Software ==
The software is split into two components:
*'''[[Fejemis bridge]]''' — handles communication between the main Raspberry Pi and the Teensy controllers and provides a manual/remote-control interface. See [[Fejemis repository]] for source and docs.
*'''[[Fejemis ROS2 Software]]''' — higher-level programs for mapping, navigation, and robot behaviours located in '''Fejemis_workspace_2026'''.


=== Repository ===
==== Old repository ====
You can access the description of the legacy  through this link.


== Mission Statement ==
== Mission Statement ==
Fejemis is developed to autonomously sweep the ASTA building in a safe and practical way for daily operations.
The robot should:
* Navigate autonomously through the building and reach assigned cleaning areas.
* Plan and execute a full cleaning strategy instead of only following a single manual path.
* Interrupt its cleaning mission when needed to return to a docking station for charging, then resume operation.
* Avoid interfering with ongoing work in the ASTA building by operating safely around people and active tasks.

Latest revision as of 11:17, 28 May 2026

Introduction

Fejemis is an autonomous cleaning robot developed to clean the Asta building. The building is divided into different cleaning areas, where the robot navigates autonomously to a selected point, plans a cleaning path, and performs the cleaning task using its brushing system while following the generated route.

Start up guide

To turn on Fejemis, you need to press the turn on button for more than 2 seconds. If not, both Raspberry Pis wont boot. To turn it off you need to press it for more than 7 seconds.

To work with Fejemis, you can connect directly using a monitor and keyboard. The monitor can be connected to one of the Raspberry Pis, while the keyboard connects through USB. After booting, log into the Ubuntu system using the provided credentials.

Fejemis uses two Raspberry Pis:

Main Raspberry Pi and Auxiliary Raspberry Pi

The Raspberry Pis can be also accessed through SSH.(The IP some time changes, check it by connecting directly with the monitor)

Main lab
local@10.197.213.227
Aux lab
local@10.197.213.226
Main asta
local@10.197.219.238
Aux lab
local@10.197.219.237

The last way of connecting is through Ethernet.

Main
197.168.1.1 
Aux
197.168.1.2

If you are connected to the main Raspberry Pi,the auxiliary Raspberry Pi can also be accessed using:

ssh fejemis-aux

Launch

Launching the bridge (from anywhere):

ros2 launch fejemis_bridge bridge.launch.py

Launching the mixer + gamepad control (from anywhere):

ros2 launch fejemis_bridge mixer.launch.py

You need to press the "BACK" button on the gamepad to actually start the control from the gamepad.

You can launch both at once with the following command: ros2 launch fejemis_bridge control.launch.py

This launch file runs the latest version of the autonomous cleaning software:

ros2 launch fejemis robot.launch.py 

It must be launched on both Raspberry Pis, since each device handles different parts of the system.

Arguments:

localization:=true/false, map_location:=asta/lab

Default: localization true, map loc asta

If the argument "localization:=false" is provided, the robot will automatically start a new mapping process and overwrite the current map.


After fejemis robot.launch.py is running on both Raspberry Pis, you can optionally start a few helper nodes depending on what you want to test:

  • ros2 run fejemis_maploc rviz_goal_relay.py lets you send a navigation goal from RViz if you want to drive the robot to a specific point.
  • If the robot does not localize itself automatically, you can set the initial pose in RViz.
  • ros2 run fejemis_maploc mission_trigger.py starts the cleaning behaviour once the robot is ready.
  • ros2 run fejemis_maploc fixed_complete_coverage_planner.py or ros2 run fejemis_maploc complete_coverage_planner.py can be used to test only the cleaning path generation and coverage following.

If Fejemis crash (one of the battery display will turn off), you need to plug it in before turning it on again.

Troubleshooting / usual problems

Common issues seen during daily operation:

  • Main Raspberry Pi crashes while building the full workspace

The main Raspberry Pi may crash or run out of resources when building everything at once. Use symlink install and only build the packages you changed:

 colcon build --symlink-install --packages-select <changed_package_1> <changed_package_2>
  • Robot shuts down while driving (high speed / acceleration)

If commanded speed or acceleration is too aggressive, the battery management system can cut power and both Raspberry Pis may shut down. Reduce drive aggressiveness and avoid sudden acceleration spikes.

  • System behaves inconsistently between main and aux Pi

This is often caused by the two Raspberry Pis having unsynchronised clocks. Run this from the main Raspberry Pi:

 fejemis sync_clocks
  • Only one Raspberry Pi appears to boot

You must hold the power button for a few seconds so both Raspberry Pis start correctly.

  • Left battery does not engage after BMS cutoff

If the left battery turns off due to battery management protection, plug in the robot before booting again, otherwise that battery may not re-engage.

  • Unstable wireless connection in ASTA

Wi-Fi in ASTA is often unreliable. Prefer connecting your PC over Ethernet for stable control and monitoring.

Other utilities

If you want to generate a square signal, you can use the node I made:

ros2 run arcana_tools signal_generator --ros-args -p frequency:=<signal_freq> -p out_type:=<output ROS2 type> -r /sig_out:=<output topic> -p bias:=<signal bias> -p range:=<vmax-vmin>

Typically you wight want to send it as if it was a gamepad input:

ros2 run arcana_tools signal_generator--ros-args -p frequency:=0.5 -p out_type:=geometry_msgs.msg.Twist.linear.x -r /sig_out:=/joy_control/cmd_vel -p range:=0.5

You can display graphs using the rqt tool (type rqt in a terminal). There's a plugin "Vizualization>Plot" that integrate the python 3 matplotlib package.

To enable the fetching of the wheels velocities from the bridge, you may need to edit the file "~/.config/fejemis_bridge/bridge.yaml" and set enable: true instead of false in the vel section.

Hardware

Mechanics

You can access the technical description of the Mechanics in this page.

Electronics

You can access the technical description of the Electronics in this page.

Software

The software is split into two components:

  • Fejemis bridge — handles communication between the main Raspberry Pi and the Teensy controllers and provides a manual/remote-control interface. See Fejemis repository for source and docs.
  • Fejemis ROS2 Software — higher-level programs for mapping, navigation, and robot behaviours located in Fejemis_workspace_2026.

Old repository

You can access the description of the legacy through this link.

Mission Statement

Fejemis is developed to autonomously sweep the ASTA building in a safe and practical way for daily operations.

The robot should:

  • Navigate autonomously through the building and reach assigned cleaning areas.
  • Plan and execute a full cleaning strategy instead of only following a single manual path.
  • Interrupt its cleaning mission when needed to return to a docking station for charging, then resume operation.
  • Avoid interfering with ongoing work in the ASTA building by operating safely around people and active tasks.