0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AMD Kria™ KR 260套件+ROS 2快速开发机器人解决方案

eeDesigner 来源:Adam Taylor for Mouser Electro 作者:Adam Taylor for Mouse 2024-06-21 16:35 次阅读

在这个项目中,我们将配置AMD Kria™ KR 260机器人入门套件来控制Trossen Robotics ReactorX 150机器人手臂。这个复杂的机器人手臂使用ROBOTIS ® IXEL伺服系统,其中不仅包含电机,还包含微控制器网络功能。虽然这使得机器人应用所需的复杂电机驱动成为可能,但这也意味着每个伺服系统都有几个不同的驱动和控制机制。通常,当使用这种复杂的伺服和机器人应用时,需要大量的处理来规划和解决机器人运动。

为了与这些机器人进行交互和控制,工程师们经常使用运行在Linux上的机器人操作系统ROS)。最常用的ROS版本是ROS 2,它更新了ROS框架和工具,以与更广泛的环境一起工作,提供对实时环境的支持,并使用显著更新的API。ROS 2为开发人员提供了硬件驱动程序、机器人模型、数据库等功能,并支持感知和同步定位与地图(SLAM)。ROS 2还提供了一系列工具来帮助系统的开发或操作,例如提供3D可视化的RViz和模拟器Gazebo。

ROS 2是围绕图架构构建的;在此架构中,处理发生在可以接收和发布有关节点的数据的节点中,例如传感器,控制,规划,执行器定位或当前状态。节点通过主题连接在ROS图上,主题是节点可以发布数据和接收信息通信管道。沿着节点和主题,节点还可以广告服务。这些服务具有单一结果,例如捕获视频帧、对传感器进行采样或打开执行器。

物料清单

AMD Kria™ KR 260机器人入门套件

显示器与DisplayPort™兼容

USB键盘和鼠标

ROBOTIS ReactorX In150机械

资源

适用于AMD Kria™ KR 260机器人入门套件(Ubuntu)的Ubuntu Linux发行版映像

AMD Kria KR260机器人入门套件(AMD)

VcXsrv Windows X Server Files文件

软件Setup

在本项目中,我们将在AMD Kria™ KR 260机器人入门套件上安装Trossen Robotics软件包和ROS 2,这将使您能够控制机器人手臂。

安装Ubuntu

首先下载并安装AMD Kria™ KR 260套件的Ubuntu Linux发行版映像,该映像可在参考资料部分找到。映像可用后,按照AMD在参考资料部分的Kria KR 260机器人入门套件入门中提供的说明将映像闪存到SD卡。

一旦您成功启动AMD Kria KR 260套件,您将需要更新Ubuntu安装,以确保我们可以正确安装ROS 2。

安装resolvconf。

sudo apt update

sudo apt install resolvconf

安装resolvconf后,确保它正在运行。

sudo systemctl status resolvconf.service

确认服务正在运行后,添加首选DNS服务器。在这个例子中,我们使用Google DNS。

echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolvconf/resolv.conf.d/head

echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolvconf/resolv.conf.d/head

由于我们进行了更改,因此需要重新启动服务。

sudo systemctl restart resolvconf.service

sudo systemctl restart systemd-resolved.service

防止KR260上的Ubuntu进入睡眠状态。

sudo gsettings set org.gnome.desktop.session idle-delay 0

sudo systemctl mask suspend.target

安装ROS 2

为了安装ROS 2和控制Trossen Robotics X系列手臂的软件包,我们将稍微修改Raspberry Pi的指令,Raspberry Pi与AMD Kria™ KR 260套件一样,使用Arm64(aarch64)指令集架构。

Trossen的库支持的最新版本的ROS 2是ROS 2 Humble。使用以下命令安装ROS 2和Trossen库:

cd ~

sudo apt install curl

curl 'https://raw.githubusercontent.com/Interbotix/interbotix_ros_manipulators/main/interbotix_ros_xsarms/install/rpi4/xsarm_rpi4_install.sh' > xsarm_rpi4_install.sh

sed -i 's/sudo apt-get update && sudo apt -y upgrade/sudo apt-get update/g' xsarm_rpi4_install.sh

chmod +x xsarm_rpi4_install.sh

./xsarm_rpi4_install.sh -d humble -j rx150

演示应用程序

在AMD Kria™ KR 260套件上安装ROS 2后,我们将运行其中一个提供的演示应用程序。在KR260上打开两个终端窗口。

在第一个终端窗口中,输入以下命令:

ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=rx150

在第二个终端中,输入以下命令:

python3 /home/ubuntu/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/demos/python_ros2_api/bartender.py

这将运行一个演示机器人手臂控制的应用程序。

演示细分

通过检查这个应用程序中的代码,我们可以看到如何使用Python编程语言控制手臂。首先,我们需要从安装的InterbotiX库导入InterbotixManipulatorXS arm包。为此,请输入以下命令:from interbotix_xs_modules.arm import InterbotixManipulatorXS

