Skip to content

Progressively slowing down FPS #121

@ruthvik92

Description

@ruthvik92

** OS : Ubuntu 22.04 **
** ROS2: Humble **
** Camera: iDS GV 5260CP C-HQ Rev2 **
** ENSENSO_SDK_VERSION=3.5.1419 **

I am trying to see what's the maximum FPS that I can get from this camera. When plugged into ids_peak or nxView I see that my setup is able to achieve 40FPS. So, I modified your request_data_mono python script to continuously publish in a while loop. FPS starts at about 10 to 12 and dips down to 3 after some time. Looks like the time to complete the goal is increasing..

Is this the expected behaviour ?

#!/usr/bin/env python3
import sys
import time

import ensenso_camera.ros2 as ros2py

RequestDataMono = ros2py.import_action("ensenso_camera_msgs", "RequestDataMono")


def _main(node_name):
    node = ros2py.create_node(node_name, args=sys.argv)

    namespace = ros2py.get_param(node, "namespace", "")
    timeout = ros2py.get_param(node, "timeout", 60)

    goal = RequestDataMono.Goal()
    goal.parameter_set = ros2py.get_param(node, "parameter_set", "")

    goal.request_raw_images = ros2py.get_param(node, "raw_images", True)
    goal.request_rectified_images = ros2py.get_param(node, "rectified_images", True)

    goal.publish_results = True

    request_data_client_name = "request_data" if namespace == "" else namespace.rstrip("/") + "/request_data"
    request_data_client = ros2py.create_action_client(node, request_data_client_name, RequestDataMono)

    ros2py.wait_for_server(node, request_data_client, timeout_sec=timeout)

    while True:
        t1 = time.time()
        response = ros2py.send_action_goal(node, request_data_client, goal)
        if not response.successful():
            node.get_logger().warn("Action was not successful.")
        else:
            result = response.get_result()
            node.get_logger().info("Time:{}".format(time.time() - t1))
            if result.error.code != 0:
                node.get_logger().error(ros2py.format_error(result.error))


def main():
    ros2py.wrap_main_function(_main, "ensenso_camera_request_data_mono")


if __name__ == "__main__":
    main()

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions