diff --git a/ros2launch_security_examples/CMakeLists.txt b/ros2launch_security_examples/CMakeLists.txt
index 1a804dc..e1b5136 100644
--- a/ros2launch_security_examples/CMakeLists.txt
+++ b/ros2launch_security_examples/CMakeLists.txt
@@ -21,10 +21,7 @@ rclcpp_components_register_node(fake_imu_library
PLUGIN "ros2launch_security_examples::FakeImu"
EXECUTABLE fake_imu
)
-# TODO(wjwwood): go back to organizing these into a nodl folder when this is fixed:
-# https://github.com/ubuntu-robotics/nodl/issues/41
-# nodl_export_node_description_file(nodl/fake_imu.nodl.xml)
-nodl_export_node_description_file(fake_imu.nodl.xml)
+ament_nodl_register(fake_imu FILE nodl/fake_imu.nodl.yaml)
add_library(imu_sink_library SHARED src/imu_sink.cpp)
ament_target_dependencies(imu_sink_library rclcpp rclcpp_components sensor_msgs example_interfaces)
@@ -32,10 +29,7 @@ rclcpp_components_register_node(imu_sink_library
PLUGIN "ros2launch_security_examples::ImuSink"
EXECUTABLE imu_sink
)
-# TODO(wjwwood): go back to organizing these into a nodl folder when this is fixed:
-# https://github.com/ubuntu-robotics/nodl/issues/41
-# nodl_export_node_description_file(nodl/imu_sink.nodl.xml)
-nodl_export_node_description_file(imu_sink.nodl.xml)
+ament_nodl_register(imu_sink FILE nodl/imu_sink.nodl.yaml)
install(
TARGETS
diff --git a/ros2launch_security_examples/fake_imu.nodl.xml b/ros2launch_security_examples/fake_imu.nodl.xml
deleted file mode 100644
index 7d1eb69..0000000
--- a/ros2launch_security_examples/fake_imu.nodl.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/ros2launch_security_examples/imu_sink.nodl.xml b/ros2launch_security_examples/imu_sink.nodl.xml
deleted file mode 100644
index 47cb1b5..0000000
--- a/ros2launch_security_examples/imu_sink.nodl.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/ros2launch_security_examples/nodl/fake_imu.nodl.yaml b/ros2launch_security_examples/nodl/fake_imu.nodl.yaml
new file mode 100644
index 0000000..27fd38c
--- /dev/null
+++ b/ros2launch_security_examples/nodl/fake_imu.nodl.yaml
@@ -0,0 +1,14 @@
+---
+nodl_version: 2
+description: Fake IMU node that periodically publishes synthetic IMU messages.
+publishers:
+ - name: imu
+ type: sensor_msgs/msg/Imu
+ qos:
+ history: KEEP_LAST
+ depth: 10
+ reliability: RELIABLE
+ durability: VOLATILE
+service_servers:
+ - name: reset_imu
+ type: example_interfaces/srv/Trigger
diff --git a/ros2launch_security_examples/nodl/imu_sink.nodl.yaml b/ros2launch_security_examples/nodl/imu_sink.nodl.yaml
new file mode 100644
index 0000000..a7058b0
--- /dev/null
+++ b/ros2launch_security_examples/nodl/imu_sink.nodl.yaml
@@ -0,0 +1,14 @@
+---
+nodl_version: 2
+description: Sink node that subscribes to the fake IMU messages and can reset the IMU.
+subscriptions:
+ - name: imu
+ type: sensor_msgs/msg/Imu
+ qos:
+ history: KEEP_LAST
+ depth: 10
+ reliability: RELIABLE
+ durability: VOLATILE
+service_clients:
+ - name: reset_imu
+ type: example_interfaces/srv/Trigger