安装这些包后,我们可以开始创建使用Python应用程序操纵手臂的应用程序。

查看示例代码,我们可以看到我们要做的第一件事是使用机器人的参数、模型、类型及其末端效应器对其进行初始化。

定义了机器人(在代码中显示为bot)后,应用程序首先检查机器人是否具有用于演示的正确关节数。一旦确认机器人适合演示,就可以使用几个Python命令来控制机器人,这些命令可以根据需要设置姿势或单个位置。也可以使用Python调用打开和关闭夹持器。

bot = InterbotixManipulatorXS("rx150", "arm", "gripper")

if (bot.arm.group_info.num_joints < 5):

print('This demo requires the robot to have at least 5 joints!')

sys.exit()

bot.arm.set_ee_pose_components(x=0.3, z=0.2)

bot.arm.set_single_joint_position("waist", np.pi/2.0)

bot.gripper.open()

bot.arm.set_ee_cartesian_trajectory(x=0.1, z=-0.16)

bot.gripper.close()

最后,演示结束时,安全地将机器人定位到原位。

bot.arm.go_to_home_pose()

bot.arm.go_to_sleep_pose()

了解了这一点,我们可以开始创建自己的自定义应用程序,如本视频所示。但首先,我们需要能够在AMD Kria™ KR 260板上远程开发应用程序。

远程开发

为了开发我们的远程应用程序,我们将在开发机器上使用Visual Studio Code。我们在开发机器上使用Visual Studio Code创建的Python应用程序将位于AMD Kria™ KR 260套件的文件系统中。这样做的好处是不需要连接显示器、键盘或鼠标,因为我们可以从开发环境访问所有内容。

我们还希望能够在开发应用程序时(在模拟模式或实际执行中)远程查看机器人手臂的可视化。

要启用远程开发和可视化,我们必须建立SSH连接并启用X11转发。

使用Windows Powershell通过以下命令安装OpenSSH。

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Install the OpenSSH Client

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# Start the sshd service

Start-Service sshd

# OPTIONAL but recommended:/code>

Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify

if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {

Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."

New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

} else {

Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."

}

安装OpenSSH后,使用以下命令创建一个密钥。

ssh-keygen

默认情况下,系统将保存密钥到C:Users/.ssh/id_rsa.

使用以下命令交换密钥。

type $env:USERPROFILE.sshid_rsa.pub | ssh ubuntu@ "cat >> .ssh/authorized_keys"

要从Visual Studio Code建立SSH连接,我们必须首先从扩展安装远程SSH选项(图1)。


wKgaomZ1QQWAAY0YAAEJBy4SaK0459.png

