No version for distro humble showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro jazzy showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro kilted showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro lyrical showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro ardent showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro bouncy showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro crystal showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro eloquent showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro dashing showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro galactic showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro foxy showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro iron showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro lunar showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro jade showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro indigo showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro hydro showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro kinetic showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro melodic showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange

No version for distro noetic showing rolling. Known supported distros are highlighted in the buttons above.
Package symbol

netft_driver package from ros-netft repo

netft_driver

ROS Distro
rolling

Package Summary

Version 0.3.1
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/netft/ros-netft.git
VCS Type git
VCS Version main
Last Updated 2026-07-23
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Native ROS 1, ROS 2, and ros2_control driver for ATI Net F/T RDT sensors.

Additional Links

Maintainers

  • Xudong Han

Authors

  • Xudong Han

ROS Net F/T Driver

CI Codecov ROS License: Apache-2.0

netft_driver acquires force and torque data from ATI Ethernet Net F/T and Ethernet Axia sensors over the UDP Raw Data Transfer (RDT) protocol. A native C++17 core supports both a standalone ROS node and a ros2_control sensor hardware plugin.

  • Native ROS 1 and ROS 2 standalone driver with wrench, diagnostics, and bias interfaces
  • ros2_control SensorInterface for the standard force-torque broadcaster and controller integrations
  • Sequence, receive-rate, device-status, timeout, and reconnect diagnostics

Supported ROS distributions

ROS distribution Standalone driver ros2_control plugin Support policy
ROS 2 Lyrical Yes Yes Supported
ROS 2 Kilted Yes Yes Supported
ROS 2 Jazzy Yes Yes Supported
ROS 2 Humble Yes Yes Compatibility
ROS 2 Rolling Yes Yes Development
ROS 1 Noetic* Yes N/A Legacy source support

* ROS 1 Noetic is end-of-life and supported from source only.

Installation

ROS 2 source installation

Replace lyrical with another supported ROS 2 distribution when required.

source /opt/ros/lyrical/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select netft_driver
source install/setup.bash

ROS 1 Noetic legacy source installation

Refresh rosdep with EOL distribution metadata enabled before resolving Noetic dependencies.

source /opt/ros/noetic/setup.bash
mkdir -p ~/netft_ws/src
git clone https://github.com/netft/ros-netft.git \
  ~/netft_ws/src/netft_driver
cd ~/netft_ws
rosdep update --include-eol-distros
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bash

Quick start

ATI RDT permits one UDP client. Stop the ATI Java demo and every other RDT client before starting this driver.

The examples use ATI’s factory-default static address, 192.168.1.1. A sensor configured for DHCP uses its network-assigned address when available and falls back to its static settings when DHCP is unavailable. Replace the example address with the address currently assigned to your sensor.

Standalone driver

Launch ROS 2:

ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1 sensor_port:=49152
ros2 topic echo --once /netft/wrench
ros2 topic echo --once /diagnostics

Launch ROS 1:

roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1 sensor_port:=49152
rostopic echo -n 1 /netft/wrench
rostopic echo -n 1 /diagnostics

Run a bounded, non-biasing endpoint check without starting a ROS graph:

# ROS 2
ros2 run netft_driver netft_check --host 192.168.1.1 --duration 5

# ROS 1
rosrun netft_driver netft_check --host 192.168.1.1 --duration 5

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package netft_driver

0.3.1 (2026-07-23)

  • Update the private netft-cpp core snapshot to v0.1.3 so repeated signal interruptions cannot extend the configured UDP receive timeout.

0.3.0 (2026-07-22)

  • Add a private netft-cpp v0.1.2 core snapshot and remove the duplicate original runtime.
  • Read sensor-reported calibration by default and convert its native force and torque units to N and Nm.
  • Add the explicit use_sensor_calibration=false manual override, with counts/N and counts/Nm inputs.
  • Add HTTP configuration port and timeout parameters for sensor calibration discovery.
  • Support Noetic's GCC 9 standard library with an Apache-2.0 XML parser compatibility translation unit.
  • Keep the ros2_control plugin ABI private by hiding core and implementation symbols.
  • License the complete repository under Apache-2.0, matching the upstream core.

0.2.2 (2026-07-22)

  • Replace the project-specific sensor address in defaults and examples with ATI's factory-default 192.168.1.1 address.
  • Keep tests focused on executable and machine-readable contracts instead of human-facing documentation, help, error, log, and diagnostic wording.
  • Normalize generated release notes and remove the obsolete source-only availability notice.
  • Contributors: Xudong Han

0.2.1 (2026-07-22)

  • Fix ROS version detection when isolated build environments do not expose ROS_VERSION to CMake.
  • Declare the ros_environment build dependency and validate ROS 1 and ROS 2 configuration with ROS_VERSION unset.
  • Increase the ros2_control smoke-test timeout margin so transient CI scheduler stalls do not fault the healthy sensor in the two-sensor isolation scenario.
  • Contributors: Xudong Han

0.2.0 (2026-07-21)

  • Replace the sensor runtime with one ROS-neutral C++17 transport, protocol, status, and recovery core.
  • Add the netft_driver/NetFTHardwareInterface ros2_control sensor plugin, six standard force-torque state interfaces, reusable Xacro, and broadcaster configuration.
  • Add fail-stop fault handling, lifecycle recovery, instance-local diagnostics and software bias, and multi-sensor isolation.
  • Install native netft_node and netft_check executables for ROS 1 and ROS 2 while preserving the standalone ROS interfaces.
  • Validate native builds and loopback integration for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling.
  • Contributors: Xudong Han

0.1.0 (2026-07-19)

  • Initial public release.
  • Add one ROS 1 and ROS 2 source package for ATI Ethernet Net F/T RDT sensors.
  • Add reconnect, diagnostics, software bias, loopback integration tests, and a bounded non-biasing hardware check.
  • Validate source builds for Noetic, Humble, Jazzy, Kilted, Lyrical, and Rolling in locked maintainer environments.
  • Contributors: Xudong Han

Launch files

  • launch/netft.launch
      • sensor_ip [default: 192.168.1.1]
      • sensor_port [default: 49152]
      • http_port [default: 80]
      • use_sensor_calibration [default: true]
      • configuration_connect_timeout [default: 0.5]
      • configuration_timeout [default: 1.0]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged netft_driver at Robotics Stack Exchange