如何在Raspberry Pi 4(Raspbian Buster)上安装ROS Melodic,rosserial等

建立自主机器人的过程始于将第一个传感器或执行器安装在机箱上。构建过程需要硬件和软件设置,这是本文的主题。

第一步是设置并安装计算机,该计算机将管理硬件组件并运行算法来控制机器人。对于您可以在本网站上找到的机器人项目(至少在开始时),我将使用Raspberry Pi作为机器人顶部的主计算机。

不同的项目可能有不同的要求。因此,我曾经使用过最强大的Pi版本:具有4GB RAM的Raspberry Pi 4 ModelB。该版本能够运行ROS,检测对象的算法以及深度学习算法。

树莓派 4套件

树莓派 4套件

在这篇文章的结尾,您’将使Raspberry Pi准备运行Python算法,从单板微控制器发送和接收数据,并安装远程访问服务。

我将帖子分为六个部分,以便能够从一个主题切换到另一个主题,或者忽略特定主题的安装。我从安装操作系统的必需步骤开始,然后继续安装框架和工具。

我相信每个人都应该能够建造机器人。因此,即使您是初学者还是高级用户,您都可以在Pi上运行所有软件和框架。您需要做的就是仔细阅读并遵循本教程中的所有步骤。

我使用本教程的目的是拥有一台可靠的计算机,您将使用它来构建自主机器人并在需要的时间内保持运行状态,而不会出现任何超时。

如果您认为这篇文章很长,并且可能使您被封锁数小时(也许一天),那么您可能有另一种选择。您可以找到运行ROS的已准备映像的列表。显着的优势在于,您将在几分钟内启动并运行Pi,但代价是没有本文中涉及的所有框架和工具。

我们离开始安装非常接近,但是首先,我们必须定义所有必需的硬件资源和规格。我已经提到了本文中使用的Pi版本。以下是使用的所有硬件组件和附件的完整列表。

组件清单:

  • 具有4GB RAM的Raspberry Pi 4 Model B [亚马逊链接]
  • 电源5V 3A USB-C适配器
  • 官方32GB MicroSD卡
  • 适用于microSD卡的全尺寸适配器
  • 键盘和鼠标[亚马逊链接]
  • 带HDMI输入的屏幕

如果您已经有Raspberry Pi 4(具有1,2或4GB RAM的任何版本),microSD卡和电源,请检查规格,并确保使用兼容Pi 4的电源和microSD来自的卡片 这个清单。如果不是这样,则在安装过程中可能会出现各种错误,本教程将不涉及这些错误。

获得硬件组件和配件的列表后,就可以开始设置和安装过程。

目录

1.如何在Raspberry Pi 4上安装Raspbian Buster
2.启用SSH进行远程访问
3.安装ROS Melodic
4.安装Arduino IDE和rosserial
5.安装PyCharm IDE
6.设置虚拟网络计算(VNC)

1.如何在Raspberry Pi 4上安装Raspbian Buster

在本部分的教程中,我将说明如何在Raspberry Pi 4上安装Raspbian Buster。出于以下两个原因,我选择在Pi 4上安装Raspbian:

  • Raspbian是Raspberry Pi计算机的官方操作系统。
  • Raspbian Buster与ROS Melodic兼容。 Melodic是长期支持版本,将于2023年结束;

Raspbian是由Raspberry Pi Foundation正式提供的基于Debian的免费(32位)计算机操作系统,是Raspberry Pi系列的主要操作系统。操作系统包括一组基本程序和实用程序,可帮助您开发和执行程序。它充当您与Pi硬件之间的桥梁,并管理CPU,内存,内存磁盘,GPIO(通用输入/输出)引脚等。

通过使用Raspberry Pi Imager软件,安装Raspbian操作系统变得更加容易。该程序包括用于擦除和写入用于Pi的microSD存储卡的选项。

我使用Pi Imager程序擦除了存储卡。然后,从选项菜单中选择Raspbian Buster安装在microSD卡上。它没有按预期工作。因此,我决定下载“带有桌面和推荐软件的Raspbian Buster”Raspberry Pi网站上的图像,并使用Raspberry Pi Imager安装了它。

