Raspbian安装ROS系统Kinectic|树莓派4B安装ros使用OpenCV(全流程)

2023-05-16

前言

树莓派4B最高拥有4Gb的RAM,对于承担图像处理任务的嵌入式设计是个性价比很高的选择。众所周知,ROS系统对Ubuntu系统最友好,但是由于树莓派4暂时还无法使用Ubuntu MATE,所以不得不在树莓派的原生系统Raspbian上安装和使用ROS系统。本文安装过程中遇到最主要的问题就是自动安装Opencv3时失败,所以是在安装的时候有两个策略:1,先配置好OpenCV的环境再进行ROS安装 2.在安装的时候先删掉OpenCV的部分,安装完成后再进行OpenCV的单独安装

↓单独安装OpenCV3的详细方法看我下面这篇↓
在树莓派4 Raspbian buster 上安装OpenCV3

文章目录

  • 前言
  • 0.准备工作
    • 查看Raspbian系统的版本
    • 使用自带的VNC Viewer远程控制树莓派(有屏幕)
    • 使用网线直连树莓派-离线SSH通讯(无屏幕)
  • 1.预安装
    • 1.1设置ROS存储库(此处)
    • 1.2安装引导依赖项
    • 1.3初始化rosdep ,rosdep用来管理ros中的依赖包
  • 2.安装ROS Kinetic
    • 2.1创建工作空间
    • 2.2结构依赖项
      • 2.2.1安装不可直接安装的包
      • 2.2.1-安装遇到的问题
      • 2.2.2使用rosdep解构函数库
    • 2.3建立catkin工作空间
      • 2.3.1删除opencv3的库
      • 2.3.2安装boost工具库 (必须安装boost1.58版本,否则到安装rospack的时候会断掉)
  • 2.3.3安装所有下载的库
    • 2.3遇到的问题(重要:问题高发区)
    • 2.4安装opencv3
    • 2.5结束安装,source环境

0.准备工作

查看Raspbian系统的版本

Rapbian也和Debian系统一样有不同的版本,如Buster,Jessie, Stretch,了解自己版本对于后面解决问题有帮助。目前树莓派官网上提供的Raspbian为Buster,也可通过终端查看,输入如下命令:在VERSION_CODENAME行即可看到

$ cat /etc/os-release

使用自带的VNC Viewer远程控制树莓派(有屏幕)

在大多数情况下,我们的树莓派占用了屏幕导致很多不方便(尤其是在用使用台式电脑)。raspbian系统自带了VNC远程控制,只要让树莓派联网就可以像我们的电脑上使用虚拟机一样使用树莓派。
总体来说只需要两步
1.在树莓派中把 VNC使能打开,即如图中的Pi Configuration中VNC打开即可。
打开VNC使能
2.在pc上安装VNC Viwer ,直接百度找第一个官网下载正版免费注册使用。同时在PC和树莓派上登陆自己的账号就可以无线连接。注意再次登录的时候输入的username和password是树莓派的用户名和密码。
在这里插入图片描述
如果出现鼠标无法移出虚拟框的情况,按F8,把relactive pointer motion关掉就行。

使用网线直连树莓派-离线SSH通讯(无屏幕)

如果没必要看图形界面,只需要终端可以用这个
见我这一篇博客- 树莓派有线SSH连接电脑(PC开发+树莓派调试+管理文件)

1.预安装

1.1设置ROS存储库(此处)

对于Stretch版本的系统,需要安装dirmngr库,其他版本也可以检查是否安装

$ sudo apt-get install dirmngr

设置软件源

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

设置完成,更新Debian库

$ sudo apt-get update
$ sudo apt-get upgrade

1.2安装引导依赖项

有时候此项会安装失败,因为网络有时候不稳定,查看信息确保安装成功(不成功就多试几次)

$ sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

1.3初始化rosdep ,rosdep用来管理ros中的依赖包

$ sudo rosdep init
$ rosdep update

2.安装ROS Kinetic

2.1创建工作空间

在开发中我们也常常使用catkin make创建工作空间,此处可以理解为使用同样的工具构建整个ROS系统。
国际惯例,名称为ros_catkin_ws (如果要用别名称的也没什么问题,不过后面有时候要注意以下)

$ mkdir -p ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

使用wstool获取ROS的核心程序包:这里有两个版本可以选择,任选一个

