mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-04 03:57:46 +08:00
chore: add count fps
This commit is contained in:
@@ -52,18 +52,18 @@ def load_parameters(context, args):
|
|||||||
def generate_launch_description():
|
def generate_launch_description():
|
||||||
args = [
|
args = [
|
||||||
DeclareLaunchArgument('camera_name', default_value='camera'),
|
DeclareLaunchArgument('camera_name', default_value='camera'),
|
||||||
DeclareLaunchArgument('depth_registration', default_value='false'),
|
DeclareLaunchArgument('depth_registration', default_value='true'),
|
||||||
DeclareLaunchArgument('serial_number', default_value=''),
|
DeclareLaunchArgument('serial_number', default_value=''),
|
||||||
DeclareLaunchArgument('usb_port', default_value=''),
|
DeclareLaunchArgument('usb_port', default_value=''),
|
||||||
DeclareLaunchArgument('device_num', default_value='1'),
|
DeclareLaunchArgument('device_num', default_value='1'),
|
||||||
DeclareLaunchArgument('point_cloud_qos', default_value='default'),
|
DeclareLaunchArgument('point_cloud_qos', default_value='default'),
|
||||||
DeclareLaunchArgument('enable_point_cloud', default_value='true'),
|
DeclareLaunchArgument('enable_point_cloud', default_value='false'),
|
||||||
DeclareLaunchArgument('enable_colored_point_cloud', default_value='false'),
|
DeclareLaunchArgument('enable_colored_point_cloud', default_value='true'),
|
||||||
DeclareLaunchArgument('connection_delay', default_value='10'),
|
DeclareLaunchArgument('connection_delay', default_value='10'),
|
||||||
DeclareLaunchArgument('color_width', default_value='0'),
|
DeclareLaunchArgument('color_width', default_value='1280'),
|
||||||
DeclareLaunchArgument('color_height', default_value='0'),
|
DeclareLaunchArgument('color_height', default_value='800'),
|
||||||
DeclareLaunchArgument('color_fps', default_value='0'),
|
DeclareLaunchArgument('color_fps', default_value='30'),
|
||||||
DeclareLaunchArgument('color_format', default_value='ANY'),
|
DeclareLaunchArgument('color_format', default_value='YUYV'),
|
||||||
DeclareLaunchArgument('enable_color', default_value='true'),
|
DeclareLaunchArgument('enable_color', default_value='true'),
|
||||||
DeclareLaunchArgument('color_qos', default_value='default'),
|
DeclareLaunchArgument('color_qos', default_value='default'),
|
||||||
DeclareLaunchArgument('color_camera_info_qos', default_value='default'),
|
DeclareLaunchArgument('color_camera_info_qos', default_value='default'),
|
||||||
@@ -72,10 +72,10 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('color_gain', default_value='-1'),
|
DeclareLaunchArgument('color_gain', default_value='-1'),
|
||||||
DeclareLaunchArgument('enable_color_auto_white_balance', default_value='true'),
|
DeclareLaunchArgument('enable_color_auto_white_balance', default_value='true'),
|
||||||
DeclareLaunchArgument('color_white_balance', default_value='-1'),
|
DeclareLaunchArgument('color_white_balance', default_value='-1'),
|
||||||
DeclareLaunchArgument('depth_width', default_value='0'),
|
DeclareLaunchArgument('depth_width', default_value='1280'),
|
||||||
DeclareLaunchArgument('depth_height', default_value='0'),
|
DeclareLaunchArgument('depth_height', default_value='800'),
|
||||||
DeclareLaunchArgument('depth_fps', default_value='0'),
|
DeclareLaunchArgument('depth_fps', default_value='30'),
|
||||||
DeclareLaunchArgument('depth_format', default_value='ANY'),
|
DeclareLaunchArgument('depth_format', default_value='Y16'),
|
||||||
DeclareLaunchArgument('enable_depth', default_value='true'),
|
DeclareLaunchArgument('enable_depth', default_value='true'),
|
||||||
DeclareLaunchArgument('depth_qos', default_value='default'),
|
DeclareLaunchArgument('depth_qos', default_value='default'),
|
||||||
DeclareLaunchArgument('depth_camera_info_qos', default_value='default'),
|
DeclareLaunchArgument('depth_camera_info_qos', default_value='default'),
|
||||||
@@ -168,7 +168,7 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('config_file_path', default_value=''),
|
DeclareLaunchArgument('config_file_path', default_value=''),
|
||||||
DeclareLaunchArgument('enable_heartbeat', default_value='false'),
|
DeclareLaunchArgument('enable_heartbeat', default_value='false'),
|
||||||
DeclareLaunchArgument('topic_type', default_value='points'),
|
DeclareLaunchArgument('topic_type', default_value='points'),
|
||||||
DeclareLaunchArgument('topic_name', default_value='/camera/depth/points'),
|
DeclareLaunchArgument('topic_name', default_value='/camera/depth_registered/points'),
|
||||||
DeclareLaunchArgument('use_intra_process_comms', default_value='true'),
|
DeclareLaunchArgument('use_intra_process_comms', default_value='true'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <rclcpp/rclcpp.hpp>
|
#include <rclcpp/rclcpp.hpp>
|
||||||
#include <sensor_msgs/msg/image.hpp>
|
#include <sensor_msgs/msg/image.hpp>
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
using namespace std::chrono_literals;
|
using namespace std::chrono_literals;
|
||||||
#include "frame_latency.hpp"
|
#include "frame_latency.hpp"
|
||||||
@@ -50,11 +51,18 @@ template <typename MsgType>
|
|||||||
void FrameLatencyNode::createListener(const std::string& topic_name,
|
void FrameLatencyNode::createListener(const std::string& topic_name,
|
||||||
const rmw_qos_profile_t qos_profile) {
|
const rmw_qos_profile_t qos_profile) {
|
||||||
RCLCPP_INFO_STREAM(logger_, "createListener");
|
RCLCPP_INFO_STREAM(logger_, "createListener");
|
||||||
|
using namespace std::chrono_literals;
|
||||||
|
timer_ = this->create_wall_timer(1s, [this, topic_name=topic_name]() {
|
||||||
|
// print fps
|
||||||
|
RCLCPP_INFO_STREAM(logger_, "topic: " << topic_name << " fps: " << frame_count_ / 1.0);
|
||||||
|
frame_count_ = 0;
|
||||||
|
});
|
||||||
sub_ = this->create_subscription<MsgType>(
|
sub_ = this->create_subscription<MsgType>(
|
||||||
topic_name, rclcpp::QoS(rclcpp::QoSInitialization::from_rmw(qos_profile), qos_profile),
|
topic_name, rclcpp::QoS(rclcpp::QoSInitialization::from_rmw(qos_profile), qos_profile),
|
||||||
[&, this](const std::shared_ptr<MsgType> msg) {
|
[&, this](const std::shared_ptr<MsgType> msg) {
|
||||||
rclcpp::Time curr_time = this->get_clock()->now();
|
rclcpp::Time curr_time = this->get_clock()->now();
|
||||||
auto latency = (curr_time - msg->header.stamp).seconds();
|
auto latency = (curr_time - msg->header.stamp).seconds();
|
||||||
|
frame_count_++;
|
||||||
RCLCPP_INFO_STREAM_THROTTLE(logger_, *this->get_clock(), 1000.0,
|
RCLCPP_INFO_STREAM_THROTTLE(logger_, *this->get_clock(), 1000.0,
|
||||||
"Got msg with "
|
"Got msg with "
|
||||||
<< msg->header.frame_id << " frame id at address 0x"
|
<< msg->header.frame_id << " frame id at address 0x"
|
||||||
|
|||||||
@@ -49,5 +49,7 @@ class FrameLatencyNode : public rclcpp::Node {
|
|||||||
std::shared_ptr<void> sub_ = nullptr;
|
std::shared_ptr<void> sub_ = nullptr;
|
||||||
|
|
||||||
rclcpp::Logger logger_;
|
rclcpp::Logger logger_;
|
||||||
|
rclcpp::TimerBase::SharedPtr timer_;
|
||||||
|
size_t frame_count_ = 0;
|
||||||
};
|
};
|
||||||
} // namespace orbbec_camera
|
} // namespace orbbec_camera
|
||||||
|
|||||||
Reference in New Issue
Block a user