Faulty boundary condition check in dynamic parameter update of floating point parameters
Generated by Generative AI
No response
Operating System:
Linux klaxalk 6.11.0-29-generic #29~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jun 26 14:16:59 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
ROS version or commit hash:
jazzy
RMW implementation (if applicable):
No response
RMW Configuration (if applicable):
No response
Client library (if applicable):
rclcpp
'ros2 doctor --report' output
ros2 doctor --report
NETWORK CONFIGURATION
inet : 127.0.0.1
inet4 : ['127.0.0.1']
inet6 : ['::1']
netmask : 255.0.0.0
device : lo
flags : 73<UP,LOOPBACK,RUNNING>
mtu : 65536
inet : 192.168.0.103
inet4 : ['192.168.0.103']
ether : cc:5e:f8:1f:99:6f
inet6 : ['fe80::7b3:14a6:b843:6ca7%wlp6s0']
netmask : 255.255.255.0
device : wlp6s0
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
broadcast : 192.168.0.255
inet : 100.91.78.91
inet4 : ['100.91.78.91']
inet6 : ['fd7a:115c:a1e0::5201:4e5b', 'fe80::51d9:a595:755f:8a5b%tailscale0']
netmask : 255.255.255.255
device : tailscale0
flags : 4305<MULTICAST,RUNNING,UP,NOARP,PTP>
mtu : 1280
inet : 172.20.0.1
inet4 : ['172.20.0.1']
ether : 92:6e:63:3b:84:7b
netmask : 255.255.0.0
device : br-427d95c23462
flags : 4099<UP,MULTICAST,BROADCAST>
mtu : 1500
broadcast : 172.20.255.255
inet : 172.17.0.1
inet4 : ['172.17.0.1']
ether : 4a:37:ba:17:73:c1
inet6 : ['fe80::4837:baff:fe17:73c1%docker0']
netmask : 255.255.0.0
device : docker0
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
broadcast : 172.17.255.255
inet : 172.19.0.1
inet4 : ['172.19.0.1']
ether : 5a:98:25:9b:67:97
inet6 : ['fe80::5898:25ff:fe9b:6797%br-aa912cbf29df']
netmask : 255.255.0.0
device : br-aa912cbf29df
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
broadcast : 172.19.255.255
inet : 172.18.0.1
inet4 : ['172.18.0.1']
ether : 06:c7:ed:09:16:09
inet6 : ['fe80::4c7:edff:fe09:1609%br-11af55fe2bbb']
netmask : 255.255.0.0
device : br-11af55fe2bbb
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
broadcast : 172.18.255.255
ether : ea:1b:ea:85:83:e1
inet6 : ['fe80::e81b:eaff:fe85:83e1%veth0e45e4d']
device : veth0e45e4d
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
ether : 4e:81:ef:7e:d0:ad
inet6 : ['fe80::4c81:efff:fe7e:d0ad%veth982cfda']
device : veth982cfda
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
ether : 2e:05:38:e8:7d:2c
inet6 : ['fe80::2c05:38ff:fee8:7d2c%veth853114c']
device : veth853114c
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
ether : 2a:60:fa:9c:03:57
inet6 : ['fe80::2860:faff:fe9c:357%veth721e79e']
device : veth721e79e
flags : 4163<UP,MULTICAST,RUNNING,BROADCAST>
mtu : 1500
ether : 04:7b:cb:67:9b:11
device : enx047bcb679b11
flags : 4099<UP,MULTICAST,BROADCAST>
mtu : 1500
PACKAGE VERSIONS
sub_pub_torture_test : latest=N/A, local=1.0.0
example_plugins : latest=N/A, local=1.0.0
example_plugin_manager : latest=N/A, local=1.0.0
ros2_examples : latest=N/A, local=1.0.0
ros2_lib : latest=N/A, local=1.0.0
mrs_uav_path_loader_ros2 : latest=N/A, local=0.0.0
path_loader_interfaces : latest=N/A, local=0.0.1
mrs_uav_system_full : latest=N/A, local=2.0.0
mrs_uav_system : latest=N/A, local=2.0.0
mrs_uav_core : latest=N/A, local=2.0.0
mrs_uav_trajectory_generation : latest=N/A, local=2.0.0
mrs_uav_trackers : latest=N/A, local=2.0.0
mrs_uav_state_estimators : latest=N/A, local=2.0.0
mrs_uav_px4_api : latest=N/A, local=2.0.0
mrs_uav_controllers : latest=N/A, local=2.0.0
mrs_uav_managers : latest=N/A, local=2.0.0
mrs_uav_flightforge_simulation : latest=N/A, local=2.0.0
mrs_multirotor_simulator : latest=N/A, local=2.0.0
mrs_uav_hw_api : latest=N/A, local=2.0.0
mrs_uav_autostart : latest=N/A, local=2.0.0
mrs_uav_testing : latest=N/A, local=2.0.0
mrs_uav_status : latest=N/A, local=2.0.0
mrs_uav_modules : latest=N/A, local=2.0.0
mrs_uav_deployment : latest=N/A, local=2.0.0
mrs_serial : latest=N/A, local=2.0.0
mrs_lib : latest=N/A, local=2.0.0
mrs_msgs : latest=N/A, local=2.0.0
mrs_modules_msgs : latest=N/A, local=2.0.0
tracetools_image_pipeline : latest=5.0.11, local=5.0.10
ament_cmake_export_dependencies : latest=2.5.4, local=2.5.4
ros2topic : latest=0.32.4, local=0.32.4
tf2_geometry_msgs : latest=0.36.12, local=0.36.11
ament_xmllint : latest=0.17.2, local=0.17.2
stereo_msgs : latest=5.3.6, local=5.3.6
rcl_action : latest=9.2.7, local=9.2.6
tf2_bullet : latest=0.36.12, local=0.36.11
rosbag2_storage_mcap : latest=0.26.7, local=0.26.7
rqt_py_common : latest=1.6.0, local=1.6.0
rcl_interfaces : latest=2.0.2, local=2.0.2
rmw_cyclonedds_cpp : latest=2.2.3, local=2.2.3
perception : latest=0.11.0, local=0.11.0
lifecycle_msgs : latest=2.0.2, local=2.0.2
launch_testing_ament_cmake : latest=3.4.5, local=3.4.4
rclpy : latest=7.1.4, local=7.1.4
depth_image_proc : latest=5.0.11, local=5.0.10
pcl_msgs : latest=1.0.0, local=1.0.0
image_geometry : latest=4.1.0, local=4.1.0
rosidl_generator_py : latest=0.22.1, local=0.22.1
topic_tools : latest=1.3.3, local=1.3.3
rcl_logging_interface : latest=3.1.1, local=3.1.1
ros2param : latest=0.32.4, local=0.32.4
zenoh_cpp_vendor : latest=0.2.5, local=0.2.3
rqt_service_caller : latest=1.2.1, local=1.2.1
rclcpp : latest=28.1.10, local=28.1.9
rqt_py_console : latest=1.2.2, local=1.2.2
action_tutorials_py : latest=0.33.5, local=0.33.5
qt_gui : latest=2.7.5, local=2.7.5
ament_uncrustify : latest=0.17.2, local=0.17.2
examples_rclpy_minimal_subscriber : latest=0.19.5, local=0.19.5
teleop_twist_keyboard : latest=2.4.0, local=2.4.0
gz_common_vendor : latest=0.0.8, local=0.0.8
rqt_common_plugins : latest=1.2.0, local=1.2.0
rosbag2_compression_zstd : latest=0.26.7, local=0.26.7
plotjuggler_ros : latest=2.1.2, local=2.1.2
ament_cmake_version : latest=2.5.4, local=2.5.4
ament_cmake_uncrustify : latest=0.17.2, local=0.17.2
ament_lint_cmake : latest=0.17.2, local=0.17.2
sdl2_vendor : latest=3.3.0, local=3.3.0
rqt_shell : latest=1.2.2, local=1.2.2
tf2_sensor_msgs : latest=0.36.12, local=0.36.11
qt_dotgraph : latest=2.7.5, local=2.7.5
gz_math_vendor : latest=0.0.8, local=0.0.8
ros_workspace : latest=1.0.3, local=1.0.3
gz_transport_vendor : latest=0.0.6, local=0.0.6
ament_cmake_lint_cmake : latest=0.17.2, local=0.17.2
ament_cmake_core : latest=2.5.4, local=2.5.4
rosidl_default_generators : latest=1.6.0, local=1.6.0
sensor_msgs_py : latest=5.3.6, local=5.3.6
depthimage_to_laserscan : latest=2.5.1, local=2.5.1
rqt_msg : latest=1.5.1, local=1.5.1
rosidl_typesupport_introspection_c : latest=4.6.5, local=4.6.5
mavros : latest=2.10.1, local=2.10.0
ament_cmake_gen_version_h : latest=2.5.4, local=2.5.4
gz_plugin_vendor : latest=0.0.5, local=0.0.5
ament_cmake_pytest : latest=2.5.4, local=2.5.4
ros2action : latest=0.32.4, local=0.32.4
ament_cmake_include_directories : latest=2.5.4, local=2.5.4
map_msgs : latest=2.4.1, local=2.4.1
rmw_zenoh_cpp : latest=0.2.5, local=0.2.3
stereo_image_proc : latest=5.0.11, local=5.0.10
std_srvs : latest=5.3.6, local=5.3.6
rqt_gui_py : latest=1.6.0, local=1.6.0
eigen3_cmake_module : latest=0.3.0, local=0.3.0
simulation : latest=0.11.0, local=0.11.0
gz_sensors_vendor : latest=0.0.6, local=0.0.6
kdl_parser : latest=2.11.0, local=2.11.0
launch_testing : latest=3.4.5, local=3.4.4
rclcpp_action : latest=28.1.10, local=28.1.9
rosidl_default_runtime : latest=1.6.0, local=1.6.0
rqt_image_view : latest=1.3.0, local=1.3.0
diagnostic_msgs : latest=5.3.6, local=5.3.6
rcl_logging_spdlog : latest=3.1.1, local=3.1.1
libstatistics_collector : latest=1.7.4, local=1.7.4
camera_info_manager : latest=5.1.7, local=5.1.6
rosidl_cmake : latest=4.6.5, local=4.6.5
urdf_parser_plugin : latest=2.10.0, local=2.10.0
tf2_eigen_kdl : latest=0.36.12, local=0.36.11
libyaml_vendor : latest=1.6.3, local=1.6.3
rttest : latest=0.17.1, local=0.17.1
dummy_robot_bringup : latest=0.33.5, local=0.33.5
rqt_console : latest=2.2.1, local=2.2.1
rqt_publisher : latest=1.7.2, local=1.7.2
examples_rclcpp_multithreaded_executor : latest=0.19.5, local=0.19.5
tf2_msgs : latest=0.36.12, local=0.36.11
ament_cmake_libraries : latest=2.5.4, local=2.5.4
action_tutorials_cpp : latest=0.33.5, local=0.33.5
rmw_dds_common : latest=3.1.0, local=3.1.0
image_view : latest=5.0.11, local=5.0.10
ament_cmake_xmllint : latest=0.17.2, local=0.17.2
rpyutils : latest=0.4.1, local=0.4.1
rosidl_adapter : latest=4.6.5, local=4.6.5
pendulum_control : latest=0.33.5, local=0.33.5
zstd_vendor : latest=0.26.7, local=0.26.7
ros_gz_bridge : latest=1.0.16, local=1.0.12
examples_rclcpp_minimal_action_client : latest=0.19.5, local=0.19.5
rqt_action : latest=2.2.0, local=2.2.0
geometry_msgs : latest=5.3.6, local=5.3.6
intra_process_demo : latest=0.33.5, local=0.33.5
rosidl_core_runtime : latest=0.2.0, local=0.2.0
ament_flake8 : latest=0.17.2, local=0.17.2
launch_testing_ros : latest=0.26.8, local=0.26.7
desktop : latest=0.11.0, local=0.11.0
ament_index_python : latest=1.8.1, local=1.8.1
dummy_sensors : latest=0.33.5, local=0.33.5
point_cloud_transport : latest=4.0.4, local=4.0.4
examples_rclpy_executors : latest=0.19.5, local=0.19.5
tf2_eigen : latest=0.36.12, local=0.36.11
nlopt : latest=N/A, local=2.4.2
rcpputils : latest=2.11.2, local=2.11.2
ament_cmake_python : latest=2.5.4, local=2.5.4
zstd_image_transport : latest=4.0.4, local=4.0.4
pluginlib : latest=5.4.2, local=5.4.2
domain_coordinator : latest=0.12.0, local=0.12.0
sensor_msgs : latest=5.3.6, local=5.3.6
ros2bag : latest=0.26.7, local=0.26.7
ros_gz_image : latest=1.0.16, local=1.0.12
yaml_cpp_vendor : latest=9.0.1, local=9.0.1
sros2 : latest=0.13.3, local=0.13.3
ros_gz_interfaces : latest=1.0.16, local=1.0.12
rosidl_parser : latest=4.6.5, local=4.6.5
tango_icons_vendor : latest=0.3.0, local=0.3.0
image_transport_plugins : latest=4.0.4, local=4.0.4
ament_cmake_pep257 : latest=0.17.2, local=0.17.2
ros_gz_sim_demos : latest=1.0.16, local=1.0.12
examples_rclcpp_minimal_composition : latest=0.19.5, local=0.19.5
turtlesim : latest=1.8.3, local=1.8.3
compressed_depth_image_transport : latest=4.0.4, local=4.0.4
rosidl_typesupport_c : latest=3.2.2, local=3.2.2
examples_rclcpp_minimal_action_server : latest=0.19.5, local=0.19.5
rcl_yaml_param_parser : latest=9.2.7, local=9.2.6
ament_cmake_export_link_flags : latest=2.5.4, local=2.5.4
image_transport : latest=5.1.7, local=5.1.6
ament_cmake_flake8 : latest=0.17.2, local=0.17.2
logging_demo : latest=0.33.5, local=0.33.5
example_interfaces : latest=0.12.0, local=0.12.0
rqt_tf_tree : latest=1.0.5, local=1.0.5
realsense2_camera_msgs : latest=4.55.1, local=4.55.1
desktop_full : latest=0.11.0, local=0.11.0
vision_msgs : latest=4.1.1, local=4.1.1
angles : latest=1.16.0, local=1.16.0
ros2lifecycle : latest=0.32.4, local=0.32.4
gz_msgs_vendor : latest=0.0.6, local=0.0.6
ros_environment : latest=4.2.1, local=4.2.1
ros2node : latest=0.32.4, local=0.32.4
ament_cppcheck : latest=0.17.2, local=0.17.2
composition_interfaces : latest=2.0.2, local=2.0.2
demo_nodes_cpp_native : latest=0.33.5, local=0.33.5
rosidl_generator_c : latest=4.6.5, local=4.6.5
mcap_vendor : latest=0.26.7, local=0.26.7
common_interfaces : latest=5.3.6, local=5.3.6
demo_nodes_cpp : latest=0.33.5, local=0.33.5
rmw : latest=7.3.2, local=7.3.2
rosidl_dynamic_typesupport : latest=0.1.2, local=0.1.2
ament_cmake_export_targets : latest=2.5.4, local=2.5.4
gz_fuel_tools_vendor : latest=0.0.6, local=0.0.6
vision_opencv : latest=4.1.0, local=4.1.0
rosidl_typesupport_cpp : latest=3.2.2, local=3.2.2
image_tools : latest=0.33.5, local=0.33.5
rosidl_runtime_cpp : latest=4.6.5, local=4.6.5
rosidl_pycommon : latest=4.6.5, local=4.6.5
rosbag2_transport : latest=0.26.7, local=0.26.7
ament_index_cpp : latest=1.8.1, local=1.8.1
rosgraph_msgs : latest=2.0.2, local=2.0.2
gz_dartsim_vendor : latest=0.0.3, local=0.0.3
action_tutorials_interfaces : latest=0.33.5, local=0.33.5
ros_base : latest=0.11.0, local=0.11.0
python_qt_binding : latest=2.2.1, local=2.2.1
qt_gui_py_common : latest=2.7.5, local=2.7.5
rosbag2_compression : latest=0.26.7, local=0.26.7
type_description_interfaces : latest=2.0.2, local=2.0.2
rosidl_dynamic_typesupport_fastrtps : latest=0.1.0, local=0.1.0
actuator_msgs : latest=0.0.1, local=0.0.1
ament_cmake_cppcheck : latest=0.17.2, local=0.17.2
examples_rclpy_minimal_publisher : latest=0.19.5, local=0.19.5
builtin_interfaces : latest=2.0.2, local=2.0.2
ament_cmake_export_definitions : latest=2.5.4, local=2.5.4
robot_state_publisher : latest=3.3.3, local=3.3.3
std_msgs : latest=5.3.6, local=5.3.6
ros2component : latest=0.32.4, local=0.32.4
class_loader : latest=2.7.0, local=2.7.0
ros2interface : latest=0.32.4, local=0.32.4
ament_cmake_target_dependencies : latest=2.5.4, local=2.5.4
rosidl_typesupport_interface : latest=4.6.5, local=4.6.5
ament_cmake_copyright : latest=0.17.2, local=0.17.2
tf2_py : latest=0.36.12, local=0.36.11
rmw_implementation : latest=2.15.5, local=2.15.5
ros2pkg : latest=0.32.4, local=0.32.4
launch_xml : latest=3.4.5, local=3.4.4
rmw_fastrtps_cpp : latest=8.4.2, local=8.4.2
ament_cmake_ros : latest=0.12.0, local=0.12.0
osrf_pycommon : latest=2.1.6, local=2.1.6
quality_of_service_demo_cpp : latest=0.33.5, local=0.33.5
resource_retriever : latest=3.4.4, local=3.4.4
compressed_image_transport : latest=4.0.4, local=4.0.4
rosidl_typesupport_introspection_cpp : latest=4.6.5, local=4.6.5
rosidl_cli : latest=4.6.5, local=4.6.5
image_pipeline : latest=5.0.11, local=5.0.10
rosidl_typesupport_fastrtps_cpp : latest=3.6.1, local=3.6.1
laser_filters : latest=2.0.9, local=2.0.8
laser_geometry : latest=2.7.1, local=2.7.0
nav_msgs : latest=5.3.6, local=5.3.6
rosidl_core_generators : latest=0.2.0, local=0.2.0
ros_core : latest=0.11.0, local=0.11.0
ament_cmake_export_interfaces : latest=2.5.4, local=2.5.4
rosbag2_storage : latest=0.26.7, local=0.26.7
rqt_srv : latest=1.2.2, local=1.2.2
ament_cmake_test : latest=2.5.4, local=2.5.4
rosidl_runtime_c : latest=4.6.5, local=4.6.5
rmw_implementation_cmake : latest=7.3.2, local=7.3.2
examples_rclcpp_minimal_subscriber : latest=0.19.5, local=0.19.5
python_orocos_kdl_vendor : latest=0.5.1, local=0.5.1
console_bridge_vendor : latest=1.7.1, local=1.7.1
rosbag2_storage_default_plugins : latest=0.26.7, local=0.26.7
rcl_lifecycle : latest=9.2.7, local=9.2.6
rosbag2_py : latest=0.26.7, local=0.26.7
rqt_gui_cpp : latest=1.6.0, local=1.6.0
ament_cpplint : latest=0.17.2, local=0.17.2
urdf : latest=2.10.0, local=2.10.0
rosidl_generator_cpp : latest=4.6.5, local=4.6.5
rviz_ogre_vendor : latest=14.1.12, local=14.1.11
shape_msgs : latest=5.3.6, local=5.3.6
theora_image_transport : latest=4.0.4, local=4.0.4
service_msgs : latest=2.0.2, local=2.0.2
image_publisher : latest=5.0.11, local=5.0.10
plotjuggler : latest=3.9.2, local=3.9.2
rosbag2_cpp : latest=0.26.7, local=0.26.7
fastrtps_cmake_module : latest=3.6.1, local=3.6.1
eigen_stl_containers : latest=1.1.0, local=1.1.0
statistics_msgs : latest=2.0.2, local=2.0.2
ament_copyright : latest=0.17.2, local=0.17.2
rosidl_runtime_py : latest=0.13.1, local=0.13.1
examples_rclcpp_minimal_publisher : latest=0.19.5, local=0.19.5
tracetools : latest=8.2.3, local=8.2.3
rmw_fastrtps_shared_cpp : latest=8.4.2, local=8.4.2
image_proc : latest=5.0.11, local=5.0.10
ament_lint_common : latest=0.17.2, local=0.17.2
rviz2 : latest=14.1.12, local=14.1.11
ros2multicast : latest=0.32.4, local=0.32.4
rviz_common : latest=14.1.12, local=14.1.11
perception_pcl : latest=2.6.2, local=2.6.2
ros2cli_common_extensions : latest=0.3.0, local=0.3.0
geographic_msgs : latest=1.0.6, local=1.0.6
gz_tools_vendor : latest=0.0.6, local=0.0.6
ament_cmake_cpplint : latest=0.17.2, local=0.17.2
tf2_kdl : latest=0.36.12, local=0.36.11
rqt_graph : latest=1.5.4, local=1.5.4
quality_of_service_demo_py : latest=0.33.5, local=0.33.5
libcurl_vendor : latest=3.4.4, local=3.4.4
launch : latest=3.4.5, local=3.4.4
ament_cmake_gtest : latest=2.5.4, local=2.5.4
ros2cli : latest=0.32.4, local=0.32.4
unique_identifier_msgs : latest=2.5.0, local=2.5.0
pcl_ros : latest=2.6.2, local=2.6.2
ros2service : latest=0.32.4, local=0.32.4
gz_ogre_next_vendor : latest=0.0.5, local=0.0.5
ament_package : latest=0.16.4, local=0.16.4
sros2_cmake : latest=0.13.3, local=0.13.3
topic_monitor : latest=0.33.5, local=0.33.5
ros2run : latest=0.32.4, local=0.32.4
rosbag2_interfaces : latest=0.26.7, local=0.26.7
rqt_bag_plugins : latest=1.5.4, local=1.5.4
tlsf_cpp : latest=0.17.1, local=0.17.1
python_cmake_module : latest=0.11.1, local=0.11.1
gz_rendering_vendor : latest=0.0.6, local=0.0.6
pybind11_vendor : latest=3.1.3, local=3.1.3
examples_rclcpp_minimal_client : latest=0.19.5, local=0.19.5
mavros_msgs : latest=2.10.1, local=2.10.0
gz_gui_vendor : latest=0.0.5, local=0.0.5
ament_cmake : latest=2.5.4, local=2.5.4
pendulum_msgs : latest=0.33.5, local=0.33.5
rclcpp_components : latest=28.1.10, local=28.1.9
tf2 : latest=0.36.12, local=0.36.11
ament_cmake_export_include_directories : latest=2.5.4, local=2.5.4
tlsf : latest=0.9.0, local=0.9.0
joy : latest=3.3.0, local=3.3.0
libmavconn : latest=2.10.1, local=2.10.0
rqt_gui : latest=1.6.0, local=1.6.0
rviz_assimp_vendor : latest=14.1.12, local=14.1.11
sdformat_urdf : latest=1.0.2, local=1.0.2
composition : latest=0.33.5, local=0.33.5
ament_lint_auto : latest=0.17.2, local=0.17.2
sqlite3_vendor : latest=0.26.7, local=0.26.7
rosidl_typesupport_fastrtps_c : latest=3.6.1, local=3.6.1
visualization_msgs : latest=5.3.6, local=5.3.6
rosidl_generator_type_description : latest=4.6.5, local=4.6.5
cv_bridge : latest=4.1.0, local=4.1.0
gz_utils_vendor : latest=0.0.5, local=0.0.5
launch_yaml : latest=3.4.5, local=3.4.4
rqt_reconfigure : latest=1.6.2, local=1.6.2
rqt_plot : latest=1.4.3, local=1.4.3
rqt_bag : latest=1.5.4, local=1.5.4
rviz_default_plugins : latest=14.1.12, local=14.1.11
keyboard_handler : latest=0.3.1, local=0.3.1
ament_cmake_export_libraries : latest=2.5.4, local=2.5.4
camera_calibration : latest=5.0.11, local=5.0.10
tf2_ros_py : latest=0.36.12, local=0.36.11
qt_gui_cpp : latest=2.7.5, local=2.7.5
topic_tools_interfaces : latest=1.3.3, local=1.3.3
examples_rclcpp_minimal_timer : latest=0.19.5, local=0.19.5
rosbag2_storage_sqlite3 : latest=0.26.7, local=0.26.7
examples_rclpy_minimal_action_server : latest=0.19.5, local=0.19.5
rosbag2 : latest=0.26.7, local=0.26.7
gz_cmake_vendor : latest=0.0.10, local=0.0.9
tf2_ros : latest=0.36.12, local=0.36.11
ros2doctor : latest=0.32.4, local=0.32.4
demo_nodes_py : latest=0.33.5, local=0.33.5
image_rotate : latest=5.0.11, local=5.0.10
examples_rclpy_minimal_action_client : latest=0.19.5, local=0.19.5
ament_lint : latest=0.17.2, local=0.17.2
teleop_twist_joy : latest=2.6.3, local=2.6.3
rcutils : latest=6.7.2, local=6.7.2
interactive_markers : latest=2.5.4, local=2.5.4
rclcpp_lifecycle : latest=28.1.10, local=28.1.9
ros_gz_sim : latest=1.0.16, local=1.0.12
tf2_tools : latest=0.36.12, local=0.36.11
realsense2_camera : latest=4.55.1, local=4.55.1
gz_physics_vendor : latest=0.0.6, local=0.0.6
uncrustify_vendor : latest=3.0.1, local=3.0.1
xacro : latest=2.0.13, local=2.0.13
rviz_rendering : latest=14.1.12, local=14.1.11
lifecycle : latest=0.33.5, local=0.33.5
filters : latest=2.2.1, local=2.2.1
pcl_conversions : latest=2.6.2, local=2.6.2
liblz4_vendor : latest=0.26.7, local=0.26.7
examples_rclpy_minimal_client : latest=0.19.5, local=0.19.5
rqt_topic : latest=1.7.3, local=1.7.3
gps_msgs : latest=2.1.1, local=2.0.4
actionlib_msgs : latest=5.3.6, local=5.3.6
ament_cmake_gmock : latest=2.5.4, local=2.5.4
ament_pep257 : latest=0.17.2, local=0.17.2
diagnostic_updater : latest=4.2.6, local=4.2.4
image_common : latest=5.1.7, local=5.1.6
examples_rclpy_minimal_service : latest=0.19.5, local=0.19.5
examples_rclcpp_minimal_service : latest=0.19.5, local=0.19.5
dummy_map_server : latest=0.33.5, local=0.33.5
tinyxml2_vendor : latest=0.9.1, local=0.9.1
mrs_mpc_solvers : latest=N/A, local=1.0.0
launch_ros : latest=0.26.8, local=0.26.7
sdformat_vendor : latest=0.0.9, local=0.0.9
gz_sim_vendor : latest=0.0.8, local=0.0.8
rcl : latest=9.2.7, local=9.2.6
action_msgs : latest=2.0.2, local=2.0.2
spdlog_vendor : latest=1.6.1, local=1.6.1
message_filters : latest=4.11.6, local=4.11.6
ros2launch : latest=0.26.8, local=0.26.7
ament_cmake_auto : latest=2.5.4, local=2.5.4
orocos_kdl_vendor : latest=0.5.1, local=0.5.1
trajectory_msgs : latest=5.3.6, local=5.3.6
camera_calibration_parsers : latest=5.1.7, local=5.1.6
geometry2 : latest=0.36.12, local=0.36.11
PLATFORM INFORMATION
system : Linux
platform info : Linux-6.11.0-29-generic-x86_64-with-glibc2.39
release : 6.11.0-29-generic
processor : x86_64
QOS COMPATIBILITY LIST
compatibility status : No publisher/subscriber pairs found
RMW MIDDLEWARE
middleware name : rmw_fastrtps_cpp
ROS 2 INFORMATION
distribution name : jazzy
distribution type : ros2
distribution status : active
release platforms : {'debian': ['bookworm'], 'rhel': ['9'], 'ubuntu': ['noble']}
TOPIC LIST
topic : none
publisher count : 0
subscriber count : 0
Steps to reproduce issue
- Set the range to a floating point parameter to, e.g., <0.0, 100.0>
- Call the service for setting the parameter to
-inforinf. - The parameter is set correctly.
Expected behavior
- The parameter value should be rejected because it falls out of the range.
Actual behavior
Before the range check, the value of the parameter is first checked against the boundary condition (here) using the function __are_doubles_equal:
https://github.com/ros2/rclcpp/blob/83e0ec56b71b123d055abc2f82d28d25b5734fd4/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L181
bool
__are_doubles_equal(double x, double y, double ulp = 100.0)
{
return std::abs(x - y) <= std::numeric_limits<double>::epsilon() * std::abs(x + y) * ulp;
}
However, this function is faulty, because if any of the x and y arguments is inf, -inf or nan, the function will return true, bypassing the range check completely. This happens due to both sides of the inequality becoming inf, because anything + inf = inf. This can be seen in the example here: https://godbolt.org/z/v8EKqoGTe.
Additional information
Suggestion: handle the special values first by using the std::isfinite() check.
Thanks for the bug report, can you provide a patch and a test case for this issue ?
I don't think that adding a special check for infinite values is the best solution. I would simply remove the __are_doubles_equal check as it is plainly redundant. The function also doesn't seem to be used anywhere else, so it may be worth it to remove it altogether.
Secondly, regarding the nan special value - that actually passes not due to the __are_doubles_equal, but due to how the next check on line 231 (here) is formulated. Any comparison with a nan returns false, so the condition checking whether the value is outside the boundaries is always false for a nan.
I suggest the following:
- Remove the
__are_doubles_equalcheck from the__check_parameter_value_in_rangefunction. - Remove the
__are_doubles_equalfunction definition and implementation as it will then be unused. - Reformulate the condition on line 231 as
const bool within_range = (v >= integer_range.from_value && v <= integer_range.to_value);
if (!within_range) {
result.successful = false;
result.reason = format_range_reason(descriptor.name, "integer");
return result;
}
which is in my opinion more clear, it correctly handles also the minimal and maximal values, and it correctly handles nan value.
I made a patch and a test case (see https://github.com/ros2/rclcpp/pull/2904).