Compare commits
No commits in common. "master" and "devel-s210a" have entirely different histories.
master
...
devel-s210
|
@ -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
|
||||
|
|
7
.gitmodules
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
[submodule "test/gtest"]
|
||||
path = test/gtest
|
||||
url = https://github.com/google/googletest.git
|
||||
[submodule "tools/linter"]
|
||||
path = tools/linter
|
||||
url = https://github.com/slightech/linter.git
|
||||
branch = slightech
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(mynteye VERSION 2.5.0 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,30 +115,10 @@ if(WITH_GLOG)
|
|||
)
|
||||
endif()
|
||||
|
||||
## camera_models
|
||||
|
||||
if(WITH_CAM_MODELS)
|
||||
|
||||
include_directories(
|
||||
include
|
||||
${CMAKE_CURRENT_BINARY_DIR}/include
|
||||
src/mynteye/api/camera_models
|
||||
src/mynteye
|
||||
)
|
||||
|
||||
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/util/gpl.cc
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif()
|
||||
|
||||
## libmynteye
|
||||
|
||||
if(NOT WITH_GLOG AND NOT OS_WIN)
|
||||
set(__MINIGLOG_FLAGS "-Wno-unused-parameter -Wno-format -Wno-return-type -Wno-comment")
|
||||
set(__MINIGLOG_FLAGS "-Wno-unused-parameter -Wno-format -Wno-return-type")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${__MINIGLOG_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${__MINIGLOG_FLAGS}")
|
||||
unset(__MINIGLOG_FLAGS)
|
||||
|
@ -165,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)
|
||||
|
@ -176,6 +151,11 @@ elseif(OS_MAC)
|
|||
|
||||
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}")
|
||||
|
||||
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()
|
||||
|
@ -187,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
|
||||
|
@ -210,23 +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/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()
|
||||
|
@ -241,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})
|
||||
|
||||
|
@ -290,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
|
||||
)
|
||||
|
|
36
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,21 +39,24 @@ 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 ..'
|
||||
sh '. /opt/ros/kinetic/setup.sh; make samples SUDO='
|
||||
}
|
||||
}
|
||||
/*
|
||||
stage('Tools') {
|
||||
steps {
|
||||
echo 'make tools ..'
|
||||
sh '. /opt/ros/kinetic/setup.sh; make tools SUDO='
|
||||
}
|
||||
}
|
||||
*/
|
||||
stage('ROS') {
|
||||
steps {
|
||||
echo 'make ros ..'
|
||||
|
@ -82,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'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
127
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
|
||||
|
||||
|
@ -41,34 +34,47 @@ help:
|
|||
@echo " make init init project"
|
||||
@echo " make build build project"
|
||||
@echo " make install install project"
|
||||
@echo " make test build test and run"
|
||||
@echo " make samples build samples"
|
||||
@echo " make pkg package sdk(windows)"
|
||||
@echo " make tools build tools"
|
||||
@echo " make pkg package sdk"
|
||||
@echo " make ros build ros wrapper"
|
||||
@echo " make py build python wrapper"
|
||||
@echo " make clean|cleanall clean generated or useless things"
|
||||
|
||||
.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
|
||||
|
||||
submodules:
|
||||
@git submodule update --init
|
||||
|
||||
.PHONY: submodules
|
||||
|
||||
# init
|
||||
|
||||
|
@ -83,16 +89,36 @@ 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
|
||||
|
||||
# test
|
||||
|
||||
test: submodules install
|
||||
@$(call echo,Make $@)
|
||||
@$(call echo,Make gtest,33)
|
||||
ifeq ($(HOST_OS),Win)
|
||||
@$(call cmake_build,./test/gtest/_build,..,-Dgtest_force_shared_crt=ON)
|
||||
else
|
||||
@$(call cmake_build,./test/gtest/_build)
|
||||
endif
|
||||
@$(call echo,Make test,33)
|
||||
@$(call cmake_build,./test/_build)
|
||||
ifeq ($(HOST_OS),Win)
|
||||
@.\\\test\\\_output\\\bin\\\mynteye_test.bat
|
||||
else
|
||||
@./test/_output/bin/mynteye_test
|
||||
endif
|
||||
|
||||
.PHONY: test
|
||||
|
||||
# install
|
||||
|
||||
install: uninstall build
|
||||
install: build
|
||||
@$(call echo,Make $@)
|
||||
ifeq ($(HOST_OS),Win)
|
||||
ifneq ($(HOST_NAME),MinGW)
|
||||
|
@ -129,6 +155,14 @@ samples: install
|
|||
|
||||
.PHONY: samples
|
||||
|
||||
# tools
|
||||
|
||||
tools: install
|
||||
@$(call echo,Make $@)
|
||||
@$(call cmake_build,./tools/_build)
|
||||
|
||||
.PHONY: tools
|
||||
|
||||
# pkg
|
||||
|
||||
pkg: clean
|
||||
|
@ -171,6 +205,43 @@ cleanros:
|
|||
|
||||
.PHONY: cleanros
|
||||
|
||||
# python
|
||||
|
||||
PBCVT_DIR := wrappers/python/third_party/pyboostcvconverter
|
||||
|
||||
$(PBCVT_DIR):
|
||||
@git clone https://github.com/Algomorph/pyboostcvconverter.git $@
|
||||
|
||||
pbcvt: $(PBCVT_DIR)
|
||||
@$(call cmake_build,$(PBCVT_DIR)/_build,.., \
|
||||
-DCMAKE_INSTALL_PREFIX=$(MKFILE_DIR)/wrappers/python/_install \
|
||||
-DPYTHON_DESIRED_VERSION=2.X)
|
||||
@cd $(PBCVT_DIR)/_build; make install
|
||||
|
||||
.PHONY: pbcvt
|
||||
|
||||
NPCV_DIR := wrappers/python/third_party/numpy-opencv-converter
|
||||
|
||||
$(NPCV_DIR):
|
||||
@git clone https://github.com/GarrickLin/numpy-opencv-converter.git $@
|
||||
|
||||
py: python
|
||||
|
||||
python: install $(NPCV_DIR)
|
||||
@$(call echo,Make $@)
|
||||
@$(call cmake_build,./wrappers/python/_build)
|
||||
@cd ./wrappers/python/_build; make install
|
||||
|
||||
.PHONY: py python
|
||||
|
||||
cleanpy:
|
||||
@$(call echo,Make $@)
|
||||
@$(call rm,./wrappers/python/_build/)
|
||||
@$(call rm,./wrappers/python/_output/)
|
||||
@$(call rm,./wrappers/python/_install/)
|
||||
@$(call rm,./$(PBCVT_DIR)/_build/)
|
||||
|
||||
.PHONY: cleanpy
|
||||
|
||||
# clean
|
||||
|
||||
|
@ -181,10 +252,15 @@ 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
|
||||
ifeq ($(HOST_OS),Linux)
|
||||
@$(MAKE) cleanros
|
||||
endif
|
||||
@$(MAKE) cleanpy
|
||||
|
||||
cleanlog:
|
||||
@$(call rm_f,*INFO*)
|
||||
|
@ -193,7 +269,11 @@ cleanlog:
|
|||
@$(call rm_f,*FATAL*)
|
||||
|
||||
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)/)
|
||||
|
||||
.PHONY: clean cleanlog cleanall
|
||||
|
||||
|
@ -216,6 +296,11 @@ host:
|
|||
@echo LDD: $(LDD)
|
||||
@echo CMAKE: $(CMAKE)
|
||||
@echo PKGNAME: $(PKGNAME)
|
||||
@echo CMAKE_BUILD_EXTRA_OPTIONS: $(CMAKE_BUILD_EXTRA_OPTIONS)
|
||||
|
||||
.PHONY: host
|
||||
|
||||
cpplint: submodules
|
||||
@$(call echo,Make $@)
|
||||
@$(SH) ./scripts/$@.sh
|
||||
|
||||
.PHONY: cpplint
|
||||
|
|
13
README.md
|
@ -1,6 +1,6 @@
|
|||
# MYNT® EYE S SDK
|
||||
|
||||
[![](https://img.shields.io/badge/MYNT%20EYE%20S%20SDK-2.5.0-brightgreen.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK)
|
||||
[![](https://img.shields.io/badge/MYNT%20EYE%20S%20SDK-2.2.2-brightgreen.svg?style=flat)](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://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://readthedocs.org/projects/mynt-eye-s-sdk/downloads/pdf/latest/) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://readthedocs.org/projects/mynt-eye-s-sdk/downloads/htmlzip/latest/) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://mynt-eye-s-sdk.readthedocs.io/en/latest/)
|
||||
* zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://readthedocs.org/projects/mynt-eye-s-sdk-docs-zh-cn/downloads/pdf/latest/) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://readthedocs.org/projects/mynt-eye-s-sdk-docs-zh-cn/downloads/htmlzip/latest/) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://mynt-eye-s-sdk-docs-zh-cn.readthedocs.io/zh_CN/latest/)
|
||||
* en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.2-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683637/mynt-eye-s-sdk-apidoc-2.2.2-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/)
|
||||
* zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683638/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683639/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](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://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683625/mynt-eye-s-sdk-guide-2.2.2-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683626/mynt-eye-s-sdk-guide-2.2.2-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/)
|
||||
* zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683627/mynt-eye-s-sdk-guide-2.2.2-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683628/mynt-eye-s-sdk-guide-2.2.2-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](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
|
|
@ -38,27 +38,27 @@ 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.5.0
|
||||
PROJECT_NUMBER = 2.2.2
|
||||
|
||||
# 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
|
||||
# quick idea about the purpose of the project. Keep the description short.
|
||||
|
||||
PROJECT_BRIEF = https://www.myntai.com/mynteye/standard
|
||||
PROJECT_BRIEF = http://www.myntai.com/mynteye/standard
|
||||
|
||||
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
|
||||
# in the documentation. The maximum height of the logo should not exceed 55
|
||||
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
|
||||
# the logo to the output directory.
|
||||
|
||||
PROJECT_LOGO =
|
||||
PROJECT_LOGO = ../static/images/icon.png
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
||||
# into which the generated documentation will be written. If a relative path is
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = _doxygen
|
||||
OUTPUT_DIRECTORY = ../_output/en
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
|
||||
# directories (in 2 levels) under the output directory of each output format and
|
||||
|
@ -791,7 +791,17 @@ WARN_LOGFILE =
|
|||
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
||||
# Note: If this tag is empty the current directory is searched.
|
||||
|
||||
INPUT = ../include/mynteye
|
||||
INPUT = mainpage.md \
|
||||
specs_data.md \
|
||||
spec_hardware_info.md \
|
||||
spec_image_params.md \
|
||||
spec_imu_params.md \
|
||||
spec_image_data.md \
|
||||
spec_imu_data.md \
|
||||
specs_ctrl.md \
|
||||
spec_control_api.md \
|
||||
spec_control_channel.md \
|
||||
/usr/local/include/mynteye
|
||||
|
||||
# This tag can be used to specify the character encoding of the source files
|
||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||
|
@ -928,7 +938,7 @@ EXAMPLE_RECURSIVE = NO
|
|||
# that contain images that are to be included in the documentation (see the
|
||||
# \image command).
|
||||
|
||||
IMAGE_PATH =
|
||||
IMAGE_PATH = ../static/images
|
||||
|
||||
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
||||
# invoke to filter for each input file. Doxygen will invoke the filter program
|
||||
|
@ -1105,7 +1115,7 @@ IGNORE_PREFIX =
|
|||
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
|
||||
# The default value is: YES.
|
||||
|
||||
GENERATE_HTML = NO
|
||||
GENERATE_HTML = YES
|
||||
|
||||
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
|
||||
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
|
||||
|
@ -1175,7 +1185,7 @@ HTML_STYLESHEET =
|
|||
# list). For an example see the documentation.
|
||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||
|
||||
HTML_EXTRA_STYLESHEET =
|
||||
HTML_EXTRA_STYLESHEET = ../static/custom.css
|
||||
|
||||
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
|
||||
# other source files which should be copied to the HTML output directory. Note
|
||||
|
@ -1657,7 +1667,7 @@ EXTRA_SEARCH_MAPPINGS =
|
|||
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
|
||||
# The default value is: YES.
|
||||
|
||||
GENERATE_LATEX = NO
|
||||
GENERATE_LATEX = YES
|
||||
|
||||
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
|
||||
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
|
||||
|
@ -1937,7 +1947,7 @@ MAN_LINKS = NO
|
|||
# captures the structure of the code including all documentation.
|
||||
# The default value is: NO.
|
||||
|
||||
GENERATE_XML = YES
|
||||
GENERATE_XML = NO
|
||||
|
||||
# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
|
||||
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
|
||||
|
@ -2092,8 +2102,7 @@ INCLUDE_FILE_PATTERNS =
|
|||
|
||||
PREDEFINED = DOXYGEN_WORKING \
|
||||
"MYNTEYE_BEGIN_NAMESPACE=namespace mynteye {" \
|
||||
"MYNTEYE_END_NAMESPACE=}" \
|
||||
"MYNTEYE_API=" "LAST="
|
||||
"MYNTEYE_END_NAMESPACE=}"
|
||||
|
||||
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
|
||||
# tag can be used to specify a list of macro names that should be expanded. The
|
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
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
![make install](make_install.png)
|
||||
|
||||
\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=
|
||||
```
|
||||
|
||||
![imu analytics](imu_analytics.png)
|
||||
|
||||
\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
|
||||
```
|
||||
|
||||
![stamp analytics](stamp_analytics.png)
|
||||
|
||||
\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.5.0'
|
||||
# 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,327 +0,0 @@
|
|||
mynt-eye-s-sdk
|
||||
├── 3rdparty
|
||||
│ └── eigen3 matrix 3rd lib
|
||||
├── cmake
|
||||
│ ├── Common.cmake cmake common macro
|
||||
│ ├── DetectCXX11.cmake
|
||||
│ ├── DetectOpenCV.cmake
|
||||
│ ├── FindCUDA
|
||||
│ │ ├── make2cmake.cmake
|
||||
│ │ ├── parse_cubin.cmake
|
||||
│ │ └── run_nvcc.cmake
|
||||
│ ├── FindCUDA.cmake
|
||||
│ ├── IncludeGuard.cmake
|
||||
│ ├── Option.cmake include(DetectOpenCV.cmake)
|
||||
│ ├── TargetArch.cmake
|
||||
│ ├── templates
|
||||
│ └── Utils.cmake include(Common.cmake)
|
||||
├── CMakeLists.txt
|
||||
├── docs
|
||||
│ ├── api
|
||||
│ ├── conf.py sdkHtml config
|
||||
│ ├── files
|
||||
│ ├── images
|
||||
│ │ ├── firmware
|
||||
│ │ ├── product
|
||||
│ │ ├── project
|
||||
│ │ │ └── vs2017
|
||||
│ │ ├── sdk
|
||||
│ │ │ └── tools
|
||||
│ │ └── tools
|
||||
│ ├── Makefile sdkHtml Makefile
|
||||
│ └── src
|
||||
│ ├── firmware
|
||||
│ ├── log
|
||||
│ ├── product
|
||||
│ ├── sdk
|
||||
│ │ ├── control
|
||||
│ │ ├── data
|
||||
│ │ └── project
|
||||
│ ├── slam
|
||||
│ ├── support
|
||||
│ └── wrapper
|
||||
├── include
|
||||
│ ├── deprecated
|
||||
│ │ └── mynteye
|
||||
│ │ ├── api.h x
|
||||
│ │ ├── callbacks.h x
|
||||
│ │ ├── context.h x
|
||||
│ │ ├── device.h x
|
||||
│ │ ├── files.h x
|
||||
│ │ ├── glog_init.h x
|
||||
│ │ ├── object.h x
|
||||
│ │ ├── plugin.h x
|
||||
│ │ ├── strings.h x
|
||||
│ │ ├── times.h x
|
||||
│ │ └── utils.h x
|
||||
│ └── mynteye
|
||||
│ ├── api
|
||||
│ │ ├── api.h user api(mynteye.h types.h opencv2*)
|
||||
│ │ ├── object.h img formats transform(mynteye.h opencv2*)
|
||||
│ │ └── plugin.h plugin process in&out(mynteye.h opencv2*)
|
||||
│ ├── device
|
||||
│ │ ├── callbacks.h processor data callback(mynteye.h mynteye/types.h)
|
||||
│ │ ├── context.h detect uvc device(mynteye.h)
|
||||
│ │ ├── device.h imu-->motions & camera-->streams(mynteye.h callbacks.h device/types.h)
|
||||
│ │ ├── types.h img & imu_data types(mynteye.h mynteye/types.h)
|
||||
│ │ └── utils.h user help(mynteye.h mynteye/types.h)
|
||||
│ ├── global.h os adapter
|
||||
│ ├── logger.h message output
|
||||
│ ├── miniglog.h google miniglog
|
||||
│ ├── mynteye.h.in api version(global.h)
|
||||
│ ├── types.h all types(mynteye.h)
|
||||
│ └── util
|
||||
│ ├── files.h (mynteye.h)
|
||||
│ ├── strings.h (mynteye.h)
|
||||
│ └── times.h (mynteye.h)
|
||||
├── Makefile
|
||||
├── samples
|
||||
│ ├── camera_with_junior_device_api.cc (device.h utils.h times.h)
|
||||
│ ├── camera_with_senior_api.cc (api.h times.h)
|
||||
│ ├── CMakeLists.txt samples build
|
||||
│ ├── config
|
||||
│ │ ├── S1030
|
||||
│ │ │ └── deprecated
|
||||
│ │ └── S210A
|
||||
│ │ └── deprecated
|
||||
│ ├── ctrl_auto_exposure.cc (api.h)
|
||||
│ ├── ctrl_framerate.cc (api.h times.h)
|
||||
│ ├── ctrl_iic_address.cc (api.h)
|
||||
│ ├── ctrl_imu_low_pass_filter.cc (api.h times.h)
|
||||
│ ├── ctrl_imu_range.cc (api.h times.h)
|
||||
│ ├── ctrl_infrared.cc
|
||||
│ ├── ctrl_manual_exposure.cc
|
||||
│ ├── ctrl_sync_timestamp.cc
|
||||
│ ├── dataset.cc
|
||||
│ ├── dataset.h
|
||||
│ ├── device_writer.cc
|
||||
│ ├── device_writer.h
|
||||
│ ├── get_data_without_select.cc
|
||||
│ ├── get_depth_and_points.cc
|
||||
│ ├── get_depth.cc
|
||||
│ ├── get_depth_with_region.cc
|
||||
│ ├── get_device_info.cc
|
||||
│ ├── get_disparity.cc
|
||||
│ ├── get_from_callbacks.cc
|
||||
│ ├── get_img_params.cc
|
||||
│ ├── get_imu.cc
|
||||
│ ├── get_imu_correspondence.cc
|
||||
│ ├── get_imu_params.cc
|
||||
│ ├── get_stereo_rectified.cc
|
||||
│ ├── get_with_plugin.cc
|
||||
│ ├── record.cc
|
||||
│ ├── save_all_infos.cc
|
||||
│ ├── save_single_image.cc
|
||||
│ ├── simple_demo independent demo
|
||||
│ │ ├── project_cmake
|
||||
│ │ │ ├── CMakeLists.txt linux build
|
||||
│ │ │ └── mynteye_demo.cc
|
||||
│ │ └── project_vs2017 windows vs
|
||||
│ │ ├── images
|
||||
│ │ └── mynteyes_demo
|
||||
│ │ └── mynteyes_demo
|
||||
│ │ ├── stdafx.h
|
||||
│ │ └── targetver.h
|
||||
│ ├── util_cv.cc (util_cv.h device/utils.h)
|
||||
│ ├── util_cv.h cv painter(mynteye/types.h)
|
||||
│ ├── util_pcl.cc (util_pcl.h)
|
||||
│ ├── util_pcl.h pcl cloud points viewer
|
||||
│ ├── uvc_camera.cc
|
||||
│ ├── write_device_info.cc
|
||||
│ ├── write_img_params.cc
|
||||
│ └── write_imu_params.cc
|
||||
├── scripts
|
||||
│ ├── common
|
||||
│ └── win
|
||||
│ ├── cmake
|
||||
│ │ ├── mynteye-targets.cmake
|
||||
│ │ └── mynteye-targets-release.cmake
|
||||
│ └── nsis
|
||||
│ └── Include
|
||||
├── src
|
||||
│ ├── main.cc
|
||||
│ └── mynteye
|
||||
│ ├── api
|
||||
│ │ ├── api.cc (correspondence.h dl.h plugin.h ...)
|
||||
│ │ ├── camera_models
|
||||
│ │ │ ├── camera.cc (camera.h)
|
||||
│ │ │ ├── camera.h camera base(eigen3* opencv2* mynteye.h)
|
||||
│ │ │ ├── equidistant_camera.cc (equidistant_camera.h)
|
||||
│ │ │ ├── equidistant_camera.h KB projection model(opencv2* camera.h)
|
||||
│ │ │ ├── gpl.cc
|
||||
│ │ │ └── gpl.h
|
||||
│ │ ├── correspondence.cc (correspondence.h device.h)
|
||||
│ │ ├── correspondence.h stream control(api.h callbacks.h)
|
||||
│ │ ├── data_tools.cc (data_tools.h)
|
||||
│ │ ├── data_tools.h api<--data<-->obj(object.h api.h device.h)
|
||||
│ │ ├── dl.cc (dl.h)
|
||||
│ │ ├── dl.h dynamic loading(mynteye.h)
|
||||
│ │ ├── processor root-->rectify-->disparity(norm)-->depth-->points
|
||||
│ │ │ ├── depth_processor.cc (depth_Processor.h)
|
||||
│ │ │ ├── depth_processor.h (processor.h types.h rectify_processor.h)
|
||||
│ │ │ ├── depth_processor_ocv.cc (depth_processor_ocv.h)
|
||||
│ │ │ ├── depth_processor_ocv.h output cv::Mat(processor.h)
|
||||
│ │ │ ├── disparity_normalized_processor.cc (opencv2* disparity_normalized_processor.h)
|
||||
│ │ │ ├── disparity_normalized_processor.h (processor.h)
|
||||
│ │ │ ├── disparity_processor.cc (opencv2* disparity_processor.h)
|
||||
│ │ │ ├── disparity_processor.h (mynteye/types.h processor.h)
|
||||
│ │ │ ├── points_processor.cc (opencv2* points_processor.h)
|
||||
│ │ │ ├── points_processor.h (mynteye/types.h processor.h)
|
||||
│ │ │ ├── points_processor_ocv.cc
|
||||
│ │ │ ├── points_processor_ocv.h
|
||||
│ │ │ ├── rectify_processor.cc (opencv2* rectify_processor.h)
|
||||
│ │ │ ├── rectify_processor.h (equidistant_camera.h ...)
|
||||
│ │ │ ├── rectify_processor_ocv.cc
|
||||
│ │ │ ├── rectify_processor_ocv.h
|
||||
│ │ │ ├── root_camera_processor.cc (opencv2* synthetic.h device.h data_tools.h)
|
||||
│ │ │ └── root_camera_processor.h (opencv2* processor.h)
|
||||
│ │ ├── processor.cc (strings.h times.h data_tools.h)
|
||||
│ │ ├── processor.h processor base(synthetic.h mynteye.h object.h)
|
||||
│ │ ├── synthetic.cc (*processor.h object.h plugin.h device.h data_tools.h)
|
||||
│ │ ├── synthetic.h synthetic pipeline(api.h)
|
||||
│ │ ├── version_checker.cc
|
||||
│ │ └── version_checker.h
|
||||
│ ├── device
|
||||
│ │ ├── async_callback.h asynchronous data translate
|
||||
│ │ ├── async_callback_impl.h derived
|
||||
│ │ ├── channel
|
||||
│ │ │ ├── bytes.cc
|
||||
│ │ │ ├── bytes.h <--uint8_t data-->
|
||||
│ │ │ ├── channels.cc
|
||||
│ │ │ ├── channels.h channels control api
|
||||
│ │ │ ├── def.h data packet
|
||||
│ │ │ ├── file_channel.cc
|
||||
│ │ │ └── file_channel.h data parser
|
||||
│ │ ├── config.cc
|
||||
│ │ ├── config.h config lists
|
||||
│ │ ├── context.cc create context
|
||||
│ │ ├── device.cc device class
|
||||
│ │ ├── motions.cc
|
||||
│ │ ├── motions.h imu motions
|
||||
│ │ ├── standard standard device s
|
||||
│ │ │ ├── channels_adapter_s.cc
|
||||
│ │ │ ├── channels_adapter_s.h
|
||||
│ │ │ ├── device_s.cc
|
||||
│ │ │ ├── device_s.h
|
||||
│ │ │ ├── streams_adapter_s.cc
|
||||
│ │ │ └── streams_adapter_s.h
|
||||
│ │ ├── standard2 standard device s2
|
||||
│ │ │ ├── channels_adapter_s2.cc
|
||||
│ │ │ ├── channels_adapter_s2.h
|
||||
│ │ │ ├── device_s2.cc
|
||||
│ │ │ ├── device_s2.h
|
||||
│ │ │ ├── streams_adapter_s2.cc
|
||||
│ │ │ └── streams_adapter_s2.h
|
||||
│ │ ├── streams.cc
|
||||
│ │ ├── streams.h camera streams
|
||||
│ │ ├── types.cc to string
|
||||
│ │ └── utils.cc user helper
|
||||
│ ├── miniglog.cc
|
||||
│ ├── types.cc device,streams,option...types str
|
||||
│ ├── util
|
||||
│ │ ├── files.cc
|
||||
│ │ └── strings.cc
|
||||
│ └── uvc
|
||||
│
|
||||
├── tools
|
||||
│ ├── _build
|
||||
│ │ ├── CMakeCache.txt
|
||||
│ │ ├── CMakeFiles
|
||||
│ │ │ ├── 3.5.1
|
||||
│ │ │ │ ├── CMakeCCompiler.cmake
|
||||
│ │ │ │ ├── CMakeCXXCompiler.cmake
|
||||
│ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
|
||||
│ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
|
||||
│ │ │ │ ├── CMakeSystem.cmake
|
||||
│ │ │ │ ├── CompilerIdC
|
||||
│ │ │ │ │ └── CMakeCCompilerId.c
|
||||
│ │ │ │ └── CompilerIdCXX
|
||||
│ │ │ │ └── CMakeCXXCompilerId.cpp
|
||||
│ │ │ ├── CMakeDirectoryInformation.cmake
|
||||
│ │ │ ├── CMakeOutput.log
|
||||
│ │ │ ├── CMakeTmp
|
||||
│ │ │ ├── Makefile2
|
||||
│ │ │ └── Makefile.cmake
|
||||
│ │ ├── cmake_install.cmake
|
||||
│ │ ├── dataset
|
||||
│ │ │ ├── CMakeFiles
|
||||
│ │ │ │ ├── CMakeDirectoryInformation.cmake
|
||||
│ │ │ │ └── record2.dir
|
||||
│ │ │ │ ├── cmake_clean.cmake
|
||||
│ │ │ │ └── DependInfo.cmake
|
||||
│ │ │ ├── cmake_install.cmake
|
||||
│ │ │ └── Makefile
|
||||
│ │ ├── Makefile
|
||||
│ │ └── writer
|
||||
│ │ ├── CMakeFiles
|
||||
│ │ │ ├── CMakeDirectoryInformation.cmake
|
||||
│ │ │ ├── device_info_writer.dir
|
||||
│ │ │ │ ├── cmake_clean.cmake
|
||||
│ │ │ │ └── DependInfo.cmake
|
||||
│ │ │ ├── device_writer.dir
|
||||
│ │ │ │ ├── cmake_clean.cmake
|
||||
│ │ │ │ ├── cmake_clean_target.cmake
|
||||
│ │ │ │ └── DependInfo.cmake
|
||||
│ │ │ ├── img_params_writer.dir
|
||||
│ │ │ │ ├── cmake_clean.cmake
|
||||
│ │ │ │ └── DependInfo.cmake
|
||||
│ │ │ ├── imu_params_writer.dir
|
||||
│ │ │ │ ├── cmake_clean.cmake
|
||||
│ │ │ │ └── DependInfo.cmake
|
||||
│ │ │ └── save_all_infos.dir
|
||||
│ │ │ ├── cmake_clean.cmake
|
||||
│ │ │ └── DependInfo.cmake
|
||||
│ │ ├── cmake_install.cmake
|
||||
│ │ └── Makefile
|
||||
│ ├── linter
|
||||
│ └── _output
|
||||
│ ├── bin
|
||||
│ │ ├── dataset
|
||||
│ │ └── writer
|
||||
│ └── lib
|
||||
│ └── writer
|
||||
└── wrappers
|
||||
├── android
|
||||
│
|
||||
├── python
|
||||
│ ├── CMakeLists.txt
|
||||
│ ├── samples
|
||||
│ │ ├── mynteye.py
|
||||
│ │ └── util
|
||||
│ │ ├── cv_painter.py
|
||||
│ │ └── __init__.py
|
||||
│ ├── src
|
||||
│ │ └── mynteye_py.cc
|
||||
│ └── third_party
|
||||
│ └── array
|
||||
│ ├── array_indexing_suite.hpp
|
||||
│ └── array_ref.hpp
|
||||
└── ros
|
||||
└── src
|
||||
└── mynt_eye_ros_wrapper
|
||||
├── CMakeLists.txt
|
||||
├── config
|
||||
│ ├── device
|
||||
│ ├── laserscan
|
||||
│ ├── process
|
||||
│ ├── slam
|
||||
│ └── sub
|
||||
│ ├── device_1
|
||||
│ ├── device_2
|
||||
│ ├── process_1
|
||||
│ └── process_2
|
||||
├── launch
|
||||
│ ├── laserscan
|
||||
│ ├── slam
|
||||
│ └── sub
|
||||
├── mesh
|
||||
├── rviz
|
||||
├── scripts
|
||||
│ └── get_device_info.py
|
||||
├── src
|
||||
│ ├── configuru.hpp
|
||||
│ ├── wrapper_node.cc
|
||||
│ └── wrapper_nodelet.cc
|
||||
└── srv
|
||||
|
||||
|
|
@ -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,38 +0,0 @@
|
|||
.. _firmware_applicable:
|
||||
|
||||
Firmware and SDK compatibility
|
||||
==============================
|
||||
|
||||
============================ ========================
|
||||
S1030 Firmwares SDK Version
|
||||
============================ ========================
|
||||
MYNTEYE-S1030-2.7.0.img 2.5.0 (2.5.0 ~ latest)
|
||||
MYNTEYE-S1030-2.5.0.img 2.4.0 (2.4.0 ~ 2.5.0)
|
||||
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
|
||||
============================ ========================
|
||||
|
||||
============================ ===========================
|
||||
S21X0 Firmwares SDK Version
|
||||
============================ ===========================
|
||||
MYNTEYE-S21X0-2.1.0.img 2.5.0 (2.5.0 ~ latest)
|
||||
MYNTEYE-S21X0-1.4.0.img 2.4.2(2.4.2 ~ 2.5.0)
|
||||
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,50 +0,0 @@
|
|||
Change Log
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
2019-11-25
|
||||
-------------------
|
||||
|
||||
S1030 Main Chip Firmware: MYNTEYE-S1030-2.7.0.img
|
||||
|
||||
1. Fix some issues
|
||||
|
||||
S21X0 Main Chip Firmware: MYNTEYE-S21X0-2.1.0.img
|
||||
|
||||
1. Update protocol version
|
||||
2. Fix and optimize some other issues
|
||||
|
||||
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
|