1.1在Raspberry Pi 4上安装Raspbian Buster的步骤

让’下载并安装Buster:
Step 1:下载并安装Raspberry Pi Imager的最新版本。根据您使用的操作系统,选择以下链接之一:

Step 2:将MicroSD卡插入存储卡适配器,然后将该适配器插入计算机的读卡器。

注意: 如果使用的存储卡是新的,则无需擦除和格式化存储卡。否则,您必须使用Raspberry Pi Imager擦除并格式化卡。

第三步: 下载“带有桌面和推荐软件的Raspbian Buster”或三个Raspbian版本中的任何一个。在本教程中,我使用的版本是台式机和推荐的软件。

步骤4: 启动Raspberry Pi Imager并使用菜单“使用自定义 从您的计算机中选择一个自定义.img”加载您计算机上下载的Raspbian图像。

从您的计算机中选择一个自定义.img

从您的计算机中选择一个自定义.img

步骤5: 使用热像仪菜单选择SD卡驱动器。
步骤6: 请点击 开始将数据写入SD卡。此步骤将花费几分钟。
步骤7: 在存储卡上写入操作系统映像的过程完成后,将microSD卡插入Raspberry Pi’的插槽并打开电路板电源。

您将需要执行几个步骤。这些步骤包括您的语言设置,密码以及开发板与Internet的连接。完成设置过程后,我们可以继续进行下一步,并开始在Raspberry Pi中启用SSH。

2.启用SSH进行远程访问

安全外壳(SSH)是一种网络协议,可让您通过不安全的网络安全地操作Pi板。为此,您可以使用笔记本电脑,台式机甚至智能手机中的用户和IP地址通过SSH登录到Raspberry Pi。

使用此服务,您可以在Pi上运行命令,而无需每次插入显示器,键盘,鼠标或将自己移到Raspberry Pi的位置。当Pi板在移动机器人上运行时,此服务是必不可少的。

我假设您熟悉Shell终端和命令行基础。

注意: 如果忘记选择键盘布局,请导航至Raspberry Pi桌面首选项菜单,并使用标准的美国键盘布局,除非您要选择一种适合您键盘的布局。在本教程中,我使用“美国键盘”布局。

第1步: 要启用SSH,请打开终端并输入:

第2步: 在弹出屏幕中,导航到‘5接口选项‘ and press enter.
选择‘P2 SSH‘,按Enter,然后选择‘‘.

选择'5种接口选项'

选择‘5种接口选项’

使用以上两个设置,只有在使用键盘,鼠标和屏幕手动向Pi进行身份验证之后,才能将SSH服务与Pi一起使用。但是我们的目标是在Pi上电并连接到Internet后立即通过SSH运行命令。解决方案是允许root登录。

第三步: 打开终端并运行命令:

Step 4:向下滚动到‘#认证‘并取消注释线‘#PermitRootLogin‘通过删除#然后写‘‘.

permit 根 login

permit 根 login

用保存文件‘Ctrl + o‘ and exit ‘Ctrl + x‘.

步骤5: 运行以下命令并记下Pi的IP:

步骤6: 重新启动树莓派。

目前,我们可以通过SSH服务在Pi上运行命令,而无需使用键盘,鼠标和身份验证屏幕。即使我们几乎准备在Pi上安装第一个框架,我们仍然需要安装其他软件。

对于SSH服务,我运行 油灰 在我的笔记本电脑上。 油灰是一个免费的开放源代码终端仿真器,串行控制台和网络文件传输应用程序,可让我们在Pi上运行命令。

我们拥有一台可运行的Pi计算机,已启动并正在运行的SSH服务以及一个可通过SSH访问Pi的终端模拟器。在这一步,我们已经准备好进一步安装ROS框架。

3.安装ROS Melodic

ROS(机器人操作系统)是一个在Raspbian之上运行的框架。该框架包括一组库和工具,我们将使用它们来构建机器人。

如果您要构建其他机器人,ROS是一种多合一的解决方案。一旦知道如何编写节点,服务,操作和使用软件包,您就可以制造各种类型的机器人,包括机械臂,无人机或自主移动机器人。