ROS-COMM 官网上推荐,只有核心的功能(没有GUI工具,比如rqt,rviz之类的图形界面)

$ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
$ wstool init src kinetic-ros_comm-wet.rosinstall

ROS-Desktop 强烈不建议安装这这个,因为到最后安装核心包的时候会安装opencv ,但是它自己安装会缺少很多东西,会导致失败而且后面其他的核心包也会停止安装。我捣鼓三天,二十多个小时也没有安装好Desktop

$ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall
$ wstool init src kinetic-desktop-wet.rosinstall

使用wstool命令行的时候要等待一会,尤其是下载OpenCV的时候 。如果下载意外中断了,使用
$ wstool update -j4 -t src
命令去恢复下载 !!!这很重要!!!不要忽视,可能会导致灾难性错误
直到显示update complete才可以

2.2结构依赖项

2.2.1安装不可直接安装的包

这个包是关于URTF格式文件建模的,安装是存在部分问题如果用不着直接跳到2.2.1最后一行命令,用来省略URDF的安装

mkdir -p ~/ros_catkin_ws/external_src
cd ~/ros_catkin_ws/external_src
wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
unzip assimp-3.1.1_no_test_models.zip
cd assimp-3.1.1
cmake .
make
sudo make install

2.2.1-安装遇到的问题

在cmake .后发现报错

– Building a non-boost version of Assimp.
– Looking for ZLIB…
– Checking for module ‘zzip-zlib-config’
No package ‘zzip-zlib-config’ found
– Found ZLIB: optimized;/usr/lib/arm-linux-gnueabihf/libz.so;debug;/usr/lib/arm-linux-gnueabihf/libz.so
– Checking for module ‘minizip’
No package ‘minizip’ found
– Configuring done
– Generating done
– Build files have been written to: /home/pi/ros_catkin_ws/external_src/assimp-3.1.1

安装minizip包后没有变化,而且make是满篇警告 。官方说:如果有问题出现,可以跳过这个无法安装的库:(???我也不是很懂,不知道他们什么时候把这个洞装上)

↓省略URDF部分安装的命令↓

$ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --exclude collada_parser collada_urdf --tar > kinetic-desktop-wet.rosinstall

2.2.2使用rosdep解构函数库

不同的raspbian版本对应不同:
Raspbian Stretch:

$ cd ~/ros_catkin_ws
$ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch

Raspbian Jessie:

$ cd ~/ros_catkin_ws
$ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:jessie

Raspbian =Buster:

$ cd ~/ros_catkin_ws
$ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:buster

解释–from path选项表示我们希望安装整个包目录的依赖项,在本例中是src。
–ignore src选项向rosdep表明,它不应该尝试从包管理器在src文件夹中安装任何ros包,因为我们是自己构建的,所以不需要安装。
–rosdistro选项,因为我们还没有一个ros环境设置,所以我们必须向rosdep指出我们正在为哪个版本的ros构建。
最后,-y选项向rosdep表明,我们不想被来自包管理器的太多提示所困扰。
(如果安装了apt get中需要vtk7的任何东西,例如libpcl,rosdep可能无法安装vtk6。在再次调用rosdep之前,只需使用sudo apt get remove libvtk7 dev libvtk7 qt dev来删除与vtk7相关的包。请在rosdep完成后立即重新安装vtk7和其他软件包。)

2.3建立catkin工作空间

2.3.1删除opencv3的库

打开~/ros_catkin_ws/src文件夹,把opencv3的库给删除掉(因为不删掉99%会出错,而且opencv3的库安装不上,排在后面的大部分库都安装不上,导致功亏一篑。opencv3我们后面手动安装上就可以了)

2.3.2安装boost工具库 (必须安装boost1.58版本,否则到安装rospack的时候会断掉)

下载地址:https://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download

(注意给终端权限)安装参考:https://blog.csdn.net/cj1937007583/article/details/74235844

2.3.3安装所有下载的库

当软件包下载完成,下面的命令将把ros安装在/opt/ros/kinetic (如果遇到问题中断了,解决后可以把这个目录删掉重新执行,有时多装几次内存明显小很多)

$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic

注意上面命令很可能出现内存不够的错误,对于4G的RAM来说没有问题,如果有问题的话可以选择两线程的编译即:上面默认是 -j4 四线程
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2

看见最后一行:
#All required rosdeps installed successfully

2.3遇到的问题(重要:问题高发区)

