Ubuntu16.04+RealsenseT265跑通VINS-Fusion

2023-05-16

一、提前条件

系统版本:ubuntu16.04+ROS(kinetic)
默认已经掌握了ubuntu系统下的基本命令以及ROS的基本操作

二、realsenseT265的SDK测试

官方网站https://www.intelrealsense.com/get-started-tracking-camera/
照着其中https://github.com/IntelRealSense/librealsense/blob/development/doc/distribution_linux.md安装过程进行安装即可,保证运行realsense-viewer后能有相关界面。

三、realsenseT265的标定

1.准备工作(需要注意以下文件编译过程中,可能出现依赖库缺失的报错,这很正常,按照提示的错误信息安装对应依赖库即可)

1.1 下载并编译ceres

git clone https://github.com/ceres-solver/ceres-solver
cd ceres
mkdir build
cd build
cmake ..
make
sudo make install

1.2 下载并编译code_utils

首先,安装依赖库

sudo apt-get install libdw-dev

之后,安装code_utils

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/code_utils
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash

如果有报错fatal error: backward.hpp: 没有那个文件或目录。此时在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"#include “code_utils/backward.hpp”后再catkin_make。
我也遇见过no module named “XXX”的错误,是因为没安装对应的依赖库,安装后再catkin_make即可。

1.3 下载并编译imu_utils

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash

注意:先编译code_utils,再编译imu_utils,不能放在一起编译。

1.4 下载并编译kalibr

首先安装依赖库

sudo apt-get install python-setuptools
sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen
sudo apt-get install ros-kinetic-vision-opencv ros-kinetic-image-transport-plugins ros-kinetic-cmake-modules python-software-properties software-properties-common libpoco-dev python-matplotlib python-scipy python-git python-pip ipython libtbb-dev libblas-dev liblapack-dev python-catkin-tools libv4l-dev

接下来安装kalibr

cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/Kalibr.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash

在看其他博客时发现可能会出现python相关的问题,我用的是ubuntu16.04自带的Python 2.7.12版本,在安装过程中没有出现问题。

1.5 下载并安装realsense-ros
首先安装依赖库

sudo apt-get install ros-kinetic-ddynamic-reconfigure

接下来安装realsense-ros

cd ~/catkin_ws/src
git clone https://github.com/IntelRealSense/realsense-ros
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

至此,我们的准备工作就做好了。

2.标定流程

2.1修改工作空间下文件的读写权限,不然后面在运行时会报错

 cd ~/catkin_ws
 sudo chmod 777 src/ -R

2.2 相关文件的修改
打开位于realsense-ros/realsense2_camera/launch目录下的rs_t265.launch文件,将原本的代码<arg name="unite_imu_method" default=""/>修改为<arg name="unite_imu_method" default="linear_interpolation"/>
~/catkin_ws/src/imu_utils/launch中新建t265_imu.launch如下

<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/camera/imu"/> 
        <param name="imu_name" type="string" value= "BMI055"/>
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
        <param name="max_time_min" type="int" value= "60"/> 
        <param name="max_cluster" type="int" value= "200"/> 
    </node>
</launch>

2.3 IMU的校准
将realsenseT265插上电脑后,建议在你喜欢的地方新建一个文件夹,比如我是在桌面上新建了一个文件夹,然后在其中打开终端,输入以下命令

roslaunch realsense2_camera rs_t265.launch
roslaunch imu_utils t265_imu.launch

注意过程中显示wait for imu data是正常情况,等待大约60分钟即可出结果,在你新建的文件夹内生成了BMI055_imu_param.yaml文件,该文件给出了加速度计和陀螺仪三轴的noise_density(后缀n)和random_walk(后缀w),同时计算出了平均值,后面IMU+摄像头联合标定的时候需要这些均值。

2.4 相机的标定
下载官方给的april_6x6_80x80cm_A0.pdf或者其它标定文件。打印或者在屏幕显示,测量实际的尺寸后,在你之前新建的文件夹中新建apriltags.yaml,我的文件内容如下:

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.16           #size of apriltag, edge to edge [m]
tagSpacing: 0.3125         #ratio of space between tags to tagSize
                         #example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]