ROS为几乎所有机器人应用程序提供了广泛的软件包。映射,导航和本地化只是构建机器人的有用软件包的一些示例。

是否要使用Python而不是C ++来控制机器人?您可以编写Python节点并使其与C ++节点通信。

您是否要在虚拟世界中构建机器人?您需要一个仿真工具。 ROS具有出色的仿真和可视化工具,例如Rviz和Gazebo。

您可以运行多个独立的机器人并使它们彼此通信。使用ROS的好处的列表更长,涵盖了机器人开发的不同领域。

当前没有针对Raspberry Pi 4和Raspbian Buster操作系统的官方ROS Melodic安装指南。因此,我们将需要从源头构建它。

我们非常接近开始运行命令来安装ROS。在运行第一个命令之前,我将简要介绍ROS发行版。对于本教程和我的下一个项目,我选择使用ROS Melodic发行版。该发行版于2018年发布,并将一直支持到2023年。

让’s begin to 安装 ROS Melodic:
第1步: 设置存储库:

第2步: 安装构建工具(编译器,CMake等)

  • 罗斯德普 是用于安装系统依赖项的命令行工具。
  • 罗斯install_generator 生成rosinstall文件,其中包含有关带有ROS软件包/堆栈的存储库的信息。
  • 凳子 是用于维护来自多个版本控制系统的项目工作区的工具。

第三步: 初始化中 罗斯德普
罗斯德普 具有所有依赖项的规则,如果某些问题不起作用,则可能值得将其报告为问题。依赖项列表由 罗斯德普这里.

步骤4: 创建一个catkin工作区以构建核心程序包。

步骤5: 获取核心包
最小的桌面安装可能是Raspberry Pi的首选选择,因为该板可能会在机器人的顶部运行。此安装没有’包括2D / 3D模拟器,导航和2D / 3D感知。

注意: -j4选项并行下载四个软件包。如果您的Pi 4版本具有1GB或2GB的RAM,并且‘wstool 在里面’失败或被中断,您可以通过运行-j2恢复下载。

步骤6: 安装兼容版本的Assimp(开放资产导入库)以修复collada_urdf依赖性问题和rviz的OGRE。

步骤7: 解决依赖性
我们必须确保所有必需的依赖项都已就绪:

步骤8: 生成并获取安装
在上述步骤中,我们完成了下载程序包并解决了依赖性。在此步骤中,我们准备构建柳絮包。

我们使用 柳絮_make_isolated 命令,因为既有柳絮又有平原 cmake 在仅catkin工作区上进行开发时,基本安装中的软件包 柳絮 /命令/ 柳絮_make 仅适用于柳絮包。

至此,我们完成了ROS的安装。最后一件事是重新启动Raspberry Pi。

Pi启动并运行后,我们进行检查并启动roscore会话:

您应该看到如下所示的roscore会话:

罗斯科尔会议

罗斯科尔会议

检查已安装的ROS软件包的列表:

 罗斯pack列表名称

罗斯pack列表名称

结束 罗斯科尔 会话运行命令 Ctrl + c.

至此,我们准备开始工作。第一件事是创建工作区以构建要在机器人上运行的软件包:

4.安装Arduino IDE和rosserial

Arduino的是一个开放源代码的电子平台,能够读取传感器输入并将其转换为输出以控制电机。好吧,您也可以使用Pi板来读取传感器输入并控制机器人的方向。是的,这是真的。但是,Raspberry Pi和Arduino是完全不同的板。

Arduino的是一种快速的原型开发板,只需较少的精力即可连接传感器和其他电子组件。另一方面,Raspberry Pi需要库和软件来连接传感器和其他组件。如果通过微控制器以更容易的方式控制传感器,电机驱动器或任何组件,我更喜欢使用Arduino而不是Raspberry Pi。

如果您决定继续使用Pi来构建机器人,则可以忽略本教程的这一部分。但是,如果您选择将Arduino与ROS一起使用,则必须走得更远并安装Arduino IDE和rosserial库。

您可以在Arduino UNO,Leonardo,MEGA和DUE上运行ROS。

