Skip to content

Faulty boundary condition check in dynamic parameter update of floating point parameters #2898

Closed

Description

@klaxalk

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

  1. Set the range to a floating point parameter to, e.g., <0.0, 100.0>
  2. Call the service for setting the parameter to -inf or inf.
  3. The parameter is set correctly.

Expected behavior

  1. 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:

__are_doubles_equal(double x, double y, double ulp = 100.0)

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.

Activity

  1. jmachowinski commented on Jul 9, 2025

    @jmachowinski
    Collaborator

    Thanks for the bug report, can you provide a patch and a test case for this issue ?

  2. matemat13 commented on Jul 9, 2025

    @matemat13

    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:

    1. Remove the __are_doubles_equal check from the __check_parameter_value_in_range function.
    2. Remove the __are_doubles_equal function definition and implementation as it will then be unused.
    3. 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.

  3. matemat13 commented on Jul 14, 2025

    @matemat13

    I made a patch and a test case (see #2904).

  4. added 9 commits that reference this issue on May 9, 2026
    3877c0e
    54f6191
    22703bb
    cade3a7
    8c33957
    2682dd1
    a074718
    8885c22
    cead833
  5. 18 remaining items

  6. added 4 commits that reference this issue on May 13, 2026
    1d86a12
    d173040
    0bdfeb5
    0c1033e
  7. added 5 commits that reference this issue on May 22, 2026
    5915e98
    afdc068
    c95441f
    5c9dcb2
    e31ca21
  8. added a commit that references this issue on May 28, 2026
    fa8478f
  9. added 2 commits that reference this issue on May 28, 2026
    d43ca12
    557c8d7
  10. added a commit that references this issue on Jun 5, 2026
    2e67977
  11. added a commit that references this issue on Jul 15, 2026
    2732751
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions