Ubuntu20.04安装ros系统,使用dvs_ros软件包

news2024/11/15 18:42:51

Ubuntu20.04安装ros系统

确保Ubuntu系统已经更新配置好合适的软件源

添加ros软件源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
添加密钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

成功后会显示:已导入

更新
sudo apt update
ros系统安装(1.0)

Ubuntu版本不同,安装指令不同,Ubuntu20.04指令如下:

sudo apt install ros-noetic-desktop-full

ros1.0对Ubuntu的支持只到20.04,22.04上安装ros1.0需要从源码编译安装或者安装ros2.0
ubuntu 18.04 melodic
ubuntu 16.04 kinetic
ubuntu 14.04 indigo

初始化rosdep
sudo rosdep init

成功后显示

Recommended:please run
		rosdep update

一般出现以下错误,解决方法如下:

错误1:sudo:rosdep:command not found
解决方法:
输入命令sudo apt install python-rosdep2 sudo apt install python3-rosdep2
输入y继续,完成后再输入sudo rosdep init,如果成功请跳到下一步。
出现错误请继续

错误2: ERROR: cannot download default sources list from:https :
//raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.
解决方法:
输入sudo gedit /etc/hosts后,在文件中添加以下内容:

199.232.28.133 raw.githubusercontent.com

该地址是通过IPAddress.com首页,输入raw.githubusercontent.com查询到IP
若上面的地址不成功请自行查询最新的地址。
完成后再输入sudo rosdep init,如果成功请跳到下一步。
出现错误请继续

错误3: ERROR: default sources list file already exists:
/etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize
解决方法:
输入

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

完成后再输入sudo rosdep init,应该是成功的

注意: 在使用无线网络时可能出现超时现象,可以更换网络或者使用手机热点试试

错误4: sudo apt install ros-noetic-desktop-full后报错
下列软件包有未满足的依赖关系:
ros-noetic-desktop-full : 依赖: ros-noetic-desktop 但是它将不会被安装
依赖: ros-noetic-perception 但是它将不会被安装
依赖: ros-noetic-simulators 但是它将不会被安装
依赖: ros-noetic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决方法:
这个错误很少出现,一般出现在Ubuntu系统故障,修复了系统后再重新安装ros出现的问题。
方法1: 在软件和更新 中,开发者选项,勾选focal-peoposed选项,之后选择安全更新中的Ubuntu核心组件
安装完毕后,

sudo apt update
sudo apt install ros-noetic-desktop-full

方法2:
将所提到的四个依赖软件包进行aptitude安装:

sudo apt install aptitude
sudo aptitude install ros-noetic-desktop ros-noetic-perception ros-noetic-simulators ros-noetic-urdf-sim-tutorial

出现是否接受该解决方案时,即降级软件包,选择n,需要选择两次,最后接受方案,选y开始安装,安装完成后,开始

sudo apt install ros-noetic-desktop-full
设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

其中noetic对应的是Ubuntu20.04版本
如果输错了版本号,会显示bash: /opt/ros/melodic/setup.bash:
解决方法是打开.bashrc文件,最后一行的环境变量中的版本号修改好保存退出
若发现多行则删除,只需要一行环境变量
最后激活环境变量,输入source ~/.bashrc

安装ros依赖
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool
验证ros是否安装成功
roscore

若安装成功会显示
在这里插入图片描述
至此ros系统安装完成。不过可能出现以下错误,解决方法如下:

错误1 Resource not found:roslaunch
Ros path [0]=/opt/ros/noetic/share/ros
Ros path [1]=/opt/ros/noetic/share
The traceback for the exception was written to the log file
解决方法:
输入以下命令,可能是之前有包没有安装好的情况

sudo apt install ros-noetic-desktop-full

完成后再输入roscore,会显示成功界面。

错误2 Resource not found:roslaunch
The traceback for the exception was written to the log file
解决方法:
输入以下命令

source /opt/ros/noetic/setup.bash

完成后再输入roscore,会显示成功界面。

错误3 Command ‘roscore’ not found, but can be installed with:sudo apt install python3-roslaunch
解决方法:
输入以下命令

sudo apt install python3-roslaunch

完成后再输入roscore,会显示成功界面。

Ubuntu20.04中ros_dvs驱动安装

官方教程:https://github.com/uzh-rpg/rpg_dvs_ros

