用在ython中开发机器人应用程序

在这篇文章中,我们将探讨这个特性,并分享如何使用 Python 构建您自己的 ISAAC 应用程序的分步指南。我们在 ISAAC SDK 中介绍 Python 编程,并举例说明如何创建应用程序;如何使用代码、模块和数据流;以及如何处理不同的数据类型。我们用示例来总结文章,将子图添加到同一个应用程序中,并将其部署到 Jetson 上。我们还将向您展示如何使用 Jupyter 笔记本电脑,这是一个面向 Python 开发人员的强大 UI 工具。对于更高级的 Python 开发人员,我们还提供了在移动机器人上部署 ISAAC 应用程序以及在 ISAAC Sim 中部署协作机器人手臂的例子。

在 ISAAC SDK 中,数据由传感器生成,并在代码实例之间流动,直到它们被执行器消耗。要从加载的 codelet 创建实例,请在调用之前将以下代码添加到 Python 应用程序应用程序运行.

数据应该在代码之间流动。但是,必须在它们之间建立连接才能使数据流动。从文档中可以看出, CameraGenerator 有三个输出通道。选择 ColorCameraProto 消息发布到的 color _ left 频道。类似地,您可以看到 ColorCameraViewer 代码从 color_listener 通道读取消息。连接它们(称为“边缘”):

ISAAC SDK 允许您在应用程序中使用多个数据源:

在本节中,我们将解释如何在 Python 应用程序中使用这些数据类型。

如前所示, PythonAPI 提供了处理不同环境的灵活性。

使用真实的传感器数据是直观的,但是这样做并不总是实际可行的。木桶能帮上忙。 Cask 是用于记录 ISAAC SDK 中的消息的格式。在 ISAAC SDK 中,可以记录一个消息流,并在以后回放以用于调试或分析。要从 Realsense 摄像头录制图像流,请尝试在 //apps/samples/camera:record_realsense 运行示例应用程序。

有了录音桶,你可以在没有真正的传感器的情况下随时随地重放和播放消息流。假设记录的容器位于 /home/bob/cask/ 的文件夹中。您可以使用 Replay 代码来检索消息:

类似地,您可以向 Python 应用程序添加一个 cask 作为一个可能的选项,就像您使用 realseness camera 一样。这里,名称 color 是用于记录彩色相机图像流的通道名称。然后你就可以查看视频流,就好像它来自真实的摄像机一样。

如前所述,您已经有了一个 Python 应用程序,可以在记录的传感器数据( cask )和真实传感器数据( camera )之间切换。现在再添加一个可能的数据源:来自 ISAAC Sim Unity3D 的模拟传感器。将 Sim 选项添加到命令行参数源,并将模拟相机消息流连接到查看器以进行可视化,如以下代码示例所示:

启动 ISAAC 是 Unity3D :

镜头来自安装在模拟机器人上的模拟摄像机。试着在模拟图形用户界面( GUI )上玩一些可移动的物体,比如纳米盒子,看看模拟相机的工作原理和真相机一样。

正如您所注意到的,组件(从代码创建的实例)和连接它们的边组成了一个图形。这样的图可以从 JSON 文件加载,也可以根据需要从 Python 应用程序加载。有关详细信息,请参阅 MIG 。

在 Python 应用程序中,可以使用以下命令加载它:

当加载多个子图时,命名冲突 MIG ht 会发生,因为在任何应用程序中,节点都需要具有唯一的名称。若要避免此类冲突,请使用另一个参数加载子图:

现在有了一个 Python 应用程序。在真正的 Jetson 板上运行只需要一个命令:

使用 SSH 连接到您的 Jetson 板或从 GUI 打开一个终端并检查文件夹 /home/nvidia/deploy/bob/mybot-pkg 。如果您在 Jetson 和开发设置上使用不同的用户名,请将 nvidia 替换为 Jetson 板上的用户名,将 bob 替换为开发设置上的用户名。

使用以下命令在 Jetson 上运行应用程序:

如果您在 PC 机上使用 ISAAC Sim Unity3D ,则可以正常通信。

以类似于 Jetson 板或 X86 工作站的方式部署应用程序,并使用以下命令启动 Jupyter :

你现在可以走了。 run 函数被阻塞,只有在 robotic 应用程序停止时才返回。要以交互方式使用 robotics 应用程序,请相应地使用 start 和 stop 函数。

以下是应用程序中发生的情况。第一件事是加载一个子图,允许通过 TCP 与模拟器通信。

若要为关节生成平滑运动,请为节点加载另一个子图:

该子图封装 LQR 规划器的节点,生成当前关节状态和目标关节位置的命令。将仿真节点与规划器的节点连接起来,以使机械臂关节状态消息和命令消息在它们之间流动:

用 Python 编码的代码集 PyCodelet JointPositionControl 从滑块读取目标关节位置值,并将这些值作为 CompositeProto 消息发布:

然后, JointPositionControl 代码集连接到一个节点,并连接到 LQR planner 的目标输入通道:

启动应用程序应用程序启动你可以随意使用手臂。

与之前的应用程序一样,您可以将模拟摄影机通道连接到 ColorCameraViewer 代码板以可视化画面,并将 DepthCameraViewer 连接到可视化模拟深度传感器数据。

启动应用程序,模拟的摄像机镜头应该会出现在眼前:

在本文中,您使用 pythonapi 从头创建了一个机器人应用程序。您使应用程序可以使用真实的摄影机、录制的摄影机数据和模拟摄影机。我们还向您展示了如何使用 pythonapi 处理模拟移动机器人和模拟机械臂。做机器人玩得开心!