之后,在你新建的文件夹中打开终端,开启realsenseT265

roslaunch realsense2_camera rs_t265.launch

修改话题发布频率

rosrun topic_tools throttle messages /camera/fisheye1/image_raw 10.0 /fisheye1
rosrun topic_tools throttle messages /camera/fisheye2/image_raw 10.0 /fisheye2

录制文件,注意录制过程中要缓慢移动相机,使其能看到完整清晰的标定文件(可以先在录制前打开rviz,调用image的话题进行观察,判断移动的位置)

rosbag record -O cameras_calibration /fisheye1 /fisheye2

调用kalibr的算法计算各个摄像头的内参和外参

kalibr_calibrate_cameras --target ./apriltags.yaml --bag ./cameras_calibration.bag --bag-from-to 2 35 --models omni-radtan omni-radtan --topics /fisheye1 /fisheye2 

因为并不一定要用整个录制视频,2和35是你想要的起始和截止时间,可以修改。
如果在过程中出现Using the default setup in the initial run leads to an error of Cameras are not connected through mutual observations, please check the dataset. Maybe adjust the approx. sync. tolerance.相机不同步的报错,可以通过修改话题发布的频率,或者在kalibr命令的末尾加上–approx-sync 0.04来解决。
最终会生成camchain-.cameras_calibration.yamlresults-cam-.cameras_calibration.txt和report-cam-.cameras_calibration.pdf
2.5. Camera-IMU联合标定
在你之前新建的文件夹中,新建imu.yaml文件如下(根据你之前的BMI055_imu_param.yaml填写参数):

#Accelerometers
accelerometer_noise_density: 8.003e-02   #Noise density (continuous-time)
accelerometer_random_walk:   5.382e-03   #Bias random walk

#Gyroscopes
gyroscope_noise_density:     8.163e-03   #Noise density (continuous-time)
gyroscope_random_walk:       3.470e-05   #Bias random walk

rostopic:                    /imu      #the IMU ROS topic
update_rate:                 200.0      #Hz (for discretization of the values above)

修改rs_t265.launch其中的两行代码如下:

<arg name="enable_sync"         default="true"/> 
<arg name="unite_imu_method"    default="copy"/>

进入你之前新建的文件夹,打开终端,开启T265

roslaunch realsense2_camera rs_t265.launch

修改发布频率

rosrun topic_tools throttle messages /camera/fisheye1/image_raw 20.0 /fisheye1
rosrun topic_tools throttle messages /camera/fisheye2/image_raw 20.0 /fisheye2
rosrun topic_tools throttle messages /camera/imu 200.0 /imu

录制文件

rosbag record -O imu_cameras_calibration /fisheye1 /fisheye2 /imu

调用kalibr的算法计算IMU和camera外参

kalibr_calibrate_imu_camera --target ./apriltags.yaml --cam ./camchain-.cameras_calibration.yaml --imu ./imu.yaml --bag ./imu_cameras_calibration.bag --bag-from-to 2 35 --max-iter 30 --show-extraction

最终会输出camchain-imucam-.imu_cameras_calibration.yamlimu-.imu_cameras_calibration.yamlresults-imucam-.imu_cameras_calibration.txtreport-imucam-.imu_cameras_calibration.pdf四个文件,你可以通过pdf文件查看你标定的准确性。
至此,我们完成了相机和IMU的标定。

四、运行VINS-FUSION

先下载并编译VINS-Fusion

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash

VINS-Fusion/config文件夹中,新建文件夹名为realsense_t265,并在其中新建fisheye1.yaml,fisheye2.yaml,stereo_imu.yaml三个文档,内容如下(注意相关参数需要参考BMI055_imu_param.yamlresults-cam-.cameras_calibration.txtresults-imucam-.imu_cameras_calibration.txt自行修改):

fisheye1.yaml

%YAML:1.0
---
model_type: MEI
camera_name: camera
image_width: 848
image_height: 800
mirror_parameters:
   xi: 1.75347951
distortion_parameters:
   k1: 0.03509054
   k2: -0.3590536
   p1: 0.00250588
   p2: 0.00058101
projection_parameters:
   gamma1: 788.10829678
   gamma2: 788.19861186
   u0: 416.33019648
   v0: 404.21771229

