Nvblox ROS1 安装配置

安装并配置Nvblox ROS1

  • 下载Nvblox ROS1
mkdir -p ~/nvblox_ros1_ws/src/
mkdir  ~/data
cd ~/nvblox_ros1_ws/src/
git clone https://github.com/ethz-asl/nvblox_ros1.git
cd nvblox_ros1
git submodule update --init --recursive
  • 安装Docker
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
sudo usermod -aG docker $USER
sudo reboot
  • 构建Docker镜像
cd ~/nvblox_ros1_ws/src/nvblox_ros1/docker
bash run_docker.sh -b -w /home/$USER/nvblox_ros1_ws
  • 在Docker容器内构建ROS工作空间

注意: 这些操作应当在Docker的nvblox容器中进行。

docker exec -it nvblox bash

cd ~/nvblox_ws/
catkin init
catkin config --extend /opt/ros/noetic 
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
echo "source ~/nvblox_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

测试

  • 下载测试数据包
cd ~/data/
wget http://robotics.ethz.ch/~asl-datasets/2023_nvblox_datasets/panopt/run1.bag
  • 启动nvblox docker容器
cd nvblox_ros1/docker
./run_docker.sh

注意: 以下操作应当在Docker的nvblox容器中进行。

docker exec -it nvblox bash

  • 运行nvblox_ros节点
# Terminal 1 in docker
roslaunch nvblox_ros nvblox_ros_panopt.launch rviz:=true
  • 回放测试数据包
# Terminal 2 in docker
rosbag play --clock ~/data/run1.bag

TroubleShooting

CUDA

Occurred on x86_64 Ubuntu20.04 RTX4070Ti

 Error string: CUDA driver version is insufficient for CUDA runtime version.
[nvblox_node-3] process has died [pid 6628, exit code 99, cmd /root/nvblox_ws/devel/lib/nvblox_ros/nvblox_node depth/image:=/data/depth_image depth/camera_info:=/data/depth_image/camera_info color/image:=/data/color_image color/camera_info:=/data/color_image/camera_info __name:=nvblox_node __log:=/root/.ros/log/25507420-a6c3-11ee-8137-70a8d35674a3/nvblox_node-3.log].
log file: /root/.ros/log/25507420-a6c3-11ee-8137-70a8d35674a3/nvblox_node-3*.log
sudo apt update
sudo apt install nvidia-driver-535

docker

删除所有容器

docker rm -f $(docker ps -a -q)

删除所有镜像

docker rmi -f $(docker images -q)

删除所有未使用的镜像

docker image prune -a

删除所有未使用的数据

docker system prune

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/585811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树顺序结构与堆的概念及性质(c语言实现堆)

上次介绍了树,二叉树的基本概念结构及性质:二叉树数据结构:深入了解二叉树的概念、特性与结构 今天带来的是:二叉树顺序结构与堆的概念及性质,还会用c语言来实现堆 文章目录 1. 二叉树的顺序结构2.堆的概念和结构3.堆…

推荐几个开源HTTP服务接口快速生成工具

在现在流行微服务、前后端分离软件开发架构下,基于标准RESTful/JSON的HTTP接口已经成为主流。在实际业务中有很多需要快速开发调用数据服务接口的需求,但团队中缺乏专业的后端开发人员,比如: (1)数据库表已…

PHP开发日志 ━━ 基于PHP和JS的AES相互加密解密方法详解(CryptoJS) 适合CryptoJS4.0和PHP8.0

最近客户在做安全等保,需要后台登录密码采用加密方式,原来用个base64变形一下就算了,现在不行,一定要加密加key加盐~~ 前端使用Cypto-JS加密,传输给后端使用PHP解密,当然,前端虽然有key有盐&…

如何学习计算机编程?零基础入门,轻松成为编程达人!

在这个信息爆炸的时代,计算机编程已经成为一项炙手可热的技能。如果你也对编程充满兴趣,但又不知从何入手,那么本文将为你提供一条通往编程世界的捷径。掌握了这些技巧,相信你一定能够轻松成为编程达人! 一、选择合适…

lag-llama源码解读(Lag-Llama: Towards Foundation Models for Time Series Forecasting)

Lag-Llama: Towards Foundation Models for Time Series Forecasting 文章内容: 时间序列预测任务,单变量预测单变量,基于Llama大模型,在zero-shot场景下模型表现优异。创新点,引入滞后特征作为协变量来进行预测。 获得…

爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapyd+Gerapy 部署爬虫项目>

前言: 项目框架没有问题大家布好了的话,接着我们就开始部署scrapy项目(没搭好架子的话,看我上文爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>-CSDN博客) 正文: 1.创建主机: 首先gerapy的架子,就相当于部署服务器上的;所以…

