Jetson Xavier NX配置全过程——D435i和T265驱动安装(三)

2023-05-16

Jetson Xavier NX配置全过程——系统与SDK烧录(一)

Jetson Xavier NX配置全过程——安装OpenCV4.5.3(二)

Jetson Xavier NX配置全过程——D435i驱动安装(三)

目录

一、安装RealSense SDK

1、RealSense SDK源码下载

 2、安装依赖库

3、编译与安装

二、安装pyrealsense2

三、安装Realsense_ros


因为课题需要使用D435i获取深度信息,所以要使用pyrealsense2这个python包。在安装过程中也踩了很多坑,所以这一篇文章专门来说一下Jetson Xavier NX安装Librealsense2 SDK、pyrealsense2和Realsense_ros,其实我们只需要安装完Librealsense2 SDK后配置一下环境就可以使用Python3.6中的pyrealsense2了。

一、安装RealSense SDK

RealSense SDK已经可以直接在Jetson Xavier NX上进行安装,其安装方式有两种,一个是从源码编译安装,一个是直接apt-get安装。但是apt-get安装虽然便捷,但是一定不会成功,我看到其他博主也是没有成功,所以我就不在这个说apt-get安装的过程了。

1、RealSense SDK源码下载

首先从官网下载RealSense SDK源码:Releases · IntelRealSense/librealsense (github.com)

我下载的是v2.48.0版本的,因为后面安装的 Librealsense_ROS 要和 RealSense SDK 的版本想比配,比v2.48.0高的版本所对应的 Librealsense_ROS 都是需要ROS2来匹配。

 2、安装依赖库

sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev libeigen3-dev 
sudo apt-get install libglfw3-dev

3、编译与安装

进入解压好的源码文件,在新建的build文件夹下进行编译与安装

cd librealsense-2.48.0
mkdir build
cd build
cmake ../ -DFORCE_RSUSB_BACKEND=ON -DBUILD_PYTHON_BINDINGS:bool=true -DPYTHON_EXECUTABLE=/usr/bin/python3.6 -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true -DBUILD_WITH_CUDA:bool=true
sudo make uninstall
sudo make clean
make -j4
sudo make install

检查目录/etc/udev/rules.d/下是否有99-realsense-libusb.rules文件,如果没有需要手动生成文件99-realsense-libusb.rules,复制内容如下,如果没有这个文件可能摄像头的imu打不开。

##Version=1.1##
# Device rules for Intel RealSense devices (R200, F200, SR300 LR200, ZR300, D400, L500, T200)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0a80", MODE:="0666", GROUP:="plugdev", RUN+="/usr/local/bin/usb-R200-in_udev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0a66", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aa3", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aa2", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aa5", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0abf", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0acb", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad0", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="04b4", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad1", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad2", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad3", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad4", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad6", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af2", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af6", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0afe", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aff", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b00", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b01", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b03", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b07", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b0c", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b0d", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3d", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b48", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b49", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4b", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4d", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b52", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b5b", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b5c", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b64", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b68", MODE:="0666", GROUP:="plugdev"

# Intel RealSense recovery devices (DFU)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ab3", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0adb", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0adc", MODE:="0666", GROUP:="plugdev"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b55", MODE:="0666", GROUP:="plugdev"

# Intel RealSense devices (Movidius, T265)
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0af3", MODE="0666", GROUP="plugdev"
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0b37", MODE="0666", GROUP="plugdev"
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="03e7", ATTRS{idProduct}=="2150", MODE="0666", GROUP="plugdev"

KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af2", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af2", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0afe", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0afe", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aff", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aff", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b00", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b00", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b01", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b01", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3d", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3d", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4b", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4b", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4d", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4d", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b5b", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b5b", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b5c", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b5c", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b64", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b64", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b68", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'"
DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b68", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'"

# For products with motion_module, if (kernels is 4.15 and up) and (device name is "accel_3d") wait, in another process, until (enable flag is set to 1 or 200 mSec passed) and then set it to 0.
KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5|0afe|0aff|0b00|0b01|0b3a|0b3d|0b64|0b68", RUN+="/bin/sh -c '(major=`uname -r | cut -d \".\" -f1` && minor=`uname -r | cut -d \".\" -f2` && (([ $major -eq 4 ] && [ $minor -ge 15 ]) || [ $major -ge 5 ])) && (enamefile=/sys/%p/name && [ `cat $enamefile` = \"accel_3d\" ]) && enfile=/sys/%p/buffer/enable && echo \"COUNTER=0; while [ \$COUNTER -lt 20 ] && grep -q 0 $enfile; do sleep 0.01; COUNTER=\$((COUNTER+1)); done && echo 0 > $enfile\" | at now'"

最后,执行realsense-viewer如果能正确显示摄像头采集图像界面,则证明SDK库已成功安装。

4.使用脚本安装

​git clone https://github.com/jetsonhacks/installRealSenseSDK.git

使用以下代码直接安装当前最新的版本

cd installRealSenseSDK
./installLibrealsense.sh

或者使用以下方式安装指定版本