THE END
0.你还在手动操作机器人?用Python构建语音控制系统的7个关键环节第一章:Python机器人语音控制概述 在现代自动化系统中,语音控制技术正逐步成为人机交互的重要方式。利用Python开发机器人语音控制系统,不仅具备良好的可扩展性,还能结合丰富的开源库实现高精度的语音识别与指令解析。 语音控制的基本原理 语音控制的核心流程包括音频采集、语音识别、命令解析和动作执行。首先通过麦克风获取用jvzquC41dnuh0lxfp0tfv8KwpeOom8ftvkimg8igvcomu86752:7;@7
1.PS2无线控制器,适用于Arduino和Python编程科学教育,高级套件AI 机器人臂套件,MaxArm ESP32 开源无线控制智能机器人臂带 AI 视觉传感器套件 PS2 无线控制器,适用于 Arduino 和 Python 编程科学教育,高级套件 玩具和游戏 › 遥控电动玩具 › 机器人 ¥2,315.10¥2,315.10 会员0门槛免运费,查看详情。非会员满300元免运费。jvzquC41yy}/cvf|qp4dp8ir1D6DIMG4YJS
2.错过这8个Python控制库,你就等于错过了整个智能制造未来第一章:Python工业机器人编程概述 工业机器人在现代制造业中扮演着核心角色,而Python凭借其简洁的语法和强大的库支持,正逐渐成为控制和编程工业机器人的首选语言之一。通过Python,开发者可以高效地实现路径规划、运动控制、传感器集成以及与机器人操作系统的通信,大幅缩短开发周期并提升系统可维护性。 jvzquC41dnuh0lxfp0tfv8Hqfg]ikv4ctvodnn4fgvgjn|4375657>52
3.【行空板Python编程学习主控板】使用陀螺仪和语音识别的星球大战【行空板 Python编程学习主控板】使用陀螺仪和语音识别的星球大战BB-8机器人控制器[复制链接]本帖最后jvzquC41ddy/gn|qtnj/exr0ep5uj{jcf/7359686/7.37mvon
4.【永泰•科技】砥砺前行再创辉煌——永泰小学科技颁奖仪式3.海淀区中小学生创客编程秀Python趣味编程竞赛 在海淀区中小学生创客编程秀Python趣味编程竞赛中,我校有5位同学获得二等奖,获奖名单如下: 南思同 昝子嘉 王晨 王嘉睿 刘晓然 4.海淀区中小学生机器人智能大赛 在海淀区中小学生机器人智能大赛中,我校有4位同学获得三等奖,获奖名单如下: jvzquC41{v~y0kojfgjv0ls1z{ld1sfv1814=531v814=5344e78@640unuou
5.“科技之光点亮梦想”第四届怀柔区青少年机器人竞赛暨首届怀柔区竞赛设置了包含机器人竞赛、创意编程与智能设计大赛两大类别的6个分赛项的竞赛活动。比赛严格遵循北京青少年机器人竞赛、北京创意编程与智能设计大赛的赛项及规则,一是运用了线下技能测试的比赛方式对智能设计2个赛项进行选拔,二是在区级赛事中开展Python人工智能对抗赛,均系全市首次! 区政协副主席高永革、北京青少年科技活动中心主任张小虎、 jvzq<84dl0}fpvnpi0io1qw1jtzqz€44247168y424716;:a8288:A90ujznn
6.人工智能+机器人入门与实战全本书评在线阅读树莓派是一款基于ARM架构、Linux系统的极简计算机,既可以用于计算机编程教育,也可以作为机器人的控制核心。*种运行于树莓派上的编程语言是Python,这是当前人工智能领域*为流行的编程语言。机器视觉是人工智能中重要的细分研究领域,OpenCV则是当前机器视觉领域主流的源处理库,可以方便地用于计算机图像处理,并应用于面部识别jvzq<84g0fgoimfpi0ipo8utqf{dv|43;2733:=3:0nuou
7.RoboCom世界机器人开发者大赛——Python编程设计大赛决赛11月13日,2020 RoboCom世界机器人开发者大赛组委会传来喜讯,由信息工程学院机器人社团参赛团队许俊毅同学(明子成老师指导)晋级Python编程设计大赛决赛。2020 Python编程设计大赛是工业和信息化部人才交流中心、中国计算机教育联合会、IEEE人机协同及柔性制造技术委员会jvzquC41kg4ole0gjv0ls1635:h8h7786b:;8571vbinr0jvs
8.【小学·社团建设】保持好奇心,拥有探索力——小学科技社团介绍通过动手搭建,培养儿童的动手能力和想象力,并提升孩子认知周围事物的水平和创造力;通过机器人组装、编程、调试、控制等活动,了解传感器原理、机器人运动控制,学会图形化编程。在机器人社团里,学生能够主动参与科技学习和锻炼、体验动手实践的乐趣,形成创新的意识和习惯。同时机器人社团也为我校学生提供了一个了解最新技术jvzquC41yy}/d€kz0eun0ls1kplp1:8;2183:?<0jvs
9.机器人工程专业核心课程:电路原理、模拟电子技术基础、数字电子技术基础、微型计算机系统、机器人基础原理、机械设计基础、自动控制原理、机器人伺服控制、Linux系统、电气控制与PLC应用、计算机控制系统、机器人设计与仿真、现代控制理论、Python编程、机器人检测技术、机器人操作系统基础、数字图像处理与机器视觉。 jvzquC41|jgpuqjpi0wvv7jfw0io1ƒ~ll1~y{tiez0lzwie0nuo