-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
** 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