cd installRealSenseSDK
gedit buildLibrealsense.sh

修改前面的版本为:

LIBREALSENSE_VERSION=v2.50.0
USE_CUDA=true
NUM_PROCS=4

这里使用了cuda,编译使用4核心,版本2.50.0

把下面这段注释掉

VERSION_TAG=$(git tag -l $LIBREALSENSE_VERSION)
if [ ! $VERSION_TAG  ] ; then
   echo ""
  tput setaf 1
  echo "==== librealsense Version Mismatch! ============="
  tput sgr0
  echo ""
  echo "The installed version of librealsense is not current enough for these scripts."
  echo "This script needs librealsense tag version: "$LIBREALSENSE_VERSION "but it is not available."
  echo "Please upgrade librealsense or remove the librealsense folder before attempting to install again."
  echo ""
  exit 1
fi

把96行克隆的地方也带上版本号

 git clone -b v2.50.0 https://github.com/IntelRealSense/librealsense.git

保存后执行以下操作

./buildLibrealsense.sh

二、安装pyrealsense2

pyrealsense2是我们在使用python调用摄像头时候会用到的一个包,其实我们前面安装RealSense SDK的时候就已经安装完pyrealsense2了,所以这里只需要输入以下的代码添加到路径中即可。

sudo gedit ~/.bashrc
export PATH=$PATH:~/.local/bin
export PYTHONPATH=$PYTHONPATH:/usr/local/lib
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.6/pyrealsense2
source /.bashrc

到这里就已经可以在python3中调用pyrealsense2了,输入以下代码不再提示"No Mudule Named Pyrealsense2"错误信息,则证明pyrealsense2已安装成功。

python3
import pyrealsense2

三、安装Realsense_ros

Realsense官方提供的安装方式依旧有两种,一个是从源码编译安装,一个是直接apt-get安装ros包,同样我们还是只用源码编译的方式。通过下面这个网址我们可以查询到我们安装的RealSense SDK版本所对应的Realsense_ros,我下载的版本是realsense-ros-2.3.1。

Releases · IntelRealSense/realsense-ros (github.com)

同时我们还要下载ddynamic_reconfigure

下载地址:GitHub - pal-robotics/ddynamic_reconfigure

进入终端输入以下命令

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/

把我们刚才下载好的realsense-ros-2.3.1和ddynamic_reconfigure-kinetic-devel都放入到src文件夹后,在终端中输入以下命令

catkin_init_workspace
cd ..
catkin_make clean

这里可能会遇到以下错误

错误1:

 根据这个报错的提示,可以看出是: “cv_bridge” 的路径问题。我们可以通过/opt/ros/melodic/share/cv_bridge/cmake路径打开cv_bridgeConfig.cmake文件

cd /opt/ros/melodic/share/cv_bridge/cmake/
sudo gedit cv_bridgeConfig.cmake

找到第96行,这里就是cv_bridge的路径

 修改路径并保存即可

set(_include_dirs "include;/usr/include;/usr/include/boost/compute/interop/opencv")

错误2:

fatal error: opencv2/core/core.hpp: No such file or directory
        #include <opencv2/core/core.hpp>

错误原因其实就是,他找的opencv2并不在usr/include里,我们可以进入到usr/include查看,发现在的东西叫opencv4,并且opencv2在opencv4文件夹中,所以我们直接在终端里输入下面的命令软链接过去即可

sudo ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2

catkin_make clean完成以后继续执行以下命令

catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

下面把他添加到环境变量里

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

到这里就彻底完成了,运行下面的命令检测一下

roslaunch realsense2_camera rs_camera.launch

会出现很多的话题,像这样就是就是安装成功了。

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

Jetson Xavier NX配置全过程——D435i和T265驱动安装(三) 的相关文章