fisheye2.yaml

%YAML:1.0
---
model_type: MEI
camera_name: camera
image_width: 848
image_height: 800
mirror_parameters:
   xi: 1.95209328
distortion_parameters:
   k1: 0.18993538
   k2: -0.8234989
   p1: 0.00337246
   p2: 0.00013959
projection_parameters:
   gamma1: 843.77832442
   gamma2: 843.19711184
   u0: 419.54774026
   v0: 406.36245572

stereo_imu.yaml

%YAML:1.0

#common parameters
#support: 1 imu 1 cam; 1 imu 2 cam: 2 cam; 
imu: 1         
num_of_cam: 2  

imu_topic: "/camera/imu"
image0_topic: "/camera/fisheye1/image_raw"
image1_topic: "/camera/fisheye2/image_raw"
output_path: "~/output"   

cam0_calib: "fisheye1.yaml"
cam1_calib: "fisheye2.yaml"
image_width: 848
image_height: 800
   

# Extrinsic parameter between IMU and Camera.
estimate_extrinsic: 1   # 0  Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.
                        # 1  Have an initial guess about extrinsic parameters. We will optimize around your initial guess.

body_T_cam0: !!opencv-matrix #cam0 coordinate under body coordinate
   rows: 4
   cols: 4
   dt: d
   data: [-0.9999306582373404, 0.001093290620038494, 0.01172533294445286, 0.5201790241280906,
                -0.0011878229478030982, -0.9999668259020238, -0.008058298336212454, 0.04796159845159734,
                0.011716133905124508, -0.008071667179143842, 0.9998987850754022, -0.05434762530417168,
                0., 0., 0., 1.]

body_T_cam1: !!opencv-matrix
   rows: 4
   cols: 4
   dt: d
   data: [-0.9999985320918137, 0.0011840662046389947, -0.0012384673758261621, -0.10570692194161202,
                -0.001173065649638605, -0.999960187777609, -0.008845720815767944, 0.048863128512499784,
                -0.0012488919887611945, -0.008844255027525165, 0.9999601089152549, -0.04892047362600982,
                0., 0., 0., 1. ]

#Multiple thread support
multiple_thread: 1

#feature traker paprameters
max_cnt: 150            # max feature number in feature tracking
min_dist: 30            # min distance between two features 
freq: 10                # frequence (Hz) of publish tracking result. At least 10Hz for good estimation. If set 0, the frequence will be same as raw image 
F_threshold: 1.0        # ransac threshold (pixel)
show_track: 1           # publish tracking image as topic
flow_back: 1            # perform forward and backward optical flow to improve feature tracking accuracy

#optimization parameters
max_solver_time: 0.04  # max solver itration time (ms), to guarantee real time
max_num_iterations: 8   # max solver itrations, to guarantee real time
keyframe_parallax: 10.0 # keyframe selection threshold (pixel)

#imu parameters       The more accurate parameters you provide, the better performance
acc_n: 8.00274e-02          # accelerometer measurement noise standard deviation. #0.2   0.04
gyr_n: 8.16326e-03         # gyroscope measurement noise standard deviation.     #0.05  0.004
acc_w: 5.38231e-03         # accelerometer bias random work noise standard deviation.  #0.002
gyr_w: 3.470378e-05       # gyroscope bias random work noise standard deviation.     #4.0e-5
g_norm: 9.805         # gravity magnitude

#unsynchronization parameters
estimate_td: 0                      # online estimate time offset between camera and imu
td: 0.0                             # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)

#loop closure parameters
load_previous_pose_graph: 0        # load and reuse previous pose graph; load from 'pose_graph_save_path'
pose_graph_save_path: "~/output" # save and load path
save_image: 1                   # save image in pose graph for visualization prupose; you can close this function by setting 0 

之后打开终端,运行

roslaunch realsense2_camera rs_t265.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/realsense_t265/stereo_imu.yaml 
roslaunch vins vins_rviz.launch

就可以开始愉快的跑VINS-Fusion了。
在这里插入图片描述

参考文章:

