|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged netft_driver at Robotics Stack Exchange
|
netft_driver package from ros-netft reponetft_driver |
ROS Distro
|
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
Additional Links
Maintainers
- Xudong Han
Authors
- Xudong Han
ROS Net F/T Driver
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_controlSensorInterfacefor 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 for package netft_driver
0.3.1 (2026-07-23)
- Update the private
netft-cppcore 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-cppv0.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=falsemanual 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.1address. - 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_VERSIONto CMake. - Declare the
ros_environmentbuild dependency and validate ROS 1 and ROS 2 configuration withROS_VERSIONunset. - 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/NetFTHardwareInterfaceros2_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_nodeandnetft_checkexecutables 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
Package Dependencies
System Dependencies
Dependant Packages
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]