diff --git a/docs/Doxyfile b/docs/Doxyfile index fca026fb..de3ba046 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "MYNT EYE S SDK" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.3.5 +PROJECT_NUMBER = 2.3.8 # 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 diff --git a/docs/src/control/imu_range.rst b/docs/src/control/imu_range.rst index 84e88daa..9e63271b 100644 --- a/docs/src/control/imu_range.rst +++ b/docs/src/control/imu_range.rst @@ -15,7 +15,7 @@ To set the range of accelerometer and gyroscope, set ``Option::ACCELEROMETER_RAN For mynteye s2100/s210a, the available settings are: - * The effective range of accelerometer(unit:g): 6, 12, 24, 32. + * The effective range of accelerometer(unit:g): 6, 12, 24, 48. * The effective range of gyroscope(unit:deg/s): 250, 500, 1000, 2000, 4000. Reference Code: @@ -50,7 +50,7 @@ s2100/s210a: if (!ok) return 1; api->ConfigStreamRequest(request); - // ACCELEROMETER_RANGE values: 6, 12, 24, 32 + // ACCELEROMETER_RANGE values: 6, 12, 24, 48 api->SetOptionValue(Option::ACCELEROMETER_RANGE, 6); // GYROSCOPE_RANGE values: 250, 500, 1000, 2000, 4000 api->SetOptionValue(Option::GYROSCOPE_RANGE, 1000); diff --git a/docs/src/sdk/platform.rst b/docs/src/sdk/platform.rst index 735b2751..11c45e57 100644 --- a/docs/src/sdk/platform.rst +++ b/docs/src/sdk/platform.rst @@ -8,7 +8,7 @@ SDK is built on CMake and can be used cross multiple platforms such as "Linux, W These are the platforms that can be used: * Windows 10 -* Ubuntu 18.04 / 16.04 / 14.04 +* Ubuntu 18.04.1 / 16.04.6 / 14.04.5 * Jetson TX1/TX2 / Xavier * firefly RK3399 diff --git a/docs/src/slam/vins.rst b/docs/src/slam/vins.rst index a3a0d82e..43908d4a 100644 --- a/docs/src/slam/vins.rst +++ b/docs/src/slam/vins.rst @@ -20,37 +20,40 @@ Install ROS Kinetic conveniently (if already installed, please ignore) wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && \ chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws kinetic -Install Ceres --------------- +Install Docker +--------------- .. code-block:: bash - cd ~ - git clone https://ceres-solver.googlesource.com/ceres-solver - sudo apt-get -y install cmake libgoogle-glog-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev - sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687 - sudo apt-get update && sudo apt-get install libsuitesparse-dev - mkdir ceres-bin - cd ceres-bin - cmake ../ceres-solver - make -j3 - sudo make install + sudo apt-get update + sudo apt-get install \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg-agent \ + software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io + +Then add your account to ``docker`` group by ``sudo usermod -aG docker $YOUR_USER_NAME`` . Relaunch the terminal or logout and re-login if you get ``Permission denied`` error. + +To complie with docker,we recommend that you should use more than 16G RAM, or ensure that the RAM and virtual memory space is greater than 16G. Install MYNT-EYE-VINS-Sample ------------------------------ .. code-block:: bash - mkdir -p ~/catkin_ws/src - cd ~/catkin_ws/src - git clone https://github.com/slightech/MYNT-EYE-VINS-Sample.git - cd .. - catkin_make - source devel/setup.bash - echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc - source ~/.bashrc + git clone -b docker_feat https://github.com/slightech/MYNT-EYE-VINS-Sample.git + cd MYNT-EYE-VINS-Sample/docker + make build -(if you fail in this step, try to find another computer with clean system or reinstall Ubuntu and ROS) +Note that the docker building process may take a while depends on your network and machine. After VINS-Mono successfully started, open another terminal and play your bag file, then you should be able to see the result. If you need modify the code, simply run ``./run.sh LAUNCH_FILE_NAME`` after your changes. Run VINS-Mono with MYNT® EYE ----------------------------- @@ -61,11 +64,12 @@ Run VINS-Mono with MYNT® EYE cd (local path of MYNT-EYE-S-SDK) source ./wrappers/ros/devel/setup.bash - roslaunch mynt_eye_ros_wrapper mynteye.launch + roslaunch mynt_eye_ros_wrapper vins_mono.launch 2. Open another terminal and run vins .. code-block:: bash - cd ~/catkin_ws - roslaunch vins_estimator mynteye_s.launch + cd path/to/VINS-Mono/docker + ./run.sh mynteye_s.launch + # ./run.sh mynteye_s2100.launch # mono with s2100 \ No newline at end of file diff --git a/docs/src/slam/vins_fusion.rst b/docs/src/slam/vins_fusion.rst index 9bb13cf6..16301058 100644 --- a/docs/src/slam/vins_fusion.rst +++ b/docs/src/slam/vins_fusion.rst @@ -20,35 +20,41 @@ Install ROS Kinetic conveniently (if already installed, please ignore) wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_install.sh && \ chmod 755 ./ros_install.sh && bash ./ros_install.sh catkin_ws kinetic -Install Ceres --------------- +Install Docker +--------------- .. code-block:: bash - cd ~ - git clone https://ceres-solver.googlesource.com/ceres-solver - sudo apt-get -y install cmake libgoogle-glog-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev - sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687 - sudo apt-get update && sudo apt-get install libsuitesparse-dev - mkdir ceres-bin - cd ceres-bin - cmake ../ceres-solver - make -j3 - sudo make install + sudo apt-get update + sudo apt-get install \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg-agent \ + software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io + +Then add your account to ``docker`` group by ``sudo usermod -aG docker $YOUR_USER_NAME`` . Relaunch the terminal or logout and re-login if you get ``Permission denied`` error. + +To complie with docker,we recommend that you should use more than 16G RAM, or ensure that the RAM and virtual memory space is greater than 16G. + Install MYNT-EYE-VINS-FUSION-Samples ------------------------------------- .. code-block:: bash - mkdir -p ~/catkin_ws/src - cd ~/catkin_ws/src git clone https://github.com/slightech/MYNT-EYE-VINS-FUSION-Samples.git - cd .. - catkin_make - source ~/catkin_ws/devel/setup.bash + cd MYNT-EYE-VINS-FUSION-Samples/docker + make build -(if you fail in this step, try to find another computer with clean system or reinstall Ubuntu and ROS) +Note that the docker building process may take a while depends on your network and machine. After VINS-Mono successfully started, open another terminal and play your bag file, then you should be able to see the result. If you need modify the code, simply run ``./run.sh LAUNCH_FILE_NAME`` after your changes. Run VINS-FUSION with MYNT® EYE ------------------------------- @@ -65,9 +71,7 @@ Run VINS-FUSION with MYNT® EYE .. code-block:: bash - cd ~/catkin_ws/src - source ./devel/setup.bash - roslaunch vins mynteye-s-stereo.launch # Stereo fusion / Stereo+imu fusion - # roslaunch vins mynteye-s-mono-imu.launch # mono+imu fusion - # roslaunch vins mynteye-s2100-mono-imu.launch # mono+imu fusion with mynteye-s2100 - # roslaunch vins mynteye-s2100-stereo.launch # Stereo fusion / Stereo+imu fusion with mynteye-s2100 + cd path/to/this_repo/docker + ./run.sh mynteye-s/mynt_stereo_imu_config.yaml # Stereo fusion + # ./run.sh mynteye-s2100/mynt_stereo_config.yaml # Stereo fusion with mynteye-s2100 + # ./run.sh mynteye-s2100/mynt_stereo_imu_config.yaml # Stereo+imu fusion with mynteye-s2100 diff --git a/docs/src/wrapper/ros.rst b/docs/src/wrapper/ros.rst index 169ce924..8b07025c 100644 --- a/docs/src/wrapper/ros.rst +++ b/docs/src/wrapper/ros.rst @@ -51,9 +51,17 @@ The ROS file is structured like follows: /wrappers/ros/ ├─src/ │ └─mynt_eye_ros_wrapper/ + │ ├─config/ + │ │ ├─device/ + │ │ ├─standard.yaml # S1030 + │ │ └─standard2.yaml # S2100/S210A + │ │ ├─laserscan/ + │ │ ├─process/ + │ │ └─... │ ├─launch/ │ │ ├─display.launch │ │ └─mynteye.launch + │ │ └─... │ ├─msg/ │ ├─rviz/ │ ├─src/ @@ -64,35 +72,41 @@ The ROS file is structured like follows: │ └─package.xml └─README.md -In ``mynteye.launch``, you can configure the topics and frame_ids, decide which data to enable, and set the control options. Please set ``gravity`` to the local gravity acceleration. +In ``mynteye.launch``, you can configure the topics and frame_ids, decide which data to enable, ``standard.yaml`` (standard2.yaml is S2100/S210A config file) can set parameters for device. Please set ``gravity`` to the local gravity acceleration. + + +standard.yaml/standard2.yaml: .. code-block:: xml # s2100/s210a modify frame/resolution - + standard2/request_index: 2 # s1030 modify frame/imu hz - - - + # standard/frame_rate range: {10,15,20,25,30,35,40,45,50,55,60} + standard/frame_rate: -1 + # standard/frame_rate: 25 - - - + # standard/imu_frequency range: {100,200,250,333,500} + standard/imu_frequency: -1 + # standard/imu_frequency: 200 ... # s2100 modify brightness - - - + # standard2/brightness range: [0,240] + standard2/brightness: -1 + # standard2/brightness: 120 ... # s210a modify brightness - - - + # standard210a/brightness range: [0,240] + standard210a/brightness: -1 + # standard210a/brightness: 120 ... + +mynteye.launch: + .. code-block:: xml diff --git a/samples/tutorials/control/imu_range.cc b/samples/tutorials/control/imu_range.cc index 1431b206..7fe67835 100644 --- a/samples/tutorials/control/imu_range.cc +++ b/samples/tutorials/control/imu_range.cc @@ -42,7 +42,7 @@ int main(int argc, char *argv[]) { // Set imu range for S2000/S2100/S210A if (model == Model::STANDARD2 || model == Model::STANDARD210A) { - // ACCELEROMETER_RANGE values: 6, 12, 24, 32 + // ACCELEROMETER_RANGE values: 6, 12, 24, 48 api->SetOptionValue(Option::ACCELEROMETER_RANGE, 6); // GYROSCOPE_RANGE values: 250, 500, 1000, 2000, 4000 api->SetOptionValue(Option::GYROSCOPE_RANGE, 1000);