在這個(gè)項(xiàng)目中,我們將配置AMD Kria? KR 260機(jī)器人入門套件來控制Trossen Robotics ReactorX 150機(jī)器人手臂。這個(gè)復(fù)雜的機(jī)器人手臂使用ROBOTIS ? IXEL伺服系統(tǒng),其中不僅包含電機(jī),還包含微控制器和網(wǎng)絡(luò)功能。雖然這使得機(jī)器人應(yīng)用所需的復(fù)雜電機(jī)驅(qū)動(dòng)成為可能,但這也意味著每個(gè)伺服系統(tǒng)都有幾個(gè)不同的驅(qū)動(dòng)和控制機(jī)制。通常,當(dāng)使用這種復(fù)雜的伺服和機(jī)器人應(yīng)用時(shí),需要大量的處理來規(guī)劃和解決機(jī)器人運(yùn)動(dòng)。
為了與這些機(jī)器人進(jìn)行交互和控制,工程師們經(jīng)常使用運(yùn)行在Linux上的機(jī)器人操作系統(tǒng)(ROS)。最常用的ROS版本是ROS 2,它更新了ROS框架和工具,以與更廣泛的環(huán)境一起工作,提供對(duì)實(shí)時(shí)環(huán)境的支持,并使用顯著更新的API。ROS 2為開發(fā)人員提供了硬件驅(qū)動(dòng)程序、機(jī)器人模型、數(shù)據(jù)庫等功能,并支持感知和同步定位與地圖(SLAM)。ROS 2還提供了一系列工具來幫助系統(tǒng)的開發(fā)或操作,例如提供3D可視化的RViz和模擬器Gazebo。
ROS 2是圍繞圖架構(gòu)構(gòu)建的;在此架構(gòu)中,處理發(fā)生在可以接收和發(fā)布有關(guān)節(jié)點(diǎn)的數(shù)據(jù)的節(jié)點(diǎn)中,例如傳感器,控制,規(guī)劃,執(zhí)行器定位或當(dāng)前狀態(tài)。節(jié)點(diǎn)通過主題連接在ROS圖上,主題是節(jié)點(diǎn)可以發(fā)布數(shù)據(jù)和接收信息的通信管道。沿著節(jié)點(diǎn)和主題,節(jié)點(diǎn)還可以廣告服務(wù)。這些服務(wù)具有單一結(jié)果,例如捕獲視頻幀、對(duì)傳感器進(jìn)行采樣或打開執(zhí)行器。
物料清單
AMD Kria? KR 260機(jī)器人入門套件
顯示器與DisplayPort?兼容
USB鍵盤和鼠標(biāo)
ROBOTIS ReactorX In150機(jī)械臂
資源
適用于AMD Kria? KR 260機(jī)器人入門套件(Ubuntu)的Ubuntu Linux發(fā)行版映像
AMD Kria KR260機(jī)器人入門套件(AMD)
VcXsrv Windows X Server Files文件
軟件Setup
在本項(xiàng)目中,我們將在AMD Kria? KR 260機(jī)器人入門套件上安裝Trossen Robotics軟件包和ROS 2,這將使您能夠控制機(jī)器人手臂。
安裝Ubuntu
首先下載并安裝AMD Kria? KR 260套件的Ubuntu Linux發(fā)行版映像,該映像可在參考資料部分找到。映像可用后,按照AMD在參考資料部分的Kria KR 260機(jī)器人入門套件入門中提供的說明將映像閃存到SD卡。
一旦您成功啟動(dòng)AMD Kria KR 260套件,您將需要更新Ubuntu安裝,以確保我們可以正確安裝ROS 2。
安裝resolvconf。
sudo apt update
sudo apt install resolvconf
安裝resolvconf后,確保它正在運(yùn)行。
sudo systemctl status resolvconf.service
確認(rèn)服務(wù)正在運(yùn)行后,添加首選DNS服務(wù)器。在這個(gè)例子中,我們使用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
由于我們進(jìn)行了更改,因此需要重新啟動(dòng)服務(wù)。
sudo systemctl restart resolvconf.service
sudo systemctl restart systemd-resolved.service
防止KR260上的Ubuntu進(jìn)入睡眠狀態(tài)。
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)指令集架構(gòu)。
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
演示應(yīng)用程序
在AMD Kria? KR 260套件上安裝ROS 2后,我們將運(yùn)行其中一個(gè)提供的演示應(yīng)用程序。在KR260上打開兩個(gè)終端窗口。
在第一個(gè)終端窗口中,輸入以下命令:
ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=rx150
在第二個(gè)終端中,輸入以下命令:
python3 /home/ubuntu/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/demos/python_ros2_api/bartender.py
這將運(yùn)行一個(gè)演示機(jī)器人手臂控制的應(yīng)用程序。
演示細(xì)分
通過檢查這個(gè)應(yīng)用程序中的代碼,我們可以看到如何使用Python編程語言控制手臂。首先,我們需要從安裝的InterbotiX庫導(dǎo)入InterbotixManipulatorXS arm包。為此,請(qǐng)輸入以下命令:from interbotix_xs_modules.arm import InterbotixManipulatorXS
安裝這些包后,我們可以開始創(chuàng)建使用Python應(yīng)用程序操縱手臂的應(yīng)用程序。
查看示例代碼,我們可以看到我們要做的第一件事是使用機(jī)器人的參數(shù)、模型、類型及其末端效應(yīng)器對(duì)其進(jìn)行初始化。
定義了機(jī)器人(在代碼中顯示為bot)后,應(yīng)用程序首先檢查機(jī)器人是否具有用于演示的正確關(guān)節(jié)數(shù)。一旦確認(rèn)機(jī)器人適合演示,就可以使用幾個(gè)Python命令來控制機(jī)器人,這些命令可以根據(jù)需要設(shè)置姿勢(shì)或單個(gè)位置。也可以使用Python調(diào)用打開和關(guān)閉夾持器。
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()
最后,演示結(jié)束時(shí),安全地將機(jī)器人定位到原位。
bot.arm.go_to_home_pose()
bot.arm.go_to_sleep_pose()
了解了這一點(diǎn),我們可以開始創(chuàng)建自己的自定義應(yīng)用程序,如本視頻所示。但首先,我們需要能夠在AMD Kria? KR 260板上遠(yuǎn)程開發(fā)應(yīng)用程序。
遠(yuǎn)程開發(fā)
為了開發(fā)我們的遠(yuǎn)程應(yīng)用程序,我們將在開發(fā)機(jī)器上使用Visual Studio Code。我們?cè)陂_發(fā)機(jī)器上使用Visual Studio Code創(chuàng)建的Python應(yīng)用程序?qū)⑽挥贏MD Kria? KR 260套件的文件系統(tǒng)中。這樣做的好處是不需要連接顯示器、鍵盤或鼠標(biāo),因?yàn)槲覀兛梢詮拈_發(fā)環(huán)境訪問所有內(nèi)容。
我們還希望能夠在開發(fā)應(yīng)用程序時(shí)(在模擬模式或?qū)嶋H執(zhí)行中)遠(yuǎn)程查看機(jī)器人手臂的可視化。
要啟用遠(yuǎn)程開發(fā)和可視化,我們必須建立SSH連接并啟用X11轉(zhuǎn)發(fā)。
使用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后,使用以下命令創(chuàng)建一個(gè)密鑰。
ssh-keygen
默認(rèn)情況下,系統(tǒng)將保存密鑰到C:Users/.ssh/id_rsa.
使用以下命令交換密鑰。
type $env:USERPROFILE.sshid_rsa.pub | ssh ubuntu@ "cat >> .ssh/authorized_keys"
要從Visual Studio Code建立SSH連接,我們必須首先從擴(kuò)展安裝遠(yuǎn)程SSH選項(xiàng)(圖1)。
圖1:SSH遠(yuǎn)程連接應(yīng)用程序。(來源:貿(mào)澤電子)
安裝完成后,我們可以連接到AMD Kria KR 260板(圖2),這將允許我們?cè)贙R 260文件系統(tǒng)中遠(yuǎn)程開發(fā)應(yīng)用程序。
圖2:建立SSH遠(yuǎn)程連接。(來源:貿(mào)澤電子)
為了能夠使用X11轉(zhuǎn)發(fā),我們必須首先在我們的開發(fā)機(jī)器上安裝cXsrv Windows X Server(在參考資料部分中提供)。運(yùn)行X服務(wù)器并按照?qǐng)D3-6所示進(jìn)行配置。
圖三:X服務(wù)器顯示設(shè)置。(來源:貿(mào)澤電子)
圖4:X Server客戶端啟動(dòng)設(shè)置。(來源:貿(mào)澤電子)
圖5:X服務(wù)器額外設(shè)置。(來源:貿(mào)澤電子)
圖6:X服務(wù)器已完成配置。(來源:貿(mào)澤電子)
通過在開發(fā)計(jì)算機(jī)上的命令窗口中運(yùn)行以下命令連接到顯示器:
set DISPLAY=127.0.0.1:0.0
然后,我們可以啟動(dòng)與AMD Kria KR 260板的SSH連接,并開始開發(fā)機(jī)器人應(yīng)用程序。
ssh -Y @
當(dāng)它運(yùn)行時(shí),機(jī)械臂將移動(dòng),您將在X Server上看到此移動(dòng)的可視化效果(圖7)。
圖7:X Server機(jī)械臂可視化(來源:貿(mào)澤電子)
結(jié)束
機(jī)器人可能很復(fù)雜。在這個(gè)項(xiàng)目中,我們已經(jīng)看到AMD Kria? KR 260套件可以使用ROS 2快速開發(fā)機(jī)器人解決方案。KR260能夠加速可編程邏輯元件內(nèi)的功能,或在可編程邏輯內(nèi)集成其他系統(tǒng)控制元件,如時(shí)間敏感網(wǎng)絡(luò)。
AMD和AMD箭頭徽標(biāo)、Kria及其組合是Advanced Micro Devices,Inc.的商標(biāo)。本文中使用的其他產(chǎn)品名稱僅用于識(shí)別目的,可能是其各自所有者的商標(biāo)。
作者:Adam Taylor for Mouser Electronics
審核編輯 黃宇
-
amd
+關(guān)注
關(guān)注
25文章
5539瀏覽量
135550 -
機(jī)器人
+關(guān)注
關(guān)注
212文章
29240瀏覽量
210763 -
ROS
+關(guān)注
關(guān)注
1文章
283瀏覽量
17468 -
機(jī)器人手臂
+關(guān)注
關(guān)注
1文章
7瀏覽量
2633
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
AMD 機(jī)器人入門套件開啟未來智慧工廠

AMD Kria KR260 DPU配置教程

AMD Kria KR260 DPU配置教程2

PROPHESEE 攜手 AMD,推出業(yè)界首款兼容 Kria? KV260 視覺 AI 入門套件的事件視覺解決方案

【書籍評(píng)測(cè)活動(dòng)NO.58】ROS 2智能機(jī)器人開發(fā)實(shí)踐
最實(shí)用的STM32和ROS機(jī)器人的串口通信方案
怎樣將微型ROS移植到機(jī)器人的RA MCU中呢
【KV260視覺入門套件試用體驗(yàn)】KRS編譯與安裝
【KV260視覺入門套件試用體驗(yàn)】KV260開發(fā)板初使用
Xilinx Kria KV260套件的第一個(gè)硬件項(xiàng)目

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

Kria KR260機(jī)器人入門套件:通過硬件加速釋放機(jī)器人

評(píng)論