E-WheelChAIr
Smart Embedded System for Electric Wheelchairs
For all files see the github link : https://github.com/RenaudFookIng/E-WheelChAIr
Origin of the project :
- Occupational therapist and Medical Doctor couldnβt prescribe a Power Wheelchair if the user driving it could injure themselves or others.
- In consequence, the user with massive motor impairment and cognitive or visual impairment donβt have power wheelchair and they depend of the other to move in their home and the city.
Description
E-WheelChAIr is an open-source project designed to enhance autonomy and accessibility for electric wheelchairs. It integrates:
- A ROS2-based architecture for real-time control and sensor fusion.
- 3D-printed mechanical parts (sensor mounts, joystick adapters).
- Modular design for easy customization and collaboration with partners like Sorbonne University.
πΈ Visual Overview
Wheelchair Views
Project Structure
Note: All ROS launch files are centralized in the e_wheelchair_launch package for easier management.
E-WheelChAIr/
βββ hardware
β βββ 3d_models
β β βββ BackRest_Fixation/
β β β βββ Fixation_BackRest.iges
β β β βββ Fixation_backrest_part1.stl
β β β βββ Fixation_backrest_part2.stl
β β βββ Camera_Module/
β β β βββ Camera_module.iges
β β β βββ Fixation_camera.stl
β β β βββ Fixation_camera_up.stl
β β β βββ Support_camera.stl
β β βββ ServoControl_Joystick/
β β β βββ BasePart.stl
β β β βββ FourchetteAxeX.stl
β β β βββ FourchetteAxeY.stl
β β β βββ Servo_controller_Joystick.iges
β β β βββ Support_servo_joystick.stl
β β β βββ Visuel_Joystick_servomoteur_support.png
β β βββ Ultrasonic_Module/
β β
β βββ arduino/
β β βββ ewheelchair_controller/
β β β βββ ewheelchair_controller.ino
β β β βββ lecture_arduino.py
β β βββ ARDUINO_GUIDE.md
β β βββ FILES_SUMMARY.md
β β βββ README.md
β β βββ test_arduino.py
β β
β ββββ Image_processing/
β
β βββ cmd.txt
β β βββ ROS.txt
β
β βββ vision_config_gpu.py
β β βββ vision_config_mac.py
β
β βββ vision_system_gpu.py
β β βββ vision_system_mac.py
β
β βββ yolo11n.pt
β β βββ yolov8n.pt
β β
β βββ Right_View.jpeg
β
βββ resources
β βββ docs
β βββ utils
|
βββ src
| βββ arduino_bridge/
| β βββ arduino_bridge
| β β βββ __init__.py
| β β βββ arduino_bridge_node.py
| β βββ resource
| β β βββ arduino_bridge
| β βββ test
| β β βββ test_copyright.py
| β β βββ test_flake8.py
| β β βββ test_pep257.py
| β βββ package.xml
| β βββ setup.cfg
| β βββ setup.py
| βββ custom_msgs/
| β βββ msg/
| β β βββ EmergencyData.msg
| β β βββ Joystick.msg
| β β βββ ObstacleDetection.msg
| β β βββ ServoCommand.msg
| β β βββ UltrasonicArray.msg
| β β βββ VisionObstacle.msg
| β β βββ WyesIntent.msg
| β βββ CMakeLists.txt
| β βββ package.xml
| β βββ setup.py
| βββ e_wheelchair_launch/
| β βββ e_wheelchair_launch
| β β βββ __init__.py
| β β βββ launch/
| β βββ resource/
| β β βββ e_wheelchair_launch
| β βββ package.xml
| β βββ setup.cfg
| β βββ setup.py
| βββ master_node/
| β βββ config/
| β β βββ master_config.yaml
| β β βββ servo_config.yaml
| β βββ master_node/
| β β βββ __init__.py
| β β βββ master_node.py
| β β βββ master_node_bis.py
| β βββ package.xml
| β βββ setup.cfg
| β βββ setup.py
| βββ pc_vision_bridge/
| β βββ pc_vision_bridge
| β β βββ __init__.py
| β β βββ pc_vision_bridge_node.py
| β βββ resource
| β β βββ pc_vision_bridge
| β βββ test
| β β βββ test_copyright.py
| β β βββ test_flake8.py
| β β βββ test_pep257.py
| β βββ package.xml
| β βββ setup.cfg
| β βββ setup.py
| βββ wyes_teleop/
| βββ resource
| β βββ wyes_teleop
| βββ test
| β βββ test_copyright.py
| β βββ test_flake8.py
| β βββ test_pep257.py
| βββ wyes_teleop
| β βββ __init__.py
| β βββ wyes_teleop_node.py
| βββ package.xml
| βββ setup.cfg
| βββ setup.py
|
βββ .gitignore
βββ CABLAGE_SCHEMA.md
βββ E-WheelChAIr.mp4
βββ LICENSE
βββ parametrage_raspberry_hotspot.txt
βββ README.md
βββ TESTING_GUIDE.md
βββ yolov8n.pt
Prerequisites
Hardware
- Electric wheelchair with servo-controlled joystick (using Miuzei MZ996 servos).
- Sensors: Intel Realsense (depth camera), HC-SR04 (ultrasonic), Arduino (I/O interface).
- Joystick or alternative control input device.
Software
- ROS2 Jazzy.
- colcon (build tool for ROS2).
- OnShape (for 3D modeling).
- Git LFS (for versioning large 3D files).
- Python 3.9+ with pyserial and pyyaml packages.
Installation and Setup On your computer
1. Clone the Repository
git clone https://github.com/RenaudFookIng/E-WheelChAIr.git cd E-WheelChAIr
2. Build the ROS Workspace
colcon build --symlink-install source install/setup.bash
3. Launch the System
ros2 launch e_wheelchair_launch ewheelchair_all.launch.py
Installation and Setup On your Raspberry PI
1. Cloner le dΓ©pΓ΄t en mode "sparse-checkout"
git clone --filter=blob:none --no-checkout https://github.com/RenaudFookIng/E-WheelChAIr.git cd E-WheelChAIr
2. Active le mode sparse-checkout et exclut le dossier 'hardware'
git sparse-checkout init --cone git sparse-checkout set --no-cone /* !/hardware/
3. Extrait les fichiers (sauf 'hardware')
git checkout main
Build the ROS Workspace
colcon build --symlink-install source install/setup.bash
ROS Launch Files Centralization
All ROS launch files have been centralized in the e_wheelchair_launch package to provide:
- Simplified Management: Single location for all launch configurations
- Easier Maintenance: No duplication across packages
- Consistent Structure: Uniform approach to system launching
- Better Organization: Clear separation between nodes and launch configurations
Available Launch Files
| Launch File | Description | Components Launched |
|---|---|---|
ewheelchair_all.launch.py |
Complete system with all sensors and processing | 6 nodes |
ewheelchair_joystick_servo.launch.py |
Control servo with joystick and Ultrasonic sensor | 2 node |
ewheelchair_arduino_vision.launch.py |
Control servo with joystick and Ultrasonic sensor and Wide-angle camera processing | 3 node |
ewheelchair_wyes_teleop.launch.py |
Control servo with joystick, Ultrasonic sensor and Wyes Glasses | 3 node |
ROS Packages
| Package | Description |
|---|---|
arduino_bridge |
Receives data from Arduino sensors |
custom_msgs |
Custom ROS message definitions |
e_wheelchair_launch |
Launch files for the complete system |
master_node |
Main control node for servo-controlled joystick |
pc_vision_bridge |
Bridge between PC vision system and ROS |
wyes_teleop |
Keyboard-based teleoperation interface |
Pour se connecter au Hotspot WiFi :
- Nom du Hotspot : E-Wheelchair
- Mot de passe : EWheelChair2025
Pour se connecter Γ la plateforme : Nom de la plateforme : ewheelchair2
ssh ewheelchair2@192.168.4.1
mdp : ewheelchair
3D Models
- Location:
3d_models/ - Formats: STL and STEP files for 3D printing and simulation.
- Tools: Designed in OnShape.
- Note: Use
git lfs pullafter cloning to retrieve 3D files.
Recent Changes
Version 0.2.0 (Current)
- Major Architecture Change: Replaced Sabertooth motor controller with Miuzei MZ996 servo-based joystick control
- New Package:
arduino_bridgefor Arduino-based servo management - Updated:
master_nodenow publishes joystick commands instead of motor commands - Updated:
visualizationpackage removed motor speed plotting - Improved: Safety features with neutral position on emergency stop
Version 0.1.0
- Initial release with Sabertooth motor controller
- Basic sensor integration (ultrasonic, camera)
- ROS2 Jazzy compatibility
Collaboration
- University of Milan: Partner for accessibility validation.
- Contributions: Pull requests and issues are welcome!
- License: Apache 2.0 (see LICENSE).
Contact
- Maintainer: Renaud JANET (renaud.janet@etu.sorbonne-universite.fr
- Github link : https://github.com/RenaudFookIng/E-WheelChAIr



