Go to the documentation of this file.
36 #if __ROS_VERSION == 2 // workaround for missing imu quaternion operator << in ROS2
37 # define ROS_VECTOR3D_TO_STREAM(msg) ((msg).x) << "," << ((msg).y) << "," << ((msg).z)
38 # define ROS_QUATERNION_TO_STREAM(msg) ((msg).x) << "," << ((msg).y) << "," << ((msg).z) << "," << ((msg).w)
40 # define ROS_VECTOR3D_TO_STREAM(msg) (msg)
41 # define ROS_QUATERNION_TO_STREAM(msg) (msg)
61 memset(&export_msg, 0,
sizeof(export_msg));
68 strncpy(export_msg.
topic, msg_with_echo.
topic.c_str(),
sizeof(export_msg.
topic) - 2);
78 int num_fields =
msg.fields.size();
79 std::vector<SickScanPointFieldMsg> export_fields(num_fields);
80 for(
int n = 0; n < num_fields; n++)
83 memset(&export_field, 0,
sizeof(export_field));
84 strncpy(export_field.
name,
msg.fields[n].name.c_str(),
sizeof(export_field.
name) - 2);
85 export_field.
offset =
msg.fields[n].offset;
87 export_field.
count =
msg.fields[n].count;
88 export_fields[n] = export_field;
115 memset(&export_msg, 0,
sizeof(export_msg));
121 memset(&dst_msg, 0,
sizeof(dst_msg));
132 for(
int n = 0; n < 9; n++)
137 for(
int n = 0; n < 9; n++)
142 for(
int n = 0; n < 9; n++)
149 memset(&
msg, 0,
sizeof(
msg));
155 memset(&dst_msg, 0,
sizeof(dst_msg));
162 int max_fields_number = (int)(
sizeof(dst_msg.
fields) /
sizeof(dst_msg.
fields[0]));
163 dst_msg.
fields_number = ((src_msg.fields_number < max_fields_number) ? src_msg.fields_number : max_fields_number);
175 dst_msg.
fields[n].
year = src_msg.fields[n].year;
177 dst_msg.
fields[n].
day = src_msg.fields[n].day;
178 dst_msg.
fields[n].
hour = src_msg.fields[n].hour;
188 memset(&
msg, 0,
sizeof(
msg));
194 memset(&dst_msg, 0,
sizeof(dst_msg));
205 for(
int n = 0; n < src_msg.output_state.size() && n < max_states; n++)
207 for(
int n = 0; n < src_msg.output_count.size() && n < max_counts; n++)
210 dst_msg.
year = src_msg.year;
211 dst_msg.
month = src_msg.month;
212 dst_msg.
day = src_msg.day;
213 dst_msg.
hour = src_msg.hour;
214 dst_msg.
minute = src_msg.minute;
215 dst_msg.
second = src_msg.second;
222 memset(&
msg, 0,
sizeof(
msg));
228 memset(&dst_msg, 0,
sizeof(dst_msg));
284 for(
int m = 0; m < 36; m++)
303 for(
int m = 0; m < 36; m++)
330 for(
int n = 0; n <
msg.objects.size; n++)
331 free(
msg.objects.buffer[n].contour_points.buffer);
332 free(
msg.objects.buffer);
333 memset(&
msg, 0,
sizeof(
msg));
339 memset(&dst_msg, 0,
sizeof(dst_msg));
367 for(
int m = 0; m < 36; m++)
386 for(
int m = 0; m < 36; m++)
412 for(
int n = 0; n <
msg.objects.size; n++)
413 free(
msg.objects.buffer[n].contour_points.buffer);
414 free(
msg.objects.buffer);
415 memset(&
msg, 0,
sizeof(
msg));
421 memset(&dst_msg, 0,
sizeof(dst_msg));
422 if (src_msg.markers.size() > 0)
437 memset(&dst_marker, 0,
sizeof(dst_marker));
444 strncpy(dst_marker.
ns, src_marker.ns.c_str(),
sizeof(dst_marker.
ns) - 2);
445 dst_marker.
id = src_marker.id;
446 dst_marker.
type = src_marker.type;
447 dst_marker.
action = src_marker.action;
455 dst_marker.
scale.
x = src_marker.scale.x;
456 dst_marker.
scale.
y = src_marker.scale.y;
457 dst_marker.
scale.
z = src_marker.scale.z;
458 dst_marker.
color.
r = src_marker.color.r;
459 dst_marker.
color.
g = src_marker.color.g;
460 dst_marker.
color.
b = src_marker.color.b;
461 dst_marker.
color.
a = src_marker.color.a;
465 strncpy(dst_marker.
text, src_marker.text.c_str(),
sizeof(dst_marker.
text) - 2);
468 dst_marker.
points.
size = src_marker.points.size();
476 for(
int m = 0; m < dst_marker.
points.
size; m++)
482 dst_marker.
colors.
size = src_marker.colors.size();
490 for(
int m = 0; m < dst_marker.
colors.
size; m++)
504 for(
int n = 0; n <
msg.markers.size; n++)
506 free(
msg.markers.buffer[n].points.buffer);
507 free(
msg.markers.buffer[n].colors.buffer);
509 free(
msg.markers.buffer);
510 memset(&
msg, 0,
sizeof(
msg));
519 ROS_DEBUG_STREAM(
"api_impl cartesian_pointcloud_callback: PointCloud2 message, " <<
msg->pointcloud.width <<
"x" <<
msg->pointcloud.height <<
" points");
530 ROS_DEBUG_STREAM(
"api_impl polar_pointcloud_callback: PointCloud2 message, " <<
msg->pointcloud.width <<
"x" <<
msg->pointcloud.height <<
" points");
554 std::stringstream field_info;
555 for(
int n = 0; n <
msg->fields_number; n++)
557 field_info <<
", field " << (int)(
msg->fields[n].field_index) <<
": (";
558 if (
msg->fields[n].field_result_mrs == 1)
559 field_info <<
"free,";
560 else if (
msg->fields[n].field_result_mrs == 2)
561 field_info <<
"infringed,";
563 field_info <<
"invalid,";
564 field_info <<
msg->fields[n].dist_scale_factor <<
"," <<
msg->fields[n].dist_scale_offset <<
"," <<
msg->fields[n].angle_scale_factor <<
"," <<
msg->fields[n].angle_scale_offset <<
")";
566 ROS_DEBUG_STREAM(
"api_impl lferec_callback: LFErec message, " <<
msg->fields_number <<
" fields" << field_info.str());
577 std::stringstream state_info;
578 state_info <<
", outputstate=(";
579 for(
int n = 0; n <
msg->output_state.size(); n++)
580 state_info << (n > 0 ?
",":
"") << (int)(
msg->output_state[n]);
581 state_info <<
"), outputcount=(";
582 for(
int n = 0; n <
msg->output_count.size(); n++)
583 state_info << (n > 0 ?
",":
"") << (int)(
msg->output_count[n]);
585 ROS_DEBUG_STREAM(
"api_impl lidoutputstate_callback: LIDoutputstate message" << state_info.str());
596 ROS_DEBUG_STREAM(
"api_impl radarscan_callback: " << (
msg->targets.width *
msg->targets.height) <<
" targets, " <<
msg->objects.size() <<
" objects");
607 ROS_DEBUG_STREAM(
"api_impl ldmrsobjectarray_callback: " <<
msg->objects.size() <<
" objects");
618 std::stringstream marker_info;
619 for(
int n = 0; n <
msg->markers.size(); n++)
620 marker_info <<
", marker " <<
msg->markers[n].id <<
": pos=(" <<
msg->markers[n].pose.position.x <<
"," <<
msg->markers[n].pose.position.y <<
"," <<
msg->markers[n].pose.position.z <<
")";
621 ROS_DEBUG_STREAM(
"api_impl visualizationmarker_callback: " <<
msg->markers.size() <<
" markers" << marker_info.str());
644 #if defined __ROS_VERSION && __ROS_VERSION == 2
646 rclcpp::NodeOptions node_options;
647 node_options.allow_undeclared_parameters(
true);
648 rosNodePtr node = rclcpp::Node::make_shared(
"sick_scan",
"", node_options);
658 if (argc > 0 && argv != 0 && argv[0] != 0)
662 catch(
const std::exception& e)
698 catch(
const std::exception& e)
716 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByLaunchfile(" << launchfile_args <<
"): invalid apiHandle");
720 ROS_INFO_STREAM(
"SickScanApiInitByLaunchfile: launchfile_args = \"" << launchfile_args <<
"\"");
721 std::string args_string(launchfile_args);
723 std::vector<std::string>
args;
724 std::string endToken =
".launch";
725 std::size_t pos = args_string.find(endToken);
726 std::string filepath = args_string.substr(0, pos + endToken.length());
727 args_string.erase(0, pos + endToken.length() + 1);
728 args.push_back(filepath);
729 while ((pos = args_string.find(
' ')) != std::string::npos)
731 arg = args_string.substr(0, pos);
733 args_string.erase(0, pos + 1);
735 args.push_back(args_string);
737 int argc =
args.size() + 1;
738 char** argv = (
char**)malloc(argc *
sizeof(
char*));
740 argv[0] = (
char*)malloc(
s_api_caller[apiHandle].size() + 1);
743 for(
int n = 1; n < argc; n++)
745 argv[n] = (
char*)malloc(strlen(
args[n-1].c_str()) + 1);
746 strcpy(argv[n],
args[n-1].c_str());
753 catch(
const std::exception& e)
755 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByLaunchfile(): exception " << e.what());
759 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByLaunchfile(): unknown exception ");
776 s_argv = (
char**)malloc(argc *
sizeof(
char*));
777 std::stringstream cli_params;
778 for(
int n = 0; n < argc; n++)
780 s_argv[n] = (
char*)malloc((strlen(argv[n]) + 1) *
sizeof(
char));
781 strcpy(
s_argv[n],argv[n]);
782 cli_params << (n > 0 ?
" ":
"") << argv[n];
793 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByCli(): startGenericLaser() failed, could not start generic laser event loop");
798 catch(
const std::exception& e)
800 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByCli(): exception " << e.what());
804 ROS_WARN_STREAM(
"SickScanApiInitByCli(): running sick_generic_laser in main thread ...");
808 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByCli(): mainGenericLaser() failed");
813 catch(
const std::exception& e)
815 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByCli(): exception " << e.what());
818 catch(
const std::exception& e)
820 ROS_ERROR_STREAM(
"## ERROR SickScanApiInitByCli(): exception " << e.what());
852 catch(
const std::exception& e)
874 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterCartesianPointCloudMsg(): invalid apiHandle");
882 catch(
const std::exception& e)
884 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterCartesianPointCloudMsg(): exception " << e.what());
888 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterCartesianPointCloudMsg(): unknown exception ");
898 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterCartesianPointCloudMsg(): invalid apiHandle");
906 catch(
const std::exception& e)
908 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterCartesianPointCloudMsg(): exception " << e.what());
912 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterCartesianPointCloudMsg(): unknown exception ");
924 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterPolarPointCloudMsg(): invalid apiHandle");
932 catch(
const std::exception& e)
934 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterPolarPointCloudMsg(): exception " << e.what());
938 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterPolarPointCloudMsg(): unknown exception ");
948 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterPolarPointCloudMsg(): invalid apiHandle");
956 catch(
const std::exception& e)
958 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterPolarPointCloudMsg(): exception " << e.what());
962 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterPolarPointCloudMsg(): unknown exception ");
974 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterImuMsg(): invalid apiHandle");
982 catch(
const std::exception& e)
984 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterImuMsg(): exception " << e.what());
988 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterImuMsg(): unknown exception ");
998 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterImuMsg(): invalid apiHandle");
1006 catch(
const std::exception& e)
1008 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterImuMsg(): exception " << e.what());
1012 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterImuMsg(): unknown exception ");
1024 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLFErecMsg(): invalid apiHandle");
1032 catch(
const std::exception& e)
1034 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLFErecMsg(): exception " << e.what());
1038 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLFErecMsg(): unknown exception ");
1048 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLFErecMsg(): invalid apiHandle");
1056 catch(
const std::exception& e)
1058 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLFErecMsg(): exception " << e.what());
1062 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLFErecMsg(): unknown exception ");
1074 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLIDoutputstateMsg(): invalid apiHandle");
1082 catch(
const std::exception& e)
1084 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLIDoutputstateMsg(): exception " << e.what());
1088 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLIDoutputstateMsg(): unknown exception ");
1098 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLIDoutputstateMsg(): invalid apiHandle");
1106 catch(
const std::exception& e)
1108 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLIDoutputstateMsg(): exception " << e.what());
1112 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLIDoutputstateMsg(): unknown exception ");
1124 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterRadarScanMsg(): invalid apiHandle");
1132 catch(
const std::exception& e)
1134 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterRadarScanMsg(): exception " << e.what());
1138 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterRadarScanMsg(): unknown exception ");
1148 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterRadarScanMsg(): invalid apiHandle");
1156 catch(
const std::exception& e)
1158 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterRadarScanMsg(): exception " << e.what());
1162 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterRadarScanMsg(): unknown exception ");
1174 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLdmrsObjectArrayMsg(): invalid apiHandle");
1182 catch(
const std::exception& e)
1184 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLdmrsObjectArrayMsg(): exception " << e.what());
1188 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLdmrsObjectArrayMsg(): unknown exception ");
1198 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLdmrsObjectArrayMsg(): invalid apiHandle");
1206 catch(
const std::exception& e)
1208 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLdmrsObjectArrayMsg(): exception " << e.what());
1212 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLdmrsObjectArrayMsg(): unknown exception ");
1224 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterVisualizationMarkerMsg(): invalid apiHandle");
1232 catch(
const std::exception& e)
1234 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterVisualizationMarkerMsg(): exception " << e.what());
1238 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterVisualizationMarkerMsg(): unknown exception ");
1248 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterVisualizationMarkerMsg(): invalid apiHandle");
1256 catch(
const std::exception& e)
1258 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterVisualizationMarkerMsg(): exception " << e.what());
1262 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterVisualizationMarkerMsg(): unknown exception ");
1277 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterDiagnosticMsg(): invalid apiHandle");
1283 catch(
const std::exception& e)
1285 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterDiagnosticMsg(): exception " << e.what());
1289 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterDiagnosticMsg(): unknown exception ");
1301 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterDiagnosticMsg(): invalid apiHandle");
1307 catch(
const std::exception& e)
1309 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterDiagnosticMsg(): exception " << e.what());
1313 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterDiagnosticMsg(): unknown exception ");
1325 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLogMsg(): invalid apiHandle");
1331 catch(
const std::exception& e)
1333 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLogMsg(): exception " << e.what());
1337 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterLogMsg(): unknown exception ");
1349 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLogMsg(): invalid apiHandle");
1355 catch(
const std::exception& e)
1357 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLogMsg(): exception " << e.what());
1361 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterLogMsg(): unknown exception ");
1377 std::string diagnostic_message;
1379 int32_t len = std::min<int32_t>(message_buffer_size, (int32_t)diagnostic_message.length() + 1);
1380 *status_code = diagnostic_code;
1381 strncpy(message_buffer, diagnostic_message.c_str(), len);
1382 message_buffer[len-1] =
'\0';
1385 catch(
const std::exception& e)
1387 ROS_ERROR_STREAM(
"## ERROR SickScanApiGetStatus(): exception " << e.what());
1406 std::string sopas_ascii_request = sopas_command;
1410 ROS_ERROR_STREAM(
"## ERROR SickScanApiSendSOPAS(): convertSendSOPASCommand(\"" << sopas_ascii_request <<
"\") failed");
1415 ROS_WARN_STREAM(
"## ERROR SickScanApiSendSOPAS(\"" << sopas_ascii_request <<
"\"): response_buffer_size " << response_buffer_size <<
" too small, response \"" <<
sopas_response <<
"\" requires at least " << (
sopas_response.length() + 1) <<
" bytes, response truncated");
1417 strncpy(sopas_response_buffer,
sopas_response.c_str(), response_buffer_size - 1);
1418 sopas_response_buffer[response_buffer_size - 1] =
'\0';
1421 catch (
const std::exception& e)
1423 ROS_ERROR_STREAM(
"## ERROR SickScanApiSendSOPAS(): exception " << e.what());
1441 ROS_ERROR_STREAM(
"## ERROR SickScanApiSetVerboseLevel(): invalid apiHandle");
1447 catch(
const std::exception& e)
1449 ROS_ERROR_STREAM(
"## ERROR SickScanApiSetVerboseLevel(): exception " << e.what());
1453 ROS_ERROR_STREAM(
"## ERROR SickScanApiSetVerboseLevel(): unknown exception ");
1468 catch(
const std::exception& e)
1483 msg.log_level = msg_level;
1484 msg.log_message = (
char*)calloc(
message.length() + 1,
sizeof(char));
1487 free(
msg.log_message);
1495 msg.status_code = status_code;
1496 msg.status_message = (
char*)calloc(status_message.length() + 1,
sizeof(char));
1497 strncpy(
msg.status_message, status_message.c_str(), status_message.length());
1499 free(
msg.status_message);
1513 memset(
msg, 0,
sizeof(*
msg));
1516 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextCartesianPointCloudMsg(): invalid apiHandle");
1548 catch(
const std::exception& e)
1550 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextCartesianPointCloudMsg(): exception " << e.what());
1554 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextCartesianPointCloudMsg(): unknown exception ");
1563 memset(
msg, 0,
sizeof(*
msg));
1566 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextPolarPointCloudMsg(): invalid apiHandle");
1583 && ros_msg.
pointcloud.fields[0].name ==
"range"
1584 && ros_msg.
pointcloud.fields[1].name ==
"azimuth"
1585 && ros_msg.
pointcloud.fields[2].name ==
"elevation")
1598 catch(
const std::exception& e)
1600 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextPolarPointCloudMsg(): exception " << e.what());
1604 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextPolarPointCloudMsg(): unknown exception ");
1610 if(apiHandle &&
msg)
1624 memset(
msg, 0,
sizeof(*
msg));
1627 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextImuMsg(): invalid apiHandle");
1654 catch(
const std::exception& e)
1656 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextImuMsg(): exception " << e.what());
1660 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextImuMsg(): unknown exception ");
1666 if(apiHandle &&
msg)
1680 memset(
msg, 0,
sizeof(*
msg));
1683 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLFErecMsg(): invalid apiHandle");
1697 if (wait_message_handler.
waitForNextMessage(ros_msg, timeout_sec) && ros_msg.fields_number > 0)
1700 ROS_INFO_STREAM(
"SickScanApiWaitNextLFErecMsg: LFErec message, " << ros_msg.fields_number <<
" fields");
1710 catch(
const std::exception& e)
1712 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLFErecMsg(): exception " << e.what());
1716 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLFErecMsg(): unknown exception ");
1722 if(apiHandle &&
msg)
1736 memset(
msg, 0,
sizeof(*
msg));
1739 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLIDoutputstateMsg(): invalid apiHandle");
1753 if (wait_message_handler.
waitForNextMessage(ros_msg, timeout_sec) && ros_msg.output_state.size() + ros_msg.output_count.size() > 0)
1756 ROS_INFO_STREAM(
"SickScanApiWaitNextLIDoutputstateMsg: LIDoutputstate message, " << ros_msg.output_state.size() <<
" states, " << ros_msg.output_count.size() <<
" counters");
1766 catch(
const std::exception& e)
1768 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLIDoutputstateMsg(): exception " << e.what());
1772 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLIDoutputstateMsg(): unknown exception ");
1778 if(apiHandle &&
msg)
1792 memset(
msg, 0,
sizeof(*
msg));
1795 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextRadarScanMsg(): invalid apiHandle");
1809 if (wait_message_handler.
waitForNextMessage(ros_msg, timeout_sec) && ros_msg.targets.width * ros_msg.targets.height + ros_msg.objects.size() > 0)
1812 ROS_INFO_STREAM(
"SickScanApiWaitNextRadarScanMsg: RadarScan message, " << (ros_msg.targets.width * ros_msg.targets.height) <<
" targets, " << ros_msg.objects.size() <<
" objects");
1822 catch(
const std::exception& e)
1824 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextRadarScanMsg(): exception " << e.what());
1828 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextRadarScanMsg(): unknown exception ");
1834 if(apiHandle &&
msg)
1848 memset(
msg, 0,
sizeof(*
msg));
1851 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLdmrsObjectArrayMsg(): invalid apiHandle");
1865 if (wait_message_handler.
waitForNextMessage(ros_msg, timeout_sec) && ros_msg.objects.size() > 0)
1868 ROS_INFO_STREAM(
"SickScanApiWaitNextLdmrsObjectArrayMsg: LdmrsObjectArray message, " << ros_msg.objects.size() <<
" objects");
1878 catch(
const std::exception& e)
1880 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLdmrsObjectArrayMsg(): exception " << e.what());
1884 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextLdmrsObjectArrayMsg(): unknown exception ");
1890 if(apiHandle &&
msg)
1904 memset(
msg, 0,
sizeof(*
msg));
1907 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextVisualizationMarkerMsg(): invalid apiHandle");
1921 if (wait_message_handler.
waitForNextMessage(ros_msg, timeout_sec) && ros_msg.markers.size() > 0)
1924 ROS_INFO_STREAM(
"SickScanApiWaitNextVisualizationMarkerMsg: VisualizationMarker message, " << ros_msg.markers.size() <<
" markers");
1934 catch(
const std::exception& e)
1936 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextVisualizationMarkerMsg(): exception " << e.what());
1940 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextVisualizationMarkerMsg(): unknown exception ");
1946 if(apiHandle &&
msg)
1961 memset(&dst_msg, 0,
sizeof(dst_msg));
2019 free(
msg.reflectors.buffer);
2020 memset(&
msg, 0,
sizeof(
msg));
2024 ROS_DEBUG_STREAM(
"api_impl nav_pose_landmark_callback: NAV350mNPOSData message");
2036 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterNavPoseLandmarkMsg(): invalid apiHandle");
2044 catch(
const std::exception& e)
2046 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterNavPoseLandmarkMsg(): exception " << e.what());
2050 ROS_ERROR_STREAM(
"## ERROR SickScanApiRegisterNavPoseLandmarkMsg(): unknown exception ");
2060 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterNavPoseLandmarkMsg(): invalid apiHandle");
2068 catch(
const std::exception& e)
2070 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterNavPoseLandmarkMsg(): exception " << e.what());
2074 ROS_ERROR_STREAM(
"## ERROR SickScanApiDeregisterNavPoseLandmarkMsg(): unknown exception ");
2083 memset(
msg, 0,
sizeof(*
msg));
2086 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextNavPoseLandmarkMsg(): invalid apiHandle");
2097 ROS_INFO_STREAM(
"SickScanApiWaitNextNavPoseLandmarkMsg: NAV350mNPOSData message");
2107 catch(
const std::exception& e)
2109 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextNavPoseLandmarkMsg(): exception " << e.what());
2113 ROS_ERROR_STREAM(
"## ERROR SickScanApiWaitNextNavPoseLandmarkMsg(): unknown exception ");
2119 if(apiHandle &&
msg)
int32_t SickScanApiRegisterNavPoseLandmarkMsg(SickScanApiHandle apiHandle, SickScanNavPoseLandmarkCallback callback)
int32_t SickScanApiRegisterLIDoutputstateMsg(SickScanApiHandle apiHandle, SickScanLIDoutputstateMsgCallback callback)
SickScanPointArray contour_points
int32_t SickScanApiRegisterLogMsg(SickScanApiHandle apiHandle, SickScanLogMsgCallback callback)
static void nav_pose_landmark_callback(rosNodePtr node, const sick_scan_xd::NAV350mNPOSData *msg)
static void freeRadarScanMsg(SickScanRadarScan &msg)
::sensor_msgs::Imu_< std::allocator< void > > Imu
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanNavPoseLandmarkMsg > s_callback_handler_navposelandmark_messages
SickScanLdmrsObject * buffer
int32_t SickScanApiRegisterVisualizationMarkerMsg(SickScanApiHandle apiHandle, SickScanVisualizationMarkerCallback callback)
NAV350LandmarkData landmarkData
SickScanVisualizationMarkerBuffer markers
static SickScanPointCloudMsg convertPointCloudMsg(const sick_scan_xd::PointCloud2withEcho &msg_with_echo)
int32_t SickScanApiWaitNextCartesianPointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsg *msg, double timeout_sec)
int32_t pose_opt_mean_dev
uint8_t pose_opt_nav_mode
static SickScanNavPoseLandmarkMsg convertNAV350mNPOSData(const sick_scan_xd::NAV350mNPOSData &src_msg)
static void freeImuMsg(SickScanImuMsg &msg)
int32_t SickScanApiRegisterRadarScanMsg(SickScanApiHandle apiHandle, SickScanRadarScanCallback callback)
int32_t SickScanApiDeregisterCartesianPointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsgCallback callback)
void removeNavPoseLandmarkListener(rosNodePtr handle, NAV350mNPOSDataCallback listener)
int32_t SickScanApiInitByCli(SickScanApiHandle apiHandle, int argc, char **argv)
#define DUMP_API_POINTCLOUD_MESSAGE(postfix, msg)
static void lidoutputstate_callback(rosNodePtr node, const sick_scan_msg::LIDoutputstateMsg *msg)
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
alternate ROS initialization function.
int32_t SickScanApiDeregisterPolarPointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsgCallback callback)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanLdmrsObjectArray > s_callback_handler_ldmrsobjectarray_messages
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanPointCloudMsgCallback)(SickScanApiHandle apiHandle, const SickScanPointCloudMsg *msg)
SickScanVector3Msg linear_acceleration
struct SickScanNavReflectorType SickScanNavReflector
int32_t SickScanApiRegisterLdmrsObjectArrayMsg(SickScanApiHandle apiHandle, SickScanLdmrsObjectArrayCallback callback)
SickScanNavReflectorBuffer reflectors
int32_t SickScanApiDeregisterLFErecMsg(SickScanApiHandle apiHandle, SickScanLFErecMsgCallback callback)
uint32_t opt_timestamp_sec
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanLdmrsObjectArrayCallback)(SickScanApiHandle apiHandle, const SickScanLdmrsObjectArray *msg)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanLIDoutputstateMsg > s_callback_handler_lidoutputstate_messages
void getDiagnosticStatus(SICK_DIAGNOSTIC_STATUS &status_code, std::string &status_message)
static SickScanLdmrsObjectArray convertLdmrsObjectArrayMsg(const sick_scan_msg::SickLdmrsObjectArray &src_msg)
double velocity_covariance[36]
void removeLIDoutputstateListener(rosNodePtr handle, LIDoutputstateCallback listener)
bool isImuListenerRegistered(rosNodePtr handle, ImuCallback listener)
::sensor_msgs::PointCloud2_< std::allocator< void > > PointCloud2
int32_t SickScanApiFreePointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsg *msg)
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanLFErecMsgCallback)(SickScanApiHandle apiHandle, const SickScanLFErecMsg *msg)
SickScanPointArray points
bool convertSendSOPASCommand(const std::string &sopas_ascii_request, std::string &sopas_response, bool wait_for_reply)
Converts a given SOPAS command from ascii to binary (in case of binary communication),...
static SoftwarePLL & instance()
SickScanVector3Msg velocity_linear
void removePolarPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
void addVisualizationMarkerListener(rosNodePtr handle, VisualizationMarkerCallback listener)
static void freeLFErecMsg(SickScanLFErecMsg &msg)
NAV350PolarData polarData
bool isLdmrsObjectArrayListenerRegistered(rosNodePtr handle, SickLdmrsObjectArrayCallback listener)
int32_t SickScanApiFreeImuMsg(SickScanApiHandle apiHandle, SickScanImuMsg *msg)
void notifyDiagnosticListener(SICK_DIAGNOSTIC_STATUS status_code, const std::string &status_message)
SickScanQuaternionMsg orientation
static void imu_callback(rosNodePtr node, const ros_sensor_msgs::Imu *msg)
SickScanVector3Msg velocity_angular
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanRadarScan > s_callback_handler_radarscan_messages
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanNavPoseLandmarkCallback)(SickScanApiHandle apiHandle, const SickScanNavPoseLandmarkMsg *msg)
uint32_t pose_opt_timestamp
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanImuMsgCallback)(SickScanApiHandle apiHandle, const SickScanImuMsg *msg)
int32_t SickScanApiRegisterPolarPointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsgCallback callback)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanPointCloudMsg > s_callback_handler_cartesian_pointcloud_messages
void removeLFErecListener(rosNodePtr handle, LFErecCallback listener)
bool getCorrectedTimeStamp(uint32_t &sec, uint32_t &nanoSec, uint32_t tick)
int32_t SickScanApiDeregisterImuMsg(SickScanApiHandle apiHandle, SickScanImuMsgCallback callback)
SickScanVector3Msg * buffer
double linear_acceleration_covariance[9]
static void cartesian_pointcloud_callback(rosNodePtr node, const sick_scan_xd::PointCloud2withEcho *msg)
void removeVisualizationMarkerListener(rosNodePtr handle, VisualizationMarkerCallback listener)
int32_t SickScanApiWaitNextPolarPointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsg *msg, double timeout_sec)
int32_t SickScanApiRelease(SickScanApiHandle apiHandle)
void addRadarScanListener(rosNodePtr handle, RadarScanCallback listener)
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanDiagnosticMsgCallback)(SickScanApiHandle apiHandle, const SickScanDiagnosticMsg *msg)
int32_t SickScanApiClose(SickScanApiHandle apiHandle)
static void ldmrsobjectarray_callback(rosNodePtr node, const sick_scan_msg::SickLdmrsObjectArray *msg)
int32_t SickScanApiWaitNextVisualizationMarkerMsg(SickScanApiHandle apiHandle, SickScanVisualizationMarkerMsg *msg, double timeout_sec)
uint16_t optPoseDataValid
int32_t SickScanApiNavOdomVelocityMsg(SickScanApiHandle apiHandle, SickScanNavOdomVelocityMsg *msg)
::sick_scan_xd::SickLdmrsObjectArray_< std::allocator< void > > SickLdmrsObjectArray
uint32_t tracking_time_nsec
SickScanVector3Msg bounding_box_size
SickScanPointFieldMsg * buffer
int32_t SickScanApiFreeRadarScanMsg(SickScanApiHandle apiHandle, SickScanRadarScan *msg)
uint32_t opt_timestamp_nsec
void addLIDoutputstateListener(rosNodePtr handle, LIDoutputstateCallback listener)
::sick_scan_xd::LFErecMsg_< std::allocator< void > > LFErecMsg
static SickScanImuMsg convertImuMsg(const ros_sensor_msgs::Imu &src_msg)
#define ROS_HEADER_SEQ(msgheader, value)
int32_t SickScanApiRegisterLFErecMsg(SickScanApiHandle apiHandle, SickScanLFErecMsgCallback callback)
void init(const M_string &remappings)
int32_t SickScanApiWaitNextLFErecMsg(SickScanApiHandle apiHandle, SickScanLFErecMsg *msg, double timeout_sec)
SickScanVector3Msg bounding_box_center_position
def message(msg, *args, **kwargs)
void addLFErecListener(rosNodePtr handle, LFErecCallback listener)
void removeRadarScanListener(rosNodePtr handle, RadarScanCallback listener)
SickScanRadarObjectArray objects
static SickScanVisualizationMarkerMsg convertVisualizationMarkerMsg(const ros_visualization_msgs::MarkerArray &src_msg)
uint32_t nsec(const rosTime &time)
static void visualizationmarker_callback(rosNodePtr node, const ros_visualization_msgs::MarkerArray *msg)
static std::vector< void * > s_malloced_resources
static void freeLdmrsObjectArrayMsg(SickScanLdmrsObjectArray &msg)
#define ROS_WARN_STREAM(args)
uint32_t tracking_time_sec
#define ROS_INFO_STREAM(...)
SickScanVector3Msg angular_velocity
bool isNavPoseLandmarkListenerRegistered(rosNodePtr handle, NAV350mNPOSDataCallback listener)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanPointCloudMsg > s_callback_handler_polar_pointcloud_messages
static std::string versionInfo
uint8_t quantUsedReflectors
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanLFErecMsg > s_callback_handler_lferec_messages
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanLIDoutputstateMsgCallback)(SickScanApiHandle apiHandle, const SickScanLIDoutputstateMsg *msg)
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanVisualizationMarkerCallback)(SickScanApiHandle apiHandle, const SickScanVisualizationMarkerMsg *msg)
void removeLdmrsObjectArrayListener(rosNodePtr handle, SickLdmrsObjectArrayCallback listener)
int32_t SickScanApiDeregisterLdmrsObjectArrayMsg(SickScanApiHandle apiHandle, SickScanLdmrsObjectArrayCallback callback)
::visualization_msgs::Marker_< std::allocator< void > > Marker
uint8_t pose_opt_quant_used_reflectors
SickScanVector3Msg pose_position
int32_t SickScanApiDeregisterDiagnosticMsg(SickScanApiHandle apiHandle, SickScanDiagnosticMsgCallback callback)
SickScanNavReflector * buffer
static void radarscan_callback(rosNodePtr node, const sick_scan_msg::RadarScan *msg)
double orientation_covariance[9]
int32_t angle_scale_offset
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanImuMsg > s_callback_handler_imu_messages
SickScanVector3Msg object_box_size
int32_t SickScanApiDeregisterRadarScanMsg(SickScanApiHandle apiHandle, SickScanRadarScanCallback callback)
::visualization_msgs::MarkerArray_< std::allocator< void > > MarkerArray
void addImuListener(rosNodePtr handle, ImuCallback listener)
static void polar_pointcloud_callback(rosNodePtr node, const sick_scan_xd::PointCloud2withEcho *msg)
void notifyLogMessageListener(int msg_level, const std::string &message)
int32_t SickScanApiDeregisterNavPoseLandmarkMsg(SickScanApiHandle apiHandle, SickScanNavPoseLandmarkCallback callback)
static std::string s_scannerName
#define DUMP_API_VISUALIZATIONMARKER_MESSAGE(postfix, msg)
int32_t SickScanApiFreeVisualizationMarkerMsg(SickScanApiHandle apiHandle, SickScanVisualizationMarkerMsg *msg)
@ SICK_SCAN_API_NOT_INITIALIZED
std::string getVersionInfo()
SickScanPointCloudMsg targets
void addCartesianPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
std::vector< NAV350ReflectorData > reflectors
::sick_scan_xd::LIDoutputstateMsg_< std::allocator< void > > LIDoutputstateMsg
int32_t SickScanApiSetVerboseLevel(SickScanApiHandle apiHandle, int32_t verbose_level)
SickScanQuaternionMsg object_box_center_orientation
#define ROS_DEBUG_STREAM(args)
bool isCartesianPointcloudListenerRegistered(rosNodePtr handle, PointCloud2Callback listener)
#define DUMP_API_LIDOUTPUTSTATE_MESSAGE(postfix, msg)
uint32_t sec(const rosTime &time)
int32_t SickScanApiOdomVelocityMsg(SickScanApiHandle apiHandle, SickScanOdomVelocityMsg *msg)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanDiagnosticMsg > s_callback_handler_diagnostic_messages
int32_t SickScanApiWaitNextLdmrsObjectArrayMsg(SickScanApiHandle apiHandle, SickScanLdmrsObjectArray *msg, double timeout_sec)
static void freePointCloudMsg(SickScanPointCloudMsg &export_msg)
static void freeLIDoutputstateMsg(SickScanLIDoutputstateMsg &msg)
double angular_velocity_covariance[9]
uint8_t pose_opt_output_mode
SickScanQuaternionMsg pose_orientation
int32_t SickScanApiFreeNavPoseLandmarkMsg(SickScanApiHandle apiHandle, SickScanNavPoseLandmarkMsg *msg)
int32_t SickScanApiDeregisterVisualizationMarkerMsg(SickScanApiHandle apiHandle, SickScanVisualizationMarkerCallback callback)
SickScanVisualizationMarker * buffer
int32_t SickScanApiWaitNextNavPoseLandmarkMsg(SickScanApiHandle apiHandle, SickScanNavPoseLandmarkMsg *msg, double timeout_sec)
#define DUMP_API_IMU_MESSAGE(postfix, msg)
uint16_t cartesianDataValid
int32_t getVerboseLevel()
bool isLIDoutputstateListenerRegistered(rosNodePtr handle, LIDoutputstateCallback listener)
SickScanRadarObject * buffer
#define DUMP_API_RADARSCAN_MESSAGE(postfix, msg)
SickScanApiHandle SickScanApiCreate(int argc, char **argv)
int32_t SickScanApiRegisterImuMsg(SickScanApiHandle apiHandle, SickScanImuMsgCallback callback)
int32_t SickScanApiRegisterDiagnosticMsg(SickScanApiHandle apiHandle, SickScanDiagnosticMsgCallback callback)
void removeCartesianPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
uint16_t optReflectorDataValid
uint32_t pose_timestamp_nsec
uint32_t pose_opt_info_state
int mainGenericLaser(int argc, char **argv, std::string nodeName, rosNodePtr nhPriv)
Internal Startup routine.
static SickScanLIDoutputstateMsg convertLIDoutputstateMsg(const sick_scan_msg::LIDoutputstateMsg &src_msg)
bool startGenericLaser(int argc, char **argv, std::string nodeName, rosNodePtr nhPriv, int *exit_code)
Runs mainGenericLaser non-blocking in a new thread.
#define ROS_VECTOR3D_TO_STREAM(msg)
void removeImuListener(rosNodePtr handle, ImuCallback listener)
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanRadarScanCallback)(SickScanApiHandle apiHandle, const SickScanRadarScan *msg)
static SickScanRadarScan convertRadarScanMsg(const sick_scan_msg::RadarScan &src_msg)
int32_t SickScanApiSendSOPAS(SickScanApiHandle apiHandle, const char *sopas_command, char *sopas_response_buffer, int32_t response_buffer_size)
static void freeNavPoseLandmarkMsg(SickScanNavPoseLandmarkMsg &msg)
static void lferec_callback(rosNodePtr node, const sick_scan_msg::LFErecMsg *msg)
int32_t SickScanApiGetStatus(SickScanApiHandle apiHandle, int32_t *status_code, char *message_buffer, int32_t message_buffer_size)
NAV350OptReflectorData optReflectorData
int32_t SickScanApiFreeLFErecMsg(SickScanApiHandle apiHandle, SickScanLFErecMsg *msg)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanVisualizationMarkerMsg > s_callback_handler_visualizationmarker_messages
bool IsInitialized() const
NAV350OptPoseData optPoseData
SickScanColorRGBA * buffer
bool isRadarScanListenerRegistered(rosNodePtr handle, RadarScanCallback listener)
static SickScanLFErecMsg convertLFErecMsg(const sick_scan_msg::LFErecMsg &src_msg)
uint16_t landmarkDataValid
SickScanColorRGBAArray colors
SickScanLdmrsObjectBuffer objects
uint8_t mesh_use_embedded_materials
static SickScanApiHandle castNodeToApiHandle(rosNodePtr node)
#define ROS_ERROR_STREAM(...)
void addNavPoseLandmarkListener(rosNodePtr handle, NAV350mNPOSDataCallback listener)
::sick_scan_xd::RadarScan_< std::allocator< void > > RadarScan
SickScanQuaternionMsg bounding_box_center_orientation
#define ROS_QUATERNION_TO_STREAM(msg)
uint32_t pose_timestamp_sec
int32_t SickScanApiNavOdomVelocityImpl(SickScanApiHandle apiHandle, SickScanNavOdomVelocityMsg *msg)
SickScanLFErecFieldMsg fields[3]
void setVersionInfo(std::string _versionInfo)
int32_t SickScanApiDeregisterLogMsg(SickScanApiHandle apiHandle, SickScanLogMsgCallback callback)
void addPolarPointcloudListener(rosNodePtr handle, PointCloud2Callback listener)
SickScanPointFieldArray fields
int32_t SickScanApiDeregisterLIDoutputstateMsg(SickScanApiHandle apiHandle, SickScanLIDoutputstateMsgCallback callback)
NAV350CartesianData cartesianData
static std::map< SickScanApiHandle, std::string > s_api_caller
int32_t SickScanApiRegisterCartesianPointCloudMsg(SickScanApiHandle apiHandle, SickScanPointCloudMsgCallback callback)
SickScanRadarPreHeader radarpreheader
static void freeVisualizationMarkerMsg(SickScanVisualizationMarkerMsg &msg)
bool isPolarPointcloudListenerRegistered(rosNodePtr handle, PointCloud2Callback listener)
int32_t SickScanApiFreeLdmrsObjectArrayMsg(SickScanApiHandle apiHandle, SickScanLdmrsObjectArray *msg)
static rosNodePtr castApiHandleToNode(SickScanApiHandle apiHandle)
void setVerboseLevel(int32_t verbose_level)
bool isLFErecListenerRegistered(rosNodePtr handle, LFErecCallback listener)
double object_box_center_covariance[36]
int32_t SickScanApiWaitNextLIDoutputstateMsg(SickScanApiHandle apiHandle, SickScanLIDoutputstateMsg *msg, double timeout_sec)
int32_t SickScanApiFreeLIDoutputstateMsg(SickScanApiHandle apiHandle, SickScanLIDoutputstateMsg *msg)
void rosSignalHandler(int signalRecv)
void convertNAVCartPos3DtoROSPos3D(int32_t nav_posx_mm, int32_t nav_posy_mm, uint32_t nav_phi_mdeg, float &ros_posx_m, float &ros_posy_m, float &ros_yaw_rad, double nav_angle_offset)
uint32_t angle_scale_factor
bool isVisualizationMarkerListenerRegistered(rosNodePtr handle, VisualizationMarkerCallback listener)
int32_t SickScanApiWaitNextImuMsg(SickScanApiHandle apiHandle, SickScanImuMsg *msg, double timeout_sec)
void convertNAVCartPos2DtoROSPos2D(int32_t nav_posx_mm, int32_t nav_posy_mm, float &ros_posx_m, float &ros_posy_m, double nav_angle_offset)
#define DUMP_API_LFEREC_MESSAGE(postfix, msg)
void(SICK_SCAN_XD_API_CALLING_CONVENTION * SickScanLogMsgCallback)(SickScanApiHandle apiHandle, const SickScanLogMsg *msg)
int32_t SickScanApiWaitNextRadarScanMsg(SickScanApiHandle apiHandle, SickScanRadarScan *msg, double timeout_sec)
int32_t SickScanApiOdomVelocityImpl(SickScanApiHandle apiHandle, SickScanOdomVelocityMsg *src_msg)
static sick_scan_xd::SickCallbackHandler< SickScanApiHandle, SickScanLogMsg > s_callback_handler_log_messages
#define DUMP_API_LDMRSOBJECTARRAY_MESSAGE(postfix, msg)
int32_t SickScanApiGetVerboseLevel(SickScanApiHandle apiHandle)
void callback(const sick_scan_xd::RadarScan::ConstPtr &oa)
int32_t SickScanApiInitByLaunchfile(SickScanApiHandle apiHandle, const char *launchfile_args)
void addLdmrsObjectArrayListener(rosNodePtr handle, SickLdmrsObjectArrayCallback listener)
ros_sensor_msgs::PointCloud2 pointcloud
SickScanVector3Msg object_box_center_position
sick_scan_xd
Author(s): Michael Lehning
, Jochen Sprickerhof , Martin Günther
autogenerated on Fri Oct 25 2024 02:47:07