随机推荐

  • Ubuntu 主机单系统 安装

    首先是安装系统 xff0c 启动盘是USB HDD模式 xff0c 其他基本和下面这篇文章一样 xff0c 除了安装时候没有Install 然后按e什么的 xff0c 应该是因为我的是20 04吧 史上最全Ubuntu18 04单系统安装教
  • 竞拍算法(Auction Algorithm)原理及工作过程分析

    这几天因一些项目工作 xff0c 需要对竞拍算法进行学习 但百度了大部分资料都未找到一篇文章对此算法有着较为深入的介绍 在一番努力之下 xff0c 终于找到了最初提出该算法的论文 xff0c 本文内容主要结合该论文对竞拍算法进行分析 竞拍算
  • PX4飞控学习与开发(七)-Pixhawk源码中的功能模块分析

    本篇博客主要介绍Firmware固件中各功能模块的基本结构 功能模块的编译 从上篇博客内容中的demo我们可以发现 xff0c 如果我们需要给Pixhawk模块新增一个功能模块 xff0c 一般的做法是新建一个文件夹 xff0c 所有这个功
  • XBee模块实现QGC与PX4飞控的组网通信连接

    本篇博客介绍如何利用XBee模块实现QGC地面站与飞控的通信 一 问题的提出 正如 上一篇博客 指出 xff0c PX4飞控原装数传模块 xff08 3DR Radio xff09 只能一对一通信 xff0c 并不能实现多机组网通信 xff
  • 基于PX4飞控的双机领航-跟踪的理论分析与实验验证

    双机领航 跟踪是最简单的无人机分布式控制 xff0c 是实现大规模集群分布式控制的基础 xff0c 本文主要记录对如何实现双机跟踪护航控制的思考以及验证实验 文章目录 一 理论基础二 仿真实验三 实飞实验 一 理论基础 无人机的位置控制模型
  • MATLAB常用命令及操作

    目录 0 MATLAB注释转到Ubuntu下乱码问题1 矩阵的相关操作2 取整函数3 MATLAB排序4 矩阵构造5 各种线条颜色及形状标记 0 MATLAB注释转到Ubuntu下乱码问题 将文件夹下所有m文件转为UTF 8 xff1a e
  • ubuntu里的QGC编译生成的文件到第二台电脑里运行

    QGC编译生成的文件如下 xff1a 将整个debug文件夹复制过去 xff0c 然后执行以下步骤 xff1a sudo chmod 43 x qgroundcontrol start sh 赋予权限 qgroundcontrol star
  • 2021 SLAM会议论文汇总

    目录 1 ICRA2021语义定位与建图视觉SLAM视觉里程计视觉三维重建视觉惯性里程计跟踪深度估计视觉定位激光雷达定位多传感器数据融合多传感器融合建图激光雷达SLAM激光雷达定位激光雷达建图激光里成计 amp 激光惯性里程计标题点云注册特
  • JavaScript 表单操作以及验证

    大家好 xff0c 我们今天分享一下JavaScript 操作验证表单 首先我们要知道 用JavaScript操作表单和操作DOM是类似的 xff0c 因为表单本身也是DOM树 HTML表单的输入控件 xff08 标签 xff09 主要有以
  • 使用OpenCV查找图像中矩形的位置

    import cv2 image 61 cv2 imread 39 1 jpg 39 blur 61 cv2 pyrMeanShiftFiltering image 11 21 gray 61 cv2 cvtColor blur cv2 C
  • 【GD32F310开发板试用】【001】FreeRTOS移植+“正点原子OLED任务线程”

    首发极术社区 如对兆易创新GD32F310 MCU感兴趣 xff0c 欢迎添加微信 aijishu2020 加入GD32技术讨论群 感谢极术社区提供的SG32F310G测试板 xff0c 尝试移植了一下FreeRTOS顺便点个OLED玩一下
  • apt-get的源

    使用 sudo vim etc apt sources list 修改镜像源 然后执行 sudo apt get update 更新 镜像源如下 xff0c 推荐使用国内源 xff0c 速度更快 镜像源内容转载自 https blog cs
  • Nginx+Keepalived实现站点高可用

    Nginx 43 Keepalived实现站点高可用 发表于 2015 05 18 更新于 2015 05 18 分类于 Linux xff0c Nginx 阅读次数 12301 公司内部 OA 系统要做线上高可用 xff0c 避免单点故障
  • 计算模型的FLOPs

    为了探究影响模型运行时间的变量 xff0c 之前运用了参数量做标准 参数量在TF框架下还是很容易计算的 TF框架下运用 tf span class token punctuation span keras span class token
  • stm32学习之路,方法很重要

    学习stm32已经一个月时间了 xff0c 可算是入门了 相信很多人跟我一样 xff0c 刚开始学的时候会遇到很多问题 xff0c 以及对stm32里面众多寄存器的恐惧 要利用stm32官方给的固件库开发 xff0c 少不了的还是要对寄存器
  • github的使用,及将默认分支main改为master

    一 xff0c 将默认分支main改为master github在2020 10 1宣布上的所有新库都将用中性词 main 命名 xff0c 取代原来的 master xff0c 如果我们通过git push u grigin master
  • module ‘cv2‘ has no attribute ‘aruco‘解决

    pip uninstall opencv python 先卸载 pip install opencv contrib python 使用这个可以解决 opencv contrib python属于加强版 xff0c 除了主模块 xff0c
  • Linux之4G模块串口通信

    在使用AT指令给4G模块发信息的时候 xff0c 我们需要借助到Linux中busybox的microcom工具 xff0c 该工具用来实现与串口之间的通信 xff0c 那怎么自己实现编程跟4G模块发信息 xff0c 以及接收信息把想要的信
  • Jetson Xavier NX配置全过程——系统与SDK烧录(一)

    Jetson Xavier NX配置全过程 系统与SDK烧录 xff08 一 xff09 Jetson Xavier NX配置全过程 安装jtop和OpenCV4 5 3 xff08 二 xff09 Jetson Xavier NX配置全过
  • Jetson Xavier NX配置全过程——D435i和T265驱动安装(三)

    Jetson Xavier NX配置全过程 系统与SDK烧录 xff08 一 xff09 Jetson Xavier NX配置全过程 安装OpenCV4 5 3 xff08 二 xff09 Jetson Xavier NX配置全过程 D43