Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
203c5ce18b | ||
|
|
27ab088acd | ||
|
|
2a2ea0b370 | ||
|
|
6172f4c1b8 | ||
|
|
a3206e5be5 | ||
|
|
e34e6e1466 | ||
|
|
87c3c81a93 | ||
|
|
ceec4f492a | ||
|
|
812638b7dc |
@@ -14,7 +14,7 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(mynteye VERSION 2.2.3 LANGUAGES C CXX)
|
||||
project(mynteye VERSION 2.2.4 LANGUAGES C CXX)
|
||||
|
||||
include(cmake/Common.cmake)
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -1,6 +1,6 @@
|
||||
# MYNT® EYE S SDK
|
||||
|
||||
[](https://github.com/slightech/MYNT-EYE-S-SDK)
|
||||
[](https://github.com/slightech/MYNT-EYE-S-SDK)
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -17,11 +17,11 @@ Please follow the guide doc to install the SDK on different platforms.
|
||||
## Documentations
|
||||
|
||||
* [API Doc](https://github.com/slightech/MYNT-EYE-S-SDK/releases): API reference, some guides and data spec.
|
||||
* en: [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708507/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-en/mynt-eye-s-sdk-apidoc-2.2.3-en/index.html)
|
||||
* zh-Hans: [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html)
|
||||
* en: [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2717670/mynt-eye-s-sdk-apidoc-2.2.4-en.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2717671/mynt-eye-s-sdk-apidoc-2.2.4-en.zip) [](https://slightech.github.io/MYNT-EYE-S-SDK/)
|
||||
* zh-Hans: [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2717672/mynt-eye-s-sdk-apidoc-2.2.4-zh-Hans.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2717673/mynt-eye-s-sdk-apidoc-2.2.4-zh-Hans.zip) [](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.4-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.4-zh-Hans/index.html)
|
||||
* [Guide Doc](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/releases): How to install and start using the SDK.
|
||||
* en: [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/)
|
||||
* zh-Hans: [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708528/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708529/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html)
|
||||
* en: [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2717663/mynt-eye-s-sdk-guide-2.2.4-en.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2717664/mynt-eye-s-sdk-guide-2.2.4-en.zip) [](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/)
|
||||
* zh-Hans: [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2717665/mynt-eye-s-sdk-guide-2.2.4-zh-Hans.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2717666/mynt-eye-s-sdk-guide-2.2.4-zh-Hans.zip) [](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.4-zh-Hans/mynt-eye-s-sdk-guide-2.2.4-zh-Hans/index.html)
|
||||
|
||||
> Supported languages: `en`, `zh-Hans`.
|
||||
|
||||
@@ -29,7 +29,7 @@ Please follow the guide doc to install the SDK on different platforms.
|
||||
|
||||
[MYNTEYE_BOX]: http://doc.myntai.com/mynteye/s/download
|
||||
|
||||
Get firmwares from our online disks: [MYNTEYE_BOX][]. The latest version is `2.2.3`.
|
||||
Get firmwares from our online disks: [MYNTEYE_BOX][].
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ PROJECT_NAME = "MYNT EYE S SDK"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = 2.2.3
|
||||
PROJECT_NUMBER = 2.2.4
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
||||
@@ -38,7 +38,7 @@ PROJECT_NAME = "MYNT EYE S SDK"
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = 2.2.3
|
||||
PROJECT_NUMBER = 2.2.4
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
||||
@@ -50,7 +50,8 @@ inline double compute_time(const double end, const double start) {
|
||||
|
||||
class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
public:
|
||||
ROSWrapperNodelet() {}
|
||||
ROSWrapperNodelet() {
|
||||
}
|
||||
|
||||
~ROSWrapperNodelet() {
|
||||
// std::cout << __func__ << std::endl;
|
||||
@@ -110,7 +111,7 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
return now == pre;
|
||||
}
|
||||
|
||||
inline bool is_annormal(std::uint32_t now,
|
||||
inline bool is_abnormal(std::uint32_t now,
|
||||
std::uint32_t pre) {
|
||||
static std::uint64_t unit =
|
||||
std::numeric_limits<std::uint32_t>::max();
|
||||
@@ -127,11 +128,8 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
|
||||
if (is_overflow(_hard_time, hard_time_now[stream])) {
|
||||
acc[stream]++;
|
||||
} else if (is_repeated(_hard_time, hard_time_now[stream])) {
|
||||
NODELET_INFO_STREAM("WARNING:: Image time stamp is repeated.");
|
||||
} else if (is_annormal(_hard_time, hard_time_now[stream])) {
|
||||
NODELET_INFO_STREAM("WARNING:: Image time stamp is annormal.");
|
||||
}
|
||||
|
||||
hard_time_now[stream] = _hard_time;
|
||||
|
||||
return hardTimeToSoftTime(
|
||||
@@ -145,11 +143,8 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
|
||||
if (is_overflow(_hard_time, hard_time_now)) {
|
||||
acc++;
|
||||
} else if (is_repeated(_hard_time, hard_time_now)) {
|
||||
NODELET_INFO_STREAM("WARNING:: Imu time stamp is repeated.");
|
||||
} else if (is_annormal(_hard_time, hard_time_now)) {
|
||||
NODELET_INFO_STREAM("WARNING:: Imu time stamp is annormal.");
|
||||
}
|
||||
|
||||
hard_time_now = _hard_time;
|
||||
|
||||
return hardTimeToSoftTime(
|
||||
@@ -160,6 +155,7 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
initDevice();
|
||||
NODELET_FATAL_COND(api_ == nullptr, "No MYNT EYE device selected :(");
|
||||
|
||||
pthread_mutex_init(&mutex_data_, nullptr);
|
||||
nh_ = getMTNodeHandle();
|
||||
private_nh_ = getMTPrivateNodeHandle();
|
||||
|
||||
@@ -420,7 +416,7 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
if (camera_publishers_[Stream::LEFT].getNumSubscribers() > 0 &&
|
||||
!is_published_[Stream::LEFT]) {
|
||||
api_->SetStreamCallback(
|
||||
Stream::LEFT, [this](const api::StreamData &data) {
|
||||
Stream::LEFT, [&](const api::StreamData &data) {
|
||||
// ros::Time stamp = hardTimeToSoftTime(data.img->timestamp);
|
||||
ros::Time stamp = checkUpTimeStamp(
|
||||
data.img->timestamp, Stream::LEFT);
|
||||
@@ -451,7 +447,7 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
if (camera_publishers_[Stream::RIGHT].getNumSubscribers() > 0 &&
|
||||
!is_published_[Stream::RIGHT]) {
|
||||
api_->SetStreamCallback(
|
||||
Stream::RIGHT, [this](const api::StreamData &data) {
|
||||
Stream::RIGHT, [&](const api::StreamData &data) {
|
||||
// ros::Time stamp = hardTimeToSoftTime(data.img->timestamp);
|
||||
ros::Time stamp = checkUpTimeStamp(
|
||||
data.img->timestamp, Stream::RIGHT);
|
||||
@@ -532,12 +528,14 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
header.seq = seq;
|
||||
header.stamp = stamp;
|
||||
header.frame_id = frame_ids_[stream];
|
||||
pthread_mutex_lock(&mutex_data_);
|
||||
cv::Mat img = data.frame;
|
||||
if (stream == Stream::DISPARITY) { // 32FC1 > 8UC1 = MONO8
|
||||
img.convertTo(img, CV_8UC1);
|
||||
}
|
||||
auto &&msg =
|
||||
cv_bridge::CvImage(header, camera_encodings_[stream], img).toImageMsg();
|
||||
pthread_mutex_unlock(&mutex_data_);
|
||||
auto &&info = getCameraInfo(stream);
|
||||
info->header.stamp = msg->header.stamp;
|
||||
camera_publishers_[stream].publish(msg, info);
|
||||
@@ -972,6 +970,8 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||
ros::NodeHandle nh_;
|
||||
ros::NodeHandle private_nh_;
|
||||
|
||||
pthread_mutex_t mutex_data_;
|
||||
|
||||
// camera:
|
||||
// LEFT, RIGHT, LEFT_RECTIFIED, RIGHT_RECTIFIED,
|
||||
// DISPARITY, DISPARITY_NORMALIZED,
|
||||
|
||||
Reference in New Issue
Block a user