Realsense T265标定及运行VINS–kalibr和imu_utils
如何用Realsense D435i运行VINS-Mono等VIO算法 获取IMU同步数据
使用imu_utils工具生成IMU的Allan方差标定曲线
VINS-Fusion

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu16.04+RealsenseT265跑通VINS-Fusion 的相关文章

  • VINS技术路线与代码详解

    VINS技术路线 写在前面 xff1a 本文整和自己的思路 xff0c 希望对学习VINS或者VIO的同学有所帮助 xff0c 如果你觉得文章写的对你的理解有一点帮助 xff0c 可以推荐给周围的小伙伴们 xff0c 当然 xff0c 如果
  • ubuntu16.04下编译ceres-solver

    一 编译环境 ubuntu16 04 二 准备工作之安装必要的库 2 1安装cmake sudo apt get install cmake 2 2 安装google glog 43 gflags sudo apt get install
  • Ubuntu16.04安裝ROS

    此文章在前人的基礎上 xff0c 並把安裝遇到的問題寫出來 Ubuntu16 04安装ROS Kinetic详细过程 https blog csdn net weixin 43159148 article details 83375218
  • VINS on RealSense D435i

    关于Realsense D435i运行VINS系列 前言 在SLAM中 xff0c 主要是以激光SLAM和视觉SLAM为主 xff0c 激光雷达直接可以获取三维点云坐标信息 xff0c 所以激光SLAM会比视觉SLAM稳定许多 xff0c
  • 【ubuntu16.04 LTS】 ping www.baidu.com不通

    想更新一个软件包 xff0c 发现ubuntu不能正常更新 xff0c 结果ping www baidu com不通 xff0c 但是ping ip 可能 xff0c 所以认为是DNS没有配置 解决方法 xff1a 1 xff0c 既然能p
  • 【ubuntu16.04 LTS】设置屏幕分辨率

    第一种方式 直接打开系统设置 xff0c 选择屏幕分辨率即可 xff0c 和Windows一样 xff0c 不多说 第二种方式 如果在第一种方式中 xff0c 没有找到自己想要设置的分辨率的话 xff0c 可以按如下操作 xff1a 1 x
  • Ubuntu16.04下安装Python3.6

    1 网上尝试了诸如以下的安装办法 xff0c 不成功 xff08 不建议采用 xff09 sudo add apt repository ppa jonathonf python 3 6 sudo apt get update sudo a
  • ubuntu16.04中进行ROS通信编程

    ROS通信学习 基础知识学习字段ROS通信小例子一 创建一个工作区二 创建一个ROS工程包三 创建通信的发 收节点四 测试程序的正确性 图像ROS通信小例子视频ROS通信小例子多机ROS通信 基础知识学习 x1f31f 话题与服务的区别 话
  • 关于VINS-MONO与VIO轨迹漂移问题定位的一些方向

    整个VINS MONO系统 xff0c 较容易在系统静止或外力给予较大冲击时产生轨迹漂移 xff0c 原因是imu的bias在预积分中持续发散 xff0c 视觉重投影误差产生的约束失效 如静止 xff0c 先验约束可能会在LM的线性求解器中
  • Ubuntu20.04运行Vins-fusion

    因已安装ROS noetic xff0c eigen xff0c opencv及ceres等库 xff0c 这部分环境配置就不细讲 xff0c 直接下载VINS FUSION的代码库 下载编译 cd span class token ope
  • ubuntu16.0 ROS(介绍EAI的YDLIDAR-X4激光雷达在ROS下使用方法)

    YDLIDAR X4激光雷达介绍 YDLIDAR X4激光雷达是深圳越登智能科技有限公司 xff08 YDLIDAR xff0c 这家公司属于EAI xff09 研发的一款 360 度二维测距产品 xff0c 本产品基于三角测距原理 xff
  • vins-fusion代码解读[五] imu在vins里的理解

    SLAM新手 xff0c 欢迎讨论 IMU作用 vins中 xff0c IMU只读取IMU六轴的信息 xff0c 3轴线加速度 xff08 加速度计 xff09 和3轴角速度 xff08 陀螺仪 xff09 通过对陀螺仪的一次积分 xff0
  • VINS-Mono视觉初始化代码详解

    摘要 视觉初始化的过程是至关重要的 xff0c 如果在刚开始不能给出很好的位姿态估计 xff0c 那么也就不能对IMU的参数进行精确的标定 这里就体现了多传感器融合的思想 xff0c 当一个传感器的数据具有不确定性的时候 xff0c 我们需
  • ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

    Intel在Github上开源了支持所有RealSense系列相机的SDK 包括了D400 SR300系列深度相机和T265双目跟踪相机 支持Linux Windows Mac OS以及Android 链接 https github com
  • 【VINS论文翻译】VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator

    回到目录 写在前面 港科大的VINS Mono作为目前state of the art的开源VIO项目 xff0c 是研究视觉与IMU紧耦合的必读算法 xff0c 网上的论文解读与代码实现也非常丰富 xff08 感谢 xff01 xff09
  • Ubuntu16.04 中 搭建Janus Server

    Ubuntu16 04 局域网中搭建Janus Server janus简介 Janus是WebRTC 服务器端的开源项目 xff0c 官方对其定义是一个WebRTC服务器端 xff0c 支持的功能比较丰富 xff0c 通过core模块来支
  • VINS-Mono学习(五)——闭环优化4DoF

    这里再重写一边VINS开启的新线程 xff1a 前端图像跟踪后端非线性优化闭环检测闭环优化 闭环优化是跟在闭环检测之后步骤 首先回顾闭环检测的过程 xff1a 1 pose graph node cpp开启process闭环检测线程 xff
  • VINS问题整理

    VINS的初始化过程 xff1f 首先进行纯视觉SfM xff1a 把滑窗填满 xff0c 然后选择枢纽帧 xff08 和最后一帧有足够的视野重叠保证计算的位姿精度 xff0c 并且和最后一帧有足够的视差保证三角化地图点的精度 xff09
  • fusion 能看穿新型包装吗?

    Given newtype MyVec MyVec unVec Data Vector deriving Functor etc 这将创建 类似于 instance Functor MyVec where fmap f MyVec Data
  • 从 .Net v4.0 程序集链接到 .Net v2.0 程序集似乎也链接(和别名)mscorlib v2.0。为什么?

    我有一个 Net 程序集 它导入与 v2 0 运行时链接的程序集 我遇到的问题是 当我尝试在程序集上运行一些测试时 Fusion 尝试加载依赖程序集的错误版本 查看程序集清单后 我明白了原因 错误的版本FSharp Core已连接 在我的构

