在這個項目中,我們將配置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鍵盤和鼠標
資源
適用于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)。
圖1:SSH遠程連接應用程序。(來源:貿澤電子)
安裝完成后,我們可以連接到AMD Kria KR 260板(圖2),這將允許我們在KR 260文件系統中遠程開發應用程序。
圖2:建立SSH遠程連接。(來源:貿澤電子)
為了能夠使用X11轉發,我們必須首先在我們的開發機器上安裝cXsrv Windows X Server(在參考資料部分中提供)。運行X服務器并按照圖3-6所示進行配置。
圖三:X服務器顯示設置。(來源:貿澤電子)
圖4:X Server客戶端啟動設置。(來源:貿澤電子)
圖5:X服務器額外設置。(來源:貿澤電子)
圖6:X服務器已完成配置。(來源:貿澤電子)
通過在開發計算機上的命令窗口中運行以下命令連接到顯示器:
set DISPLAY=127.0.0.1:0.0
然后,我們可以啟動與AMD Kria KR 260板的SSH連接,并開始開發機器人應用程序。
ssh -Y @
當它運行時,機械臂將移動,您將在X Server上看到此移動的可視化效果(圖7)。
圖7:X Server機械臂可視化(來源:貿澤電子)
結束
機器人可能很復雜。在這個項目中,我們已經看到AMD Kria? KR 260套件可以使用ROS 2快速開發機器人解決方案。KR260能夠加速可編程邏輯元件內的功能,或在可編程邏輯內集成其他系統控制元件,如時間敏感網絡。
AMD和AMD箭頭徽標、Kria及其組合是Advanced Micro Devices,Inc.的商標。本文中使用的其他產品名稱僅用于識別目的,可能是其各自所有者的商標。
作者:Adam Taylor for Mouser Electronics
審核編輯 黃宇
-
amd
+關注
關注
25文章
5466瀏覽量
134087 -
機器人
+關注
關注
211文章
28379瀏覽量
206914 -
ROS
+關注
關注
1文章
278瀏覽量
17001 -
機器人手臂
+關注
關注
1文章
7瀏覽量
2577
發布評論請先 登錄
相關推薦
評論