This repository contains a ROS2 driver for reading data from the Six Axis Force/Torque Sensor KWR75 Series integrated with ros2_control.
Currently tested on Ubuntu 22.04 and ROS2 Humble only.
-
Source ROS2 Humble:
source /opt/ros/humble/setup.bash -
Clone the repository into your ROS2 workspace:
cd /path/to/your_ros2_ws/src git clone -b humble https://github.com/ian-chuang/kwr75_force_sensor_ros2.git -
Install dependencies using rosdep:
rosdep install -i --from-path . --rosdistro humble -y -
Build the package:
colcon build
-
Source the setup files:
source /path/to/your_ros2_ws/install/local_setup.bash
-
Find the port that the sensor is currently binding to, e.g.,
ttyUSB0. -
Run the following command to obtain the serial number:
udevadm info --name=/dev/ttyUSB0 --attribute-walk | grep serialUse the first serial number that shows up; the format should look similar to
FT6S4DSP. -
Edit the udev rules file:
sudo nano /etc/udev/rules.d/99-kwr75-force-sensor.rules
Add the following line, replacing
<serial number here>with your sensor's serial number:SUBSYSTEM=="tty", ATTRS{serial}=="<serial number here>", ENV{ID_MM_DEVICE_IGNORE}="1", ATTR{device/latency_timer}="1", SYMLINK+="robot/kwr75_force_sensor"
-
Apply the changes:
sudo udevadm control --reload && sudo udevadm trigger
Launch the driver with the following command:
ros2 launch kwr75_force_sensor_ros2 kwr75_control.launch.py com_port:=/dev/robot/kwr75_force_sensorTo view the URDF, use:
ros2 launch kwr75_force_sensor_ros2 view_kwr75.launch.pyThis driver utilizes the serial_driver package from ros-drivers to interface with the sensor via serial communication. The code follows the datasheet provided here. It starts by sending the start command 0x48 AA 0D 0A, which commands the sensor to send data at 1 kHz. Then, it starts a thread to continuously read data from the sensor and convert it into force-torque values as specified in the datasheet.