Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Checkout URI | https://github.com/polymathrobotics/socketcan_adapter.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-09 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| socketcan_adapter | 0.1.0 |
| socketcan_adapter_ros | 0.1.0 |
README
SocketCAN Adapter
A modular SocketCAN driver library and ROS2 integration for Linux-based systems. This repository provides both a standalone C++ library and ROS2 wrapper for easy integration with robotics applications.
Architecture
This package is split into two complementary components:
socketcan_adapter
Pure C++ SocketCAN library with no ROS dependencies.
- Core SocketCAN functionality
- Thread-safe operations
- Callback-based asynchronous processing
- Configurable filters and error handling
- Can be used in non-ROS projects
socketcan_adapter_ros
ROS2 wrapper providing nodes and launch files.
- ROS2 lifecycle node
- Integration with
can_msgs - Launch files with parameter support
- Depends on the core
socketcan_adapterlibrary
Quick Start
Build Both Packages
# Install dependencies
rosdep install -i -y --from-paths .
# Build everything
colcon build --packages-up-to socketcan_adapter_ros
Launch ROS2 CAN Bridge
ros2 launch socketcan_adapter_ros socketcan_bridge_launch.py
Use Core Library in C++
#include "socketcan_adapter/socketcan_adapter.hpp"
using namespace polymath::socketcan;
SocketcanAdapter adapter("can0");
adapter.openSocket();
// ... see socketcan_adapter README for full example
Requirements
System Requirements
- Linux with SocketCAN support
- C++17 compatible compiler
- CMake 3.8+
ROS2 Requirements (for ROS package only)
- ROS2 Humble or later
- can_msgs package
Testing
Core Library Tests
colcon test --packages-select socketcan_adapter
Hardware Tests
Set CAN_AVAILABLE=1 to enable hardware-dependent tests:
CAN_AVAILABLE=1 colcon test --packages-select socketcan_adapter
Virtual CAN Setup
For testing without hardware:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Authors & Maintainers
- Zeerek Ahmad - Original author - zeerekahmad@hotmail.com
- Polymath Robotics Engineering Team - Maintainers - engineering@polymathrobotics.com
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.