随机推荐

  • linux安装chrome以及驱动

    一 安装chrome 下载安装脚本 span class token function wget span https intoli com install google chrome sh 然后授予可执行权限 span class tok
  • ardupilot编译过程,通过makefile的形式编译,分析make px4-v2指令

    ardupilot编译过程 xff0c 通过makefile的形式编译 xff0c 分析make px4 v2指令 我们都知道平时用的编译命令是make px4 v2 但是为什么是这个呢 xff0c 这个命令是怎样执行的呢 xff0c 挑干
  • AVT工业相机Windows、Opencv开发——驱动相机(超详细)

    一 概述 1 1使用Vimba控制相机需要经历以下几个步骤 1 打开Vimba 2 查找相机列表 3 打开特定相机 4 配置参数 xff08 可选 xff09 5 采集 xff1a 采集过程共分为5步 xff0c 具体见1 2 6 关闭相机
  • python-opencv尺寸测量

    首先 xff0c 利用机器视觉来测定零件尺寸 xff0c 我们能够直接得到的是图片的像素 xff0c 要想获得尺寸大小 xff0c 我们必须找到像素和实际尺寸间的关系 我们在这里定义一个比例概念 xff1a 每度量比的像素 xff08 pi
  • Bounding box(bbox) 预测

    在出现Bounding box预测之前 xff0c 一般都是通过滑动窗口进行目标检测 本文前两部分介绍滑动窗口算法 xff0c 这样是为了更好介绍 bounding box如何引出 为了解决什么问题而引出的 也可直接跳跃到第三部分看有关bo
  • YOLOv3网络结构分析以及工作流程

    注意 xff1a 本文章有很多图 xff0c 但是都是YOLOv3的结构图 xff0c 只是每张图表达出的信息都各有特色 xff0c 可将这些结构图结合起来 xff0c 能更好的理解 1 Darknet 53 模型结构 在论文中虽然有给网络
  • Qt中QDebug的使用

    QDebug类为调试信息 debugging information 提供输出流 它的声明在 lt QDebug gt 中 xff0c 实现在Core模块中 将调试或跟踪信息 debugging or tracing information
  • Ubuntu18.04安装教程——超详细的图文教程

    电脑配置 xff1a 名称 xff1a Lenovo 拯救者Y7000P 处理器 xff1a i7 10750H 内存 xff1a 32G 固态 xff1a 1TB 显卡 xff1a RTX2060 6G 一 准备工作 本文以 Ubuntu
  • Ubuntu18.04启动后无法进入桌面修复方法(图文)

    引言 xff08 吐槽可略过 xff09 xff1a Ubuntu是应用广泛的Linux操作系统 xff0c 特别是在机器学习应用中 xff0c 通过调用NVIDIA显卡的GPU进行计算和研究的主要平台之一 但是由于NV显卡的存在 xff0
  • VINS-Course代码解析——run_euroc前端数据处理

    vins mono总框架如下 xff1a 主要分为三大块 xff1a 我们先从主函数 main 入手 xff1a 主函数中有三个线程 xff0c 读取完数据集和配置文件的路径后就会进入这三个线程 xff0c 如下图 xff1a thd Ba
  • Gazebo11的更新与安装

    Melodic自带的Gazebo版本过低 xff0c 建议升级 Gazebo安装见gazebo官网 需注意以下四点 删除gazebo9以及相关插件选用Alternative installation step by step的安装方式 xf
  • XTDrone目标检测

    编译Darkent ROS 方法一 xff1a xff08 推荐 xff09 直接clone xff0c 记得加 recurse submodules xff0c 防止文件缺失 cd span class token operator sp
  • C++求解N个数的最大公约数、最小公倍数

    一 2个数的最大公约数 span class token comment 辗转相除法 span span class token keyword int span span class token function gcd span spa
  • 子序列个数——动态规划

    题目 xff1a 统计一个字符串中全部不同的子序列的个数 思路 xff1a 动态规划求解 令 f i 61 前 i 个元素中包含的全部子序列的个数 那么状态转移方程分为下面两种情况 xff1a 当第 i 个元素在前面 i 1 个字符中没有出
  • 字符串中特定子序列出现的次数(动态规划)

    题目 xff1a 给定一个字符串 xff0c 求子序列 cwbc 出现的次数 思路 xff1a 动态规划 令 dp i j 表示前 i 个字符中匹配了字符串 cwbc 中前 j 位 xff08 j 61 1 2 3 4 xff09 的个数
  • VMware ubuntu虚拟机无法上网的解决办法(笔记本连接WIFI情况)

    文章目录 一 虚拟机网络配置 一 虚拟机网络配置 1 设置Ubuntu网络适配器的网络连接方式为NAT模式 2 还原虚拟机网络配置 还原一下默认设置 3 window网络适配器设置适配器允许网络共享 4 Ubuntu启用联网 xff0c 连
  • ubuntu在树梅派上之VNC

    启动vncserver vncserver span class token operator span geometry 1600x900 杀死第一个桌面 vncserver span class token operator span
  • Sourcetree介绍及使用

    Sourcetree是一个操作简单但功能强大的免费Git客户端管理工具 xff0c 可应用在Windows和Mac平台 Sourcetree的安装 xff1a 1 从Sourcetree Free Git GUI for Mac and W
  • javascript创建一个基于数组的栈结构

    栈是一种遵从后进先出 xff08 LIFO xff09 原则的有序集合 新添加或待删除的元素都保存在栈的同 一端 xff0c 称作栈顶 xff0c 另一端就叫栈底 在栈里 xff0c 新元素都靠近栈顶 xff0c 旧元素都接近栈底 栈拥有以
  • Ubuntu16.04+RealsenseT265跑通VINS-Fusion

    一 提前条件 系统版本 xff1a ubuntu16 04 43 ROS xff08 kinetic xff09 默认已经掌握了ubuntu系统下的基本命令以及ROS的基本操作 二 realsenseT265的SDK测试 官方网站https