注意!!!检查一下/opt/ros/kinetic文件夹是否存在,不存在的话就再运行一下上面的安装命令
这个很重要,它有时候会没安装也会显示成功
问题1.如果在安装的过程中缺少库,就要补装然后再运行,最有可能缺少 gstreamer系列的库
对于gstreamer库缺少,最暴力的方法就是直接安装所有libstreamer系列

sudo apt-get install libgstreamer*  

问题2.如果有关于vtk的问题,比如找不到/usr/bin/vtk之类,正常是已经有了vtk,需要把文件地址映射:`

sudo ln -s /usr/bin/vtk6 /usr/bin/vtk	

问题3.opencv部分
<== Failed to process package ‘opencv3’:

https://blog.csdn.net/wuyanmin1995/article/details/81060991

问题4.qt_gui_cpp安装失败
可以直接按照opencv的方法删掉qt_gui_core,毕竟树莓派用qt开发很少
也可以试试
sudo apt-get install libpthread-workqueue-dev

2.4安装opencv3

见 ttps://blog.csdn.net/qq_22945165/article/details/84312374

2.5结束安装,source环境

$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Raspbian安装ROS系统Kinectic|树莓派4B安装ros使用OpenCV(全流程) 的相关文章

  • 逐函数详细讲解ORB_SLAM2算法和C++语法|LoadImages|2-1

    完整可执行代码 https github com xiaoqiuslam orb2 视频讲解 逐函数讲解ORB SLAM2源码 xff5c 1 加载Euroc数据集图像 逐函数讲解ORB SLAM2源码 1 加载Euroc数据集图像 逐函数
  • Makefile介绍

    概述 什么是makefile xff1f 或许很多Windows的程序员都不知道这个东西 xff0c 因为那些Windows的集成开发环境 xff08 integrated development environment xff0c IDE
  • 逐函数详细讲解ORB_SLAM2算法和C++语法|System|2-2

    span class token comment Create SLAM system It initializes all system threads and gets ready to process frames span ORB
  • c_cpp_properties.json vscode ubuntu18.04

    在 Ubuntu 18 04 上使用 Visual Studio Code 时 xff0c 你可以根据以下示例配置 c cpp properties json 文件 假设你已经安装了 GCC 和 G 43 43 编译器 xff0c 这个示例
  • 激光SLAM 算法匹配原理

    文章目录 1 数据获取 xff1a 2 数据关联 xff1a 3 匹配 xff1a 4 位姿更新 xff1a 5 地图更新 xff1a 6 循环 xff1a 数据关联二维激光局部定位算法原理 激光SLAM xff08 Simultaneou
  • 【ORB_SLAM2 CMakeLists.txt 文件详解】

    文章目录 ORB SLAM2 CMakeLists txt 文件详解 set CMAKE LIBRARY OUTPUT DIRECTORY PROJECT SOURCE DIR lib add library PROJECT NAME SH
  • 数据结构知识体系框架图

  • [TM4C123单片机实践] 配置SSI并驱动DAC7811显示正弦波

    这几天做电赛学习了TM4C123 单片机 总得来说 结合官方例程与参考手册 加上一个好的示波器 效率会高很多 TI的SSI 实际上就是SPI 我门先熟悉一下SPI SPI 就是在主机与从机之间用来传输数据的 通过TX RX传输数据 通过CS
  • 压力BMP180传感器时序详解

    BMP180是一种高精度数字压力传感器 xff0c BMP180的超低功耗 xff0c 低电压电子元件经过优化 xff0c 适用于移动电话 xff0c PDA xff0c GPS导航设备和户外设备 UP 61 压力数据 xff08 16到1
  • C3D行为识别(一):UCF101视频数据集预处理

    行为识别 xff08 一 xff09 xff1a UCF101视频数据集预处理 文章目录 行为识别 xff08 一 xff09 xff1a UCF101视频数据集预处理1 数据集介绍1 1 UCF101 2 UCF101预处理2 1 划分t
  • Linux学习-坑多就慢慢填

    Linux学习 坑多就慢慢填 刚开始想找个资料丰富的开发板学习Linux xff0c 那时正点原子和野火都上架了NXP芯片的开发板 xff0c 因为经常用正点原子的硬件 教程和论坛 xff0c 毅然选择了正点原子的NAND版 xff0c 实
  • 树莓派 I2C通信,控制多个I2C从设备

    1 需要安装 i2c tools工具 在黑框输入 xff1a sudo apt get install i2c tools 2 后续编程使用python库 在黑框输入 xff1a sudo apt get install python sm
  • 软件框架详解

    软件框架至少包含以下组成部分 xff1a xff08 1 xff09 一系列完成计算的模块 xff0c 在此称为构件 xff08 2 xff09 构件之间的关系与交互机制 xff08 3 xff09 一系列可变点 xff08 也称热点 xf
  • oauth2四种模式的流程图

    参照https www ruanyifeng com blog 2019 04 oauth grant types html 以下为自己的理解整理 xff0c 授权码和密码模式是用户使用第三方平台账号授权给客户端应用 xff0c 来获取受第
  • Linux 应用开发 - 必须掌握的 5 个底层 IO 函数

    底层输入输出 xff08 Low Level Input Output xff09 这篇博客主要介绍 Linux 原生的 IO 操作 xff08 Low IO xff09 xff0c 你可能会想不是有跨平台的 ANSI C 可以使用么 xf
  • 为什么选择嵌入式方向

    本文出自 同济大学软件学院院长谈 嵌入式 方向选择 xff0c 个人感觉不错 xff0c 故转之 嵌入式系统无疑是当前最热门最有发展前途的 IT应用领域之一 嵌入式系统用在一些特定专用设备上 xff0c 通常这些设备的 硬件资源 xff08
  • 关于Apache的目录浏览功能

    近日 xff0c 公司有个需求需要使用到Apache的目录浏览功能 但是遇到了一点问题 xff0c 所以出现了这篇文章 linux安装Apache很简单 xff0c 使用yum安装即可 命令 xff1a yum y install http
  • Linux 下的make命令与Makefile

    概述 博客内容包含linux下make命令的使用与makefile的书写规则等 xff0c 希望通过本文档使读者对make命令makefile文件有进一步了解 xff0c 由于鄙人经验学识有限文档中会有描述不准确以及理解偏差 xff0c 欢
  • 人工智能会取代程序员吗?

    多亏了人工智能 xff08 AI xff09 xff0c 软件将在未来自行编写 至少 xff0c 这就是谷歌首席执行官桑达尔 皮查伊 xff08 Sundar Pichai xff09 对软件开发未来的看法 他是对的 xff01 这并不能使
  • 人工智能和5G在无人机技术中的作用

    技术为我们提供了许多引人入胜的设备和发明 xff0c 无人机就是其中之一 无人机 xff0c 在技术术语中也称为无人机 xff08 UAV xff09 xff0c 自2007年首次出现以来越来越受欢迎 这些小工具最初是手动和远程控制的 无人

随机推荐

  • 惠普暗影精灵笔记本开机自动打开小键盘,冷热启动均支持

  • STM32F4 使用结构体配置功能

    1 IIC配置 void IIC Mode Config void I2C InitTypeDef I2C InitStructure I2C InitStructure I2C Mode 61 I2C Mode I2C IIC模式 I2C
  • 执行 sudo apt-get update 报错:仓库 xxx 没有release文件 / 不再含有release文件

    输入命令 sudo apt get update 报错 这里可以看到有两个问题 xff0c 一个是 ubuntu自己的源连不上了 第二三个红框框 xff0c 一个是 vmware 这个软件 第一个红框框 首先解决第一个问题 archive
  • C++ 发送HTTP请求

    HTTPRequest HTTPRequest是一个用于发出HTTP请求的单头C 43 43 库 您可以将它包含在项目中并使用它 HTTPRequest在macOS Windows Haiku BSD和GNU Linux上进行了测试 xff
  • 小程序、公众号开发报code been used(40163)或invalid code(40029)错误,解决方案--之--搞清楚微信的登录机制,保存登录状态!!!

    x1f4d6 前言 做微信小程序或公众号开发 xff0c 有时我们为了管理用户 xff0c 需要获取用户的openid xff0c unionId等信息 这时会用到微信提供的接口 xff1a code2Session code2Sessio
  • 使用git在vscode中进行版本控制

    版本控制是一件非常cool的事 xff0c 可以将我们的代码按照版本存储 1 首先我们选择一个版本控制工具 xff0c 这里我们选择git xff0c 点击下载安装 xff0c 安装时选择vscode编辑器 2 安装好了之后打开vscode
  • 2.3.1 参数服务器理论模型

    ROS入门 2 3 1 参数服务器理论模型 ROS入门 理论与实践 视频教程镇楼 参数服务器实现是最为简单的 xff0c 该模型如下图所示 该模型中涉及到三个角色 ROS Master 管理者 Talker 参数设置者 Listener 参
  • 4.6.3 编码设置参数

    ROS入门 4 6 3 编码设置参数 ROS入门 理论与实践 视频教程镇楼 编码的方式可以更方便的设置 全局 相对与私有参数 1 C 43 43 实现 在 C 43 43 中 xff0c 可以使用 ros param 或者 ros Node
  • 5.1 TF坐标变换

    ROS入门 5 1 TF坐标变换 ROS入门 理论与实践 视频教程镇楼 机器人系统上 xff0c 有多个传感器 xff0c 如激光雷达 摄像头等 xff0c 有的传感器是可以感知机器人周边的物体方位 或者称之为 坐标 xff0c 横向 纵向
  • 10.1.3 action通信自定义action文件调用(Python)

    ROS入门 10 1 3 action通信自定义action文件调用 Python ROS入门 理论与实践 视频教程镇楼 需求 创建两个ROS 节点 xff0c 服务器和客户端 xff0c 客户端可以向服务器发送目标数据N 一个整型数据 服
  • rosdep

    rosdep 初始化时异常解决方案 rosdep 初始化时异常解决 视频教程 安装构建依赖 在 noetic 最初发布时 xff0c 和其他历史版本稍有差异的是 没有安装构建依赖这一步骤 随着 noetic 不断完善 xff0c 官方补齐了
  • springboot应用集成prometheus监控

    环境参数 xff1a 运行命令 xff1a 1 uname xff0d a xff08 Linux查看版本当前操作系统内核信息 xff09 2 cat proc version xff08 Linux查看当前操作系统版本信息 xff09 3
  • [NVIDIA Jetson Xavier Nx]从刷机烧录到环境配置 记录

    目录 前言一 开机烧录二 环境配置Cuda环境变量配置更新源python环境配置安装Jtop 内存 CPU GPU等等资源监视工具 前言 对进行NVIDIA Jetson Xavier Nx环境配置进行记录 一 开机烧录 参考下面的博客 x
  • 最近处理的报错 -DCMAKE_BUILD_TYPE=Debug

    1 error 39 nullptr 39 was not declared in this scope 解决方法 使用的是QTcreator的pro文件 然后缺少相应关于c 43 43 11的设置 点pro文件中加载的东西如下 QMAKE
  • Halcon 单相机标定

    原文链接 xff1a https blog csdn net weixin 43197380 article details 90438976 comments 13104885 一 理论 为什么要进行单相机标定 xff1f 广义 xff1
  • 将图片嵌入Markdown文档

    将图片嵌入Markdown文档中是一个比较难受的事情 一般大家都会将图片存入本地某个路径或者网络存储空间 xff0c 使用URL链接的形式插入图片 image url to image 将图片放到本地的时候如果想将文档分享给朋友或者换台电脑
  • 自定义的串口通信协议

    自定义的通信协议 自定义一主多从串口通讯 1硬件基础两个从机的 Tx 是相互连接的 xff0c 导致一个从机在需要发送数据时发不出去了 协议思路数据包封装和解封装 树莓派python串口的使用注意更改树莓派串口设备驱动关闭控制台功能pyth
  • Linux串口驱动程序(4)-数据发送

    1 tty数据发送调用关系 怎么样才能找到发送数据所使用的函数呢 xff1f 打开uart register driver函数 xff0c 找到里面的tty register driver xff0c 转到定义 xff0c 这里调用了tty
  • TF 错误:InvalidArgumentError (see above for traceback): Reduction axis 0 is empty in shape [ ]

    Tensorflow python framework errors impl InvalidArgumentError Reduction axis 0 is empty in shape 0 100 Node ArgMax 61 Arg
  • Raspbian安装ROS系统Kinectic|树莓派4B安装ros使用OpenCV(全流程)

    前言 树莓派4B最高拥有4Gb的RAM xff0c 对于承担图像处理任务的嵌入式设计是个性价比很高的选择 众所周知 xff0c ROS系统对Ubuntu系统最友好 xff0c 但是由于树莓派4暂时还无法使用Ubuntu MATE xff0c