安装ros依赖
sudo apt-get install ros-noetic-camera-info-manager
sudo apt-get install ros-noetic-image-view
安装其他存储库
sudo apt-get install libcaer-dev
sudo apt-get install python3-catkin-tools

其中libcaer不再支持ubuntu16.04及以上版本的安装,具体安装步骤:
下载压缩包:https://gitlab.com/inivation/dv/libcaer,解压后执行以下命令

cd libcaer-master/
cmake -DCMAKE_INSTALL_PREFTX=/usr .
make
sudo make install 
创建工作空间
mkdir -p workspace/src
cd workspace

输入

catkin config --init --mkdirs --extend /opt/ros/noetic--merge-devel --cmake-args -DCMAKE_BUILD_TYPE=Release

继续,下载驱动包

cd workspace/src
git clone https://github.com/catkin/catkin_simple.git

下载dvs_ros软件包

git clone https://github.com/uzh-rpg/rpg_dvs_ros.git

如果使用的是DAVIS,编译如下

cd workspace
catkin build davis_ros_driver
catkin build dvs_renderer
source ~/workspace/devel/setup.bash

Ubuntu20.04中使用ros_dvs

步骤:

source ~/workspace/devel/setup.bash
roscore
roslaunch dvs_renderer davis_mono.launch(启动DAVIS渲染器)

ros系统发布DVS事件和帧话题

如果出现错误
RLException: [davis_mono.launch] is neither a launch file in package [dvs_renderer] nor is [davis_mono.launch] a launch file name

解决方法1:
删除build文件,重新编译

cd workspace
catkin build davis_ros_driver
catkin build dvs_renderer
source ~/workspace/devel/setup.bash

解决方法2:

sudo  gedit ~/.bashrc

打开文件后在最后添加如下代码

source ~/workspace/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/workspace/

更新bashrc

source ~/.bashrc

查看ros路径(是否显示添加的dvs工作空间路径)

echo $ROS_PACKAGE_PATH

参考链接:
http://t.csdn.cn/ogRXH

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

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

相关文章

2023省赛-运维-溯源取证-日志分析

2023省赛-运维-溯源取证-日志分析 一、概要 1、标题:日志分析 2、关键字:access.log日志分析 3、比赛:2023省赛 4、工具:awk、cat 二、开始 1、题目分析 apache或nginx的access.log分析。使用最多的就是awk命令和cat命令。 其…

Java中==和equals的区别,包装类对比、String和new String

对于这个问题,我们得了解基本类型和引用类型在内存中的结构,具体如下: 引用对象句柄访问: 引用对象直接指针访问: 可以看出,无论哪种方式访问基本类型和引用类型的实例数据,基本类型的内存上是…

Spring Framework远程代码执行漏洞(CVE-2022-22965)

Spring Framework远程代码执行漏洞(CVE-2022-22965) 一、漏洞描述 springframework 是spring 里面的一个基础开源框架,主要用于javaee的企业开发。 2022年3月30日,Spring框架曝出RCE 0day漏洞,攻击者通过该漏洞可远…

计网之基础篇

因特网协议概述 常用协议应用层HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)、DHCP(动态主机配置协议)、SNMP&#xff…

erlang安装问题(State machine user_ dru terminating)

输入erl 出现错误 State machine user_ dru terminating 主要原因是安装的erlang版本太高导致,建议选择对应rabbitmq并且是中版本的。新版本会有各种各样适配问题。如果现在26 建议选用25中间 对应rabbitmq低一个版本,稳定性更好

螺旋矩阵(顺时针遍历矩阵)

leetcode 54.螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 和剑指office29题相似; 思路:既然是顺时针遍历一圈,那么我们就分别从上边,右边,下…

SQL-游标-更新删除-多列指向

--切换数据库 use MyDatabase--创建游标(scroll:滚动游标) declare mycur cursor scroll for select EmpNo from Employee --打开游标 open mycur --关闭游标 close mycur --删除游标 deallocate mycur--提取第一行 --利用游标进行数据的修改 fetch absolute 2 from…

【django中处理静态的数据 css js img】

django中处理静态的数据 css js img 1.创建django项目2.打开项目3.配置settingpy中找到STATIC_URL3.1静态资源 4.创建静态资源文件夹5.开启服务6. 网页请求7.使用模板 进行编写 并请求8.在模板中进行 图片的请求9.模板中使用动态url {% static %}10 static的 动态url加载 1.创建…

