当前位置: 首页 > article >正文

ubuntu 20.04下ZEDmini安装使用

提前安装好显卡驱动和cuda,如果没有安装可以参考我的这两篇文章进行安装:

ubuntu20.04配置YOLOV5(非虚拟机)_ubuntu20.04安装yolov5-CSDN博客

ubuntu20.04安装显卡驱动及问题总结_乌班图里怎么备份显卡驱动-CSDN博客

还需要提前安装ROS,如果没有安装参考下面这篇文章:

ubuntu下ROS1与ROS2共存安装(亲测有效,安装超简单)_同时安装ros1和ros2-CSDN博客


一、 zed sdk安装

进入以下链接

 ZED SDK 4.2 - Download | Stereolabs

 

找到自己对应的版本的下载即可,我这里是CUDA12下的ZED SDK for Ubuntu 20.4.2。 

 在下载的文件所在目录打开终端,依次执行以下命令:

sudo apt install zstd
chmod +x ZED_SDK_Ubuntu20_cuda12.1_v4.2.5.zstd.run
./ZED_SDK_Ubuntu20_cuda12.1_v4.2.5.zstd.run 
#先按q,后面的按y,出现其他默认回车。

执行命令根据上面下载的文件名称来。 

安装完成后重启,输入以下命令检验:

cd /usr/local/zed/tools./ZED_Explorer #可查看双目图像,分辨率,内参等信息cd /usr/local/zed/tools./ZED_Depth_Viewer #可查看深度图像,对于cuda配置有要求,可能运行失败

ZED Calibration——用于ZED校准;

ZED Sensor Viewer——ZED传感器,ZED2支持;

ZED Explorer——用于zed相机的实时预览和录制;

ZED Depth Viewer——捕获和显示深度图像和点云;

ZEDfu——ZED相机的实时3D映射和制图;

使用ZED Sensor Viewer工具可看到mini内置imu的输出信息,包括加速度、角速度(陀螺仪)及姿态。

二、ROS接口安装

官网参考链接:

Getting Started with ROS and ZED - Stereolabs

mini支持输出:

    左右校正/未校正图像

    深度图

    彩色 3D 点云

    视觉里程计:相机的位置和方向

    姿态跟踪:相机的位置和方向固定并与IMU数据融合

    空间映射:融合 3D 点云

    传感器数据:加速度计、陀螺仪

在主目录下新建catkin_ws/src文件夹,然后打开终端,依次执行以下命令,下载编译ZED ROS安装包:

cd catkin_ws/src
git clone --recursive https://github.com/stereolabs/zed-ros-wrapper.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
catkin_make -DCMAKE_BUILD_TYPE=Release
source ./devel/setup.bash

若编译过程中出现以下错误:

 终端执行以下命令,安装即可:

sudo apt install python3-empy

若安装后,编译继续报错,我这里的原因是conda环境与ROS存在冲突:

重新编译时别忘了把之前编译生成的build和devel文件删除。

1、可以关闭虚拟环境后,再次编译通过。(建议使用第一种)

conda deactivate

这种方法,下次打开终端后还是会自动进入base虚拟环境。

终端执行以下命令,即可关闭自动进入虚拟环境。

conda config --set auto_activate_base false

2、也可直接执行下列命令指定python版本编译。

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

三、ROS话题节点

 在catkin下打开终端,执行以下命令:

source devel/setup.bash
roslaunch zed_wrapper zedm.launch

 终端输入以下指令,查看发布的所有节点

rostopic list

带位姿的imu话题:/zedm/zed_node/imu/data

不带位姿的imu话题:/zedm/zed_node/imu/data_raw

彩色校正图像(默认为左侧传感器):rgb/image_rect_color

彩色相机校准数据:rgb/camera_info

彩色未校正图像(默认为左侧传感器):rgb_raw/image_raw_color

未校正的彩色相机校准数据rgb_raw/camera_info

右相机校正图像:right/image_rect_color

右传感器校准数据:right/camera_info

右相机未校正图像:right_raw/image_raw_color

未校正的右侧传感器校准数据 :right_raw/camera_info

置信度图作为图像:confidence/confidence_image

深度图:depth/depth_registered

视差图:disparity/disparity_image