玫瑰_arduino 包是用于Arduino之间通信的协议’的UART和Raspberry Pi。 Arduino的能够发布和订阅ROS消息,发布TF转换,并获得ROS系统时间。

我们即将开始安装Arduino IDE。在安装Arduino IDE之前,让’检查系统架构。首先,您需要安装一个 ‘list hardware’ [lshw] 工具来显示您的系统架构。

要显示系统的体系结构,请运行以下命令:

SH

SH

4.1安装Arduino IDE 1.8.12

如果我们检查Raspberry Pi 4的体系结构,可以看到Model B Rev 1.2在32位上工作。下载正确的Arduino IDE软件版本需要此信息。

第1步: 下载Linux ARM的32位版本:链接到 Arduino的 IDE.

此步骤可能需要几分钟才能下载文件。导航到“下载”目录并解压缩存档。

第2步: 打开一个终端并导航到Download目录,然后转到Arduino目录并运行以下命令:

至此,您已经完成了Raspberry Pi上Arduino IDE的安装。下一步是安装 玫瑰.

4.2从源代码安装Rosserial

第1步:合适的 该命令在可用软件包的数据库上工作。第一步是更新此数据库。否则,系统不会’不知道是否有更新的软件包。更新软件包数据库后,就可以升级已安装的软件包。

第2步: 从GitHub仓库克隆rosserial:

第三步: 产生 玫瑰_msgs 沟通所需:

步骤4: 将库文件放在 柳絮_ws / 开发者el / lib 目录

步骤5: 安装 罗斯_lib 进入Arduino环境:

 Arduino的和ros_lib

Arduino的和ros_lib

步骤6: 我们需要在运行ROS命令的每个终端中提供一个setup.bash文件的源。这些脚本控制许多重要的ROS环境变量和非ROS环境变量。

步骤7: 此命令是导入 玫瑰 库到Arduino IDE中。

让’s检查是否一切正常。打开Arduino IDE并导航到 File -> Examples -> 罗斯_lib。选择一个示例,将其打开,然后编译该文件。

Arduino的 你好世界程序

Arduino的 你好世界程序

通过以上所有步骤,我们完成了Arduino IDE和rosserial库的安装。此时,我们可以将Arduino与Raspberry Pi结合使用来发布传感器输入或读取电机驱动程序的命令。

5.安装PyCharm IDE

在本教程中,我写了构建机器人所需的框架和软件。我做了一个重要的话题’什么也没说是编程语言。

我更喜欢在Raspberry Pi上运行Python,并在Arduino上运行Arduino [C ++]。如果您打算在Pi以外的其他编程语言上运行Python,则可以忽略本教程的这一部分,并继续进行下一个主题。在这一部分,我将向您展示如何检查Raspbian上安装的Python版本并安装Python IDE。

如果您是刚开始使用PyCharm IDE构建代码的人,’值得一看。您可以选择两种下载方式:一个是免费的社区版本,另一个是带有附加功能的付费版本。

在本教程中,我将向您展示如何安装PyCharm Community Edition IDE。

至此,我们非常接近开始运行命令并安装IDE。

Raspbian Buster已安装Python 3,而您没有’不必进行任何其他安装。要检查您的Python版本,请运行以下命令:

 $ 蟒蛇3-版本

$ 蟒蛇3–version

我们即将开始安装PyCharm IDE。

第1步: 首先,让’开始下载该工具的社区版本。的 链接 下载Linux版本的PyCharm 3.3。

第2步: 下载完成后,转到 下载 目录并解压缩文件。

第三步: 继续并打开一个终端,然后导航到“下载”目录。将文件移到 /选择,这是我们将安装未捆绑软件包的目录。最后一步是运行shell可执行文件以安装IDE。

注意: 如果在安装过程中在命令上遇到Java错误,请运行:$ 须藤 合适的 安装 openjdk-11-jdk

步骤4: 如果安装顺利进行,将出现一个弹出窗口。用您的自定义首选项填写步骤。

  1. 在工具菜单上,选择“Create Desktop Entry…”
  2. 如果希望所有用户启动器,请勾选该复选框。
  3. 当询问您时,请添加您的密码。
  4. 导航 Application menu -> Programming, and you SH ould see the PyCharm Community Edition in the 清单.

