@@ -76,6 +76,8 @@ int main()
76
76
simu.add_robot (robot_dart::Robot::create_ellipsoid ({0.2 , 0.2 , 0.2 }, pose, " free" , 1 ., dart::Color::Red (1 .), " sphere" ));
77
77
simu.add_sensor (camera);
78
78
79
+ simu.set_graphics_freq (20 );
80
+
79
81
simu.run (10 .);
80
82
81
83
// a nested std::vector (w*h*3) of the last image taken can be retrieved
@@ -99,10 +101,9 @@ int main()
99
101
auto depth_image = camera->depth_array ();
100
102
101
103
auto small_box = robot_dart::Robot::create_box ({0.01 , 0.01 , 0.01 }, Eigen::Vector6d::Zero (), " fixed" , 1 ., dart::Color::Blue (1 .), " box_pc" );
102
- std::vector<double > data = robot_dart::gui::point_cloud_from_depth_array (depth_image, camera->camera_intrinsic_matrix (), camera->camera_extrinsic_matrix (), camera->camera ().far_plane ());
103
- Eigen::MatrixXd point_cloud = Eigen::MatrixXd::Map (data.data (), 3 , data.size () / 3 );
104
+ Eigen::MatrixXd point_cloud = robot_dart::gui::point_cloud_from_depth_array (depth_image, camera->camera_intrinsic_matrix (), camera->camera_extrinsic_matrix (), camera->camera ().far_plane ());
104
105
for (int i = 0 ; i < point_cloud.cols (); i++) {
105
- if (i % 30 == 0 ) { // do not display all the points in the cloud
106
+ if (i % 100 == 0 ) { // do not display all the points in the cloud
106
107
Eigen::Vector6d pose;
107
108
pose << 0 ., 0 ., 0 ., point_cloud.col (i);
108
109
auto bbox = small_box->clone_ghost (" box_" + std::to_string (i), dart::Color::Blue (1 .));
@@ -112,16 +113,18 @@ int main()
112
113
}
113
114
}
114
115
115
- simu.set_graphics_freq (20 );
116
116
simu.world ()->setTime (0 .);
117
117
simu.scheduler ().reset (simu.timestep (), true );
118
118
while (true ) {
119
119
if (simu.step ())
120
120
break ;
121
121
if (simu.schedule (simu.graphics_freq ())) {
122
+ auto start = std::chrono::high_resolution_clock::now ();
122
123
auto depth_image = camera->depth_array ();
123
- std::vector<double > data = robot_dart::gui::point_cloud_from_depth_array (depth_image, camera->camera_intrinsic_matrix (), camera->camera_extrinsic_matrix (), camera->camera ().far_plane ());
124
- std::cout << simu.scheduler ().current_time () << " : " << (data.size () / 3 ) << std::endl;
124
+ Eigen::MatrixXd data = robot_dart::gui::point_cloud_from_depth_array (depth_image, camera->camera_intrinsic_matrix (), camera->camera_extrinsic_matrix (), camera->camera ().far_plane ());
125
+ auto end = std::chrono::high_resolution_clock::now ();
126
+ std::chrono::duration<double , std::milli> t_pc = (end - start);
127
+ std::cout << simu.scheduler ().current_time () << " : " << (data.cols ()) << " -> " << t_pc.count () << " ms" << std::endl;
125
128
}
126
129
}
127
130
0 commit comments