https://github.com/mabrobotics/candle_ros2
ROS2 driver for using MAB md80 drives with CANdle.
https://github.com/mabrobotics/candle_ros2
candle md80 motor-controller ros2 ros2-foxy
Last synced: 4 months ago
JSON representation
ROS2 driver for using MAB md80 drives with CANdle.
- Host: GitHub
- URL: https://github.com/mabrobotics/candle_ros2
- Owner: mabrobotics
- License: lgpl-3.0
- Created: 2022-05-18T07:56:16.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-01-15T12:30:34.000Z (4 months ago)
- Last Synced: 2026-01-15T16:53:29.984Z (4 months ago)
- Topics: candle, md80, motor-controller, ros2, ros2-foxy
- Language: C++
- Homepage:
- Size: 307 KB
- Stars: 2
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CANdle ROS2
This repository provides ROS2 interfaces for controlling **MD electric drive controllers** and **PDS power distribution systems** using the [CANdle-SDK](https://github.com/mabrobotics/CANdle-SDK).
It exposes both systems as ROS2 nodes with services and topics for operational control and telemetry.
This package acts as a **runtime control interface**.
For configuration, please use:
➡️ [CANdleTool](https://mabrobotics.github.io/MD80-x-CANdle-Documentation/CANdle-SDK/CANdleTool.html)
## Features
### MD Node
- Control MD drive controllers
- Publish joint state data
- Accept position, velocity, motion, and impedance commands
- Provide enable/disable/zero/mode setup services
### PDS Node
- Manage PDS devices and their modules
- Monitor modules such as the Control Board, Isolated Converter, Brake Resistor, and Power Stage
## Installation
Go to your ROS2 workspace and clone the repository:
```bash
git clone git@github.com:mabrobotics/candle_ros2.git src/candle_ros2
```
Initialize submodules:
```bash
git -C src/candle_ros2/ submodule update --init --recursive
```
Build:
```bash
colcon build
```
Source the environment:
```bash
source install/setup.bash
```
## Running
### MD Node
```bash
ros2 launch candle_ros2 md_node_launch.py
```
### PDS Node
```bash
ros2 launch candle_ros2 pds_node_launch.py
```
### Both Nodes
```bash
ros2 launch candle_ros2 both_launch.py
```
### Launch arguments
- `bus` — desired communication bus with CANdle device, possible values: `USB` and `SPI` (default: `USB`).
- `data_rate` — data rate of CAN network, possible values: `1M`, `2M`, `5M` and `8M` (default: `1M`).
- `default_qos` — ROS message quality of service for node's publishers, possible values: `Reliable` and `BestEffort` (default: `Reliable`).
Example launch command with custom arguments:
```bash
ros2 launch candle_ros2 md_node_launch.py bus:=SPI data_rate:=5M
```
## Documentation
Full CANdle ROS2 documentation:
➡️ [CANdle ROS2 nodes documentation](https://mabrobotics.github.io/MD80-x-CANdle-Documentation/CANdle_ROS2/intro.html)
MAB controllers manuals:
➡️ [MAB documentation](https://mabrobotics.github.io/MD80-x-CANdle-Documentation/intro.html)