图1:SSH远程连接应用程序。(来源:贸泽电子

安装完成后,我们可以连接到AMD Kria KR 260板(图2),这将允许我们在KR 260文件系统中远程开发应用程序。

wKgZomZ1OzCAJkpGAAAg1F8rqEY955.png

图2:建立SSH远程连接。(来源:贸泽电子)

为了能够使用X11转发,我们必须首先在我们的开发机器上安装cXsrv Windows X Server(在参考资料部分中提供)。运行X服务器并按照图3-6所示进行配置。

wKgZomZ1QSKAZQhjAAHURiBFEGc365.png

图三:X服务器显示设置。(来源:贸泽电子)

wKgZomZ1QTOAGED3AAGX8RqLgNA290.png

图4:X Server客户端启动设置。(来源:贸泽电子)

wKgaomZ1QUmATgy3AAGeR6GD868141.png

图5:X服务器额外设置。(来源:贸泽电子)

wKgZomZ1QWeAFj55AADFOZBNgUk756.png

图6:X服务器已完成配置。(来源:贸泽电子)

通过在开发计算机上的命令窗口中运行以下命令连接到显示器:

set DISPLAY=127.0.0.1:0.0

然后,我们可以启动与AMD Kria KR 260板的SSH连接,并开始开发机器人应用程序。

ssh -Y @

当它运行时,机械臂将移动,您将在X Server上看到此移动的可视化效果(图7)。

wKgaomZ1QX-AV0VfAAQUGpuIE5M647.png

图7:X Server机械臂可视化(来源:贸泽电子)

结束

机器人可能很复杂。在这个项目中,我们已经看到AMD Kria™ KR 260套件可以使用ROS 2快速开发机器人解决方案。KR260能够加速可编程逻辑元件内的功能,或在可编程逻辑内集成其他系统控制元件,如时间敏感网络。

AMD和AMD箭头徽标、Kria及其组合是Advanced Micro Devices,Inc.的商标。本文中使用的其他产品名称仅用于识别目的,可能是其各自所有者的商标。

作者:Adam Taylor for Mouser Electronics

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5273

    浏览量

    132968
  • 机器人
    +关注

    关注

    208

    文章

    27390

    浏览量

    202350
  • ROS
    ROS
    +关注

    关注

    1

    文章

    274

    浏览量

    16787
  • 机器人手臂
    +关注

    关注

    1

    文章

    7

    浏览量

    2557
收藏 人收藏

    评论

    相关推荐

    AMD 机器人入门套件开启未来智慧工厂

    )和开发套件 产品组合的最新成员。作为一款面向机器人的可扩展、开箱即用型开发平台,Kria KR26
    的头像 发表于 05-18 16:19 3068次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>机器人</b>入门<b class='flag-5'>套件</b>开启未来智慧工厂

    AMD Kria KR260 DPU配置教程

    这篇文章我们将为 AMD Kria KR260AMD Vitis 上创建硬件加速平台。 我们将从 KR260 预设文件开始,添加平台所
    的头像 发表于 01-12 09:36 721次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Kria</b> <b class='flag-5'>KR260</b> DPU配置教程

    AMD Kria KR260 DPU配置教程2

    在上一篇文章中 开发者分享|AMD Kria KR260 DPU 配置教程 1 我们导出了 platform 的设计工程 XXX.xsa。接下来我们将使用 pfm.tcl 来生成 pl
    的头像 发表于 01-19 10:16 1355次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Kria</b> <b class='flag-5'>KR260</b> DPU配置教程2

    最新的达芬奇机器人开发套件方案

    科技提供的达芬奇机器人开发板,充分利用了达芬奇的技术优势,集成了图像处理,马达,探测传感器 接口(红外线或超声波),包含有各种例子源代码(输入、输出、定时器、串口、外部中断、机器人漫步、循迹等
    发表于 04-23 15:09

    STM32和ROS机器人的串口通信方案

    全网最实用的STM32和ROS机器人的串口通信方案
    发表于 08-11 07:27

    最实用的STM32和ROS机器人的串口通信方案

    全网最实用的STM32和ROS机器人的串口通信方案小白学移动机器人同名公众号:小白学移动机器人创作声明:内容包含虚构创作内容中的情节存在虚构
    发表于 08-20 06:33

    如何搭建实体机器人ros底盘

    目录介绍一、底盘主控板二、嵌入式开发板1. 与上位机pc的关系2. 与STM32主控板的关系介绍自下而上的分析实体机器人(差分轮速机器人)搭建中的关键过程。一、底盘主控板本部分搭建实体
    发表于 01-20 07:36

    怎样将微型ROS移植到机器人的RA MCU中呢

    瑞萨电子公司与专门从事中间解决方案的公司 eProsima 合作,将微型 ROS 移植到 RA 微控制器 (MCU) 中,以便更轻松地开发用于物联网 (IoT) 和工业系统的专业
    发表于 02-11 06:19

    [KV260视觉入门套件试用体验]+KV260 开发套件使用初体验

    1、写在前面 感谢ElecFans 小仙女姐姐的安排,在史上最热的7月初,收到了大名鼎鼎的AMD/XILINX 公司的 明星开发板KV2602、KV
    发表于 07-31 01:26

    【KV260视觉入门套件试用体验】KRS编译与安装

    KRS编译与安装 1. KRS是什么 KRS(Kria Robotics Stack)是Xilinx Kira基于ROS2二次开发机器人开发套件
    发表于 09-17 00:13

    【KV260视觉入门套件试用体验】KV260开发板初使用

    SOM 基于 Zynq UltraScale+ MPSoC EV 架构并配备风扇和散热器的主动散热解决方案用于加速工业级机器人解决方案开发,维护和商业化,同时使用自适应计算。
    发表于 09-18 14:56

    ROS机器人开发更便捷,基于RK3568J+Debian系统发布!

    库的支持,ROS系统提供丰富且功能强大的机器人算法库,如坐标变换、运动控制等。机器人开发者可根据开发需要,简单快捷地调用合适的算法库,以提高
    发表于 11-30 16:01

    Rpi SenseHAT与AMD-Xilinx Kria KR260和Petalinux的接口

    电子发烧友网站提供《Rpi SenseHAT与AMD-Xilinx Kria KR260和Petalinux的接口.zip》资料免费下载
    发表于 07-13 10:18 0次下载
    Rpi SenseHAT与<b class='flag-5'>AMD</b>-Xilinx <b class='flag-5'>Kria</b> <b class='flag-5'>KR260</b>和Petalinux的接口

    Kria KR260机器人入门套件:通过硬件加速释放机器人

    电子发烧友网站提供《Kria KR260机器人入门套件:通过硬件加速释放机器人.pdf》资料免费下载
    发表于 09-14 10:16 4次下载
    <b class='flag-5'>Kria</b> <b class='flag-5'>KR260</b><b class='flag-5'>机器人</b>入门<b class='flag-5'>套件</b>:通过硬件加速释放<b class='flag-5'>机器人</b>

    AMD Kria KR260 DPU配置教程3

    最后我们需要生成能够在 AMD Kria KR260 上运行的固件。
    的头像 发表于 01-26 09:33 721次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Kria</b> <b class='flag-5'>KR260</b> DPU配置教程3