robomaster-oss / rmoss_core

RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。
Apache License 2.0
105 stars 17 forks source link

replace cv_bridge with direct converter for image msg #11

Closed gezp closed 2 years ago

gezp commented 2 years ago

解决https://github.com/robomaster-oss/rmoss_core/issues/8.

在rmoss_cam中,使用cv_bridge::CvImage进行cv::Matsensor_msgs::msg::Image之间的转换,该部分性能不是很好,ros2/demos/intra_process_demo提供了相关直接转换的代码,可以直接采用。

gezp commented 2 years ago

test result (on CPU: Intel(R) i7-8700 (6Cores 12Threads), Memory: 32GB)

[benchmark_test-2] start test for normal multi-process
[benchmark_test-2] result for <benchmark_cam1>:
[benchmark_test-2] fps:99.8179
[benchmark_test-2] delay:0.00132909
[benchmark_test-2] start test for normal composition
[benchmark_test-2] result for <benchmark_cam2>:
[benchmark_test-2] fps:100.199
[benchmark_test-2] delay:0.00101024
[benchmark_test-2] start test for composition with rclcpp intra-comms
[benchmark_test-2] result for <benchmark_cam3>:
[benchmark_test-2] fps:100.198
[benchmark_test-2] delay:0.000321852
[benchmark_test-2] start test for composition with rmoss intra-comms
[benchmark_test-2] result for <benchmark_cam4>:
[benchmark_test-2] fps:100.201
[benchmark_test-2] delay:0.000198739
TomwKang commented 2 years ago

设备信息 NUC8 i5 bek CPU: Intel® Core™ i5-8259U CPU @ 2.30GHz × 8 Mem: 7.6 GiB

[benchmark_test-2] start test for normal multi-process
[benchmark_test-2] result for <benchmark_cam1>:
[benchmark_test-2] fps:88.1853
[benchmark_test-2] delay:0.0045809
[benchmark_test-2] start test for normal composition
[benchmark_test-2] result for <benchmark_cam2>:
[benchmark_test-2] fps:100.222
[benchmark_test-2] delay:0.00313066
[benchmark_test-2] start test for composition with rclcpp intra-comms
[benchmark_test-2] result for <benchmark_cam3>:
[benchmark_test-2] fps:100.196
[benchmark_test-2] delay:0.00144415
[benchmark_test-2] start test for composition with rmoss intra-comms
[benchmark_test-2] result for <benchmark_cam4>:
[benchmark_test-2] fps:100.218
[benchmark_test-2] delay:0.000967741
[benchmark_test-2] start test for normal multi-process
[benchmark_test-2] result for <benchmark_cam1>:
[benchmark_test-2] fps:90.4259
[benchmark_test-2] delay:0.00394579
[benchmark_test-2] start test for normal composition
[benchmark_test-2] result for <benchmark_cam2>:
[benchmark_test-2] fps:100.213
[benchmark_test-2] delay:0.00310777
[benchmark_test-2] start test for composition with rclcpp intra-comms
[benchmark_test-2] result for <benchmark_cam3>:
[benchmark_test-2] fps:100.182
[benchmark_test-2] delay:0.00109937
[benchmark_test-2] start test for composition with rmoss intra-comms
[benchmark_test-2] result for <benchmark_cam4>:
[benchmark_test-2] fps:100.212
[benchmark_test-2] delay:0.00104426
[benchmark_test-2] start test for normal multi-process
[benchmark_test-2] result for <benchmark_cam1>:
[benchmark_test-2] fps:76.3538
[benchmark_test-2] delay:0.00495936
[benchmark_test-2] start test for normal composition
[benchmark_test-2] result for <benchmark_cam2>:
[benchmark_test-2] fps:100.198
[benchmark_test-2] delay:0.00428749
[benchmark_test-2] start test for composition with rclcpp intra-comms
[benchmark_test-2] result for <benchmark_cam3>:
[benchmark_test-2] fps:100.197
[benchmark_test-2] delay:0.00124397
[benchmark_test-2] start test for composition with rmoss intra-comms
[benchmark_test-2] result for <benchmark_cam4>:
[benchmark_test-2] fps:100.197
[benchmark_test-2] delay:0.00099262
gezp commented 2 years ago

测试设备:Raspberry Pi 4B with 2GB RAM (ARM platform) 发布频率为100hz下的测试结果:

[benchmark_test-2] fps:21.563
[benchmark_test-2] delay:0.0360788
[benchmark_test-2] start test for normal composition
[benchmark_test-2] result for <benchmark_cam2>:
[benchmark_test-2] fps:69.6866
[benchmark_test-2] delay:0.0196059
[benchmark_test-2] start test for composition with rclcpp intra-comms
[benchmark_test-2] result for <benchmark_cam3>:
[benchmark_test-2] fps:100.204
[benchmark_test-2] delay:0.00593068
[benchmark_test-2] start test for composition with rmoss intra-comms
[benchmark_test-2] result for <benchmark_cam4>:
[benchmark_test-2] fps:100.233
[benchmark_test-2] delay:0.00276095

发布频率为50hz下的测试结果:

[benchmark_test-2] start test for normal multi-process
[benchmark_test-2] result for <benchmark_cam1>:
[benchmark_test-2] fps:48.3372
[benchmark_test-2] delay:0.0251548
[benchmark_test-2] start test for normal composition
[benchmark_test-2] result for <benchmark_cam2>:
[benchmark_test-2] fps:50.1076
[benchmark_test-2] delay:0.00486173
[benchmark_test-2] start test for composition with rclcpp intra-comms
[benchmark_test-2] result for <benchmark_cam3>:
[benchmark_test-2] fps:50.1044
[benchmark_test-2] delay:0.00214461
[benchmark_test-2] start test for composition with rmoss intra-comms
[benchmark_test-2] result for <benchmark_cam4>:
[benchmark_test-2] fps:50.1014
[benchmark_test-2] delay:0.00130644