SENSE-BASE is a ROS2-based framework for multimodal biosignals from EEG, EoG, ECG, and depth cameras.
Diagram. Frawework illustrates the main blocks for acquisition, base, computer vision, interface, and recorder, along with their corresponding ROS 2 packages. Highlight the green blocks as already implemented and the yellow ones as in progress. See also logo here
The ROS2 packages are developed, built, and supported for the Humble distribution.
- sense_base Main repo to manage packages.
- sense_eeg Mock EEG publisher
- sense_msgs ROS2 messages
- sense_bridge Manage multi-dimensional arrays
- sense_pose Pose estimation tools
- sense_template Template for ROS2 packages
- Generate your SSH keys as suggested here.
- Setup you commit signature verification as shown here.
Clone base repositories under sense-basepath. We suggest cloning repos under sense-base path as for examplebase,sense_eegandsense_msgs.
mkdir sense-base && cd sense-base
git clone git@github.com:sense-base/base.git
cd base && mkdir -p workspace/src && cd workspace/src
git clone git@github.com:sense-base/sense_eeg.git
git clone git@github.com:sense-base/sense_msgs.git
git clone git@github.com:sense-base/sense_bridge.git
Install Python Environment (3.10 or higher recommended):
#cd package name
cd workspace/src/sense_msgs/
uv venv --python 3.10
source .venv/bin/activate
uv pip install -e ".[dev]"
uv pip list --verbose
pyenv install 3.10.17 pyenv virtualenv 3.10.17 sense_EEG-env
pyenv local sense_EEG-env
pip install -e ".[dev]"uv pre-commit run --all-files- Open VSCode in the
baserepository and checkout respective branches. - Once project is open in VSCode you will automatically see and click
Reopen in Container. - Open a terminal into the loaded container in VSCode
rm -rf build/ install/ log/
colcon build --symlink-install
source install/setup.bash
ros2 launch eeg_publisher mock_publisher_launch.py
On a different terminal, run
source install/setup.bash
ros2 topic list
ros2 topic echo /eeg/raw
ros2 bag record /eeg/raw
ros2 bag info <bag_file_name> (e.g., `rosbag2_data_time`)
ros2 bag play <bag_file_name>
rqt_graph
- For full details on how to contribute to the project – including repository cloning and issue/branch/pull request workflows – please see the CONTRIBUTING guidelines.
- For information on our community standards, responsibilities and enforcement policies, refer to the CODE OF CONDUCT.