Ubuntu 18.04搭建RISCV和QEMU环境

前言 因为公司项目代码需要在RISCV环境下测试,因为没有硬件实体,所以在Ubuntu 18.04上搭建了riscv-gnu-toolchain QEMU模拟器环境。 安装riscv-gnu-toolchain riscv-gnu-toolchain可以从GitHub上下载源码编译,地址为:https://…

大华主动注册协议介绍

一、大华主动注册协议介绍 前面写了一篇文章,介绍一些设备通过大华主动注册协议接入到AS-V1000的文章,很多问我关于大华主动注册协议的相关知识。 由于大华主动注册协议是一种私有协议,通常不对外公开详细的协议规范和技术细节。因此…

C++ Primer Plus----第十二章--类和动态内存分布

本章内容包括:对类成员使用动态内存分配;隐式和显式复制构造函数;隐式和显式重载赋值运算符;在构造函数中使用new所必须完成的工作;使用静态类成员;将定位new运算符用于对象;使用指向对象的指针…

ssm基于web的志愿者管理系统的设计与实现+vue论文

摘 要 使用旧方法对志愿者管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在志愿者管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的志愿者…

【常用前端框架总结】

React.js React.js是由Facebook开发的一个用于构建用户界面的JavaScript库。它采用组件化的开发方式,使得构建复杂的用户界面变得更加简单和可维护。React.js使用虚拟DOM技术来高效地更新界面,并具有强大的生态系统,包括大量的第三方库和工具…

main参数传递、反汇编、汇编混合编程

week03 一、main参数传递二、反汇编三、汇编混合编程 一、main参数传递 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和” 注意C中main: int main(int argc, char *argv[]), 字符串“12” 转为12,可以调用atoi…

二、C#基础语法( 异常处理)

在C#中,异常处理是一种处理程序运行时可能出现的错误或异常情况的重要机制。通过异常处理,我们可以捕获并处理程序中的错误,从而避免程序崩溃或产生不可预测的行为。 C#中的异常处理主要通过try-catch语句块来实现。以下是C#中异常处理的基础…

两种汇编的实验

week04 一、汇编-1二、汇编-2 一、汇编-1 1 通过输入gcc -S -o main.s main.c -m32 将下面c程序”week0401学号.c“编译成汇编代码 int g(int x){ return x3; } int f(int x){ int i 学号后两位; return g(x)i; } int main(void){ return f(8)1; } 2. 删除汇编代码…

思维逻辑题3

题目1: 如果所有A都是B,且某个对象是B,那么它一定是A吗? 答案:不一定,尽管所有A都是B,但还有其他的对象可能也是B。 题目2: 如果A和B都是真,那么以下哪个选项是真&…

自身文档管理规范

之前在 这里 叙述了 用 sphinx 生成静态网站, 并利用 静态网络托管服务 readthedocs 现在我们有了新的需求,想知道这些东西到底是什么。 过程 过程A : markdown/rst -> html mkdocs sphinx相关: pandoc(不能生成整个网站的h…

vue中的一个内置组件Keep-Alive的作用及使用方法介绍——缓存不活动的组件实例

一、什么是 keep-alive 在平常开发中,有部分组件没有必要多次初始化,这时,我们需要将组件进行持久化,使组件的状态维持不变,在下一次展示时,也不会进行重新初始化组件。 Keep-Alive是Vue.js中的一个内置组…

expdp到ASM 文件系统 并拷贝

1.创建asm导出数据目录 sql>select name,total_mb,free_mb from v$asm_diskgroup; 确认集群asm磁盘组环境 asmcmd>cd DGDSDB asmcmd>mkdir dpbak asmcmd>ls -l sql>conn / as sysdba create directory expdp_asm_dir as DGDSDB/dpbak; create directory expdp_l…

『番外篇六』SwiftUI 取得任意视图全局位置的三种方法

概览 在 SwiftUI 开发中,利用描述性代码我们可以很轻松的构建各种丰富多彩的视图。我们可以设置它们的大小、位置、颜色并应用不计其数的修改器。 但是,小伙伴们是否想过在 SwiftUI 中如何获取一个视图的全局位置坐标呢? 在本篇博文中,您将学到如下内容: 概览1. SwiftU…

批处理学习笔记1_命令的语法与功能A

批处理除了可以用Windows自带的记事本编辑外,还可以在命令行中输入copy con 文件名来创建,比如:copy con a.bat,然后就可以在命令中编辑,等文件编辑完毕后,输入CTRLz,再敲回车,就可以…