C++读取易语言字节集图片opencv识别滑块

易语言字节集在C中其实是字节数组的形式,这边做的是一个本地滑块识别的,识别已经实现,主要解决读入字节集的问题,因为图片的大小问题,直接传字节集恐怕不行,所以在易语言处理图片,然后在内容中C…

软考高级系统架构设计师(九) 作文模板-微服务架构(待继续完善)

目录 举一反三-论微服务架构及其应用 ps: 更多微服务信息 ps: 微服务与SOA区别 微服务架构举例 微服务的落地技术 微服务的技术可大致分为五类 举一反三-论微服务架构及其应用 论微服务架构及其应用 微服务提倡将单一应用程序划分成一组小的服务,服务之间互相…

vue 将登录后信息放入cookie中,后端请求接口携带

第一步 import Cookies from "js-cookie";//将需要的信息放入cookie Cookies.set("deptId", res.user.dept.deptId, { expires: 30 });引入cookies import Cookies from "js-cookie";// 查询参数queryParams: {deptName: undefined,status: un…

Rust语言从入门到入坑——(9)Rust 生命周期

文章目录 0、引入1、生命周期注释2、结构体中使用字符串切片引用3、静态生命周期4、泛型、特性与生命周期协同作战5、总结 0、引入 Rust 生命周期机制是与所有权机制同等重要的资源管理机制,之所以引入这个概念主要是应对复杂类型系统中资源管理的问题。 引用是对…

【云原生丶Docker】DockerFile完全指南

DockerFile构建过程 DockerFile 是Docker的一个配置文件,本质上来说它只是一个文本文件,它是用来构建Docker镜像的。DockerFile配置文件中包含了一系列的指令和配置信息,用于描述如何构建镜像以及如何运行容器。通过编写 Dockerfile&#xf…

【c++11】新的类功能和可变参数包

c11 新增默认成员函数类成员变量初始化关键字defaultdelete 委托构造 可变参数包递归展开参数包逗号表达式展开参数包 结语 新增默认成员函数 原来c类中,有6个默认成员函数: 构造函数析构函数拷贝构造函数拷贝赋值重载取地址函数const 取地址重载 默认…

将mp4视频推流rtsp,并转为http直播流,在前端显示

最近有个需求,在vue页面的video组件播放直播流,本来想用flv.js,但是必须要flv格式才行,所以还是用原生video播放http直播流。 1. 将本地mp4推流rtsp 下载并解压EasyDarwin,双击EasyDarwin.exe运行,在控制…

【python】web应用开发DRF框架

DRF 【python】web应用开发DRF框架 Django rest_framework, 简称 drf, 可以更方便的使用django写出符合 RESTful 规范的接口, (缩减编写api接口的代码) Django REST framework是一个建立在Django基础之上的Web应用开发框架(Django的一个app),可以快速的开发REST A…

【IMX6ULL驱动开发学习】12.Linux驱动之设备树

承接上一篇博客 【IMX6ULL驱动开发学习】11.驱动设计之面向对象_分层思想(学习设备树过渡部分) 代码获取:https://gitee.com/chenshao777/imx6-ull_-drivers 我后面将三个层合并了(实际上只有前两层),合并…

【Java入门】注释、关键字、常量、变量、数据类型

注释: 作用 : 可以记录代码所实现的功能,方便程序员或代码编写者阅读代码以及方便他人更好理解代码 注释分类: 单行注释 格式: //注释信息多行注释 格式: /注释信息/文档煮熟 格式:/** 注释信息*/ /***…

TCP的socket API

1、核心类 ServerSocket :服务器使用的socket Socket : 服务器和客户端都会使用的socket accept进行的工作是拉客 对应操作系统来说,建立TCP连接是内核的工作 accept要干的就是等连接建立好了,把这个连接给拿到应用程序中。 如果当前连接…

chatgpt赋能python:Python获取文件后缀名

Python获取文件后缀名 在Python编程中,经常需要获取文件的后缀名,例如在处理文件上传、下载、压缩等操作时,需要对文件后缀名进行判断和处理。本文将介绍Python获取文件后缀名的两种常用方法。 方法一:使用split()函数 Python的…