ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录

这篇具有很好参考价值的文章主要介绍了ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文仅为在ubuntu20.04实现Azure Kinect DK 三维重建demo,此文记录实现过程仅供学习,同时为大家避坑,文中参考大量文章已列至末尾。
1 ros安装
2 安装微软 DK的sdk
3 ros之AzureKinect驱动
4 Azure Kinect DK 点云和RGBD图的获取
5 conda安装
6 Kinect DK 实现三维重建

1 ros安装

1.1 安装源,添加sources.list

$ sudo sh -c '. /etc/lsb-release && echo "d{2d3b390d-f615-41d0-a830-7bbdcedbd397}eb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

1.2 添加KEY

$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

1.3 更新源`

$ sudo apt update

1.4 安装ROS

由于我是 Ubuntu 20.04选择ros版本ROS Noetic

$ sudo apt install ros-noetic-desktop-full

1.5 配置环境变量

$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

1.6 安装依赖

$ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

1.7 初始化rosdep

$ sudo rosdep init
$ rosdep update      #可以不更

1.8 验证

1.8.1 启动ROS服务(终端1)
$ roscore
1.8.2 运行turtlesim_node(终端2)
$ rosrun turtlesim turtlesim_node
1.8.3 通过键盘操作小乌龟(终端3)
$ rosrun turtlesim turtle_teleop_key

证明安装成功,同时可以使用roscpp,后面会用到。

2 安装微软 DK的sdk

2.1下载源码

https://github.com/luckyluckydadada/Lucky-docker/releases/download/1/Azure-Kinect-Sensor-SDK-1.4.1.tgz

2.2 编译和安装sdk

tar -xvf  Azure-Kinect-Sensor-SDK-1.4.1.tgz
cd Azure-Kinect-Sensor-SDK-1.4.1
sudo bash scripts/docker/setup-ubuntu.sh
mkdir build
cd build
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Debug
ninja
sudo ninja install 

2.3运行k4aviewer验证

注意1:直接运行k4aviewer会找不到设备,需要执行以下命令;

sudo cp scripts/99-k4a.rules /etc/udev/rules.d/ 
k4aviewer

注意2:同时需要添加bin环境变量到用户

vim ~/.bashrc
export LD_LIBRARY_PATH=/home/guojq6/Azure-Kinect-Sensor-SDK-1.4.1/build/bin:$LD_LIBRARY_PATH
source ~/.bashrc

注意3:以上执行过后会出现界面,但是depth图像无法正常显示,此时需要添加’libdepthengine.so.2.0‘这个库到bin

https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4/libk4a1.4_1.4.1_amd64.deb

解压deb文件,并将libdepthengine.so.2.0复制到编译出来的bin文件中:

dpkg -x libk4a1.4_1.4.1_amd64.deb aa
cp libdepthengine.so.2.0 /home/guojq6/Azure-Kinect-Sensor-SDK-1.4.1/build/bin

3 ros之AzureKinect驱动

3.1 建立ROS workspace

mkdir -p ~/ws_kinect_dk/src
cd ~/ws_kinect_dk/src
catkin_init_workspace
git clone https://github.com/microsoft/Azure_Kinect_ROS_Driver.git

3.2 复制SDK文件到ROS workspace

cd ~/ws_kinect_dk/src
mkdir -p ext/sdk
cd ext/sdk
mkdir -p bin include lib

直接将build中bin、include复制到ws_kinect_dk/src/ext/sdk/bin、ws_kinect_dk/src/ext/sdk/include中,同时将/usr/local/bin/、/usr/local/include/、/usr/local/lib/拷到ws_kinect_dk/src/ext/sdk/bin、include、lib中。

3.3 编译ROS Driver

cd ~/ws_kinect_dk
catkin_make
catkin_make install

3.4验证

cd ~/ws_kinect_dk
source ./devel/setup.bash
roslaunch azure_kinect_ros_driver driver.launch 

4 Azure Kinect DK 点云和RGBD图的获取

在第一节安装ros之后默认一安装了PCL库,且需要保证已经安装opencv。(如果按照正常顺序操作,此条一般默认都装好了,可忽略)

4.1 图像与点云获取代码下载

git clone https://github.com/luckyluckydadada/Azure-Kinect-DK-3D-reconstruction.git

4.2代码编译

cd Acquiring
mkdir build
cd build
cmake .. -GNinja
ninja

编译时可能使用pcl功能包时,会出现以下的奇怪错误:/usr/include/pcl-1.10/pcl/point_types.h:550:1: error: ‘plus’ is not a member of ‘pcl::traits’
ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录
这是因为c++标准的问题,需要找到报错对应main的cmakelist.txt文档里加入下面语句就可以了:

set(CMAKE_CXX_STANDARD 14)

4.3 验证

采集rgbd图

mkdir rgb depth ir
./AcquiringImages

ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录
ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录

获取点云图

mkdir ply pcd
./AcquiringPointCloud

5 conda安装

由于接下来的open3d重建算法需要用到的环境不同因此我们需要提前安装conda分出两个独立的虚拟环境

5.1 下载并安装

使用国内镜像源下载

https://repo.anaconda.com/archive/

我下载了Anaconda3-2022.05-Linux-x86_64.sh

#进入安装程序所在目录
cd /Downloads
#运行安装程序,按照操作指示依次选择:回车、q、yes、回车、yes,这样程序安装在home/miniconda3(文件名可能不同,根据安装包变化)目录下,并在~/.bashrc中自动添加系统路径
bash Anaconda3-5.3.1-Linux-x86_64.sh
#为了能让系统找到conda程序
source ~/.bashrc

5.2 更换源(强烈建议)

#生成 ~/.condarc文件
conda config --set show_channel_urls yes
gedit ~/.condarc
#清空文件,并将以下内容复制到文件中
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

5.3 创建不同环境

建立数据采集环境和三维重建环境(建议选好python版本,这样进入conda环境后会使用conda的pip进行安装,否则可能会使用bash环境中的pip)

conda create --name cap python=3.8
conda create --name build python=3.7

6 Kinect DK 实现三维重建

利用开源框架open3d的Reconstruction system实现Azure Kinect DK相机的三维重建

6.1 获取代码,上一节已获取可忽略:

git clone https://github.com/luckyluckydadada/Azure-Kinect-DK-3D-reconstruction.git
cd Azure-Kinect-DK-3D-reconstruction/open3d_reconstruction

6.2 采集数据

注意:此处建议进入环境txt,一步一步安装相应库出问题的概率小一点即使出问题也比较明确容易解决。

conda activate cap 
cd Azure-Kinect-DK-3D-reconstruction/open3d_reconstruction
pip install -r requirements-0.10.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 此处安装 open3d版本为 0.10.0,使用清华源
#录制数据,空格开始录制,esc退出录制并保存:
python sensors/azure_kinect_recorder.py --output dataset/name.mkv 
#提取rgb和depth图像,以及相机config和相机内参config:
python sensors/azure_kinect_mkv_reader.py --input dataset/name.mkv --output dataset/name 

6.3 三维重建

conda activate build
cd Azure-Kinect-DK-3D-reconstruction/open3d_reconstruction
pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple# 此处安装 open3d版本为 0.12.0
#如果发生目录移动,请修改dataset/name/config.json 中的"path_dataset" 和 "path_intrinsic"的值。
python run_system.py dataset/name/config.json --make --register --refine --integrate

在构建三维重建过程中可能会报以下错误:

ModuleNotFoundError: No module named ‘sklearn‘

我们根据错误安装sklean模块
依赖

pip install numpy
pip install scipy
pip install matplotlib

安装

pip install scikit-learn

但是还是会报以下错误:
ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录
ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录
这是因为sklean模块版本的问题造成的,安装以下即可:

pip install sklearn==0.0.post1 -i https://pypi.tuna.tsinghua.edu.cn/simple

ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录

https://blog.csdn.net/weixin_41836738/article/details/121348837?spm=1001.2014.3001.5502
https://blog.csdn.net/weixin_41965898/article/details/116458783
https://blog.csdn.net/lx_ros/article/details/123597208文章来源地址https://www.toymoban.com/news/detail-464962.html

到了这里,关于ubuntu20.04使用微软Azure Kinect DK 实现三维重建demo记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 踩坑记录:ubuntu20.04+ROS noetic+gazebo11用UR5+robotiq+Xbox Kinect抓取乐高

    项目地址:https://github.com/pietrolechthaler/UR5-Pick-and-Place-Simulation 此存储库演示了 ROS 和 Gazebo 中的 UR5 取放。UR5 使用 Xbox Kinect 摄像头检测 11 种类型的乐高积木,并发布其位置和角度。 该项目的目标是: 用乐高积木模拟 UR5 机器人的迭代 机械臂必须能够将方块从位置 A 移动到

    2024年01月21日
    浏览(49)
  • Azure Kinect DK 在设备管理器找不到此设备

    参考 Azure Kinect DK 在设备管理器找不到此设备_Thomas_yx的博客-CSDN博客 type-c------------------type-c  接电脑,数据传输 圆------------------usb  电脑线  

    2024年02月17日
    浏览(46)
  • Azure Kinect DK点云实时可视化及图像点云按键交互存储(Open3D)

      Azure Kinect DK在python上的使用仍然很空白,开篇blog记录一下利用Open3D开发Kinect DK的笔记,内含利用Open3D对Azure Kinect DK相机读取的信息进行点云实时可视化及图像点云按键交互存储。   对官方的代码做些解读: main函数   代码首先是对argparse 模块的设置,argparse 模块可

    2024年02月05日
    浏览(39)
  • Ubuntu:18.04/20.04使用netplan设置网络

    通常,Ubuntu的默认设置是通过DHCP服务器自动获取IP地址,这对台式机系统来说非常有用,因为它不需要任何更改。 但是,始终建议为Ubuntu服务器分配一个静态IP地址,因为该静态IP地址将在重新启动后保持不变。 Ubuntu 17.10及更高版本使用“Netplan”作为默认网络管理工具。因此

    2024年02月05日
    浏览(47)
  • Ubuntu 20.04 上安装和使用 Docker

    Ubuntu 20.04 上安装和使用 Docker 在 Ubuntu 上安装 Docker 非常直接。我们将会启用 Docker 软件源,导入 GPG key,并且安装软件包。 首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源: 使用下面的 curl 导入源仓库的 GPG key: 将 Docker APT 软件源添加到你的

    2024年02月03日
    浏览(56)
  • Ubuntu 20.04 实时查看GPU使用情况

    使用两种方法,实时查看 GPU 使用情况;彻底杀死制定进程 使用终端命令 nvidia-smi 查看显卡信息 如果你想实时检测显卡使用情况,添加 watch -n 即可 其中,4 是指 4 秒刷新一次终端,可以根据自己的需求设置 安装过程很简单,直接 pip 即可(本人是这样),使用 gpustat --json 以

    2024年02月13日
    浏览(47)
  • 【Ubuntu20.04】使用 systemd 进行服务部署

    ExecStart,改成自己脚本的路径,比如程序启动脚本 Restart,异常重启 RestartSec,异常后多少秒后重启 StartLimitInterval,异常后重试多少次,0 一直重试 将上述文件命名为 your_app.serivce ,放入 /etc/systemd/system 目录下 比如,你的服务名称叫 your_app 服务启用 服务启动 服务重新启动

    2024年04月25日
    浏览(40)
  • Ubuntu20.04 使用Python实现全过程离线语音识别(包含语音唤醒,语音转文字,指令识别,文字转语音)

      因为手头有一个项目,该项目需要在香橙派上实现语音控制,并且带有语音唤醒功能。简单来说,就是通过唤醒词唤醒香橙派,然后说出相关指令,香橙派去执行指令。   但是,在弄香橙派的时候,自带的麦克风不好使了,单独进行麦克风测试的时候是好使的,但是程

    2024年02月05日
    浏览(59)
  • Ubuntu20.04使用cephadm部署ceph集群

    Cephadm通过在单个主机上创建一个Ceph单机集群,然后向集群中添加主机以扩展集群,进而部署其他服务。 VMware安装Ubuntu20.04并使用Xshell连接虚拟机:https://blog.csdn.net/gengduc/article/details/134889416 Python3 Systemd Podman或Docker 时间同步chrony或NTP LVM2 主机名hostname 硬盘设备 ip地址 Ceph服务

    2024年02月05日
    浏览(42)
  • Ubuntu20.04之VNC的安装与使用

    本教程适用于Ubuntu20.04及以下版本,Ubuntu22.04版本或有出入 更多更新的文章详见我的个人博客:【前往】 如果linux系统已经安装了图形桌面可跳过这一步 Ubuntu20.04主流的图形桌面有 gnome 和 xface 两种,两种桌面的安装方式我都会写,但这里较推荐 gnome 桌面 1.1选择安装gnome桌面

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包