netft_driver is a native ROS driver for ATI Ethernet Net F/T and Ethernet
Axia force/torque sensors. It supports a standalone ROS 1 or ROS 2 node and a
ROS 2 ros2_control sensor hardware plugin.
- Publishes calibrated
geometry_msgs/WrenchStampeddata in N and Nm. - Reports connection, sequence, receive-rate, and device-status diagnostics.
- Provides an explicit software-bias service.
- Integrates with the standard ROS 2 force-torque sensor broadcaster.
- Carries a reviewed private snapshot of the
netft-cppacquisition core.
| 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.
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.bashsource /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.bashSee the installation guide for prerequisites and package availability.
ATI RDT permits one UDP client. Stop other RDT clients before starting the
driver. The examples use 192.168.1.1, ATI's factory-default static address;
replace it with the address assigned to your sensor.
ROS 2:
ros2 launch netft_driver netft.launch.py sensor_ip:=192.168.1.1
ros2 topic echo --once /netft/wrenchROS 1:
roslaunch netft_driver netft.launch sensor_ip:=192.168.1.1
rostopic echo -n 1 /netft/wrenchThe default bias service is /netft/bias. Bias changes the measurement zero;
call it only when the sensor and connected mechanism are in a safe state.
The plugin class is netft_driver/NetFTHardwareInterface. Include the installed
Xacro macro in the robot description managed by your controller manager:
<xacro:include filename="$(find netft_driver)/urdf/netft.ros2_control.xacro"/>
<xacro:netft_ros2_control
name="wrist_netft_hardware"
sensor_name="wrist_ft"
sensor_ip="192.168.1.1"
sensor_port="49152"
receive_timeout="0.1"
activation_timeout="2.0"/>Configure and spawn force_torque_sensor_broadcaster through the robot's
existing controller manager. The repository also installs
netft_ros2_control.launch.py as a minimal single-sensor example.
- Standalone ROS driver tutorial
ros2_controltutorial- Standalone interface reference
ros2_controlreference- Diagnostics and lifecycle
- Security and safety
Automatic sensor configuration is enabled by default. Validate the discovered calibration, units, status, freshness, and finite values before using wrench data for control. This driver is not a safety-rated control path.
See CONTRIBUTING.md for development environments, tests, hardware authorization, and native-core synchronization. Report security issues through SECURITY.md.
The repository is licensed under Apache-2.0. The private
netft-cpp snapshot retains its upstream license at
src/core/LICENSE.