Repository Summary
Checkout URI | https://github.com/analogdevicesinc/adi_tmc_coe.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2025-01-28 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
adi_tmc_coe | 1.0.2 |
README
adi_tmc_coe |
---|
Official ROS Driver for Trinamic Motor Controllers (TMC) that uses CANopen-over-etherCAT(CoE) protocol. |
Background
- Supported TMC boards: TMCM-1461-CoE
- Supported communication interface and interface driver: CANopen-over-etherCAT (SOEM)
- Supported ROS and OS distro: Noetic (Ubuntu 20.04)
- Supported platform: Intel x86 64-bit (amd64)
- Supported setup: Single/Multiple TMC in Single ECAT interface (namespace-managed)
:memo: Note: Although officially supported TMC boards are only the abovementioned, all market-ready TMCs with YAMLs in this repository are also expected to work and can be tried and tested by the users. Contact the Developers for any issues encountered.
Hardware
For the tested TMCM-1461-CoE setup, the following are used:
- 1 x TMCM-1461-CoE
- 1 x External 24V power supply
- 1 x USB to LAN ethernet adapter
Also the following:
- 1 x 4pin female M8-RJ45 etherCAT cable
- 1 x 4 pin male M8 power supply cable
The image below shows the connection diagram of the setup (with labels):
The image below shows the actual setup used (for reference):
Software
Software Architecture
Software Dependencies
Assumptions before building this package:
- Installed ROS Noetic. If not, follow these steps.
- Setup catkin workspace (with workspace folder named as “catkin_ws”). If not, follow these steps.
Packages installed on rosdep (See Build)
- ros-noetic-ethercat-grant - accessing network interface, including Ethernet interfaces, often requires root privilege for security reasons. ethercat_grant allows the node to run without root privilege.
- ros-noetic-soem - an EtherCAT master library.
Clone
In the website:
- Make sure that the branch dropdown is set to “noetic”.
- Click the “Clone” or “Code” button, then copy the SSH or HTTPS link (eg, “*.git”).
In a terminal, do the following:
$ cd ~/catkin_ws/src
$ git clone <copied SSH o HTTPS link here> adi_tmc_coe #clones repo to "adi_tmc_coe" directory name
Note: If you have previously cloned and built v1.0.0 of this package, additionally do the following for clean-up:
$ cd ~/catkin_ws/src/adi_tmc_coe
$ git pull
$ rm -rf dependencies/ #removes dependencies/ directory as soem will be installed through rosdep install in newer versions
Build
Do proper exports first:
$ source /opt/ros/<ROS version>/setup.bash
Where:
- “ROS version” is the user’s actual ROS version
Then, install all required dependencies (See SoftwareDependencies) using rosdep:
$ rosdep init
$ rosdep update
$ rosdep install --from-paths src -y --ignore-src
Then:
$ cd ~/catkin_ws/
$ catkin_make clean
$ catkin_make
$ source devel/setup.bash
Pre-Launch (One-time per setup)
Not all Trinamic modules are on TMCL_IDE specially CoE due to different interface used. Check module first for other communication protocol than CoE (UART, USB or CAN). Proceed to next steps if module is available in TMCL_IDE.
:memo: Note: Different communication protocol might need different cable to communicate with TMCL_IDE (e.g. UART - USB to TTL adapter, USB - TypeC/TypeB/Micro, CAN - PCAN-USB adapter).
If it’s the first time to use the set of motors for the TMC, it is required to calibrate and tune the PID settings of the motors first.
Do the calibrations/tuning by downloading and using TMCL-IDE.
BLDC Motors
File truncated at 100 lines see the full file