点云:zed/zed_node/point_cloud/cloud_registered

通过以下链接可以查看所有相关参数:

ROS - ZED Node - Stereolabs

如果不想每次启动都要source一下 ,可以直接写入.bashrc文件。终端执行以下命令:

gedit ~/.bashrc

在打开的文件末尾添加以下代码:

source ~/catkin_ws/devel/setup.bash

 然后执行以下命令,刷新一下环境即可:

source ~/.bashrc

四、接入相机

将相机接入,catkin_ws目录下打开两个终端。

一个终端执行以下命令:

roslaunch zed_wrapper zedm.launch

 另一个终端打开rviz:

rviz

在rviz中添加展示的类型,并选择对应的话题,就可以查看效果了。

 五、标定

安装依赖:

sudo apt-get install -y \git wget autoconf automake nano \libeigen3-dev libboost-all-dev libsuitesparse-dev \doxygen libopencv-dev \libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-dev

在主目录下新建kalibr_ws/src文件夹,然后打开终端,依次执行以下命令,下载编译kalibr: 

git clone https://github.com/ethz-asl/kalibr.git
catkin_make

我这里编译时报出以下错误:

原因是boost版本和boost_python版本不一致。

执行以下命令,将boost卸载:

sudo rm -f /usr/local/lib/libboost*
sudo rm -rf /usr/local/include/boost
sudo rm -r /usr/local/lib/cmake/boost*
sudo rm -r /usr/local/lib/cmake/Boost*

通过以下链接下载boost1.71:

https://archives.boost.io/release/1.71.0/source/boost_1_71_0.tar.gz

将下载的源码解压缩至home下,在boost目录下打开终端,依次执行以下命令,等待安装完成即可:

sudo ./bootstrap.sh
sudo ./b2 install
rosbag record -O kalibr_data_vga.bag /zedm/zed_node/imu/data_raw /zedm/zed_node/left/image_rect_color /zedm/zed_node/right/image_rect_color

在kalibr_ws文件夹下打开终端,重新编译即可。重新编译之前别忘了将之前编译生成的build和devel文件删除。 

rosrun kalibr kalibr_calibrate_cameras --bag /home/ubuntu/kalibr_ws/zed/kalibr_data_vga.bag --topics /zedm/zed_node/left/image_rect_color /zedm/zed_node/right/image_rect_color --models pinhole-radtan pinhole-radtan --target /home/ubuntu/kalibr_ws/zed/april_6x6_80x80cm.yaml --bag-from-to 5 150 --show-extraction --approx-sync 0.04

ModuleNotFoundError: No module named ‘wx’
ModuleNotFoundError: No module named ‘igraph’

sudo apt-get install python3-wxgtk4.0
sudo apt-get install python3-igraph

相关文章:

ubuntu 20.04下ZEDmini安装使用

提前安装好显卡驱动和cuda,如果没有安装可以参考我的这两篇文章进行安装: ubuntu20.04配置YOLOV5(非虚拟机)_ubuntu20.04安装yolov5-CSDN博客 ubuntu20.04安装显卡驱动及问题总结_乌班图里怎么备份显卡驱动-CSDN博客 还需要提前…...

Deepseek可以通过多种方式帮助CAD加速工作

自动化操作:通过Deepseek的AI能力,可以编写脚本来自动化重复性任务。例如,使用Python脚本调用Deepseek API,在CAD中实现自动化操作。 插件开发:结合Deepseek进行二次开发,可以创建自定义的CAD插件。例如&a…...

tauri-plugin-shell插件将_blank的a标签用浏览器打开了,,,解决办法

不要使用这个插件,这个插件默认会将网页中a标签为_blank的使用默认浏览器打开,但是这种做法在我的程序里不是很友好,我需要自定义这种行为,当我点击我自己的链接的时候,使用默认浏览器打开,当点击别的链接的…...

[20250304] 关于 RISC-V芯片 的介绍

[20250304] 关于 RISC-V芯片 的介绍 1. 调研报告 一、RISC-V 芯片结构分析 RISC-V 芯片基于开源指令集架构(ISA),其核心优势在于模块化设计与高度灵活性。 指令集架构 基础指令集:包含 RV32I(32 位)、R…...

C++ 继承(2)

