Compare commits
3 Commits
v2.4.2
...
devel-s210
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9810bba236 | ||
|
|
9c540db149 | ||
|
|
f96e89b941 |
@@ -1,11 +0,0 @@
|
||||
module.exports = {
|
||||
extends: ['@commitlint/config-conventional'],
|
||||
rules: {
|
||||
'type-enum': [2, 'always', [
|
||||
"feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert"
|
||||
]],
|
||||
'scope-empty': [2, 'never'],
|
||||
'subject-full-stop': [0, 'never'],
|
||||
'subject-case': [0, 'never']
|
||||
}
|
||||
};
|
||||
6
.gitignore
vendored
@@ -7,8 +7,6 @@ _build/
|
||||
_install/
|
||||
_output/
|
||||
|
||||
/docs/_doxygen/
|
||||
|
||||
/get-pip.py
|
||||
|
||||
/*INFO*
|
||||
@@ -18,15 +16,11 @@ _output/
|
||||
|
||||
/plugins/
|
||||
|
||||
/3rdparty/ceres/
|
||||
/3rdparty/opencv/
|
||||
/pkginfo.sh
|
||||
/*.nsi
|
||||
/*.exe
|
||||
|
||||
/node_modules/
|
||||
/package-lock.json
|
||||
|
||||
# ros
|
||||
|
||||
/wrappers/ros/build
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(mynteye VERSION 2.4.2 LANGUAGES C CXX)
|
||||
project(mynteye VERSION 2.2.2 LANGUAGES C CXX)
|
||||
|
||||
include(cmake/Common.cmake)
|
||||
|
||||
@@ -22,8 +22,6 @@ if(NOT CMAKE_DEBUG_POSTFIX)
|
||||
set(CMAKE_DEBUG_POSTFIX d)
|
||||
endif()
|
||||
|
||||
LIST(APPEND CMAKE_MODULE_PATH cmake)
|
||||
|
||||
# options
|
||||
|
||||
include(cmake/Option.cmake)
|
||||
@@ -57,10 +55,12 @@ macro(target_link_threads NAME)
|
||||
target_compile_options(PUBLIC ${NAME} "-pthread")
|
||||
endif()
|
||||
if(CMAKE_THREAD_LIBS_INIT)
|
||||
target_link_libraries(${NAME} PUBLIC "${CMAKE_THREAD_LIBS_INIT}")
|
||||
target_link_libraries(${NAME} "${CMAKE_THREAD_LIBS_INIT}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
LIST(APPEND CMAKE_MODULE_PATH cmake)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
# config
|
||||
@@ -94,18 +94,6 @@ if(OS_WIN)
|
||||
)
|
||||
endif()
|
||||
|
||||
# rpath
|
||||
|
||||
set(CMAKE_MACOSX_RPATH 1)
|
||||
set(MYNTEYE_CMAKE_RPATH "")
|
||||
if(WITH_OPENCV)
|
||||
list(APPEND MYNTEYE_CMAKE_RPATH ${OpenCV_LIB_PATH})
|
||||
endif()
|
||||
if(MYNTEYE_CMAKE_RPATH)
|
||||
message(STATUS "RPATH: ${MYNTEYE_CMAKE_RPATH}")
|
||||
set(CMAKE_INSTALL_RPATH "${MYNTEYE_CMAKE_RPATH}")
|
||||
endif()
|
||||
|
||||
# targets
|
||||
|
||||
add_definitions(-DMYNTEYE_EXPORTS)
|
||||
@@ -118,7 +106,6 @@ set_outdir(
|
||||
)
|
||||
|
||||
## main
|
||||
|
||||
if(WITH_GLOG)
|
||||
add_executable(main src/main.cc)
|
||||
target_link_libraries(main glog::glog)
|
||||
@@ -128,28 +115,6 @@ if(WITH_GLOG)
|
||||
)
|
||||
endif()
|
||||
|
||||
## camera_models
|
||||
|
||||
if(WITH_CAM_MODELS)
|
||||
set(EIGEN_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
|
||||
message(STATUS "EIGEN_INCLUDE_DIR: ${EIGEN_INCLUDE_DIR}")
|
||||
|
||||
include_directories(
|
||||
include
|
||||
${CMAKE_CURRENT_BINARY_DIR}/include
|
||||
${EIGEN_INCLUDE_DIR}
|
||||
src/mynteye/api/camera_models
|
||||
)
|
||||
|
||||
add_library(camera_models STATIC
|
||||
src/mynteye/api/camera_models/camera.cc
|
||||
src/mynteye/api/camera_models/equidistant_camera.cc
|
||||
src/mynteye/api/camera_models/gpl.cc
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif()
|
||||
|
||||
## libmynteye
|
||||
|
||||
if(NOT WITH_GLOG AND NOT OS_WIN)
|
||||
@@ -167,7 +132,15 @@ endif()
|
||||
if(OS_WIN)
|
||||
set(UVC_SRC src/mynteye/uvc/win/uvc-wmf.cc)
|
||||
elseif(OS_MAC)
|
||||
add_compile_options(-x objective-c++ -Wno-unused-command-line-argument -Wno-missing-method-return-type -Wno-sign-compare)
|
||||
add_compile_options(-x objective-c++)
|
||||
## INCLUDE_DIRECTORIES(src/mynteye/uvc/macosx)
|
||||
## INCLUDE_DIRECTORIES(src/mynteye/uvc/macosx/VVUVCKit)
|
||||
## aux_source_directory(src/mynteye/uvc/macosx/VVUVCKit/ MAC_VVUVCKIT_SRC_LIST)
|
||||
## aux_source_directory(src/mynteye/uvc/macosx/USBBusProber/ MAC_USBBUSPROBER_SRC_LIST)
|
||||
## add_library(usbBusProber SHARED ${MAC_USBBUSPROBER_SRC_LIST})
|
||||
## set_target_properties(usbBusProber PROPERTIES FRAMEWORK TRUE )
|
||||
## add_library(vvuvckit SHARED ${MAC_VVUVCKIT_SRC_LIST})
|
||||
## set_target_properties(vvuvckit PROPERTIES FRAMEWORK TRUE )
|
||||
|
||||
INCLUDE_DIRECTORIES(src/mynteye/uvc/macosx/USBBusProber.framework/Headers)
|
||||
INCLUDE_DIRECTORIES(src/mynteye/uvc/macosx/VVUVCKit.framework/Headers)
|
||||
@@ -177,7 +150,12 @@ elseif(OS_MAC)
|
||||
SET(OSX_EXTRA_LIBS ${VVUVCKIT_LIBRARY} ${USB_LIBRARY})
|
||||
|
||||
set(UVC_SRC src/mynteye/uvc/macosx/CameraEngine.cpp src/mynteye/uvc/macosx/AVfoundationCamera.mm src/mynteye/uvc/macosx/uvc-vvuvckit.cc )
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -framework CoreFoundation -framework AVFoundation -framework IOKit -framework AppKit -framework Cocoa -framework CoreMedia -framework CoreData -framework Foundation -framework CoreVideo ${__MACUVCLOG_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -framework CoreFoundation -framework AVFoundation -framework IOKit -framework AppKit -framework Cocoa -framework CoreMedia -framework CoreData -framework Foundation -framework CoreVideo ${__MACUVCLOG_FLAGS}")
|
||||
|
||||
find_package(libuvc REQUIRED)
|
||||
set(UVC_LIB ${libuvc_LIBRARIES})
|
||||
|
||||
include_directories(${libuvc_INCLUDE_DIRS})
|
||||
elseif(OS_LINUX)
|
||||
set(UVC_SRC src/mynteye/uvc/linux/uvc-v4l2.cc)
|
||||
else()
|
||||
@@ -189,19 +167,12 @@ set(MYNTEYE_SRCS
|
||||
src/mynteye/types.cc
|
||||
src/mynteye/util/files.cc
|
||||
src/mynteye/util/strings.cc
|
||||
src/mynteye/device/channel/bytes.cc
|
||||
src/mynteye/device/channel/channels.cc
|
||||
src/mynteye/device/channel/file_channel.cc
|
||||
src/mynteye/device/channels.cc
|
||||
src/mynteye/device/config.cc
|
||||
src/mynteye/device/context.cc
|
||||
src/mynteye/device/device.cc
|
||||
src/mynteye/device/device_s.cc
|
||||
src/mynteye/device/motions.cc
|
||||
src/mynteye/device/standard/channels_adapter_s.cc
|
||||
src/mynteye/device/standard/device_s.cc
|
||||
src/mynteye/device/standard/streams_adapter_s.cc
|
||||
src/mynteye/device/standard2/channels_adapter_s2.cc
|
||||
src/mynteye/device/standard2/device_s2.cc
|
||||
src/mynteye/device/standard2/streams_adapter_s2.cc
|
||||
src/mynteye/device/streams.cc
|
||||
src/mynteye/device/types.cc
|
||||
src/mynteye/device/utils.cc
|
||||
@@ -212,25 +183,13 @@ if(WITH_API)
|
||||
src/mynteye/api/dl.cc
|
||||
src/mynteye/api/processor.cc
|
||||
src/mynteye/api/synthetic.cc
|
||||
src/mynteye/api/processor/rectify_processor.cc
|
||||
src/mynteye/api/processor/disparity_processor.cc
|
||||
src/mynteye/api/processor/disparity_normalized_processor.cc
|
||||
src/mynteye/api/processor/root_camera_processor.cc
|
||||
src/mynteye/api/processor/points_processor_ocv.cc
|
||||
src/mynteye/api/processor/depth_processor_ocv.cc
|
||||
src/mynteye/api/processor/rectify_processor_ocv.cc
|
||||
src/mynteye/api/correspondence.cc
|
||||
src/mynteye/api/version_checker.cc
|
||||
src/mynteye/api/data_tools.cc
|
||||
src/mynteye/api/processor/depth_processor.cc
|
||||
src/mynteye/api/processor/points_processor.cc
|
||||
)
|
||||
if(WITH_CAM_MODELS)
|
||||
list(APPEND MYNTEYE_SRCS
|
||||
src/mynteye/api/processor/depth_processor.cc
|
||||
src/mynteye/api/processor/points_processor.cc
|
||||
src/mynteye/api/processor/rectify_processor.cc
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT WITH_GLOG)
|
||||
list(APPEND MYNTEYE_SRCS src/mynteye/miniglog.cc)
|
||||
endif()
|
||||
@@ -245,16 +204,12 @@ endif()
|
||||
if(WITH_GLOG)
|
||||
list(APPEND MYNTEYE_LINKLIBS glog::glog)
|
||||
endif()
|
||||
|
||||
#message(STATUS "MYNTEYE_LINKLIBS: ${MYNTEYE_LINKLIBS}")
|
||||
|
||||
add_library(${MYNTEYE_NAME} SHARED ${MYNTEYE_SRCS})
|
||||
target_link_libraries(${MYNTEYE_NAME} PUBLIC ${MYNTEYE_LINKLIBS})
|
||||
target_link_libraries(${MYNTEYE_NAME} ${MYNTEYE_LINKLIBS})
|
||||
if(OS_MAC)
|
||||
target_link_libraries(${MYNTEYE_NAME} PUBLIC ${OSX_EXTRA_LIBS} )
|
||||
endif()
|
||||
if(WITH_CAM_MODELS)
|
||||
target_link_libraries(${MYNTEYE_NAME} PRIVATE camera_models)
|
||||
target_link_libraries( ${MYNTEYE_NAME} ${OSX_EXTRA_LIBS} )
|
||||
endif()
|
||||
target_link_threads(${MYNTEYE_NAME})
|
||||
|
||||
@@ -294,7 +249,6 @@ install(FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/callbacks.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/context.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/device.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/types.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/mynteye/device/utils.h
|
||||
DESTINATION ${MYNTEYE_CMAKE_INCLUDE_DIR}/device
|
||||
)
|
||||
|
||||
34
Jenkinsfile
vendored
@@ -16,10 +16,7 @@ pipeline {
|
||||
steps {
|
||||
echo "WORKSPACE: ${env.WORKSPACE}"
|
||||
echo 'apt-get ..'
|
||||
sh '''
|
||||
apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
||||
apt-get update
|
||||
'''
|
||||
sh 'apt-get update'
|
||||
}
|
||||
}
|
||||
stage('Init') {
|
||||
@@ -42,7 +39,12 @@ pipeline {
|
||||
sh '. /opt/ros/kinetic/setup.sh; make install SUDO='
|
||||
}
|
||||
}
|
||||
|
||||
stage('Test') {
|
||||
steps {
|
||||
echo 'make test ..'
|
||||
sh '. /opt/ros/kinetic/setup.sh; make test SUDO='
|
||||
}
|
||||
}
|
||||
stage('Samples') {
|
||||
steps {
|
||||
echo 'make samples ..'
|
||||
@@ -80,36 +82,22 @@ pipeline {
|
||||
post {
|
||||
always {
|
||||
echo 'This will always run'
|
||||
/*
|
||||
dingTalk accessToken: '7dca6ae9b1b159b8b4b375e858b71f2e6cec8f73fa20d07552d09791261b2344',
|
||||
imageUrl: 'http://icon-park.com/imagefiles/loading7_gray.gif',
|
||||
message: '开始构建',
|
||||
jenkinsUrl: "${JENKINS_URL}"
|
||||
*/
|
||||
|
||||
}
|
||||
success {
|
||||
echo 'This will run only if successful'
|
||||
/*
|
||||
dingTalk accessToken: '7dca6ae9b1b159b8b4b375e858b71f2e6cec8f73fa20d07552d09791261b2344',
|
||||
imageUrl: 'http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png',
|
||||
message: '构建成功',
|
||||
jenkinsUrl: "${JENKINS_URL}"
|
||||
*/
|
||||
}
|
||||
failure {
|
||||
echo 'This will run only if failed'
|
||||
dingTalk accessToken: '7dca6ae9b1b159b8b4b375e858b71f2e6cec8f73fa20d07552d09791261b2344',
|
||||
imageUrl: 'http://www.iconsdb.com/icons/preview/soylent-red/x-mark-3-xxl.png',
|
||||
message: '构建失败',
|
||||
jenkinsUrl: "${JENKINS_URL}"
|
||||
mail to: 'mynteye-ci@slightech.com',
|
||||
subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
|
||||
body: "Something is wrong with ${env.BUILD_URL}"
|
||||
}
|
||||
unstable {
|
||||
echo 'This will run only if the run was marked as unstable'
|
||||
}
|
||||
changed {
|
||||
echo 'This will run only if the state of the Pipeline has changed'
|
||||
echo 'For example, if the Pipeline was previously failing but is now successful11'
|
||||
echo 'For example, if the Pipeline was previously failing but is now successful'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
47
Makefile
@@ -22,14 +22,7 @@ MKFILE_DIR := $(patsubst %/,%,$(dir $(MKFILE_PATH)))
|
||||
# UNIX: /usr/local
|
||||
# Windows: c:/Program Files/${PROJECT_NAME}
|
||||
|
||||
# Options
|
||||
#
|
||||
# SUDO: sudo command
|
||||
#
|
||||
# e.g. make [TARGET] SUDO=
|
||||
|
||||
SUDO ?= sudo
|
||||
CMAKE_BUILD_EXTRA_OPTIONS ?=
|
||||
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
@@ -43,6 +36,7 @@ help:
|
||||
@echo " make install install project"
|
||||
@echo " make test build test and run"
|
||||
@echo " make samples build samples"
|
||||
@echo " make tools build tools"
|
||||
@echo " make pkg package sdk"
|
||||
@echo " make ros build ros wrapper"
|
||||
@echo " make py build python wrapper"
|
||||
@@ -50,27 +44,30 @@ help:
|
||||
|
||||
.PHONY: help
|
||||
|
||||
all: init samples ros
|
||||
all: init samples tools ros
|
||||
|
||||
.PHONY: all
|
||||
|
||||
# doc
|
||||
|
||||
doc: apidoc
|
||||
|
||||
apidoc: cleandoc
|
||||
apidoc:
|
||||
@$(call echo,Make $@)
|
||||
@cd docs; make html
|
||||
@# @[ -e ./_install/include ] || $(MAKE) install
|
||||
@[ -e /usr/local/include/mynteye ] || $(MAKE) install
|
||||
@$(SH) ./doc/build.sh
|
||||
|
||||
opendoc: apidoc
|
||||
@$(call echo,Make $@)
|
||||
@$(SH) ./scripts/open.sh docs/_build/html/index.html
|
||||
@$(shell $(SH) ./doc/langs.sh 1); \
|
||||
for lang in "$${LANGS[@]}"; do \
|
||||
html=./doc/_output/$$lang/html/index.html; \
|
||||
[ -f "$$html" ] && $(SH) ./scripts/open.sh $$html; \
|
||||
done
|
||||
|
||||
cleandoc:
|
||||
@$(call rm,./docs/_build/)
|
||||
@$(call rm,./docs/_doxygen/)
|
||||
@$(call rm,./doc/_output/)
|
||||
|
||||
.PHONY: doc apidoc opendoc cleandoc
|
||||
.PHONY: apidoc opendoc cleandoc
|
||||
|
||||
# deps
|
||||
|
||||
@@ -92,9 +89,9 @@ init:
|
||||
build:
|
||||
@$(call echo,Make $@)
|
||||
ifeq ($(HOST_OS),Win)
|
||||
@$(call cmake_build,./_build,..,-DCMAKE_INSTALL_PREFIX=$(MKFILE_DIR)/_install $(CMAKE_BUILD_EXTRA_OPTIONS))
|
||||
@$(call cmake_build,./_build,..,-DCMAKE_INSTALL_PREFIX=$(MKFILE_DIR)/_install)
|
||||
else
|
||||
@$(call cmake_build,./_build,..,$(CMAKE_BUILD_EXTRA_OPTIONS))
|
||||
@$(call cmake_build,./_build,..)
|
||||
endif
|
||||
|
||||
.PHONY: build
|
||||
@@ -121,7 +118,7 @@ endif
|
||||
|
||||
# install
|
||||
|
||||
install: uninstall build
|
||||
install: build
|
||||
@$(call echo,Make $@)
|
||||
ifeq ($(HOST_OS),Win)
|
||||
ifneq ($(HOST_NAME),MinGW)
|
||||
@@ -158,6 +155,14 @@ samples: install
|
||||
|
||||
.PHONY: samples
|
||||
|
||||
# tools
|
||||
|
||||
tools: install
|
||||
@$(call echo,Make $@)
|
||||
@$(call cmake_build,./tools/_build)
|
||||
|
||||
.PHONY: tools
|
||||
|
||||
# pkg
|
||||
|
||||
pkg: clean
|
||||
@@ -247,6 +252,8 @@ clean:
|
||||
@$(call rm,./_install/)
|
||||
@$(call rm,./samples/_build/)
|
||||
@$(call rm,./samples/_output/)
|
||||
@$(call rm,./tools/_build/)
|
||||
@$(call rm,./tools/_output/)
|
||||
@$(call rm,./test/_build/)
|
||||
@$(call rm,./test/_output/)
|
||||
@$(MAKE) cleanlog
|
||||
@@ -263,6 +270,7 @@ cleanlog:
|
||||
|
||||
cleanall: clean cleandoc
|
||||
@$(call rm,./test/gtest/_build/)
|
||||
@$(call rm,./third_party/glog/_build/)
|
||||
@$(FIND) . -type f -name ".DS_Store" -print0 | xargs -0 rm -f
|
||||
@$(call rm,./$(PBCVT_DIR)/)
|
||||
@$(call rm,./$(NPCV_DIR)/)
|
||||
@@ -288,7 +296,6 @@ host:
|
||||
@echo LDD: $(LDD)
|
||||
@echo CMAKE: $(CMAKE)
|
||||
@echo PKGNAME: $(PKGNAME)
|
||||
@echo CMAKE_BUILD_EXTRA_OPTIONS: $(CMAKE_BUILD_EXTRA_OPTIONS)
|
||||
|
||||
.PHONY: host
|
||||
|
||||
|
||||
13
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,8 +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://readthedocs.org/projects/mynt-eye-s-sdk/downloads/pdf/latest/) [](https://readthedocs.org/projects/mynt-eye-s-sdk/downloads/htmlzip/latest/) [](https://mynt-eye-s-sdk.readthedocs.io/en/latest/)
|
||||
* zh-Hans: [](https://readthedocs.org/projects/mynt-eye-s-sdk-docs-zh-cn/downloads/pdf/latest/) [](https://readthedocs.org/projects/mynt-eye-s-sdk-docs-zh-cn/downloads/htmlzip/latest/) [](https://mynt-eye-s-sdk-docs-zh-cn.readthedocs.io/zh_CN/latest/)
|
||||
* en: [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.2-en.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683637/mynt-eye-s-sdk-apidoc-2.2.2-en.zip) [](https://slightech.github.io/MYNT-EYE-S-SDK/)
|
||||
* zh-Hans: [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683638/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683639/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans.zip) [](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.2-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/2683625/mynt-eye-s-sdk-guide-2.2.2-en.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683626/mynt-eye-s-sdk-guide-2.2.2-en.zip) [](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/)
|
||||
* zh-Hans: [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683627/mynt-eye-s-sdk-guide-2.2.2-zh-Hans.pdf) [](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683628/mynt-eye-s-sdk-guide-2.2.2-zh-Hans.zip) [](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.2-zh-Hans/mynt-eye-s-sdk-guide-2.2.2-zh-Hans/index.html)
|
||||
|
||||
> Supported languages: `en`, `zh-Hans`.
|
||||
|
||||
@@ -26,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][].
|
||||
Get firmwares from our online disks: [MYNTEYE_BOX][]. The latest version is `2.2.2`.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -53,7 +56,7 @@ Init project, build samples and run someone.
|
||||
```bash
|
||||
make init
|
||||
make samples
|
||||
./samples/_output/bin/camera_with_junior_device_api
|
||||
./samples/_output/bin/device/camera_d
|
||||
```
|
||||
|
||||
## Mirrors
|
||||
|
||||
26
cmake/DetectGLog.cmake
Normal file
@@ -0,0 +1,26 @@
|
||||
# Copyright 2018 Slightech Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/IncludeGuard.cmake)
|
||||
cmake_include_guard()
|
||||
|
||||
get_filename_component(__pro_dir ${CMAKE_CURRENT_LIST_DIR} DIRECTORY)
|
||||
LIST(APPEND CMAKE_PREFIX_PATH ${__pro_dir}/third_party/glog/_build)
|
||||
|
||||
find_package(glog REQUIRED)
|
||||
if(glog_FOUND)
|
||||
add_definitions(-DWITH_GLOG)
|
||||
endif()
|
||||
|
||||
unset(__pro_dir)
|
||||
@@ -26,13 +26,14 @@ if(OpenCV_FOUND)
|
||||
#message(STATUS "Found OpenCV: ${OpenCV_VERSION}")
|
||||
|
||||
set(WITH_OPENCV TRUE)
|
||||
add_definitions(-DWITH_OPENCV)
|
||||
|
||||
if(OpenCV_VERSION VERSION_LESS 3.0)
|
||||
set(WITH_OPENCV2 TRUE)
|
||||
add_definitions(-DWITH_OPENCV2)
|
||||
elseif(OpenCV_VERSION VERSION_LESS 4.0)
|
||||
set(WITH_OPENCV3 TRUE)
|
||||
add_definitions(-DWITH_OPENCV3)
|
||||
else()
|
||||
set(WITH_OPENCV4 TRUE)
|
||||
add_definitions(-DWITH_OPENCV4)
|
||||
endif()
|
||||
|
||||
list(FIND OpenCV_LIBS "opencv_world" __index)
|
||||
@@ -40,35 +41,12 @@ if(${__index} GREATER -1)
|
||||
set(WITH_OPENCV_WORLD TRUE)
|
||||
endif()
|
||||
|
||||
if(NOT OpenCV_LIB_PATH)
|
||||
list(LENGTH OpenCV_INCLUDE_DIRS __length)
|
||||
if(${__length} GREATER 0)
|
||||
list(GET OpenCV_INCLUDE_DIRS 0 __include_dir)
|
||||
string(REGEX REPLACE "include.*$" "lib" __lib_dir "${__include_dir}")
|
||||
find_library(__opencv_lib
|
||||
NAMES opencv_core3 opencv_core opencv_world
|
||||
PATHS "${__lib_dir}" "${__lib_dir}/x86_64-linux-gnu"
|
||||
NO_DEFAULT_PATH)
|
||||
#message(STATUS "__opencv_lib: ${__opencv_lib}")
|
||||
if(__opencv_lib)
|
||||
get_filename_component(OpenCV_LIB_PATH "${__opencv_lib}" DIRECTORY)
|
||||
else()
|
||||
set(OpenCV_LIB_PATH "${__lib_dir}")
|
||||
endif()
|
||||
#message(STATUS "OpenCV_LIB_PATH: ${OpenCV_LIB_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MSVC OR MSYS OR MINGW)
|
||||
get_filename_component(OpenCV_LIB_SEARCH_PATH "${OpenCV_LIB_PATH}/../bin" ABSOLUTE)
|
||||
else()
|
||||
set(OpenCV_LIB_SEARCH_PATH "${OpenCV_LIB_PATH}")
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${OpenCV_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
else()
|
||||
|
||||
set(WITH_OPENCV FALSE)
|
||||
|
||||
@@ -23,8 +23,6 @@ include(${CMAKE_CURRENT_LIST_DIR}/Utils.cmake)
|
||||
option(WITH_API "Build with API layer, need OpenCV" ON)
|
||||
option(WITH_DEVICE_INFO_REQUIRED "Build with device info required" ON)
|
||||
|
||||
option(WITH_CAM_MODELS "Build with more camera models, WITH_API must be ON" ON)
|
||||
|
||||
# 3rdparty components
|
||||
|
||||
option(WITH_BOOST "Include Boost support" ON)
|
||||
@@ -34,22 +32,23 @@ option(WITH_BOOST "Include Boost support" ON)
|
||||
option(WITH_GLOG "Include glog support" OFF)
|
||||
|
||||
# packages
|
||||
|
||||
if(WITH_API)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/DetectOpenCV.cmake)
|
||||
if(WITH_OPENCV4)
|
||||
set(WITH_CAM_MODELS OFF)
|
||||
endif()
|
||||
else()
|
||||
# Disable WITH_CAM_MODELS if WITH_API is OFF
|
||||
set(WITH_CAM_MODELS OFF)
|
||||
endif()
|
||||
|
||||
if(WITH_DEVICE_INFO_REQUIRED)
|
||||
add_definitions(-DWITH_DEVICE_INFO_REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WITH_BOOST)
|
||||
find_package(Boost QUIET COMPONENTS filesystem)
|
||||
find_package(Boost COMPONENTS filesystem)
|
||||
if(Boost_FOUND)
|
||||
set(Boost_VERSION_STRING "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
||||
set(WITH_FILESYSTEM TRUE)
|
||||
set(WITH_BOOST_FILESYSTEM TRUE)
|
||||
add_definitions(-DWITH_FILESYSTEM)
|
||||
add_definitions(-DWITH_BOOST_FILESYSTEM)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -57,11 +56,13 @@ if(NOT WITH_FILESYSTEM)
|
||||
if(MSVC OR MSYS OR MINGW) # win
|
||||
set(WITH_FILESYSTEM TRUE)
|
||||
set(WITH_NATIVE_FILESYSTEM TRUE)
|
||||
add_definitions(-DWITH_FILESYSTEM)
|
||||
add_definitions(-DWITH_NATIVE_FILESYSTEM)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GLOG)
|
||||
find_package(glog REQUIRED)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/DetectGLog.cmake)
|
||||
endif()
|
||||
|
||||
find_package(CUDA QUIET)
|
||||
@@ -119,8 +120,6 @@ endif()
|
||||
|
||||
status(" WITH_DEVICE_INFO_REQUIRED: ${WITH_DEVICE_INFO_REQUIRED}")
|
||||
|
||||
status(" WITH_CAM_MODELS: ${WITH_CAM_MODELS}")
|
||||
|
||||
status(" WITH_BOOST: ${WITH_BOOST}")
|
||||
if(WITH_BOOST)
|
||||
if(Boost_FOUND)
|
||||
|
||||
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
83
doc/build.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2018 Slightech Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# _VERBOSE_=1
|
||||
# _TEST_=1
|
||||
|
||||
BASE_DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
ROOT_DIR=$(realpath "$BASE_DIR/..")
|
||||
SCRIPTS_DIR="$ROOT_DIR/scripts"
|
||||
|
||||
source "$SCRIPTS_DIR/common/echo.sh"
|
||||
source "$SCRIPTS_DIR/common/mkdir.sh"
|
||||
source "$SCRIPTS_DIR/common/detect.sh"
|
||||
|
||||
_detect "doxygen"
|
||||
_detect "pdflatex" 1
|
||||
|
||||
source "$BASE_DIR/langs.sh"
|
||||
DOXYFILE="api.doxyfile"
|
||||
OUTPUT="$BASE_DIR/_output"
|
||||
|
||||
# \usepackage{CJKutf8}
|
||||
# \begin{document}
|
||||
# \begin{CJK}{UTF8}{gbsn}
|
||||
# ...
|
||||
# \end{CJK}
|
||||
# \end{document}
|
||||
_texcjk() {
|
||||
tex="$1"; shift;
|
||||
_echo_in "add cjk to $tex"
|
||||
sed -i "" -E $'s/^\\\\begin{document}$/\\\\usepackage{CJKutf8}\\\n\\\\begin{document}\\\n\\\\begin{CJK}{UTF8}{gbsn}/g' $tex
|
||||
sed -i "" -E $'s/^\\\\end{document}$/\\\\end{CJK}\\\n\\\\end{document}/g' $tex
|
||||
}
|
||||
|
||||
for lang in "${LANGS[@]}"; do
|
||||
_echo_s "Build doc $lang"
|
||||
[ -d "$BASE_DIR/$lang" ] || continue
|
||||
cd "$BASE_DIR/$lang"
|
||||
if [ -f "$DOXYFILE" ]; then
|
||||
_mkdir "$OUTPUT/$lang"
|
||||
_echo_i "doxygen $DOXYFILE"
|
||||
doxygen $DOXYFILE
|
||||
|
||||
version=`cat $DOXYFILE | grep -m1 "^PROJECT_NUMBER\s*=" | \
|
||||
sed -E "s/^.*=[[:space:]]*(.*)[[:space:]]*$/\1/g"`
|
||||
|
||||
# html
|
||||
if [ -d "$OUTPUT/$lang/html" ]; then
|
||||
dirname="mynt-eye-s-sdk-apidoc"; \
|
||||
[ -n "$version" ] && dirname="$dirname-$version"; \
|
||||
dirname="$dirname-$lang"
|
||||
cd "$OUTPUT/$lang"
|
||||
[ -d "$dirname" ] && rm -rf "$dirname"
|
||||
mv "html" "$dirname" && zip -r "$dirname.zip" "$dirname"
|
||||
fi
|
||||
|
||||
# latex
|
||||
if [ $pdflatex_FOUND ] && [ -f "$OUTPUT/$lang/latex/Makefile" ]; then
|
||||
_echo_in "doxygen make latex"
|
||||
filename="mynt-eye-s-sdk-apidoc"; \
|
||||
[ -n "$version" ] && filename="$filename-$version"; \
|
||||
filename="$filename-$lang.pdf"
|
||||
cd "$OUTPUT/$lang/latex" && _texcjk refman.tex && make
|
||||
[ -f "refman.pdf" ] && mv "refman.pdf" "../$filename"
|
||||
fi
|
||||
|
||||
_echo_d "doxygen completed"
|
||||
else
|
||||
_echo_e "$DOXYFILE not found"
|
||||
fi
|
||||
done
|
||||
2495
doc/en/api.doxyfile
Normal file
11
doc/en/mainpage.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# MYNT EYE S SDK {#mainpage}
|
||||
|
||||
* <a class="el" href="annotated.html">API Classes</a>
|
||||
* <a class="el" href="modules.html">API Modules</a>
|
||||
* \link enumerations Enumerations\endlink
|
||||
* \link datatypes Datatypes\endlink
|
||||
* \link utils Utiliities\endlink
|
||||
* \link calibration Intrinsics & Extrinsics\endlink
|
||||
* <span style="font-weight:bold">Device Specifications</span>
|
||||
* @subpage specs_data
|
||||
* @subpage specs_ctrl
|
||||
26
doc/en/spec_control_api.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Control Protocols {#spec_control_api}
|
||||
|
||||
There are two control modes, one is through UVC standard protocol, the other is through UVC custom protocol with extension unit.
|
||||
|
||||
## Standard Protocol
|
||||
|
||||
| Name | Field | Bytes | Default | Min | Max | Stored | Flash Address | Note |
|
||||
| :--- | :---- | :---- | :------ | :-- | :-- | :----- | :------------ | :--- |
|
||||
| Gain | gain | 2 | 24 | 0 | 48 | √ | 0x12 | valid if manual-exposure |
|
||||
| Brightness | brightness/exposure_time | 2 | 120 | 0 | 240 | √ | 0x14 | valid if manual-exposure |
|
||||
| Contrast | contrast/black_level_calibration | 2 | 127 | 0 | 255 | √ | 0x10 | valid if manual-exposure |
|
||||
|
||||
## Custom Protocol
|
||||
|
||||
| Name | Field | Bytes | Default | Min | Max | Stored | Flash Address | Channel | Note |
|
||||
| :--- | :---- | :---- | :------ | :-- | :-- | :----- | :------------ | :------ | :----- |
|
||||
| Frame rate | frame_rate | 2 | 25 | 10 | 60 | √ | 0x21 | XU_CAM_CTRL | values: {10,15,20,25,30,35,40,45,50,55,60} |
|
||||
| IMU frequency | imu_frequency | 2 | 200 | 100 | 500 | √ | 0x23 | XU_CAM_CTRL | values: {100,200,250,333,500} |
|
||||
| Exposure mode | exposure_mode | 1 | 0 | 0 | 1 | √ | 0x0F | XU_CAM_CTRL | 0: enable auto-exposure; 1: manual-exposure |
|
||||
| Max gain | max_gain | 2 | 48 | 0 | 48 | √ | 0x1D | XU_CAM_CTRL | valid if auto-exposure |
|
||||
| Max exposure time | max_exposure_time | 2 | 240 | 0 | 240 | √ | 0x1B | XU_CAM_CTRL | valid if auto-exposure |
|
||||
| Desired brightness | desired_brightness | 2 | 192 | 0 | 255 | √ | 0x19 | XU_CAM_CTRL | valid if auto-exposure |
|
||||
| IR control | ir_control | 1 | 0 | 0 | 160 | × | - | XU_CAM_CTRL | |
|
||||
| HDR mode | hdr_mode | 1 | 0 | 0 | 1 | √ | 0x1F | XU_CAM_CTRL | 0: 10-bit; 1: 12-bit |
|
||||
| Zero drift calibration | zero_drift_calibration | | - | - | - | × | - | XU_HALF_DUPLEX | |
|
||||
| Erase chip | erase_chip | | - | - | - | × | - | XU_HALF_DUPLEX | |
|
||||
53
doc/en/spec_control_channel.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Control Channels {#spec_control_channel}
|
||||
|
||||
| Name | Field | Address | Bandwidth | Node |
|
||||
| :----- | :----- | :----- | :----- | :----- |
|
||||
| Camera control channel | XU_CAM_CTRL_CHANNEL | 1 | 3 | |
|
||||
| Half-Duplex channel | XU_HALF_DUPLEX_CHANNEL | 2 | 20 | |
|
||||
| IMU write channel | XU_IMUDATA_WRITE_CHANNEL | 3 | 5 | |
|
||||
| IMU read channel | XU_IMUDATA_READ_CHANNEL | 4 | 2000 | |
|
||||
| File channel | XU_FILE_CHANNEL | 5 | 2000 | |
|
||||
|
||||
## Camera Control Channel
|
||||
|
||||
The channel provides get, set and query (min, max, default).
|
||||
|
||||
## Half-Duplex Channel
|
||||
|
||||
The channel only provides set, such as zero drift correction.
|
||||
|
||||
## IMU Channel
|
||||
|
||||
The channel is used to request and response IMU data, see @ref spec_imu_data.
|
||||
|
||||
## File Channel
|
||||
|
||||
The channel is used to read and write device information, image params, and IMU params.
|
||||
|
||||
| Name | Header | Size | File | Checksum |
|
||||
| :--- | :- | :--- | :--- | :-------- |
|
||||
| Bytes | 1 | 2 | - | 1 |
|
||||
| Type | uint8_t | uint16_t | - | uint8_t |
|
||||
| Description | Flags | Content size | Content data | Checksum, XOR of all content bytes |
|
||||
|
||||
| Header Bit Subscript | Description |
|
||||
| :------------------- | :---------- |
|
||||
| 0 | Device information |
|
||||
| 1 | Image params |
|
||||
| 2 | IMU params |
|
||||
| 3~6 | Undefined |
|
||||
| 7 | 0: Get; 1: Set |
|
||||
|
||||
### File Content Packet
|
||||
|
||||
| Name | ID | Size | Content |
|
||||
| :--- | :- | :--- | :------ |
|
||||
| Bytes | 1 | 2 | - |
|
||||
| Type | uint8_t | uint16_t | - |
|
||||
| Description | Content ID | Content size | Content data |
|
||||
|
||||
| File | ID | Max Size |
|
||||
| :--- | :- | :------- |
|
||||
| Device information | 1 | 250 |
|
||||
| Image params | 2 | 250 |
|
||||
| IMU params | 4 | 500 |
|
||||
14
doc/en/spec_hardware_info.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Device Information {#spec_hardware_info}
|
||||
|
||||
| Name | Field | Fixed Value | USB Descriptor | UVC Extension Unit | Bytes | Note |
|
||||
| :----- | :----- | :-------- | :-------------- | :----------------- | :-------- | :----- |
|
||||
| VID | vid | 0x04B4 | √ | × | 2 | |
|
||||
| PID | pid | 0x00F9 | √ | × | 2 | |
|
||||
| Device name | name | MYNT-EYE-? | √ | √ Get | 16 | MYNT-EYE-S1000 |
|
||||
| Serial number | serial_number | - | √ | √ Get | 16 | |
|
||||
| Firmware version | firmware_version | - | √ | √ Get | 2 | major,minor |
|
||||
| Hardware version | hardware_version | - | × | √ Get | 3 | major,minor,flag |
|
||||
| Spec version | spec_version | - | × | √ Get | 2 | major,minor |
|
||||
| Lens type | lens_type | - | × | √ Get/Set | 4 | vendor(2),product(2); default: 0 |
|
||||
| IMU type | imu_type | - | × | √ Get/Set | 4 | vendor(2),product(2); default: 0 |
|
||||
| Nominal baseline | nominal_baseline | - | × | √ Get/Set | 2 | unit: mm; default: 0 |
|
||||
20
doc/en/spec_image_data.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Image Data {#spec_image_data}
|
||||
|
||||
| Name | Field | Unit | Bytes | Note |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| Frame ID | frame_id | - | 2 | uint16_t; [0,65535] |
|
||||
| Timestamp | timestamp | 10 us | 4 | uint32_t |
|
||||
| Exposure Time | exposure_time | 10 us | 2 | uint16_t |
|
||||
|
||||
## Image Packet
|
||||
|
||||
| Name | Header | Size | Frame ID | Timestamp | Exposure Time | Checksum |
|
||||
| :--- | :----- | :--- | :------- | :-------- | :------------ | :------- |
|
||||
| Bytes | 1 | 1 | 2 | 4 | 2 | 1 |
|
||||
| Type | uint8_t | uint8_t | uint16_t | uint32_t | uint16_t | uint8_t |
|
||||
| Description | 0x3B | 0x08, content size | Frame ID | Timestamp | Exposure time | Checksum, XOR of all content bytes |
|
||||
|
||||
* The image packet will be dropped, if checksum is incorrect.
|
||||
* The accuracy of the time unit: 0.01 ms / 10 us.
|
||||
* The timestamp could indicate 11.9 hours, it will accumulate again after overflow.
|
||||
* The timestamp accumulation starts from the time of power-on, instead of opening.
|
||||
23
doc/en/spec_image_params.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Image Params {#spec_image_params}
|
||||
|
||||
## Image Intrinsics
|
||||
|
||||
| Name | Field | Unit | Bytes | Note |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| Image width | width | px | 2 | uint16_t; [0,65535] |
|
||||
| Image height | height | px | 2 | uint16_t; [0,65535] |
|
||||
| Focal length | fx | - | 8 | double |
|
||||
| ^ | fy | - | 8 | double |
|
||||
| Principal point | cx | - | 8 | double |
|
||||
| ^ | cy | - | 8 | double |
|
||||
| Distortion model | model | - | 1 | uint8_t; pinhole,... |
|
||||
| Distortion coefficients | coeffs[5] | - | 40 | double; k1,k2,p1,p2,k3 |
|
||||
|
||||
## Image Extrinsics
|
||||
|
||||
Transformation matrix from left image to right image.
|
||||
|
||||
| Name | Field | Unit | Bytes | Note |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| Rotation matrix | rotation[3][3] | - | 72 | double |
|
||||
| Translation vector | translation[3] | - | 24 | double |
|
||||
42
doc/en/spec_imu_data.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# IMU Data {#spec_imu_data}
|
||||
|
||||
## IMU Request Packet
|
||||
|
||||
| Name | Header | Serial Number |
|
||||
| :--- | :----- | :------------ |
|
||||
| Bytes | 1 | 4 |
|
||||
| Type | uint8_t | uint32_t |
|
||||
| Description | 0x5A | First request should be 0, otherwise the last one |
|
||||
|
||||
## IMU Response Packet
|
||||
|
||||
The IMU response packet contains multiple IMU packets, and each IMU packet contains multiple IMU segments.
|
||||
|
||||
| Name | Header | State | Size | IMU Packets | Checksum |
|
||||
| :--- | :----- | :---- | :--- | :---------- | :------- |
|
||||
| Bytes | 1 | 1 | 2 | ... | 1 |
|
||||
| Type | uint8_t | uint8_t | uint16_t | - | uint8_t |
|
||||
| Description | 0x5B | 0 is success, others are failed | Content size | IMU packets | Checksum, XOR of all content bytes |
|
||||
|
||||
### IMU Packet
|
||||
|
||||
The IMU packet is an array of IMU datas.
|
||||
|
||||
| Name | Serial Number | Timestamp | Count | IMU Datas |
|
||||
| :--- | :------------ | :-------- | :---- | :-------- |
|
||||
| Bytes | 4 | 4 | 1 | ... |
|
||||
| Type | uint32_t | uint32_t | uint8_t | - |
|
||||
| Description | Serial number | IMU basic timestamp | The number of IMU datas | IMU datas |
|
||||
|
||||
### IMU Segment
|
||||
|
||||
| Name | Offset | Frame ID | Accelerometer | Temperature | Gyroscope |
|
||||
| :--- | :----- | :------- | :------------ | :---------- | :-------- |
|
||||
| Bytes | 2 | 2 | 6 | 2 | 6 |
|
||||
| Type | int16_t | uint16_t | int16_t * 3 | int16_t | int16_t * 3 |
|
||||
| Description | The timestamp offset | Image frame ID | Accel x,y,z values | IMU temperature | Gyro x,y,z values |
|
||||
|
||||
* Formula for converting the accel & gyro values to real ones: **real = data * range / 0x10000** .
|
||||
* ``accel`` default ``range`` is **8 g**, ``gyro`` default ``range`` is **1000 deg/s**.
|
||||
* Formula for converting the temperature to real value: **real = data / ratio + offset** .
|
||||
* default ``ratio`` is **326.8**, default ``offset`` is **25℃**.
|
||||
23
doc/en/spec_imu_params.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# IMU Params {#spec_imu_params}
|
||||
|
||||
## IMU Intrinsics
|
||||
|
||||
| Name | Field | Unit | Bytes | Note |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| Scale matrix | acc_scale[3][3] | - | 72 | double |
|
||||
| ^ | gyro_scale[3][3] | - | 72 | double |
|
||||
| Zero-drift | acc_drift[3] | - | 24 | double |
|
||||
| ^ | gyro_drift[3] | - | 24 | double |
|
||||
| Noise density | acc_noise[3] | - | 24 | double |
|
||||
| ^ | gyro_noise[3] | - | 24 | double |
|
||||
| Random walk | acc_bias[3] | - | 24 | double |
|
||||
| ^ | gyro_bias[3] | - | 24 | double |
|
||||
|
||||
## IMU Extrinsics
|
||||
|
||||
Transformation matrix from left image to IMU.
|
||||
|
||||
| Name | Field | Unit | Bytes | Note |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| Rotation matrix | rotation[3][3] | - | 72 | double |
|
||||
| Translation vector | translation[3] | - | 24 | double |
|
||||
4
doc/en/specs_ctrl.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Device Control Specification {#specs_ctrl}
|
||||
|
||||
* @subpage spec_control_api
|
||||
* @subpage spec_control_channel
|
||||
7
doc/en/specs_data.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Device Data Specification {#specs_data}
|
||||
|
||||
* @subpage spec_hardware_info
|
||||
* @subpage spec_image_params
|
||||
* @subpage spec_imu_params
|
||||
* @subpage spec_image_data
|
||||
* @subpage spec_imu_data
|
||||
20
doc/langs.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2018 Slightech Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
LANGS=(
|
||||
en
|
||||
zh-Hans
|
||||
)
|
||||
[ $# -gt 0 ] && echo "LANGS=(${LANGS[@]})"
|
||||
3
doc/static/custom.css
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
#projectlogo img {
|
||||
margin: 1em 0.5em 1em 1em;
|
||||
}
|
||||
BIN
doc/static/images/icon.png
vendored
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
doc/static/images/imu_analytics.png
vendored
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
doc/static/images/make_install.png
vendored
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
doc/static/images/stamp_analytics.png
vendored
Normal file
|
After Width: | Height: | Size: 127 KiB |
2497
doc/zh-Hans/api.doxyfile
Normal file
44
doc/zh-Hans/guide_build_linux.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 编译 on Linux {#guide_build_linux}
|
||||
|
||||
> Ubuntu 16.04, Ubuntu 14.04
|
||||
|
||||
## 获取代码
|
||||
|
||||
```bash
|
||||
git clone https://github.com/slightech/MYNT-EYE-S-SDK.git
|
||||
```
|
||||
|
||||
## 准备依赖
|
||||
|
||||
```bash
|
||||
cd mynt-eye-s-sdk/
|
||||
make init
|
||||
```
|
||||
|
||||
### [OpenCV](https://opencv.org/)
|
||||
|
||||
编译前,可在系统终端(Windows 命令提示符)里如下指定 OpenCV 路径,其为 `OpenCVConfig.cmake` 目录:
|
||||
|
||||
```bash
|
||||
# Linux, macOS
|
||||
export OpenCV_DIR=~/opencv
|
||||
|
||||
# Windows
|
||||
set OpenCV_DIR=C:\opencv
|
||||
```
|
||||
|
||||
## 编译代码
|
||||
|
||||
```bash
|
||||
make install
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||

|
||||
|
||||
\latexonly
|
||||
\includegraphics[width=0.6\textwidth,keepaspectratio]{make_install.png}
|
||||
\endlatexonly
|
||||
|
||||
> CMake 如何引入编译好的库,可参考 `samples/CMakeLists.txt` 里的配置。
|
||||
113
doc/zh-Hans/guide_build_win.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# 编译 on Windows {#guide_build_win}
|
||||
|
||||
> Windows 10
|
||||
|
||||
## 前提条件
|
||||
|
||||
* [Git](https://git-scm.com/downloads),用于获取代码。
|
||||
* [CMake](https://cmake.org/download/),用于构建编译。
|
||||
* [Doxygen](http://www.stack.nl/~dimitri/doxygen/download.html),用于生成文档。
|
||||
|
||||
最终,命令提示符(Command Prompt, cmd)里可找到如下命令:
|
||||
|
||||
```cmd
|
||||
>cmake --version
|
||||
cmake version 3.10.1
|
||||
|
||||
>git --version
|
||||
git version 2.11.1.windows.1
|
||||
|
||||
>doxygen --version
|
||||
1.8.13
|
||||
```
|
||||
|
||||
* [Visual Studio](https://www.visualstudio.com/)
|
||||
* [Visual Studio 2015](https://my.visualstudio.com/Downloads?q=Visual Studio 2015)
|
||||
* [Visual Studio 2017](https://my.visualstudio.com/Downloads?q=Visual Studio 2017)
|
||||
* [Windows 10 SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk)
|
||||
|
||||
以 Visual Studio 2015 举例,请在系统环境变量 `PATH` 里添加上如下路径:
|
||||
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
|
||||
C:\Program Files (x86)\MSBuild\14.0\Bin
|
||||
|
||||
最终,命令提示符(Command Prompt, cmd)里可找到如下命令:
|
||||
|
||||
```cmd
|
||||
>cl
|
||||
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86
|
||||
|
||||
>link
|
||||
Microsoft (R) Incremental Linker Version 14.00.24215.1
|
||||
|
||||
>lib
|
||||
Microsoft (R) Library Manager Version 14.00.24215.1
|
||||
|
||||
>msbuild
|
||||
Microsoft (R) 生成引擎版本 14.0.25420.1
|
||||
```
|
||||
|
||||
* [MSYS2](http://www.msys2.org/)
|
||||
* [国内镜像](https://lug.ustc.edu.cn/wiki/mirrors/help/msys2)
|
||||
* [pacman](https://wiki.archlinux.org/index.php/pacman)
|
||||
|
||||
打开 MSYS2 MSYS ,然后执行:
|
||||
|
||||
```msys
|
||||
$ pacman -Syu
|
||||
$ pacman -S make
|
||||
```
|
||||
|
||||
并在系统环境变量 `PATH` 里添加上如下路径:
|
||||
|
||||
C:\msys64\usr\bin
|
||||
|
||||
最终,命令提示符(Command Prompt, cmd)里可找到如下命令:
|
||||
|
||||
```cmd
|
||||
>make --version
|
||||
GNU Make 4.2.1
|
||||
```
|
||||
|
||||
## 获取代码
|
||||
|
||||
```cmd
|
||||
>git clone https://github.com/slightech/MYNT-EYE-S-SDK.git
|
||||
```
|
||||
|
||||
## 准备依赖
|
||||
|
||||
```cmd
|
||||
>cd mynt-eye-s-sdk
|
||||
>make init
|
||||
Make init
|
||||
Init deps
|
||||
Install cmd: pacman -S
|
||||
Install deps: git clang-format
|
||||
pacman -S clang-format (not exists)
|
||||
error: target not found: clang-format
|
||||
pip install --upgrade autopep8 cpplint pylint requests
|
||||
...
|
||||
Init git hooks
|
||||
ERROR: clang-format-diff is not installed!
|
||||
Expect cmake version >= 3.0
|
||||
cmake version 3.10.1
|
||||
```
|
||||
|
||||
### [OpenCV](https://opencv.org/)
|
||||
|
||||
编译前,可在系统终端(Windows 命令提示符)里如下指定 OpenCV 路径,其为 `OpenCVConfig.cmake` 目录:
|
||||
|
||||
```bash
|
||||
# Linux, macOS
|
||||
export OpenCV_DIR=~/opencv
|
||||
|
||||
# Windows
|
||||
set OpenCV_DIR=C:\opencv
|
||||
```
|
||||
|
||||
## 编译代码
|
||||
|
||||
```cmd
|
||||
>make install
|
||||
```
|
||||
6
doc/zh-Hans/guide_log.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# 日志 {#guide_log}
|
||||
|
||||
日志系统用的 `glog` ,通用配置在头文件 `logger.h` 里。
|
||||
|
||||
* 日志文件会存储在当前工作目录, `make cleanlog` 可以清理。
|
||||
* 如果需要打开详细日志,请取消 `logger.h` 里注释的 `FLAGS_v = 2;` ,重新编译。
|
||||
13
doc/zh-Hans/guide_opencv.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# OpenCV 依赖 {#guide_opencv}
|
||||
|
||||
SDK 提供了三层接口,其 OpenCV 依赖情况如下:
|
||||
|
||||
* `api`, 上层接口,依赖 OpenCV 。
|
||||
* `device`,中间层接口,不依赖 OpenCV 。
|
||||
* `uvc`,底层接口,不依赖 OpenCV 。
|
||||
|
||||
如果不想使用 OpenCV ,你可编辑 `<sdk>/cmake/Option.cmake` 里的 `WITH_API` 选项,设为 `OFF` 就能关闭 `api` 层代码编译:
|
||||
|
||||
```cmake
|
||||
option(WITH_API "Build with API layer, need OpenCV" ON)
|
||||
```
|
||||
30
doc/zh-Hans/guide_ros.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# ROS 封装 {#guide_ros}
|
||||
|
||||
ROS 封装实现在 ``<sdk>/wrappers/ros`` 目录。
|
||||
|
||||
## 依赖
|
||||
|
||||
* [ROS](http://www.ros.org/) 环境。
|
||||
|
||||
## 编译
|
||||
|
||||
```bash
|
||||
cd <sdk>
|
||||
make ros
|
||||
```
|
||||
|
||||
## 运行
|
||||
|
||||
运行发布节点,
|
||||
|
||||
```bash
|
||||
source wrappers/ros/devel/setup.bash
|
||||
roslaunch mynt_eye_ros_wrapper mynteye.launch
|
||||
```
|
||||
|
||||
运行发布节点,同时打开 RViz 预览图像,
|
||||
|
||||
```bash
|
||||
source wrappers/ros/devel/setup.bash
|
||||
roslaunch mynt_eye_ros_wrapper display.launch
|
||||
```
|
||||
46
doc/zh-Hans/guide_samples.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 样例 {#guide_samples}
|
||||
|
||||
样例在 `<sdk>/samples` 目录,其提供了不同接口层的使用范例。
|
||||
|
||||
## 依赖
|
||||
|
||||
* [OpenCV](https://opencv.org/),用于显示图像。
|
||||
* 编译前,可在系统终端(Windows 命令提示符)里如下指定 OpenCV 路径,其为 `OpenCVConfig.cmake` 目录:
|
||||
|
||||
```bash
|
||||
# Linux, macOS
|
||||
export OpenCV_DIR=~/opencv
|
||||
|
||||
# Windows
|
||||
set OpenCV_DIR=C:\opencv
|
||||
```
|
||||
|
||||
## 编译
|
||||
|
||||
```bash
|
||||
make samples
|
||||
```
|
||||
|
||||
## 运行
|
||||
|
||||
运行 `api` 层接口样例,显示图像并输出 IMU 。
|
||||
|
||||
```bash
|
||||
./samples/_output/bin/api/camera_a
|
||||
|
||||
# Windows
|
||||
.\samples\_output\bin\api\camera_a.bat
|
||||
```
|
||||
|
||||
运行 `device` 层接口样例,显示图像并输出 IMU 。
|
||||
|
||||
```bash
|
||||
./samples/_output/bin/device/camera_d
|
||||
|
||||
# Windows
|
||||
.\samples\_output\bin\device\camera_d.bat
|
||||
```
|
||||
|
||||
## 结语
|
||||
|
||||
更多样例的说明,请见 `samples/README.md` 。
|
||||
73
doc/zh-Hans/guide_tools.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# 工具 {#guide_tools}
|
||||
|
||||
工具在 `<sdk>/tools` 目录,其提供一些有用的脚本和程序。
|
||||
|
||||
## 依赖
|
||||
|
||||
* [OpenCV](https://opencv.org/),部分工具需要。
|
||||
* 编译前,可在系统终端(Windows 命令提示符)里如下指定 OpenCV 路径,其为 `OpenCVConfig.cmake` 目录:
|
||||
|
||||
```bash
|
||||
# Linux, macOS
|
||||
export OpenCV_DIR=~/opencv
|
||||
|
||||
# Windows
|
||||
set OpenCV_DIR=C:\opencv
|
||||
```
|
||||
|
||||
* Python 第三方库,脚本需要。
|
||||
|
||||
```bash
|
||||
cd tools/
|
||||
sudo pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## 编译
|
||||
|
||||
```bash
|
||||
make tools
|
||||
```
|
||||
|
||||
## 录制数据集
|
||||
|
||||
```bash
|
||||
./tools/_output/bin/dataset/record
|
||||
|
||||
# Windows
|
||||
.\tools\_output\bin\dataset\record.bat
|
||||
```
|
||||
|
||||
默认录制进 `dataset` 目录,加参数可指定该目录。
|
||||
|
||||
## 分析数据集
|
||||
|
||||
分析 IMU 数据,
|
||||
|
||||
```bash
|
||||
python tools/analytics/imu_analytics.py -i dataset -c tools/config/mynteye/mynteye_config.yaml \
|
||||
-al=-1.2,1.2 -gl= -gdu=d -gsu=d -kl=
|
||||
```
|
||||
|
||||

|
||||
|
||||
\latexonly
|
||||
\includegraphics[width=0.6\textwidth,keepaspectratio]{imu_analytics.png}
|
||||
\endlatexonly
|
||||
|
||||
分析图像 & IMU 时间戳,
|
||||
|
||||
```bash
|
||||
python tools/analytics/stamp_analytics.py -i dataset -c tools/config/mynteye/mynteye_config.yaml
|
||||
```
|
||||
|
||||

|
||||
|
||||
\latexonly
|
||||
\includegraphics[width=0.6\textwidth,keepaspectratio]{stamp_analytics.png}
|
||||
\endlatexonly
|
||||
|
||||
> 如果用 ROS ,分析脚本也支持 ROS Bag 格式。
|
||||
|
||||
## 结语
|
||||
|
||||
设备信息读写、校验码等更多工具的说明,请见 `tools/README.md` 。
|
||||
9
doc/zh-Hans/guides.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# SDK 指导 {#guides}
|
||||
|
||||
* @subpage guide_build_linux
|
||||
* @subpage guide_build_win
|
||||
* @subpage guide_samples
|
||||
* @subpage guide_tools
|
||||
* @subpage guide_log
|
||||
* @subpage guide_opencv
|
||||
* @subpage guide_ros
|
||||
11
doc/zh-Hans/mainpage.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# MYNT EYE S SDK {#mainpage}
|
||||
|
||||
* <a class="el" href="annotated.html">API 类</a>
|
||||
* <a class="el" href="modules.html">API 模块</a>
|
||||
* \link enumerations 枚举类型\endlink
|
||||
* \link datatypes 数据类型\endlink
|
||||
* \link utils 工具函数\endlink
|
||||
* \link calibration 内参与外参\endlink
|
||||
* <span style="font-weight:bold">设备说明</span>
|
||||
* @subpage specs_data
|
||||
* @subpage specs_ctrl
|
||||
27
doc/zh-Hans/spec_control_api.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 控制 API 说明 {#spec_control_api}
|
||||
|
||||
控制有两种实现方式,一是通过 UVC 标准协议,二是通过 UVC 拓展通道自定义协议。
|
||||
|
||||
## 标准协议
|
||||
|
||||
| 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 说明 |
|
||||
| :----- | :----- | :-------- | :-------- | :-------- | :-------- | :----------- | :----------- | :----- |
|
||||
| 亮度 | brightness | 2 | 192 | 0 | 255 | √ | 0x14 | 关闭自动曝光,手动设定的参数 |
|
||||
|
||||
> UVC 标准协议实现的控制,有现成的 API 进行 Get & Set ,包括 Min, Max, Default 。
|
||||
|
||||
## 自定义协议
|
||||
|
||||
| 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 所属通道 | 通道地址 | 说明 |
|
||||
| :----- | :----- | :-------- | :-------- | :-------- | :-------- | :----------- | :----------- | :----------- | :----------- | :----- |
|
||||
| 曝光模式 | exposure_mode | 1 | 0 | 0 | 1 | √ | 0x0F | XU_CAM_CTRL | 0x0100 | 0:开启自动曝光; 1:关闭 |
|
||||
| 最大增益 | max_gain | 2 | 8 | 0 | 255 | √ | 0x1D | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 |
|
||||
| 最大曝光时间 | max_exposure_time | 2 | 333 | 0 | 1000 | √ | 0x1B | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 |
|
||||
| 期望亮度 | desired_brightness | 2 | 122 | 1 | 255 | √ | 0x19 | XU_CAM_CTRL | 0x0100 | |
|
||||
| 擦除芯片 | erase_chip | | - | - | - | × | - | XU_HALF_DUPLEX | 0x0200 | |
|
||||
| 最小曝光时间 | min_exposure_time | 2 | 0 | 0 | 1000 | √ | - | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 |
|
||||
| 加速度计量程 | accelerometer_range | 2 | 12 | 6 | 48 | √ | - | XU_CAM_CTRL | 0x0100 | |
|
||||
| 陀螺仪量程 | gyroscope_range | 2 | 1000 | 250 | 4000 | √ | - | XU_CAM_CTRL | 0x0100 | |
|
||||
| 加速度计低通滤波 | accelerometer_low_pass_filter | 2 | 2 | 0 | 2 | √ | - | XU_CAM_CTRL | 0x0100 | |
|
||||
| 陀螺仪低通滤波 | gyroscope__low_pass_filter | 2 | 64 | 23 | 64 | √ | - | XU_CAM_CTRL | 0x0100 | |
|
||||
|
||||
53
doc/zh-Hans/spec_control_channel.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# 拓展通道说明 {#spec_control_channel}
|
||||
|
||||
| 名称 | 字段 | 地址 | 带宽 | 说明 |
|
||||
| :----- | :----- | :----- | :----- | :----- |
|
||||
| 相机控制通道 | XU_CAM_CTRL_CHANNEL | 1 | 3 | |
|
||||
| 半双工通道 | XU_HALF_DUPLEX_CHANNEL | 2 | 20 | |
|
||||
| IMU 请求通道 | XU_IMUDATA_WRITE_CHANNEL | 3 | 5 | |
|
||||
| IMU 响应通道 | XU_IMUDATA_READ_CHANNEL | 4 | 2000 | |
|
||||
| 文件通道 | XU_FILE_CHANNEL | 5 | 2000 | |
|
||||
|
||||
## 相机控制通道
|
||||
|
||||
相机控制通道是那些需要 Get & Set & Query 的控制通道,其中 Query 细分为 Min, Max, Default 。
|
||||
|
||||
## 半双工通道
|
||||
|
||||
半双工通道是那些仅需 Set 的控制通道,如请求零漂矫正。
|
||||
|
||||
## IMU 通道
|
||||
|
||||
用来请求和响应 IMU 数据的通道,可参见 @ref spec_imu_data 。
|
||||
|
||||
## 文件通道
|
||||
|
||||
用来读写硬件信息、图像参数、 IMU 参数的通道。
|
||||
|
||||
| Name | Header | Size | File | Checksum |
|
||||
| :--- | :----- | :--- | :--- | :-------- |
|
||||
| 字节数 | 1 | 2 | - | 1 |
|
||||
| 类型 | uint8_t | uint16_t | - | uint8_t |
|
||||
| 描述 | 标识 | 文件内容大小 | 文件内容 | 校验码(文件内容所有字节异或) |
|
||||
|
||||
| Header Bit Subscript | Description |
|
||||
| :------------------- | :---------- |
|
||||
| 0 | 硬件信息 |
|
||||
| 1 | 图像参数 |
|
||||
| 2 | IMU 参数 |
|
||||
| 3~6 | 未定义 |
|
||||
| 7 | 0: Get; 1: Set |
|
||||
|
||||
### 文件内容包
|
||||
|
||||
| Name | ID | Size | Content |
|
||||
| :--- | :- | :--- | :------ |
|
||||
| 字节数 | 1 | 2 | - |
|
||||
| 类型 | uint8_t | uint16_t | - |
|
||||
| 描述 | 内容 ID | 内容大小 | 内容 |
|
||||
|
||||
| File | ID | Max Size |
|
||||
| :--- | :- | :------- |
|
||||
| 硬件信息 | 1 | 250 |
|
||||
| 图像参数 | 2 | 404 |
|
||||
| IMU 参数 | 4 | 500 |
|
||||
17
doc/zh-Hans/spec_hardware_info.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# 硬件信息说明 {#spec_hardware_info}
|
||||
|
||||
| 名称 | 字段 | 固定值 | 描述符获取 | 拓展通道获取 | 字节数 | 说明 |
|
||||
| :----- | :----- | :-------- | :-------------- | :----------------- | :-------- | :----- |
|
||||
| VID | vid | 0x04B4 | √ | × | 2 | |
|
||||
| PID | pid | 0x00F9 | √ | × | 2 | |
|
||||
| 设备名称 | name | MYNT-EYE-? | √ | √ Get | 16 | MYNT-EYE-S1000 |
|
||||
| 序列号 | serial_number | - | √ | √ Get | 16 | |
|
||||
| 固件版本 | firmware_version | - | √ | √ Get | 2 | major,minor |
|
||||
| 硬件版本 | hardware_version | - | × | √ Get | 3 | major,minor,flag |
|
||||
| 协议版本 | spec_version | - | × | √ Get | 2 | major,minor |
|
||||
| 镜头类型 | lens_type | - | × | √ Get/Set | 4 | vendor(2),product(2) ,未 Set 默认 0 |
|
||||
| IMU 类型 | imu_type | - | × | √ Get/Set | 4 | vendor(2),product(2) ,未 Set 默认 0 |
|
||||
| 基线长度 | nominal_baseline | - | × | √ Get/Set | 2 | 单位 mm ,未 set 默认 0 |
|
||||
|
||||
* 描述符获取:指通用 USB 设备信息,可用工具查看。
|
||||
* 拓展通道获取:指通过拓展通道(UVC Extension Unit)问硬件获取到的信息,需要读取。
|
||||
21
doc/zh-Hans/spec_image_data.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# 图像数据说明 {#spec_image_data}
|
||||
|
||||
| 名称 | 字段 | 单位 | 字节数 | 说明 |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| 帧 ID | frame_id | - | 2 | uint16_t; [0,65535] |
|
||||
| 时间戳 | timestamp | 1 us | 8 | uint64_t |
|
||||
| 曝光时间 | exposure_time | 1 us | 2 | uint16_t |
|
||||
|
||||
> 图像数据传输方式:倒序排在图像尾部。
|
||||
|
||||
## 图像数据包
|
||||
|
||||
| Name | Header | Size | FrameID | Timestamp | ExposureTime | Checksum |
|
||||
| :--- | :----- | :--- | :------ | :-------- | :----------- | :------- |
|
||||
| 字节数 | 1 | 1 | 2 | 8 | 2 | 1 |
|
||||
| 类型 | uint8_t | uint8_t | uint16_t | uint64_t | uint16_t | uint8_t |
|
||||
| 描述 | 0x3B | 0x10 (数据内容大小) | 帧 ID | 时间戳 | 曝光时间 | 校验码(数据内容所有字节异或) |
|
||||
|
||||
* 数据包校验不过,会丢弃该帧。
|
||||
* 时间的单位精度为: 1 us 。
|
||||
* 时间累计是从上电时从开始,而不是从打开时开始。
|
||||
25
doc/zh-Hans/spec_image_params.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# 图像参数说明 {#spec_image_params}
|
||||
|
||||
## 图像内参
|
||||
|
||||
| 名称 | 字段 | 单位 | 字节数 | 说明 |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| 宽度 | width | px | 2 | uint16_t; [0,65535] |
|
||||
| 高度 | height | px | 2 | uint16_t; [0,65535] |
|
||||
| 焦距 | fx | - | 8 | double |
|
||||
| ^ | fy | - | 8 | double |
|
||||
| 图像中心 | cx | - | 8 | double |
|
||||
| ^ | cy | - | 8 | double |
|
||||
| 畸变模型 | model | - | 1 | uint8_t; pinhole,... |
|
||||
| 畸变参数 | coeffs[5] | - | 40 | double; k1,k2,p1,p2,k3 |
|
||||
|
||||
> 图像分辨率不同,内参不同。多分辨率的话,需有多个内参。
|
||||
|
||||
## 图像外参
|
||||
|
||||
Left Image 到 Right Image 的变换矩阵。
|
||||
|
||||
| 名称 | 字段 | 单位 | 字节数 | 说明 |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| 旋转矩阵 | rotation[3][3] | - | 72 | double |
|
||||
| 平移矩阵 | translation[3] | - | 24 | double |
|
||||
42
doc/zh-Hans/spec_imu_data.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# IMU 数据说明 {#spec_imu_data}
|
||||
|
||||
## IMU 请求数据包
|
||||
|
||||
| Name | Header | Serial Number |
|
||||
| :--- | :----- | :------------ |
|
||||
| 字节数 | 1 | 4 |
|
||||
| 类型 | uint8_t | uint32_t |
|
||||
| 描述 | 0x5A | 首次请求写 0 ,不然写上次响应数据包最后一个 IMU 包的序列号 |
|
||||
|
||||
## IMU 响应数据包
|
||||
|
||||
IMU 响应数据包里会包含1个 IMU 包,而每个 IMU 包又带有多个 IMU 段。
|
||||
|
||||
| Name | Header | State | Size | IMU Packets | Checksum |
|
||||
| :--- | :----- | :---- | :--- | :---------- | :------- |
|
||||
| 字节数 | 1 | 1 | 2 | ... | 1 |
|
||||
| 类型 | uint8_t | uint8_t | uint16_t | - | uint8_t |
|
||||
| 描述 | 0x5B | 正常状态为 0 ,否则错误 | 数据内容大小 | 所包含的 IMU 包 | 校验码(数据内容所有字节异或) |
|
||||
|
||||
### IMU 包
|
||||
|
||||
IMU 包/小包,是一组 IMU 数据。
|
||||
|
||||
| Name | Count | IMU Datas |
|
||||
| :--- | :-----| :-------- |
|
||||
| 字节数 | 2 | ... |
|
||||
| 类型 | uint16_t | - |
|
||||
| 描述 | IMU 段数量 | 所包含的 IMU 段 |
|
||||
|
||||
### IMU 段
|
||||
|
||||
| Name | Serial Number | Timestamp | flag | Temperature | Accelerometer or Gyroscope |
|
||||
| :--- | :------------ | :-------- | :----| :----------- | :------------------------- |
|
||||
| 字节数 | 4 | 8 | 1 | 2 | 6 |
|
||||
| 类型 | uint32_t | uint64_t | int8_t | int16_t | int16_t * 3 |
|
||||
| Description | 序列号 | 时间戳 | 指定传感器类型 | IMU 的温度 | 陀螺仪或陀螺仪 x y z 三轴的值 |
|
||||
|
||||
* 加速度计和陀螺仪的计量值换算成物理值公式: **real = data * range / 0x10000** 。
|
||||
* 加速度计量程默认值为 **12 g** ,陀螺仪量程默认值为 **1000 deg/s** 。
|
||||
* 温度计量值换算成物理值公式: **real = data / ratio + offset** 。
|
||||
* ``ratio`` 默认值为 **326.8** , ``offset`` 默认值为 **25℃** 。
|
||||
23
doc/zh-Hans/spec_imu_params.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# IMU 参数说明 {#spec_imu_params}
|
||||
|
||||
## IMU 内参
|
||||
|
||||
| 名称 | 字段 | 单位 | 字节数 | 说明 |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| 比例因子 | acc_scale[3][3] | - | 72 | double |
|
||||
| ^ | gyro_scale[3][3] | - | 72 | double |
|
||||
| 零漂 | acc_drift[3] | - | 24 | double |
|
||||
| ^ | gyro_drift[3] | - | 24 | double |
|
||||
| 噪声密度 | acc_noise[3] | - | 24 | double |
|
||||
| ^ | gyro_noise[3] | - | 24 | double |
|
||||
| 随机游走 | acc_bias[3] | - | 24 | double |
|
||||
| ^ | gyro_bias[3] | - | 24 | double |
|
||||
|
||||
## IMU 外参
|
||||
|
||||
Left Image 到 IMU 的变换矩阵。
|
||||
|
||||
| 名称 | 字段 | 单位 | 字节数 | 说明 |
|
||||
| :----- | :----- | :----- | :-------- | :----- |
|
||||
| 旋转矩阵 | rotation[3][3] | - | 72 | double |
|
||||
| 平移矩阵 | translation[3] | - | 24 | double |
|
||||
4
doc/zh-Hans/specs_ctrl.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 设备控制说明 {#specs_ctrl}
|
||||
|
||||
* @subpage spec_control_api
|
||||
* @subpage spec_control_channel
|
||||
7
doc/zh-Hans/specs_data.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# 设备数据说明 {#specs_data}
|
||||
|
||||
* @subpage spec_hardware_info
|
||||
* @subpage spec_image_params
|
||||
* @subpage spec_imu_params
|
||||
* @subpage spec_image_data
|
||||
* @subpage spec_imu_data
|
||||
@@ -1,19 +0,0 @@
|
||||
# Minimal makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
SOURCEDIR = .
|
||||
BUILDDIR = _build
|
||||
|
||||
# Put it first so that "make" without argument is like "make help".
|
||||
help:
|
||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
.PHONY: help Makefile
|
||||
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
@@ -1,25 +0,0 @@
|
||||
.. _api:
|
||||
|
||||
API
|
||||
===
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
.. doxygenclass:: mynteye::API
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
api::StreamData
|
||||
---------------
|
||||
|
||||
.. doxygenstruct:: mynteye::api::StreamData
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
api::MotionData
|
||||
---------------
|
||||
|
||||
.. doxygenstruct:: mynteye::api::MotionData
|
||||
:project: mynteyes
|
||||
:members:
|
||||
@@ -1,10 +0,0 @@
|
||||
API DOCS
|
||||
==============
|
||||
|
||||
.. toctree::
|
||||
|
||||
api
|
||||
device
|
||||
enums
|
||||
types
|
||||
utils
|
||||
@@ -1,32 +0,0 @@
|
||||
.. _device:
|
||||
|
||||
Device
|
||||
======
|
||||
|
||||
Device
|
||||
------
|
||||
|
||||
.. doxygenclass:: mynteye::Device
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
device::Frame
|
||||
-------------
|
||||
|
||||
.. doxygenclass:: mynteye::device::Frame
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
device::StreamData
|
||||
------------------
|
||||
|
||||
.. doxygenstruct:: mynteye::device::StreamData
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
device::MotionData
|
||||
------------------
|
||||
|
||||
.. doxygenstruct:: mynteye::device::MotionData
|
||||
:project: mynteyes
|
||||
:members:
|
||||
@@ -1,69 +0,0 @@
|
||||
.. _enums:
|
||||
|
||||
Enums
|
||||
=====
|
||||
|
||||
..
|
||||
.. doxygengroup:: enumerations
|
||||
:project: mynteyes
|
||||
|
||||
Model
|
||||
-----
|
||||
|
||||
.. doxygenenum:: mynteye::Model
|
||||
:project: mynteyes
|
||||
|
||||
Stream
|
||||
------
|
||||
|
||||
.. doxygenenum:: mynteye::Stream
|
||||
:project: mynteyes
|
||||
|
||||
|
||||
Capabilities
|
||||
------------
|
||||
|
||||
.. doxygenenum:: mynteye::Capabilities
|
||||
:project: mynteyes
|
||||
|
||||
Info
|
||||
----
|
||||
|
||||
.. doxygenenum:: mynteye::Info
|
||||
:project: mynteyes
|
||||
|
||||
Option
|
||||
------
|
||||
|
||||
.. doxygenenum:: mynteye::Option
|
||||
:project: mynteyes
|
||||
|
||||
Source
|
||||
------
|
||||
|
||||
.. doxygenenum:: mynteye::Source
|
||||
:project: mynteyes
|
||||
|
||||
AddOns
|
||||
------
|
||||
|
||||
.. doxygenenum:: mynteye::AddOns
|
||||
:project: mynteyes
|
||||
|
||||
Format
|
||||
------
|
||||
|
||||
.. doxygenenum:: mynteye::Format
|
||||
:project: mynteyes
|
||||
|
||||
CalibrationModel
|
||||
----------------
|
||||
|
||||
.. doxygenenum:: mynteye::CalibrationModel
|
||||
:project: mynteyes
|
||||
|
||||
DisparityComputingMethod
|
||||
------------------------
|
||||
|
||||
.. doxygenenum:: mynteye::DisparityComputingMethod
|
||||
:project: mynteyes
|
||||
@@ -1,77 +0,0 @@
|
||||
.. _types:
|
||||
|
||||
Types
|
||||
=====
|
||||
|
||||
OptionInfo
|
||||
----------
|
||||
|
||||
.. doxygenstruct:: mynteye::OptionInfo
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
Resolution
|
||||
----------
|
||||
|
||||
.. doxygenstruct:: mynteye::Resolution
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
StreamRequest
|
||||
-------------
|
||||
|
||||
.. doxygenstruct:: mynteye::StreamRequest
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
Intrinsics
|
||||
----------
|
||||
|
||||
IntrinsicsPinhole
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. doxygenstruct:: mynteye::IntrinsicsPinhole
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
IntrinsicsEquidistant
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. doxygenstruct:: mynteye::IntrinsicsEquidistant
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
ImuIntrinsics
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. doxygenstruct:: mynteye::ImuIntrinsics
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
MotionIntrinsics
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. doxygenstruct:: mynteye::MotionIntrinsics
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
Extrinsics
|
||||
----------
|
||||
|
||||
.. doxygenstruct:: mynteye::Extrinsics
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
ImgData
|
||||
-------
|
||||
|
||||
.. doxygenstruct:: mynteye::ImgData
|
||||
:project: mynteyes
|
||||
:members:
|
||||
|
||||
ImuData
|
||||
-------
|
||||
|
||||
.. doxygenstruct:: mynteye::ImuData
|
||||
:project: mynteyes
|
||||
:members:
|
||||
@@ -1,34 +0,0 @@
|
||||
.. _utils:
|
||||
|
||||
Utils
|
||||
=====
|
||||
|
||||
select
|
||||
------
|
||||
|
||||
.. doxygenfunction:: select
|
||||
:project: mynteyes
|
||||
|
||||
select_request
|
||||
--------------
|
||||
|
||||
.. doxygenfunction:: select_request
|
||||
:project: mynteyes
|
||||
|
||||
get_real_exposure_time
|
||||
----------------------
|
||||
|
||||
.. doxygenfunction:: get_real_exposure_time
|
||||
:project: mynteyes
|
||||
|
||||
get_sdk_root_dir
|
||||
----------------
|
||||
|
||||
.. doxygenfunction:: get_sdk_root_dir
|
||||
:project: mynteyes
|
||||
|
||||
get_sdk_install_dir
|
||||
-------------------
|
||||
|
||||
.. doxygenfunction:: get_sdk_install_dir
|
||||
:project: mynteyes
|
||||
194
docs/conf.py
@@ -1,194 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file does only contain a selection of the most common options. For a
|
||||
# full list see the documentation:
|
||||
# http://www.sphinx-doc.org/en/master/config
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
# import os
|
||||
# import sys
|
||||
# sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'MYNT® EYE S SDK'
|
||||
copyright = '2019, MYNTAI'
|
||||
author = 'MYNTAI'
|
||||
|
||||
# The short X.Y version
|
||||
version = '2.4.2'
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = version
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#
|
||||
# needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'breathe',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = 'en'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = None
|
||||
|
||||
|
||||
# on_rtd is whether we are on readthedocs.org
|
||||
import os
|
||||
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
||||
|
||||
import subprocess
|
||||
subprocess.call('doxygen', shell=True)
|
||||
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
|
||||
if not on_rtd: # only import and set the theme if we're building docs locally
|
||||
import sphinx_rtd_theme
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
# html_theme = 'alabaster'
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
# html_static_path = ['_static']
|
||||
|
||||
# Custom sidebar templates, must be a dictionary that maps document names
|
||||
# to template names.
|
||||
#
|
||||
# The default sidebars (for documents that don't match any pattern) are
|
||||
# defined by theme itself. Builtin themes are using these templates by
|
||||
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
|
||||
# 'searchbox.html']``.
|
||||
#
|
||||
# html_sidebars = {}
|
||||
|
||||
# otherwise, readthedocs.org uses their theme by default, so no need to specify it
|
||||
|
||||
|
||||
# -- Options for HTMLHelp output ---------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'MYNTEYESSDKdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'MYNTEYESSDK.tex', 'MYNT® EYE S SDK Documentation',
|
||||
'MYNTAI', 'manual'),
|
||||
]
|
||||
|
||||
|
||||
# -- Options for manual page output ------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'mynteyessdk', 'MYNT® EYE S SDK Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
|
||||
# -- Options for Texinfo output ----------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'MYNTEYESSDK', 'MYNT® EYE S SDK Documentation',
|
||||
author, 'MYNTEYESSDK', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
|
||||
# -- Options for Epub output -------------------------------------------------
|
||||
|
||||
# Bibliographic Dublin Core info.
|
||||
epub_title = project
|
||||
|
||||
# The unique identifier of the text. This can be a ISBN number
|
||||
# or the project homepage.
|
||||
#
|
||||
# epub_identifier = ''
|
||||
|
||||
# A unique identification for the text.
|
||||
#
|
||||
# epub_uid = ''
|
||||
|
||||
# A list of files that should not be packed into the epub file.
|
||||
epub_exclude_files = ['search.html']
|
||||
|
||||
|
||||
# -- Extension configuration -------------------------------------------------
|
||||
|
||||
breathe_projects = { 'mynteyes': '_doxygen/xml' }
|
||||
@@ -1,7 +0,0 @@
|
||||
# libmynteye configuration
|
||||
#
|
||||
# 1) Copy this file to: /etc/ld.so.conf.d/libmynteye.conf
|
||||
# 2) Run this cmd in Terminal: sudo /sbin/ldconfig
|
||||
|
||||
/usr/local/cuda/lib64
|
||||
$HOME/opencv-3.4.1/lib
|
||||
|
Before Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 470 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 718 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 403 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 306 KiB |
|
Before Width: | Height: | Size: 470 KiB |
|
Before Width: | Height: | Size: 484 KiB |
|
Before Width: | Height: | Size: 489 KiB |
|
Before Width: | Height: | Size: 467 KiB |
|
Before Width: | Height: | Size: 492 KiB |
|
Before Width: | Height: | Size: 382 KiB |
|
Before Width: | Height: | Size: 496 KiB |
@@ -1,27 +0,0 @@
|
||||
.. MYNT® EYE S SDK documentation master file, created by
|
||||
sphinx-quickstart on Mon Mar 11 08:59:35 2019.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
MYNT® EYE S SDK
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:maxdepth: 2
|
||||
|
||||
src/product/contents
|
||||
src/sdk/contents
|
||||
src/firmware/contents
|
||||
src/tools/contents
|
||||
src/slam/contents
|
||||
api/contents
|
||||
src/support/contents
|
||||
|
||||
..
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
@@ -1,35 +0,0 @@
|
||||
@ECHO OFF
|
||||
|
||||
pushd %~dp0
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set SOURCEDIR=.
|
||||
set BUILDDIR=_build
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
%SPHINXBUILD% >NUL 2>NUL
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
|
||||
goto end
|
||||
|
||||
:help
|
||||
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
|
||||
|
||||
:end
|
||||
popd
|
||||
@@ -1,5 +0,0 @@
|
||||
breathe>=4.13
|
||||
restructuredtext-lint>=1.3.0
|
||||
Sphinx>=2.0.1
|
||||
sphinx-intl>=0.9.11
|
||||
sphinx-rtd-theme>=0.4.2
|
||||
@@ -1,36 +0,0 @@
|
||||
.. _firmware_applicable:
|
||||
|
||||
Firmware and SDK compatibility
|
||||
==============================
|
||||
|
||||
============================ ========================
|
||||
S1030 Firmwares SDK Version
|
||||
============================ ========================
|
||||
MYNTEYE-S1030-2.5.0.img 2.4.0 (2.4.0 ~ latest)
|
||||
MYNTEYE_S_2.4.0.img 2.3.4 (2.3.4 ~ 2.3.9)
|
||||
MYNTEYE_S_2.3.0.img 2.3.0 (2.2.2-rc1 ~ 2.3.3)
|
||||
MYNTEYE_S_2.2.2.img 2.3.0 (2.2.2-rc1 ~ 2.3.0)
|
||||
MYNTEYE_S_2.0.0_rc.img 2.0.0-rc (2.0.0-rc ~ 2.0.0-rc2)
|
||||
MYNTEYE_S_2.0.0_rc2.img 2.0.0-rc2 (2.0.0-rc ~ 2.0.0-rc2)
|
||||
MYNTEYE_S_2.0.0_rc1.img 2.0.0-rc1
|
||||
MYNTEYE_S_2.0.0_rc0.img 2.0.0-rc0 (2.0.0-rc1 ~ 2.0.0-alpha1)
|
||||
MYNTEYE_S_2.0.0_alpha1.1.img 2.0.0-alpha1 (2.0.0-rc1 ~ 2.0.0-alpha1)
|
||||
MYNTEYE_S_2.0.0_alpha1.img 2.0.0-alpha1 (2.0.0-rc1 ~ 2.0.0-alpha1)
|
||||
MYNTEYE_S_2.0.0_alpha0.img 2.0.0-alpha0
|
||||
============================ ========================
|
||||
|
||||
============================ ===========================
|
||||
S2100 Firmwares SDK Version
|
||||
============================ ===========================
|
||||
MYNTEYE-S21X0-1.4.0.img 2.4.2(2.4.2 ~ latest)
|
||||
MYNTEYE-S2100-1.3.2.img 2.4.0(2.4.0 ~ 2.4.1)
|
||||
MYNTEYE_S2100_1.2.img 2.3.5(2.3.5 ~ 2.3.9)
|
||||
MYNTEYE_S2100_1.1.img 2.3.4
|
||||
============================ ===========================
|
||||
|
||||
.. attention::
|
||||
Please CONFIRM your device model and use CORRECT firmware.
|
||||
|
||||
``Firmwares`` indicates the firmware file name. It's in `MYNTEYE_BOX(Download Link) <http://doc.myntai.com/mynteye/s/download>`_ in the ``Firmwares`` directory.
|
||||
|
||||
``SDK Version`` indicates the version of the SDK that the firmware is adapted to, and the range of available versions are indicated in parentheses.
|
||||
@@ -1,9 +0,0 @@
|
||||
FIRMWARE
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
fw_info
|
||||
fw_update
|
||||
fw_changelog
|
||||
@@ -1,38 +0,0 @@
|
||||
Change Log
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
2019-09-09
|
||||
-------------------
|
||||
|
||||
S21X0 Main Chip Firmware: MYNTEYE-S21X0-1.4.0.img
|
||||
|
||||
1. Support 2110 device.
|
||||
|
||||
2019-08-09
|
||||
-------------------
|
||||
|
||||
S1030 Main Chip Firmware: MYNTEYE-S1030-2.5.0.img
|
||||
|
||||
1. Optimize the synchronization of image and imu
|
||||
2. Not save the camera control parameters
|
||||
3. Fix the overexplosion problem at low resolution
|
||||
4. Fix USB 2.0 first open failure problem
|
||||
5. Add automatic recovery function when updating wrong firmware
|
||||
|
||||
S2100 Main Chip Firmware: MYNTEYE-S2100-1.3.2.img
|
||||
|
||||
1. Optimize the synchronization of image and imu
|
||||
2. Not save the camera control parameters
|
||||
3. Optimize IMU low-pass filter default values
|
||||
4. Optimize the exposure time calculation method, the maximum exposure time is limited to 66.5ms
|
||||
5. Add automatic recovery function when updating wrong firmware
|
||||
6. Fix and optimize some other issues
|
||||
|
||||
S2100 Auxiliary Chip Firmware: MYNTEYE-S2100-auxiliary-chip-1.4.2.bin
|
||||
|
||||
1. Time synchronization adds uart interface, io interruption judgement
|
||||
2. Time synchronization i2c interface adds whoami, read timestamp and median filter open state interface
|
||||
3. Fix and optimize some other issues
|
||||
@@ -1,9 +0,0 @@
|
||||
.. _fw_info:
|
||||
|
||||
Firmware Description
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
applicable
|
||||
@@ -1,10 +0,0 @@
|
||||
.. _fw_update:
|
||||
|
||||
Firmware Update
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
update_main_chip
|
||||
update_auxiliary_chip
|
||||
@@ -1,23 +0,0 @@
|
||||
.. _fw_update_auxiliary_chip:
|
||||
|
||||
Update Auxiliary Chip Firmware
|
||||
==================================
|
||||
|
||||
Update auxiliary chip (Only Support S21XX)
|
||||
------------------------------------------------
|
||||
|
||||
* Plug in the MYNT® EYE camera into a USB3.0 port
|
||||
|
||||
* Open MYNT EYE TOOL and select ``Options/BoardUpdate`` .
|
||||
|
||||
.. image:: ../../images/firmware/boardupdate.png
|
||||
|
||||
* Click ``StmUpdate`` .
|
||||
|
||||
.. image:: ../../images/firmware/stmupdate.png
|
||||
|
||||
* In the open file selection box, select the firmware ``MYNTEYE-S2100-auxiliary-chip-1.4.2.bin`` and start upgrading.
|
||||
|
||||
* Once the upgrade is complete, it will display update finished.
|
||||
|
||||
.. image:: ../../images/firmware/stmsuccess.png
|
||||
@@ -1,101 +0,0 @@
|
||||
.. _fw_update_main_chip:
|
||||
|
||||
Update Main Chip Firmware
|
||||
====================================
|
||||
|
||||
Please use the MYNT EYE TOOL to update main processing chip.
|
||||
|
||||
You can download the firmware and MYNT EYE TOOL installation package in the ``Firmwares`` folder of `MYNTEYE_BOX(Download Link) <http://doc.myntai.com/mynteye/s/download>`_ . The file structure is as follows:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Firmwares/
|
||||
├─Checksum.txt # File checksum
|
||||
├─MYNTEYE-S1030-2.5.0.img # S1030 firmware
|
||||
├─MYNTEYE-S21x0-1.4.0.img # S21X0 firmware
|
||||
├─...
|
||||
└─mynt-eye-tool-setup.zip # MYNT EYE TOOL zip
|
||||
|
||||
The firmware upgrade program currently only supports Windows, so you need to operate under Windows. Proceed as follows:
|
||||
|
||||
Download preparation
|
||||
---------------------
|
||||
|
||||
* Download and unzip ``mynt-eye-tool-setup.zip``
|
||||
* Find firmware, such as ``MYNTEYE-S1030-2.5.0.img``
|
||||
|
||||
* Please refer to :ref:`firmware_applicable` to select the firmware suitable for the SDK version
|
||||
|
||||
Install MYNT EYE TOOL
|
||||
---------------------
|
||||
|
||||
* Double click on ``setup.msi`` and install the application.
|
||||
|
||||
Update Firmware
|
||||
---------------
|
||||
|
||||
* Plug in the MYNT® EYE camera into a USB3.0 port
|
||||
|
||||
* Open MYNT EYE TOOL and select ``Options/FirmwareUpdate`` .
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_option.png
|
||||
|
||||
* Click ``Update`` .
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update.png
|
||||
:width: 60%
|
||||
|
||||
* A warning dialog box will pop up, click ``yes`` .
|
||||
|
||||
* This operation will erase the firmware, for details see README.
|
||||
|
||||
* Usually, the MYNT EYE TOOL automatically installs the driver during the upgrade process.
|
||||
* If the upgrade fails, refer to README.
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_warning.png
|
||||
:width: 60%
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_dir.png
|
||||
:width: 60%
|
||||
|
||||
* In the open file selection box, select the firmware you want to upgrade and start upgrading.
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_select.png
|
||||
|
||||
* Once the upgrade is complete, the status will changes to ``Succeeded``.
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_success.png
|
||||
:width: 60%
|
||||
|
||||
* Close the MYNT EYE TOOL,finish.
|
||||
|
||||
|
||||
.. attention::
|
||||
If you can't find MYNT image device, ``WestBridge_driver``, and ``Cypress USB BootLoader`` at the same time in the device manager, try another computer to perform the above operation. If you can not upgrade successfully, please contact us in time.
|
||||
|
||||
|
||||
Manually update drivers
|
||||
------------------------
|
||||
|
||||
* If the application indicates that you failed to update, you may fail to install the driver automatically. You can try to install the driver manually and then update it. The following is the manual installation of the driver.
|
||||
|
||||
* Open device manager, locate ``WestBridge_driver`` device, and right click Update Driver,select ``[application directory]WestBridge_driver\\[corresponding system folders](If it is more than win7, choose wlh)\\[system bits]`` .
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_westbridge.png
|
||||
|
||||
* For example,if it is the win10 64 bit system computer,and the application is installed under the default path,you should select ``C:\Program Files (x86)\slightech\MYNT EYE TOOL 2.0\WestBridge_driver\wlh\x64``.
|
||||
|
||||
* After the installation driver is successful, you can find the ``Cypress USB BootLoader`` device in the device manager.
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_cypressUSB.png
|
||||
|
||||
* Then plug in the camera and open the application again to update.
|
||||
|
||||
.. warning::
|
||||
|
||||
During the first time you open the MYNT® EYE camera after a firmware update, please hold the camera steadily for 3 seconds, for a zero drift compensation process. You can also call the API ``RunOptionAction(Option::ZERO_DRIFT_CALIBRATION)`` for zero drift correction.
|
||||
|
||||
.. ::
|
||||
|
||||
.. image:: ../../images/firmware/firmware_update_driver.png
|
||||
.. image:: ../../images/firmware/firmware_update_driver_install.png
|
||||