Giter VIP home page Giter VIP logo

mfkiwl / rgbd-indoorscenereconstruction-ros Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 2pigs1world/rgbd-indoorscenereconstruction-ros

0.0 1.0 0.0 9.35 MB

奥比中光 3D 视觉创新应用竞赛-轻量化、松耦合的手持 RGB-D 室内环境实时重建系统 Lightweight and loosely coupled handheld rgb-d sensor real-time indoor environment reconstruction system

CMake 1.42% C++ 66.71% Objective-C 0.26% C 24.30% HLSL 0.15% Cuda 4.51% Makefile 1.72% Shell 0.28% Python 0.64%

rgbd-indoorscenereconstruction-ros's Introduction

代码说明

本代码共包含4份源码,皆为ros package:

  • bundlefusion_ros bundlefusion在ros上的移植,为本项目的服务器端
  • fastfusion_ros fastfusion在ros上的移植,为本项目的在线端
  • rgbdslam rgbdslam-v2,为本项目的离线重建与渲染端
  • topic_demo 自定义的ros消息类型,包含相机位姿与RGB图像和深度图像

配置方法

  1. 需首先安装ROSros_astra_camera

    1.1 ROS安装方法:http://wiki.ros.org/ROS/Installation

    1.2 ros_astra_camera安装方法:https://github.com/orbbec/ros_astra_camera

  2. 将以上四个文件复制到步骤1.2中创建的~/catkin_ws/src目录下,编译整个workspace

catkin_make source devel/setup.bash ```

若步骤2 catkin_make过程出错,可以按照提示安装缺乏的依赖项,并查阅以下内容:

* [ros_astra_camera](https://github.com/orbbec/ros_astra_camera)
* [rgbdslam_v2](https://github.com/felixendres/rgbdslam_v2)
* [BundleFusion_Ubuntu_V0](https://github.com/nonlinear1/BundleFusion_Ubuntu_V0) and [BundleFusion](https://github.com/niessner/BundleFusion)
* [fastfusion](https://github.com/tum-vision/fastfusion)
  1. bundlefusion_ros中,src/mLibExternal目录包含一些依赖的库,文件较大,请直接在:http://kaldir.vc.in.tum.de/mLib/mLibExternal.zip 下载并解压到src/mLibExternal目录使用。
  2. 请将bundlefusion_ros/src下的zParametersDefault.txtzParametersDefault.txt两个文件复制到catkin workspace下的devel/lib/bundlefusion_ros目录下,并在该目录下新建名为sacns的文件夹以存放服务器端重建的三维模型

相机连接方法

  1. 主机与开发板之间通过以太网或局域网建立连接,并在~/.bashrc增加对应的内容

    # 主机端 ip:192.168.2.51
    # ~/.bashrc 中加入以下两行
    export ROS_HOSTNAME=192.168.2.51
    export ROS_MASTER_URI=http://192.168.2.53:11311
    
    # 开发板端 ip:192.168.2.53
    # ~/.bashrc 中加入以下两行
    export ROS_HOSTNAME=192.168.2.53
    export ROS_MASTER_URI=http://192.168.2.53:11311
  2. 将Astra Pro连接开发板,并在开发板上运行ros_astra_camera

    cd ~/catkin_ws
    source devel/setup.bash
    roslaunch astra_camera astrapro.launch

离线渲染版系统运行方法

  1. 在开发板上运行fastfusion_ros

    cd ~/catkin_ws
    source devel/setup.bash
    rosun fastfusion_ros onlinefusion ~/catkin_ws/src/fastfusion_ros/associate.txt --intrinsics ~/catkin_ws/src/fastfusion_ros/intrinsics.txt --imagescale 1000 --thread-fusion

    s键,等待服务器端发送计算得到的相机位姿

  2. 在服务器端运行bundlefusion_ros

    cd ~/catkin_ws
    source devel/setup.bash
    cd ~/catkin_ws/devel/lib/bundlefusion_ros
    rosrun bundlefusion_ros FriedLiver

完成上述步骤后用户需要操控Astra Pro相机,拍摄需要重建的环境,并尽可能保证环境内不要出现移动的人或物。服务器端会从开发板上订阅采集到的彩色图像和深度图像,以及相机内参,并将恢复出的相机位姿发送回开发板,供开发板离线融合并渲染,用户可以实时采集图像。此外服务器端也同时进行了消耗计算资源更大的三维重建,但并没有可视化界面,按数字键9可将重建结果保存到~/catkin_ws/devel/lib/bundlefusion/scans下,使用meshlab等软件可以查看该三维模型。

在线渲染版系统运行方法

  1. 在主机上运行rgbdslam

    cd ~/catkin_ws
    source devel/setup.bash
    roslaunch rgbdslam rgbdslam_orbbec.launch

    完成上述步骤后用户需要操控Astra Pro相机,拍摄需要重建的环境,并尽可能保证环境内不要出现移动的人或物。此时主机会从开发板上订阅采集到的彩色图像和深度图像,以及相机内参,并直接在主机端实时的估计相机位姿,并将三维重建结果实时的展示在主机端供用户观察,并提供了GUI界面与用户进行交互。

rgbd-indoorscenereconstruction-ros's People

Contributors

aaaaangel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.