6.设置虚拟网络计算(VNC)

几乎所有时候,Raspberry Pi板都会在机器人的顶部运行。在某些操作中,无法使用SSH服务。相反,当在远程计算机上工作时,我们可以使用VNC服务访问图形用户界面(GUI)。

要使用VNC,我们需要在Pi上运行的VNC服务器和本地计算机上的VNC客户端。此外,我们需要知道Pi的IP地址以及用于身份验证的用户名和密码。

在安装VNC服务之前,我们必须检查允许我们运行虚拟网络的服务和选项。

第1步: 我们必须启动GUI /桌面管理器服务。必须将Pi设置为引导到桌面(服务模式)。因为我们将在未连接HDMI监视器的项目中使用Pi,所以我们需要指定屏幕分辨率。

要更改分辨率,请运行以下命令:

第2步: 导航 Advanced Options -> Resolution,然后选择一个选项。

第三步: 重新启动您的Pi。

6.1在Pi上安装VNC服务器

第1步: 运行命令:

第2步: 导航到‘5种接口选项‘菜单项,然后按Enter。
然后导航到‘P3 VNC‘ press Enter

P3 VNC

P3 VNC

选择 然后按Enter。然后选择确定(输入)。

您将返回主菜单,然后选择完成。

第三步: 重新启动您的Pi。

6.2在本地计算机上安装VNC客户端

我使用Real VNC客户端,因为它可用于macOS,Linux,Windows和其他操作系统。选择适合您的操作系统的版本,然后从以下位置下载查看器 这里.

在Pi上运行VNC服务器并在本地计算机上运行VNC客户端后,请执行以下步骤:

  1. 输入Pi的IP地址。
  2. 输入远程系统上帐户的用户名和密码。
  3. 使用GUI连接到Pi。

概要

现在,您已经为准备开始运行算法并与微控制器平台进行通信的Raspberry Pi板做好了准备。

我们首先在Pi上安装Raspbian,然后继续启用SSH服务,该服务使我们可以在不安全的网络上在Pi上运行命令。

然后,我们继续进行ROS Melodic,Arduino IDE和rosserial安装。所有这些软件库和工具都是控制机器人的基础。

最后,我向您展示了如何安装流行的Python IDE并设置VNC服务,以便在远程计算机上工作时可以访问图形用户界面(GUI)。

如有任何疑问,请随时在评论部分中发表评论!

参考文献:

9条评论 » Write a comment

  1. 非常感谢!我之前尝试过图片,但是尝试catkin_make时会遇到一些问题。我不知道该怎么解决。

    • 你好
      每个人都带来了另一个人所缺少的东西。 Pi运行一个提供GUI,文件系统,网络等的操作系统。

      与Pi相比,Arduino可用于控制电机,读取传感器输出以及更好的实时反应性能。因此,与运行Linux OS的Pi相比,使用Arduino在GPIO时序上可以更加准确。毕竟,这取决于用户的口味和需求。

  2. 感谢您的辛勤工作。
    必须承认认真的工作。
    描述性形式和功能都是100%完美的。
    恭喜你
    JP(HP前支持工程师)

  3. 该教程写得不错,但我’即使进行了广泛搜索,我还是遇到了许多无法解决的错误。

    最新的是:包中的错误‘/home/pi/ros_catkin_ws/src/console_bridge/package.xml’:
    清单包含无效的XML:
    找不到元素:第1行,第0列

    您是否有解决安装错误的直接建议?

  4. 一些小的变化:设置SSH之后,要连接的用户是‘pi’ not ‘root’。您也应该更改默认的pi密码。

  5. 感谢您所做的惊人教程。

    我在安装ROS旋律Step8时遇到问题
    须藤./src/catkin/bin/catkin_make_isolated–安装-DCMAKE_BUILD_TYPE =发布–安装空间/ 选择 / 罗斯 / 旋律的 -j2
    我尝试了几次,终端始终停留在qt_gui_cpp [186中的65] 31%
    Pi 4变得迟钝,而且进度不会继续。

    您有解决我问题的方法吗?
    谢谢。

发表回覆 载脂蛋白 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *