探索 Jetson Nano 为机器人提供的强大功能,机器人技术的一个有前途的组合。

介绍

近年来,科学技术的发展给我们的生活带来了许多新的产品和服务,包括机器人在各个领域的集成。机器人已经成为我们生活中必不可少的一部分,从送货机器人到智能家居语音助手。

在本文中,我们将讨论一款机械臂,这是一种能够进行科学实验和教育方面的机械臂。

什么是Jetson Nano?

Jetson Nano 是一种适用于机器学习应用的模块系统 (SoM),是边缘应用中 AI 的绝佳工具。

Jetson Nano有一个基于Maxwell的GPU,其中包含128个CUDA内核,能够每秒计算5 teraflops(.5 TFLOPs)。凭借其强大的ARM Cortex A57处理器和4GB LPDDR4 RAM,Nano是一款功能强大的小型计算机。它还支持多种外围设备,包括千兆以太网、HDMI 2.0、DisplayPort 1.4、2 个 DSI 连接器、一个 M.2 PCIe 连接器、4 个 USB 3.0 端口和两个 CSI 相机连接器(用于 Pi 相机等相机)。

它还具有一个40针GPIO连接器,其布局与Raspberry Pi相同,使制造商和开发人员能够轻松重用以前项目中的某些模块和电路。

随着ChatGPT的出现,AI再次成为全球关注的焦点。从现在开始,值得从机械臂的角度了解人工智能趋势。

机械臂

一种嵌入Jetson Nano的机械臂,是一个开源的机械臂,这意味着源代码和硬件设计可供公众使用。这使用户能够修改和定制手臂以满足他们的特定需求。该arm还与各种软件和编程语言兼容,包括Python,ROS和myBlockly。

规范

让我们看一下下表,看看它的具体规格是什么样的。

这是一个 DH 参数

也许您对Jetson Nano和Raspberry Pi之间的区别感到好奇。我们将简要介绍使用 Jetson Nano 作为机器人嵌入式手臂的优势。

在处理性能方面,Jetson Nano采用了四核ARM Cortex-A57 CPU和128核NVIDIA Maxwell GPU,比Raspberry Pi的四核ARM Cortex-A72 CPU更强大。ARM Cortex-A57 CPU采用64位架构,时钟速度为1.43GHz,提供更高的计算性能。NVIDIA Maxwell GPU 专为深度学习等高性能计算任务而设计,具有高并行计算和大规模浮点计算能力。

在深度学习性能方面,Jetson Nano的GPU支持CUDA、TensorFlow等深度学习框架,可以加速深度学习模型的训练和推理。此外,Jetson Nano 还嵌入了 NVIDIA TensorRT 深度学习推理引擎,进一步提升了深度学习模型的推理性能。虽然Raspberry Pi的性能也可以支持一些深度学习应用程序,但由于其处理器和GPU的限制,其性能相对较弱。

总体而言,如果一个项目需要高性能处理器,Jetson Nano将是最佳选择,而Raspberry Pi基于其庞大的社区和世界上最大的开源硬件数据而拥有自己的优势。

如何使用?

要开始使用机械臂,我们只需要一台显示器、一个键盘和一个鼠标。我们可以使用一个名为pymycobot的Python库来控制机械臂的移动,该库通过其开放的API提供了许多控制接口。有了这个库,我们可以轻松地为机器人手臂开发应用程序。

我们利用pymycobot提供的API来控制机械臂的动作,并编排舞蹈表演。

import serial
from pymycobot import MyCobot
import time
mc = MyCobot('/dev/ttyTHS1',115200)
mc.send_angles([0,0,0,0,0,0],80)
time.sleep(1)
for count in range(2):
mc.send_angles([(-0.17),(-94.3),118.91,(-39.9),59.32,(-0.52)],80)
time.sleep(1.2)
mc.send_angles([67.85,(-3.42),(-116.98),106.52,23.11,(-0.52)],80)
time.sleep(1.7)
mc.send_angles([(-38.14),(-115.04),116.63,69.69,3.25,(-11.6)],80)
time.sleep(1.7)
mc.send_angles([2.72,(-26.19),140.27,(-110.74),(-6.15),(-11.25)],80)
time.sleep(1)
mc.send_angles([0,0,0,0,0,0],80)

复制

我们还可以在机械臂的末端安装一个摄像头来探索机器视觉。

这是openCV开发的人脸识别功能的代码。


def image_info():
# load cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# input photo
img = cv2.imread('maya.png')
# turn to grays
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# check human face
faces = face_cascade.detectMultiScale(img, 1.1, 4)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
center_x = (x+w-x)//2+x
center_y = (y+h-y)//2+y
cv2.circle(img,(center_x,center_y),20,(0,255,255),2)
# show
plt.imshow(img)
plt.show()

在Raspberry Pi 4B和Jetson Nano上运行此面部识别代码显示出明显的速度差异,Jetson Nano返回结果的速度比Raspberry Pi快1-2秒。

让我们先了解算力意味着什么。计算能力通常以每秒浮点运算数 (FLOPS) 来衡量。FLOPS是一秒钟内可以完成的浮点运算数,用于评估计算机系统的性能。在深度学习领域,FLOPS通常用于衡量模型的计算复杂度和性能。例如,具有较高 FLOPS 值的模型意味着它需要更多的计算资源进行训练和推理,但它也可能获得更好的性能。

Jetson Nano 配备了 472 GFLOPS 的 GPU 计算能力,而根据官方数据,Raspberry Pi 4B 的浮点性能约为 3 GFLOPS。这可以解释上述情况。

未来与展望

随着人工智能技术的不断发展,嵌入式机器人的应用前景越来越广阔。未来,我们可以期待这种嵌入式六轴机械臂具有更广泛的应用领域,涵盖更多领域。例如,在工业、医疗、农业和教育领域,这种机械臂具有广泛的应用前景。在工业领域,可用于生产线上的自动化生产,提高生产效率和质量;在医疗领域,可用于手术、康复等方面,帮助医生更好地为患者服务;在农业部门,可用于农业生产的种植、收获等各个环节,提高农业生产效率和质量;在教育领域,它可以用于机器人编程教育,帮助学生更好地学习编程和机器人技术。

除了应用领域的扩大,随着技术的不断进步,这种机械臂也将不断发展。例如,未来可能会出现更先进的控制算法,使手臂的运动更加精确和灵活;更先进的传感器技术可能会出现,使手臂能够更准确地感知周围环境;更先进的深度学习技术可能会出现,使手臂能够智能地完成各种任务。总之,这种嵌入式六轴机械臂具有广阔的应用前景和发展空间,我们可以期待它在未来继续创新和进步。