Thorlabs Precision Table

General Description

The module supports Thorlabs' KDC101 K-CubeĀ® Brushed DC Motor Controller, which provides local and computerized control of a single motor axis using ROS2.

Resource Link
Source code https://gitc.piap.lukasiewicz.gov.pl/ai-prism/wp3/ros-framework/base_hardware/thorlabs_kmts50e_m.git
Demo Video https://gitc.piap.lukasiewicz.gov.pl/ai-prism/reference-architecture/docs/guides/video/vigo_pilot.mp4

Contact

The following table includes contact information of the main developers in charge of the component:

Name email Organisation
Example Name jakub.bartkiewicz@piap.lukasiewicz.gov.pl logo image

License

TBD

Technical Foundations

To run project it is neccessary to set up udev rules:

To add udev rules for table drivers execute command:

echo 'SUBSYSTEM=="tty", ACTION=="add", DRIVERS=="?*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="faf0", ATTRS{serial}=="<kdc101-serial-number>", KERNEL=="ttyUSB*",  SYMLINK+="axis-y", MODE="0666"
SUBSYSTEM=="tty", ACTION=="add", DRIVERS=="?*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="faf0", ATTRS{serial}=="<kdc101-serial-number>", KERNEL=="ttyUSB*",  SYMLINK+="axis-x", MODE="0666"' | sudo tee /etc/udev/rules.d/90-kdc101.rules

If neccessary reload udev rules:

udevadm control --reload

Installation

Create workspace:

mkdir -p ~/ai_prism/src

Clone repository:

cd ~/ai_prism/src;
git clone ssh://git@gitc.piap.lukasiewicz.gov.pl:777/ai-prism/wp3/ros-framework/base_hardware/thorlabs_kmts50e_m.git

Build image:

NOTE: There is assumption user has set up ssh keys to the repository

cd ~/ai_prism/src/thorlabs_kmts50e_m/docker;
docker compose build

Run module:

cd ~/ai_prism/src/thorlabs_kmts50e_m/docker;
docker compose up -d

Run new terminal in container:

cd ~/ai_prism/src/precision-table-ros2-driver/docker;
docker exec -it precision-table-ros2-driver bash

Documentation

Getting started with Thorlabs KDC101 controllers using pyLabLib

Integrated and Open Source Components

Source code of pyLabLib

License

GPL-3.0 license

How to install

TBD

How to use

Described above