Hello!!大家早上中午晚上好!!今天收尾继承剩余部分内容!! 一、友元不能继承 基类的友元函数不能被子类继承,也就是基类的友元函数访问不了子类的私有或保护成员! 1.1解决方法在子…...

解决:Word 保存文档失败,重启电脑后,Word 在试图打开文件时遇到错误

杀千刀的微软,设计的 Word 是个几把,用 LaTex 写完公式,然后保存,卡的飞起 我看文档卡了很久,就关闭文档,然后 TMD 脑抽了重启电脑 重启之后,文档打不开了,显示 杀千刀的&#xff…...

【docker简化部署有状态prometheus+grafana】

文章目录 第一步 下载依赖第二步 选择一个有权限的文件夹新建配置文件prometheus.ymldocker中运行命令存储数据启动prometheus 第三步 启动grafana 第一步 下载依赖 docker pull grafana/grafana:latest docker pull prom/prometheus:latest第二步 选择一个有权限的文件夹 例…...

Java- “equals“和“==“

"equals" 用于比较是否相等 equals() 是Object类下的一个方法,而非运算符。所以只有引用数据类型才可以使用 equals()方法,基本数据类型不能使用 equals()方法; object类下的equals()源码 public boolean equals(Object obj) {return (this…...

使用 potrace.js实现图像矢量化教程

在现代Web开发中,将位图转换为矢量图形的需求日益增加。矢量图形具有可缩放性、无损质量等优点,适用于多种应用场景,如图标设计、数据可视化和响应式网页设计。potrace.js 是一个基于浏览器的JavaScript库,它实现了著名的Potrace算…...

C++后端服务器开发技术栈有哪些?有哪些资源或开源库拿来用?

一、 C后台服务器开发是一个涉及多方面技术选择的复杂领域,特别是在高性能、高并发的场景下。以下是C后台服务器开发的一种常见技术路线,涵盖了从基础到高级的技术栈。 1. 基础技术栈 C标准库 C11/C14/C17/C20:使用现代C特性,如…...

基于DeepSeek与搜索引擎构建智能搜索摘要工具

基于DeepSeek与搜索引擎构建智能搜索摘要工具 1. 项目概述 本项目通过整合DuckDuckGo搜索引擎与DeepSeek大语言模型,实现了一个智能搜索摘要生成工具。系统可自动执行以下流程: 输入查询语句进行全网搜索获取并解析搜索结果调用AI模型生成结构化摘要输出带来源标注的专业级…...

基于Asp.net的零食购物商城网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

springboot的实体类字段校验的分组校验

分组校验(Group Validation)允许在不同的场景下对同一个实体类应用不同的校验规则。例如,在新增数据和更新数据时,可能需要对某些字段的校验规则进行调整。以下是分组校验的具体实现步骤: 一、定义分组接口 创建空的标…...

ESP8266UDP透传

1. 配置 WiFi 模式 ATCWMODE3 // softAPstation mode 响应 : OK 2. PC 连⼊入 ESP8266 softAP 就是连接wifi 3.查询ESP8266设备的IP地址 ATCIFSR 响应: CIFSR: APIP, "192.168.4.1" CIFSR: APMAC, "1a: fe: 34: a5:8d: c6" CIFSR: STAIP, "192.…...

UE5从入门到精通之如何创建自定义插件

前言 Unreal 的Plugins插件系统中有很多的插件供大家使用,包括官方的和第三方的,这些插件不仅能帮我我们实现特定功能,还能够提升我们的工作效率。 所以我们今天就来自己创建一个自定义插件,如果我们想实现什么特定的功能,我们也可以发布到商店供大家使用了。 创建插件 …...

基于python大数据的招聘数据可视化与推荐系统

博主介绍:资深开发工程师,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有…...

olmOCR:高效精准的 PDF 文本提取工具

在日常的工作和学习中,是否经常被 PDF 文本提取问题困扰?例如: 想从学术论文 PDF 中提取关键信息,却发现传统 OCR 工具识别不准确或文本格式混乱?需要快速提取商务合同 PDF 中的条款内容,却因工具不给力而…...

Python asyncIO 面试题及参考答案 草

目录 如何正确定义一个协程函数?直接调用协程会引发什么问题? 使用 async def 定义的协程与普通函数执行流程有何本质区别? 解释 asyncio.run () 的作用及与手动管理事件循环的差异 为什么协程中必须使用 await 而非 yield 挂起操作? 写出通过 async for 实现异步迭代器…...

Spring Boot使用JDBC /JPA访问达梦数据库

Spring Boot 是一个广泛使用的 Java 框架,用于快速构建基于 Spring 的应用程序。对于达梦数据库(DMDB)的支持,Spring Boot 本身并没有直接内置对达梦数据库的集成,但你可以通过一些配置和依赖来支持达梦数据库。 以下…...

构建自己的AI客服【根据用户输入生成EL表达式】

要实现一个基于对话形式的AI客服系统,该系统能够提示用户输入必要的信息,并根据用户的输入生成相应的EL(Expression Language)表达式编排规则,您可以按照以下步骤进行设计和开发。本文将涵盖系统架构设计、关键技术选型…...

谈谈 HTTP 中的重定向,如何处理301和302重定向?

一、HTTP重定向的核心概念 (一)301 vs 302 的本质区别 ​301 永久重定向 表示资源已永久迁移到新地址,客户端和搜索引擎都会更新记录。语义示例:域名迁移、旧产品页面下线。 ​302 临时重定向 表示资源暂时不可用(如…...

【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】

一、ReAct Agent是啥?为什么说它比「普通AI」聪明? 想象一下,你让ChatGPT查快递物流,它可能直接编个假单号糊弄你。但换成ReAct Agent,它会先推理(Reasoning)需要调用哪个接口,再行动(Action)查询真实数据——这就是ReAct的核心:让AI学会「动脑子」再动手。 举个真…...

基于PyTorch的深度学习3——非标量反向传播

以下内容由大语言模型生成: 张量,边代表从输入到输出的操作。当我们对一个标量调用backward()函数时,PyTorch能够直接计算该标量关于参与运算的所有张量的梯度。这是因为导数的概念最开始是针对标量值定义的。 为什么需要传入gradient参数&…...

SpringCloud中使用服务名调用场景总结

一 API Gateway 在 Spring Cloud API Gateway 中,通过使用 lb:// 前缀可以实现基于服务名的负载均衡路由。以下是具体的配置和使用方法: 1. 配置服务注册与发现 确保你的服务已经注册到服务注册中心(如 Nacos 或 Eureka)。API …...

开发ai模型最佳的系统是Ubuntu还是linux?

在 AI/ML 开发中,​Ubuntu 是更优选的 Linux 发行版,原因如下: ​1. 开箱即用的 AI 工具链支持 Ubuntu 预装了主流的 AI 框架(如 TensorFlow、PyTorch)和依赖库,且通过 apt 包管理器可快速部署开发环境。 提…...

OpenText ETX 助力欧洲之翼航空公司远程工作升级

欧洲之翼航空公司,作为欧洲知名的低成本航空公司,拥有超过 130 架飞机,服务于约 60 个国家的 210 多个目的地,是欧洲第三大的点对点航空公司。面对 2020年 冠状病毒大流行的挑战,欧洲之翼航空公司迅速采取行动&#xf…...

计算机数据库三级刷题总结(博主89分已过,总结的内容分享)

计算机数据库三级刷题总结(博主89分已过,总结的内容分享) 文章目录 计算机数据库三级刷题总结(博主89分已过,总结的内容分享)一、 数据库设计阶段二、事务相关三、数据库设计顺序四、数据库三级模式与二层映…...

特征表示深度解析:颜色、纹理、形状与编码

第一部分:颜色与纹理特征(Part 1) 1. 颜色特征 颜色直方图(Color Histogram) 定义:统计图像中各颜色通道(R/G/B)的像素分布,形成直方图。 计算步骤: 将每个…...

LeetCode Hot100刷题——反转链表(迭代+递归)

206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3&#…...

MCU-缓存Cache与CPU中的主存SRAM

缓存(Cache)和主存(SRAM)均属于 ​SRAM,他们的核心区别: 通过 Cache 缓存 Flash 中的指令和数据,可避免 CPU 因等待数据而停滞。主存 SRAM 存储程序运行时的变量、堆栈、临时数据等。通常作为 …...