Sawyer 机器人 ROS SDK 配置

系列文章目录

目录

系列文章目录

前言

恢复出厂设置

内容

概述

要求

程序

[将 Sawyer 升级到 Intera SDK 打印](#将 Sawyer 升级到 Intera SDK 打印)

内容

概述

先决条件

安装步骤

[将机器人从 Intera MFG 切换到 SDK 模式](#将机器人从 Intera MFG 切换到 SDK 模式)

联网

内容

[确认 Sawyer 在机器人上以 SDK 模式运行](#确认 Sawyer 在机器人上以 SDK 模式运行)

基本

基本要求

网络地址分配

主机名解析

[ROS 命名约定](#ROS 命名约定)

通过路由器进行网络配置

推荐的网络配置

路由器配置图

索耶

开发机器

直接连接到企业或大学网络

索耶

开发机器

直接网络配置

交换机配置图

机器人

开发机器

[Avahi 配置步骤](#Avahi 配置步骤)

[故障 排除](#故障 排除)

工作站设置

内容

所需硬件

[安装 Ubuntu](#安装 Ubuntu)

打开终端应用程序

[安装 ROS](#安装 ROS)

[ROS Noetic (Ubuntu 20.04)](#ROS Noetic (Ubuntu 20.04))

[配置 Ubuntu 存储库](#配置 Ubuntu 存储库)

[设置 sources.list](#设置 sources.list)

[ROS Melodic (推荐 Ubuntu 18.04)](#ROS Melodic (推荐 Ubuntu 18.04))

[配置 Ubuntu 存储库](#配置 Ubuntu 存储库)

[设置 sources.list](#设置 sources.list)

[ROS Kinetic (Ubuntu 16.04 已弃用)](#ROS Kinetic (Ubuntu 16.04 已弃用))

[配置 Ubuntu 存储库](#配置 Ubuntu 存储库)

[设置 sources.list](#设置 sources.list)

[ROS Indigo(Ubuntu 14.04 已弃用)](#ROS Indigo(Ubuntu 14.04 已弃用))

[配置 Ubuntu 存储库](#配置 Ubuntu 存储库)

[设置 sources.list](#设置 sources.list)

创建开发工作区

创建ROS工作空间

源ROS设置

[安装 Intera SDK 依赖项](#安装 Intera SDK 依赖项)

[ROS Noetic (Ubuntu 20.04)](#ROS Noetic (Ubuntu 20.04))

[ROS Melodic (推荐 Ubuntu 18.04)](#ROS Melodic (推荐 Ubuntu 18.04))

[ROS Kinetic (Ubuntu 16.04 已弃用)](#ROS Kinetic (Ubuntu 16.04 已弃用))

[ROS Indigo(Ubuntu 14.04 已弃用)](#ROS Indigo(Ubuntu 14.04 已弃用))

[安装Intera Robot SDK](#安装Intera Robot SDK)

[在工作站上下载 SDK](#在工作站上下载 SDK)

源ROS设置

配置机器人通信/ROS工作区

[Intera.sh ROS环境设置](#Intera.sh ROS环境设置)

[复制 intera.sh 脚本](#复制 intera.sh 脚本)

[自定义 intera.sh 脚本](#自定义 intera.sh 脚本)

修改"robot_hostname"字段

修改"your_ip"字段

验证"ros_version"字段

[保存并关闭脚本 intera.sh](#保存并关闭脚本 intera.sh)

[初始化 SDK 环境](#初始化 SDK 环境)

验证环境

[设置 RVIZ](#设置 RVIZ)



前言


恢复出厂设置

编辑于: 星期五, 18 二月, 2022 at 11:36 AM


内容


概述

以下过程介绍如何恢复出厂设置。如果Intera无法正常启动,则可以使用恢复出厂设置来重置机器人的操作系统

Invalid configuration information - please run SETUP program.
Time-of-day not set - please run SETUP program.

To continue press F1 key
To change setup option press F2 key
To run onboard diagnostics press F5 key


要求

  • USB键盘
  • Intera 5.1 或更高版本

程序

  1. 关闭机器人
    电源
  2. 插入 USB 键盘。在 Sawyer 上,USB 端口位于控制器盒的前面板
  3. 机器人启动时,按键盘上的 Shift + R。如果冒号后面有多余的文本,请按退格键将其删除
  4. 按 Tab 或箭头键并导航到恢复出厂设置
  5. 按 Enter 键。机器人将开始恢复过程
  6. 恢复过程完成后,机器人将自行重启
  7. 从机器人上拔下 USB 键盘
  8. 重新启动机器人后,浏览软件菜单并验证机器人是否按预期正常工作

将 Sawyer 升级到 Intera SDK

修改于: 星期一, 14 二月, 2022 at 7:48 上午


本页概述了如何将Sawyer升级到Intera SDK。


内容


概述

如果您启动Sawyer并且您使用的是Intera Manufacturing 3.3.7,请按照以下说明更新软件以更新最新的Intera软件。


先决条件

  • USB键盘
  • 包含更新**.pkg** 和 .sig 文件的 Intera Updater zip 文件,已解压缩
  • FAT 32 格式化的 USB,带有 Intera Updater .pkg.sig 保存在顶层
  • 索耶机器人运行 SDK 3.3.7。如果您要升级 Intera 5.0.4 Sawyer,请改为按照**软件更新教程**进行操作。

安装步骤

请按照以下步骤将机器人升级到 Intera 5.1.0。

首先,在"关于"屏幕上验证 Sawyer 当前是否正在运行 Intera 3.3.7

Note: If the robot is running Intera 3.3.6 or earlier, please contact Rethink Support. Your robot cannot be upgraded to the SDK unless it is running version 3.3.7.

  1. 请在**Rethink Forum网站上**注册并下载最新的Intera软件。
  2. 按照下载的软件文件夹中的"自读我"文档中的步骤正确格式化软件并将其上传到您的 USB。
  3. 在机器人上,导航到主屏幕>设置>高级>更新软件。
  4. 插入包含软件升级的 USB 设备,然后等待机器人识别设备。
  5. 选择要安装的软件版本。
  6. 在确认对话框中选择"是"继续"。软件加载时会出现一个状态屏幕。
  7. 软件安装完成后,机器人将自动重新启动进入Intera 5 Manufacturing。

将机器人从 Intera MFG 切换到 SDK 模式

  • 将 USB 键盘连接到机器人控制器。
  • 按下控制器上的电源按钮关闭机器人。机器人完全断电后(风扇停止,屏幕背光熄灭),等待 5 秒钟,然后再次按下电源按钮重新启动机器人。
  • 在键盘上,开始连续按 CTRL+F,直到机器人屏幕上出现 FSM 菜单。

提示:重新启动时请查找下面的屏幕。当文本 Preparing to boot Intera...出现在屏幕左上角,按 CTRL+F' 将带您直接进入 FSM。

  • 成功后,将出现 FSM 的主菜单,请参阅下面的屏幕以供参考。
  • 进入FSM后,使用键盘上的箭头键选择"Intera-SDK"。请参阅下图以供参考。
  • 将出现一个提示,要求用户阅读**一般免责声明**。通读免责声明后,按 Tab 键选择"是"。
  • 移动到并选择"重新启动"。
  • 机器人将关闭并直接启动到 Intera-SDK。

联网

编辑于: 星期二, 8 二月, 2022 at 3:41 下午


Sawyer研究机器人使用ROS与用户的开发工作站进行通信。这需要在Sawyer和工作站之间建立以太网网络,并具有完全的双向连接。如果您在连接到 Sawyer 时遇到问题,请参阅此页面,了解我们推荐的网络设置和其他常见的网络调试步骤。


内容


确认 Sawyer 在机器人上以 SDK 模式运行

为了与机器人联网,请确保机器人处于 SDK 模式。您可以通过启动机器人并在屏幕上看到此图像来确认这一点:

如果您启动机器人并且它正在运行 Intera,请按照**以下说明**更新机器人。


基本

这些网络配置设置可在 Field Service 菜单 (FSM) 中找到。

基本要求

Sawyer 必须连接到开发工作站,该工作站通过以太网网络使用 ROS 进行双向通信。

**重要提示:**通过控制器外部的以太网端口连接到机器人。连接到控制器门内的以太网端口将不起作用(这是一个诊断端口,只能由现场服务技术人员访问)。

Sawyer 的**主机名** 可以使用**现场服务菜单 (FSM)** 进行配置,如果您不喜欢出厂时提供的与其**序列号**相匹配的主机名。

网络地址分配

Sawyer 支持以下网络配置的 IPV4 寻址:

  • 自动地址分配("自动"模式)
    • 如果网络中存在DHCP服务器,则DHCP服务器会自动为机器人分配网络地址,并且可能会(也可能不会)为主机名解析分配DNS服务器。
    • 如果没有DHCP服务器,机器人将使用Autoip协议在169.254.0.0/16地址块中为自己分配一个链路本地地址。
    • 此模式下的所有分配都是自动的,不能手动配置任何选项。
  • 从 Field Service 菜单手动分配地址("手动"模式)
    • 用户必须为机器人指定有效的 IPV4 地址,并可以选择指定网络掩码、默认网关地址和 DNS 服务器地址。所有网络选项都是手动配置的。

主机名解析

在所有寻址模式下,Sawyer使用Avahi mDNS服务将机器人主机名作为"<robot name>.local"提供链路本地广告。与机器人位于同一子网中且支持 mDNS 的计算机始终可以将机器人的主机名解析为"<robot name>.local",即使不存在其他主机名解析服务也是如此。Sawyer还可以使用主机名与这些计算机进行通信。

在"自动"寻址模式下,只有当网络的 DHCP 服务器提供 DNS 服务器地址时,Sawyer 才能解析外部主机名。如果 DHCP 服务器未提供 DNS 服务器地址,则 Sawyer 将只能通过其 IP 地址与外部计算机进行通信。

在"手动"寻址模式下,仅当用户指定 DNS 服务器地址(如果涉及不同子网中的计算机,则指定默认网关地址)时,Sawyer 才能解析外部主机名。如果用户未提供 DNS 服务器地址,则 Sawyer 将只能通过其 IP 地址与计算机进行通信。如果用户未提供默认网关地址,则 Sawyer 将只能与同一子网中的计算机进行通信。


ROS 命名约定

Intera 机器人支持 3 种 ROS 命名约定。这些控制 ROS Master 如何发布机器人发布的各个节点的访问信息。无论您如何连接到机器人,如果您希望能够与机器人交互,您都需要能够通过其 ROS 命名约定配置的地址访问它。(即,如果您可以通过机器人的 IP 访问机器人,但它配置了ROS_HOSTNAME约定,并且您无法通过其主机名访问它,那么您将无法使用机器人进行有意义的工作)

  • **ROS_HOSTNAME.local:**这会在 <robot hostname>.local 上发布节点
    • 这是最不通用但最稳定的配置,建议在可用时使用。
    • 此约定仅适用于本地设置,其中机器人和开发计算机位于同一子网上,但几乎始终在该网络配置中工作。
    • 只有在以下情况下才会中断
      • 在本地网络上引入命名冲突或
      • 您可以手动更改机器人的主机名。
  • **ROS_IP:**这将发布与机器人关联的 IP4 地址的节点
    • 这是最通用的命名约定,但也是最脆弱的。
    • 它可以在您连接到机器人的任何网络配置中工作,但如果机器人的 IP 发生变化,它将中断
  • **ROS_HOSTNAME:**这将在机器人的主机名处发布节点。
    • 这种配置具有中等的通用性和稳定性。
    • 只有当您的网络上运行一个有效的 DNS 并指向机器人时,它才有效。
    • 只有在以下情况下才会中断
      • 在网络中引入命名冲突或
      • 如果更改了机器人的 DNS 解析主机名,这可以由服务器管理员完成,但不太可能发生。

通过路由器进行网络配置

推荐的网络配置

建议的网络配置是将您的开发工作站和 Sawyer 连接到类似于 Linksys EA 系列路由器的一体化 SOHO(小型办公室/家庭办公室)路由器/防火墙。这种类型的路由器提供 DHCP 和其他网络服务,并具有使网络流量远离主网络的好处。它还允许开发工作站访问互联网,特别是用于代码和文档的 Rethink Robotics github 存储库。

路由器配置图

编辑https://sdk.rethinkrobotics.com/intera/File:Router_Config.png

  • Sawyer和用户的计算机都可以设置为"自动"寻址模式,这将直接从路由器获取IP信息。

索耶

  • Sawyer 可以设置为使用 ROS_IP 或 ROS_HOSTNAME.local:
    1. ROS_HOSTNAME.local 是我们在此设置中为机器人推荐的 ROS 命名协议。它在这种网络配置中非常稳定,只有在您从机器人切换到单独的子网时才需要调整。
      • 如果您可以 ping <robot hostname>.local,则网络工作正常
    2. ROS_IP是最可靠的命名方法,如果你知道机器人会保留它的.知识产权。此命名协议适用于所有网络配置,只要您有可靠的机器人路由即可。
      • 如果您可以ping<机器人ip>则网络工作正常。
      • **注意:**如果您对使用此命名约定感兴趣,则可以将机器人设置为使用静态 IP,因为您不确定未来的网络配置,但如果您要将路由器连接到更大的网络,请务必与网络管理员交谈。

开发机器

  • 在此网络配置中,您需要将 **intera.sh**脚本指向以下任一位置:
    1. ROS_IP = "<开发计算机的 IPV4 地址>"
      • 通过尝试 ping <开发计算机的 IPV4 地址>来验证连接
    2. ROS_HOSTNAME = "<开发计算机的主机名>.local"
      • 验证尝试 ping <开发计算机的主机名>.local 的连接

直接连接到企业或大学网络

另一种可行的网络配置是将 Sawyer 直接连接到您的公司或大学网络。在这里,您需要确保 DHCP 服务器可用,并且您的名称服务器可以将 Sawyer 的主机名解析为 IP 地址。

您可以将 Sawyer 设置为在此配置中使用"自动"寻址或静态 IP 配置。

**注意:**如果要设置静态 IP,则需要与网络管理员联系以获取适当的 IP 供您分配,以避免网络冲突。

索耶

在此网络配置中,您可以使用 ROS_IP 或ROS_HOSTNAME ROS 命名约定

  • 在此设置中,我们建议使用 ROS_HOSTNAME 约定。这将取决于您的DNS以及没有其他人注册您的主机名的副本(因此请选择一个唯一的主机名),但在此网络配置中将非常稳定。
    • 如果您可以 ping <robot hostname>则网络正常工作。
  • 如上一节所述,ROS_IP是最通用的 ROS 命名约定,适用于大多数网络配置,但在超出租约时容易受到自动 IP 更改的影响。
    • 如果您可以 ping <机器人 IP>则网络正常工作。

开发机器

  • 在此网络配置中,您需要将 **intera.sh**脚本指向以下任一位置:
    1. ROS_IP = "<开发计算机的 IPV4 地址>"
      • 通过尝试 ping <开发计算机的 IPV4 地址>来验证连接
    2. ROS_HOSTNAME = "<开发计算机的主机名>"
      • 通过尝试 ping <开发计算机的主机名>来验证连接

直接网络配置

如果您没有 DHCP 服务器或其他网络基础结构,或者只想将开发工作站直接连接到 Sawyer,则可以使用以下网络配置和步骤来实现。

交换机配置图

机器人

在此设置中,您需要将机器人设置为使用"自动"寻址,并且可以在 ROS_IP 和 ROS_HOSTNAME.local 之间进行选择,以符合您的 ROS 命名约定。

  1. ROS_HOSTNAME.local 是我们在此设置中为机器人推荐的 ROS 命名协议。它在这种网络配置中非常稳定,只有在您从机器人切换到单独的子网时才需要调整。
    • 如果您可以 ping <robot hostname>.local,则网络工作正常
  2. ROS_IP是最可靠的命名方法,如果你知道机器人会保留它的.知识产权。此命名协议适用于所有网络配置,只要您有可靠的机器人路由即可。
    • 如果您可以ping<机器人ip>则网络工作正常。
    • **注意:**如果您对使用此命名约定感兴趣,则可以将机器人设置为使用静态 IP,因为您不确定未来的网络配置,但如果您要将路由器连接到更大的网络,请务必与网络管理员交谈。

开发机器

  • 在此网络配置中,您需要将 **intera.sh**脚本指向以下任一位置:
    1. ROS_IP = "<开发计算机的 IPV4 地址>"
      • 通过尝试 ping <开发计算机的 IPV4 地址>来验证连接
    2. ROS_HOSTNAME = "<开发计算机的主机名>.local"
      • 通过尝试 ping <开发计算机的主机名>.local 来验证连接

Avahi 配置步骤

这些步骤假设您与机器人的以太网连接位于 enx8ca 上。您的网络设备可能具有不同的名称,或者只是 eth0。请按照以下步骤找到它:

  • 关闭 Sawyer 并断开以太网电缆。
  • 使用 5 类以太网电缆将笔记本电脑/工作站连接到 Sawyer。
  • 给索耶通电。
  • 如有必要,请禁用笔记本电脑上的防火墙:
bash 复制代码
sudo ufw disable
  • 关闭 Ubuntu Network-Manager 以防止干扰:
  • 转到桌面右上角的网络图标下拉菜单。
  • 确保未选中"启用网络"(如果选中,请选择菜单中的选项以禁用)
  • 通过 ifconfig 查找您的以太网设备
bash 复制代码
ifconfig -a
  
    enx8ca Link encap:Ethernet
    ...
    ...
    lo     Link encap:Local Loopback
    ...
    ...
    wlp2s0    Link encap:Ethernet

忽略任何环回或"wlp"无线设备。在 Ubuntu 14.04 及更早版本上,这通常默认为"eth0"。在 16.04 及更高版本中,这些设备的名称通常以"en"开头,后跟一堆字母和数字。例如,我的 USB 以太网加密狗显示为"enx8ca",但您的加密狗可能会有所不同(或只是"eth0")。

在以下步骤中,将"enx8ca"替换为您的以太网设备。

  • 检查 enx8ca 的状态:
bash 复制代码
ifconfig enx8ca

您不应在"inet"下看到任何 IP 地址。

  • 使用 Avahi 将 IP 地址指定为"enx8ca"(运行 avahi-autoipd 后不要关闭终端):
bash 复制代码
sudo avahi-autoipd enx8ca
  • 确保已成功声明 IP 地址。例如:
复制代码
Found user 'avahi-autoipd' (UID 104) and group 'avahi-autoipd' (GID 111). Successfully called chroot(). Successfully dropped root privileges. Starting with address 169.254.8.16 Callout BIND, address 169.254.8.16 on interface enx8ca Successfully claimed IP address 169.254.8.16

使此终端在后台运行。

  • 打开新终端以继续。
  • 通过运行 avahi-browse 查找机器人的本地主机名:
复制代码
$ avahi-browse -a -r

Note: The default local hostname of the robot is the Serial Number followed by ".local". Ex: "011303P0017.local"


故障 排除

请参阅 **ROS 网络设置指南,**了解常见的 ROS 网络问题和有用的调试步骤,以检查您的基本 ROS 连接。

工作站设置

编辑于: 星期一, 30 五月, 2022 at 12:53 PM


本教程介绍开发工作站的设置。


内容


所需硬件

  • Sawyer机器人和开发人员工作站

工作站要求

  • 能够运行以下 Ubuntu 和 ROS 版本之一的开发工作站:
    • Ubuntu 20.04 LTSROS Noetic
    • Ubuntu 18.04 LTSROS Melodic (推荐)
    • Ubuntu 16.04 LTSROS Kinetic(已弃用)
    • Ubuntu 14.04 LTSROS Indigo(已弃用)
  • 开发工作站应具有以下最低规格:
    • Intel i5 或以上
    • 4GB或以上内存
    • 至少 7 GB 的可用磁盘空间
    • 以太网端口
    • 如果您的应用程序需要任何可视化 (RViz) 或模拟 (Gazebo),建议使用具有专有 NVidia 驱动程序的专用 NVidia 显卡

安装 Ubuntu

遵循标准的 Ubuntu 安装说明:

  • 通过选择适合您的计算机的"桌面 CD"映像来下载安装程序映像文件:

|------------------------------------------------------------------------|---------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| Ubuntu的 20.04 | Ubuntu 18.04 (推荐) | Ubuntu 16.04 (已弃用) | Ubuntu 14.04 (已弃用) |


打开终端应用程序

在计算机中搜索终端程序包,然后打开它:

工作站设置教程的其余部分将通过在此终端提示符中键入命令来进行。


安装 ROS

ROS Noetic (Ubuntu 20.04)

配置 Ubuntu 存储库

配置您的 Ubuntu 存储库以允许"受限"、"宇宙"和"多元宇宙"。您可以按照 **Ubuntu 指南**获取有关执行此操作的说明。

很可能,它们已经正确配置,您只需要确认配置即可。

设置 sources.list

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'</code></span></span>

通用

设置密钥

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt install curl # if you haven't already installed curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -</code></span></span>

通用
更新到最新的软件列表

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt-get update</code></span></span>

通用
安装 ROS Noetic Desktop Full

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt-get install ros-noetic-desktop-full</code></span></span>

通用
用于构建包的依赖项

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential</code></span></span>

通用
初始化 rosdep

rosdep 使您能够轻松地为要编译的源代码安装系统依赖,并在 ROS 中运行一些核心组件所必需。

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo rosdep init
$ rosdep update</code></span></span>

通用

ROS Melodic (推荐 Ubuntu 18.04)

配置 Ubuntu 存储库

配置您的 Ubuntu 存储库以允许"受限"、"宇宙"和"多元宇宙"。您可以按照 **Ubuntu 指南**获取有关执行此操作的说明。

很可能,它们已经正确配置,您只需要确认配置即可。

设置 sources.list

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'</code></span></span>

通用

设置密钥

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt install curl # if you haven't already installed curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -</code></span></span>

通用
更新到最新的软件列表

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt-get update</code></span></span>

通用
完整安装ROS Melodic Desktop

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt-get install ros-melodic-desktop-full</code></span></span>

通用
用于构建包的依赖项

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential</code></span></span>

通用
初始化 rosdep

rosdep 使您能够轻松地为要编译的源代码安装系统依赖,并在 ROS 中运行一些核心组件所必需。

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo rosdep init
$ rosdep update</code></span></span>

通用

ROS Kinetic (Ubuntu 16.04 已弃用)

配置 Ubuntu 存储库

配置您的 Ubuntu 存储库以允许"受限"、"宇宙"和"多元宇宙"。您可以按照 **Ubuntu 指南**获取有关执行此操作的说明。

很可能,它们已经正确配置,您只需要确认配置即可。

设置 sources.list

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'</code></span></span>

通用

设置密钥

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt install curl # if you haven't already installed curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -</code></span></span>

通用
更新到最新的软件列表

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt-get update</code></span></span>

通用
完整安装ROS Kinetic Desktop

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt-get install ros-kinetic-desktop-full</code></span></span>

通用
用于构建包的依赖项

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential</code></span></span>

通用
初始化 rosdep

rosdep 使您能够轻松地为要编译的源代码安装系统依赖,并在 ROS 中运行一些核心组件所必需。

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo rosdep init
$ rosdep update</code></span></span>

通用

ROS Indigo(Ubuntu 14.04 已弃用)

配置 Ubuntu 存储库

配置您的 Ubuntu 存储库以允许"受限"、"宇宙"和"多元宇宙"。您可以按照 **Ubuntu 指南**获取有关执行此操作的说明。

很可能,它们已经正确配置,您只需要确认配置即可。

设置 sources.list

language-generic 复制代码
<span style="color:#6d6d6d"><span style="color:#7c706b"><code class="language-generic">$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'</code></span></span>

通用

设置密钥

language-generic 复制代码
sudo apt install curl # if you haven't already installed curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

通用
更新到最新的软件列表

language-generic 复制代码
sudo apt-get update

通用
安装 ROS Indigo Desktop Full

language-generic 复制代码
sudo apt-get install ros-indigo-desktop-full

通用
注意:在安装过程中,您可能会收到有关"hddtemp"的提示。您可以放心地回答"否"。
用于构建包的依赖项

初始化 rosdep

rosdep 使您能够轻松地为要编译的源代码安装系统依赖,并在 ROS 中运行一些核心组件所必需。

language-generic 复制代码
 sudo rosdep init
rosdep update

通用
安装 rosdep

language-generic 复制代码
 sudo apt-get install python-rosinstall

通用


创建开发工作区

创建ROS工作空间

language-generic 复制代码
mkdir -p ~/ros_ws/src
# ros_ws (short for ROS Workspace)

通用

源ROS设置

而不是"XXX",在相应的 ROS 版本中输入(例如 noetic 或 melodic)

language-generic 复制代码
 source /opt/ros/XXX/setup.bash

通用

ROS Melodic 示例:

language-generic 复制代码
source /opt/ros/melodic/setup.bash

通用

language-generic 复制代码
cd ~/ros_ws
$ catkin_make

通用


安装 Intera SDK 依赖项

ROS Noetic (Ubuntu 20.04)

language-html 复制代码
 sudo apt-get update
$ sudo apt-get install git-core python3-wstool python3-vcstools python3-rosdep ros-noetic-control-msgs ros-noetic-joystick-drivers ros-noetic-xacro ros-noetic-tf2-ros ros-noetic-rviz ros-noetic-cv-bridge ros-noetic-actionlib ros-noetic-actionlib-msgs ros-noetic-dynamic-reconfigure ros-noetic-trajectory-msgs ros-noetic-rospy-message-converter
$ pip install argparse

[HTML全

ROS Melodic (推荐 Ubuntu 18.04)

language-generic 复制代码
sudo apt-get update
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-melodic-control-msgs ros-melodic-joystick-drivers ros-melodic-xacro ros-melodic-tf2-ros ros-melodic-rviz ros-melodic-cv-bridge ros-melodic-actionlib ros-melodic-actionlib-msgs ros-melodic-dynamic-reconfigure ros-melodic-trajectory-msgs ros-melodic-rospy-message-converter

通用

ROS Kinetic (Ubuntu 16.04 已弃用)

language-generic 复制代码
sudo apt-get update
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-kinetic-control-msgs ros-kinetic-joystick-drivers ros-kinetic-xacro ros-kinetic-tf2-ros ros-kinetic-rviz ros-kinetic-cv-bridge ros-kinetic-actionlib ros-kinetic-actionlib-msgs ros-kinetic-dynamic-reconfigure ros-kinetic-trajectory-msgs ros-kinetic-rospy-message-converter

通用

ROS Indigo(Ubuntu 14.04 已弃用)

language-generic 复制代码
 sudo apt-get update
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-indigo-control-msgs ros-indigo-joystick-drivers ros-indigo-xacro ros-indigo-tf2-ros ros-indigo-rviz ros-indigo-cv-bridge ros-indigo-actionlib ros-indigo-actionlib-msgs ros-indigo-dynamic-reconfigure ros-indigo-trajectory-msgs ros-indigo-rospy-message-converter

通用


安装Intera Robot SDK

在工作站上下载 SDK

将所有必需的 Github 存储库签出到 ROS 工作区源目录中: 使用 git clone 或直接从 Github 下载包:

language-generic 复制代码
 cd ~/ros_ws/src
$ wstool init .
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
$ wstool update

通用

源ROS设置

而不是"XXX",在相应的 ROS 版本中输入(例如 noetic 或 melodic)

language-generic 复制代码
source /opt/ros/XXX/setup.bash

通用

ROS Melodic 示例:

language-generic 复制代码
source /opt/ros/melodic/setup.bash

通用

language-generic 复制代码
cd ~/ros_ws
catkin_make</code></span></span>

通用


配置机器人通信/ROS工作区

此步骤介绍 **ROS 环境**的配置和设置。本节假设您已通过以太网将工作站链接到机器人。

**重要提示:**通过控制器外部的以太网端口连接到机器人。连接到控制器门内的以太网端口将不起作用(这是一个诊断端口,只有 Rethink 员工才能访问)。

​编辑

有关建议的网络配置,请参阅**网络设置**。


Intera.sh ROS环境设置

intera.sh 脚本是一个方便的脚本,可以直观地修改核心ROS环境组件。这个用户编辑的脚本将允许最快和最简单的 ROS 设置。

更多信息和详细说明可在 SDK Shell 页面上找到。


复制 intera.sh 脚本

intera.sh 文件已存在于 intera_sdk 存储库中,请将该文件复制到 ros 工作区中。

$ cp ~/ros_ws/src/intera_sdk/intera.sh ~/ros_ws


自定义 intera.sh 脚本

请编辑 intera.sh shell 脚本,进行必要的修改以描述您的开发电脑。

使用您喜欢的编辑器(例如使用 gedit

language-generic 复制代码
 cd ~/ros_ws
 gedit intera.sh</code></span></span>

通用

修改"robot_hostname"字段

机器人的主机名默认为控制器的序列号 ,而不是机器人的序列号。序列号可以位于机器人控制器盒的背面。除非您打算修改默认网络 配置,否则请在 robot_hostname.local 字段中将控制器序列号末尾的".local"后缀保留。

修改"your_ip"字段

修改"your_ip"是计算机的主机名或 PC 的 IP 地址。我们建议您不要在机器人和工作站之间使用 WiFi 连接。

language-generic 复制代码
your_ip="192.168.XXX.XXX"

通用

用于识别 IP 地址的有用命令:

language-generic 复制代码
ifconfig
# Result will be contained in the 'inet addr' field (Ubuntu).

通用

或者,你可以选择使用开发电脑的主机名,而不是电脑的 IP 地址。有关说明,请按右侧的展开。

您可以编辑"your_hostname"字段(仅当不使用"your_ip"时):

language-generic 复制代码
your_hostname="my_computer.local

通用

**重要提示:**此主机名必须可解析为 Sawyer。

重要: 仅设置 ROS_IP *OR* ROS_HOSTNAME任一。

同时设置ROS_IP和ROS_HOSTNAME将导致ROS_HOSTNAME优先,从而导致环境设置混乱。使用"#"作为前导字符注释掉未使用的方法。

验证"ros_version"字段

验证 'ros_version' 字段是否与您正在运行的 ROS 版本匹配:

此字段将默认为"indigo"。要使用其他 ROS 版本,请更新:

|-------------------------------------------------|--------------------------------------------------|--------------------------------------------------|-------------------------------------------------|
| ROS诺蒂克 | ROS旋律 | ROS动力学 | ROS 靛蓝 |
| language-generic ros_version="noetic" 通用 | language-generic ros_version="melodic" 通用 | language-generic ros_version="kinetic" 通用 | language-generic ros_version="indigo" 通用 |

保存并关闭脚本 intera.sh

请保存并关闭 intera.sh 脚本。

初始化 SDK 环境

从现在开始,你的 ROS 环境设置应该很简单,就像从 Catkin 工作区的根目录中获取 intera.sh 脚本一样:

language-generic 复制代码
cd ~/ros_ws
./intera.sh</code></span>

通用


验证环境

查看和验证 ROS 环境设置的一个有用命令是:

language-generic 复制代码
 env | grep ROS

通用

此时的重要字段:

ROS_MASTER_URI - 现在应该包含机器人的主机名。

ROS_IP - 这应该包含工作站的 IP 地址。

ROS_HOSTNAME - 如果不使用工作站的 IP 地址,则ROS_HOSTNAME字段应包含 PC 的主机名。否则,此字段不应可用。

尝试通过键入以下命令从机器人获取 rostopic 列表:

language-generic 复制代码
 rostopic list

通用

您可以从命令行输出中看到类似于以下内容的 rostopic 列表:


设置 RVIZ

我们还可以设置 Rviz 来查看机器人模型,使用以下方法从正确初始化的环境启动 Rviz:

language-generic 复制代码
 rosrun rviz rviz

通用

将固定框架设置为 /base

信息:"固定框架"为您的可视化提供静态的基本参考。任何进入rviz的传感器数据都将转换为该参考帧,以便它可以在虚拟世界中正确显示。

​编辑

点击添加按钮将机器人模型添加到Rviz中,然后在列表中选择机器人模型,按OK添加。

现在,您可以在 Rivz 上可视化您的机器人!下一篇: 你好机器人!

相关推荐
knighthood200118 分钟前
解决:ros进行gazebo仿真,rviz没有显示传感器数据
c++·ubuntu·ros
云卓SKYDROID23 分钟前
除草机器人算法以及技术详解!
算法·机器人·科普·高科技·云卓科技·算法技术
985小水博一枚呀29 分钟前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
AltmanChan30 分钟前
大语言模型安全威胁
人工智能·安全·语言模型
985小水博一枚呀33 分钟前
【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer·迁移学习
数据与后端架构提升之路43 分钟前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
爱技术的小伙子1 小时前
【ChatGPT】如何通过逐步提示提高ChatGPT的细节描写
人工智能·chatgpt
深度学习实战训练营2 小时前
基于CNN-RNN的影像报告生成
人工智能·深度学习
昨日之日20064 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_4 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测