8.Isaac教程--在Kaya上运行IsaacSDK

news2024/11/17 17:19:40

在Kaya上运行IsaacSDK

构建自己的 NVIDIA Kaya 机器人后,请按照本页中的步骤在其上运行一些示例应用程序。

文章目录

  • 在Kaya上运行IsaacSDK
      • 安装和设置
    • 操纵杆应用程序
    • 跟随我的应用程序
    • 物体检测应用
    • 地图应用

在这里插入图片描述

安装和设置

在 Kaya 上运行应用程序之前完成这些先决条件步骤:

  1. 按照 Jetson Nano 入门指南中的说明在 Jetson Nano 上安装 Jetson 操作系统。

  2. 按照 Getting Started With Jetson Nano 指南中的说明获取机器人的 IP 地址。

  3. 按照安装指南在 Jetson Nano 上安装 Isaac SDK 及其所有依赖项。

  4. 按照“应用程序控制台选项”部分中的步骤使用 Kaya 注册您的 SSH 密钥。

操纵杆应用程序

以下步骤部署一个简单的操纵杆应用程序,该应用程序使用配对的 PS4 控制器来控制 Kaya。 相同的步骤可用于在您的机器人上部署和运行其他应用程序。

  1. 要在 Kaya 上运行 //apps/kaya:joystick 游戏杆应用程序,请使用以下命令将包从桌面部署到 Kaya:

    bob@desktop:~/isaac/sdk$ ./../engine/engine/build/deploy.sh --remote_user <username_on_robot> -p //apps/kaya:joystick-pkg -d jetpack45 -h <robot_ip>
    

    其中 <robot_ip> 是机器人的 IP 地址,<username_on_robot> 是您在 Kaya 上的用户名。

    注意

    如果未使用 --remote_user 选项指定用户名,则用户名默认为 nvidia

    -d jetpack45 选项指定您正在使用 Jetpack 版本 4.5.1 构建和部署到 Jetson 设备。

  2. 登录Kaya

    bob@desktop:~/isaac/sdk$ ssh <username_on_robot>@<robot_ip>
    
  3. 转到 Kaya 上的部署文件夹并运行应用程序:

    bob@jetson:~/$ cd deploy/<bob>/joystick-pkg/
    bob@jetson:~/deploy/<bob>/joystick-pkg$ ./apps/kaya/joystick
    

    <bob> 是您在主机系统上的用户名。

默认情况下,控制器上的 L1 按钮用作 deadman 触发器。 仅当按下触发器时,机器人才会执行操纵杆命令。

跟随我的应用程序

以下步骤部署 Follow Me 应用程序,它将 Kaya 自主移动到指定的 AprilTag 基准点。 此应用程序结合了 AprilTag 检测、路径规划、控制和 Kaya 驱动程序。 它需要一个工作的英特尔实感摄像头来进行 AprilTag 检测和路径规划,并需要一个操纵杆来启用自主模式。

  1. //apps/kaya:follow_me-pkg 部署到 Kaya,如操纵杆应用程序的第 1 步所示。

  2. 切换到 Kaya 上的目录并使用以下命令运行应用程序:

    cd deploy/<your_username>/follow_me-pkg/
    ./apps/kaya/follow_me
    
  3. <robot_ip>:3000 的桌面浏览器上打开 Isaac Sight。 在右侧的 Application Configuration 面板中,单击“fiducial_as_goal”并将“target_fiducial_id”值更改为正在使用的 AprilTag 的 ID。

如果您将 AprilTag 放在 RealSense 摄像头的视野内,您应该会在 Follower Kaya - Camera 窗口中看到检测到 AprilTag 并且计划的路径(显示为蓝线)将 Kaya 连接到 AprilTag。

如果你按住控制器上的 R1 按钮,Kaya 将进入自主模式并向 AprilTag 移动。 将 AprilTag 四处移动,同时将其保持在摄像头的视野范围内,Kaya 将跟随它四处移动。

物体检测应用

此应用程序使用 Kaya 上的 DetectNetv2 来执行对象检测。 DetectNetv2 模型经过训练可以识别网球。 以下是运行此应用程序的步骤。

  1. //apps/kaya:object_detection-pkg 部署到 Kaya,如操纵杆应用程序的第 1 步所示。

  2. 切换到 Kaya 上的目录并使用以下命令运行应用程序:

    cd deploy/<your_username>/object_detection-pkg/
    ./apps/kaya/object_detection_kaya
    
  3. <robot_ip>:3000 的桌面浏览器上打开 Isaac Sight。 您应该会看到实时摄像机图像。

将一个网球放在 Kaya 的相机前,您应该会在标记为“tennis_ball”的对象周围看到一个边界框。 此示例是在有限的数据集上训练的,不能保证在所有情况和光照条件下都能正常工作。 要提高自定义环境中的模型准确性,请参阅在 docker 中训练自定义模型的说明或目标检测训练文档

地图应用

GMapping 应用程序演示了如何使用 Kaya 构建其环境的占用地图。 Kaya 通过其 RealSense 摄像头感知障碍物的深度,并使用车轮里程计和 IMU 更新自身状态。 然后它将障碍物深度和机器人状态信息发布到主机,主机构建地图。

这个应用程序有两个部分:运行在 Kaya 上的 gmapping_distributed_kaya 和运行在主机上的 gmapping_distributed_host

  1. //apps/kaya:gmapping_distributed_kaya-pkg 部署到 Kaya,如操纵杆应用程序的第 1 步所示。

  2. 切换到 Kaya 上的目录并使用以下命令运行应用程序:

    cd deploy/<your_username>/gmapping_distributed_kaya-pkg/
    ./apps/kaya/gmapping_distributed_kaya
    

    <nano_ip>:3000 的桌面浏览器上打开 Isaac Sight。 您应该会看到相机 RGB 和深度图像,以及机器人状态图。

  3. 使用操纵杆驾驶卡亚四处走动。 您应该看到正在更新的机器人状态。

  4. 在桌面系统上,打开 app/kaya/gmapping_distributed_host.app.json 并将 tcp-subscriber 主机从“YOUR_NANO_IP_HERE”更改为 Kaya 上 Jetson Nano 的 IP 地址。

  5. 使用以下命令构建并运行主机应用程序:

    bazel build //apps/kaya:gmapping_distributed_host
    bazel run //apps/kaya:gmapping_distributed_host
    
  6. localhost:3000 的桌面上打开 Isaac Sight。 您应该会看到 Kaya 正在构建的地图。 使用操纵杆驾驶 Kaya 并观察地图更新。

如果您发现地图更新存在性能问题,请转到 Isaac Sight 上的 Kaya 页面并通过取消选中 Channels - viewer 来禁用相机 RGB 和深度可视化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins+Git+Maven自动化部署配置

JenkinsGitMaven自动化部署配置基本思路1、jenkins安装maven依赖2、git安装3、Jenkins中新建任务3.1 git配置3.2 maven配置3.3 pom.xml配置3.4 build4、自动化发布到测试服务器并自动执行(Test-server)4.1 安装Publish Over SSH插件4.2 修改Post Steps配置4.3 执行构建5、小插曲…

实战6 :基于mmdetection搭建Faster R-CNN实现酒液杂质检测

项目介绍: 本教程讲述如何解决依赖运动变化来区分目标的目标检测问题。以酒液杂质目标检测为例,讲述如何合理利用运动的酒液图像来设计算法进行杂质的检测。通过学习掌握依赖运动变化区分目标的检测任务的解决方法。首先我们对酒液杂质检验任务做了简要介绍。接下来再对数据…

【C进阶】qsort函数详解

qsort函数前言qsort函数&#xff08;一&#xff09;引例&#xff1a;简单的冒泡排序&#xff08;二&#xff09;qsort函数接收1.介绍2.void*&#xff08;三&#xff09;使用1.用qsort实现一个比较整型的函数2.用qsort实现一个比较结构体的函数3.用qsort实现一个比较浮点型的函数…

试读:目标检测定义及技术详解

1.通用目标检测Generic Object Detection定义 目标检测旨在从图像、视频或者类似高维数据中定位大量预定义类别的物体实例&#xff0c;原始的图像、视频或类似数据经过数据预处理后&#xff0c;进入目标检测模型进行前向预测&#xff0c;最终得到数据中每个实例的位置以及该实…

Compose 动画入门 (一) : animateXxxAsState 实现放大/缩小/渐变等效果

1. 前言 动画是Android Compose中很重要的一块内容。利用Compose可以简洁地定义动画&#xff0c;我们可以轻松快速地通过动画让应用变得生动有趣。 本文会介绍如何定义一个最简单的Compose动画&#xff0c;从而实现Compose动画。 1.1 定义一个Box 首先&#xff0c;我们先定义…

关于volatile解决内存可见性问题(保证线程安全)

Volatile是和内存可见性问题是密切相关的。先看下面一段代码&#xff0c;执行结果是什么&#xff1f; class MyCount{public int flag 0; } public class ThreadDemo15 {public static void main(String[] args) {MyCount myCount new MyCount();Thread t1 new Thread(()-&…

B站涨粉十万+!B站up主如何吸引高质量粉丝?

如何在b站快速增长粉丝&#xff0c;b站如何快速涨粉丝&#xff0c;这是所有Up主都关心的问题&#xff0c;对于初来乍到B站的up主来说&#xff0c;发布的作品内容是极为重要的&#xff0c;B站最初的粉丝积累往往都是靠这些在B站生产的视频。作品是否精彩&#xff0c;能否吸引粉丝…

AutoCAD打开文件提示“无法识别的版本,不能读取”

今天遇到一个很奇怪的问题&#xff0c;在CAD中执行自己创建的命令并关闭文档之后&#xff0c;重新打开CAD提示“无法识别的版本&#xff0c;不能读取”错误对话框。 后来查询资料&#xff0c;发现这是CAD的一个老bug了。原因是该dwg文档所在的目录下某个文件的文件名以“无”开…

MATLAB-常微分方程求解

MATLAB中可以用来求解常微分方程(组)的函数有ode23、 ode23s、 ode23t、 ode23tb 、ode45、ode15s和odel13等&#xff0c;见下表。它们的具体调用方法类似&#xff0c;为了方便后面的描述&#xff0c;在后面的介绍中将使用solver统一代替它们。函数的具体调用方法如下。[T,Y] s…

简述 synchronized 和 ReentrantLock 之间的区别?

相同点 synchronized 和 ReentrantLock 都是 Java 中提供的可重入锁。 可重入锁&#xff1a;什么是 “可重入”&#xff0c;可重入就是说某个线程已经获得某个锁&#xff0c;可以再次获取锁而不会出现死锁。 不同点 用法不同&#xff1a;synchronized 可以用来修饰普通方法、静…

红中私教:使用wamp64配置靶场

应朋友请求&#xff0c;出一篇配服务器的教程 首先安装软件 https://cowtransfer.com/s/9db1b9ad2c1d44 点击链接查看 [ wampserver3.3.0_x64.exe ] &#xff0c;或访问奶牛快传 cowtransfer.com 输入传输口令 pgs341 查看&#xff1b; 接下来&#xff0c;使用HbuilderX打开我…

基于Paddle实现实例分割

百度的Paddle这几年发展十分迅速&#xff0c;而且文档十分齐全&#xff0c;涉及到机器视觉的多个应用领域&#xff0c;感觉还是非常牛的&#xff0c;各种backbone&#xff0c;损失函数、数据增强手段以及NMS等&#xff0c;整体感觉复现的很全面&#xff0c;值得推荐学习。 本…

搭建Redisson流程以及解读MutilLock源码解决分布式锁的主从一致性问题

搭建Redisson流程以及解读MutilLock源码解决分布式锁的主从一致性问题1、搭建3台独立主节点的redis服务2、创建java redisson客户端3、获取分布式锁4、分析获取锁源码getMultiLocktryLock(long waitTime, long leaseTime, TimeUnit unit)5、总结1、搭建3台独立主节点的redis服务…

Apache Shiro教程(3)

shiro自定义realms及加密md5salt教程 1、添加pom 文件 <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.9.1</version> </dependency>2、创建realms自定义文件 import o…

【树莓派/入门】使用MAX30102测量血氧浓度

说在前面 树莓派版本&#xff1a;4b血氧模块&#xff1a;MAX30102树莓派系统&#xff1a;Linux raspberrypi 5.15.76-v8 #1597 SMP aarch64 GNU/Linuxpython版本&#xff1a;3.9.2 模块详情 某宝上买的MAX30102模块&#xff0c;包含杜邦线 准备工作 开启树莓派的GPIO&#x…

java 高级面试题整理

SpringMVC的控制器是单例的吗? 第一次&#xff1a;类是多例&#xff0c;一个普通属性和一个静态属性 总结 尽量不要在controller里面去定义属性&#xff0c;如果在特殊情况需要定义属性的时候&#xff0c;那么就在类上面加上注解Scope("prototype")改为多例的模式…

English Learning - L1-9 时态(中) 2023.1.3 周二

这里写目录标题8 时态8.1 一般时态&#xff08;三&#xff09;一般将来时核心思维&#xff1a;预测&#xff0c;计划&#xff0c;意愿will 和 be going to 的区别将来时的其它表示方式进行时表将来be about to (5 分钟之内)8.2 进行时态核心思维&#xff1a;持续有限的进行&…

黑苹果解决5500xt等navi14显卡引导二阶段黑屏几秒的问题

首先说结论&#xff1a;在注入缓冲帧FB Name的前提下&#xff0c;往显卡注入CFG_LINK_FIXED_MAP参数&#xff0c;类型为Number&#xff0c;值为1。注意一定要注入FB Name&#xff0c;注入FB Name&#xff0c;注入FB Name的前提下&#xff01;&#xff01;我试过不注入FB Name直…

【安全硬件】Chap.5 如何检测芯片中硬件木马?硬件木马的类型有哪些?检测硬件木马的技术

【安全硬件】Chap.5 如何检测芯片中硬件木马&#xff1f;硬件木马的类型有哪些&#xff1f;检测硬件木马的技术前言1. 硬件木马的种类1.1 硬件木马1.2 硬件木马的区分1.1 物理特性类别硬件木马——Physical hardware trojans1.2 激活特性类别硬件木马——Activation1.3 动作特性…

Kafka快速入门

文章目录安装部署集群规划集群部署kafka群起脚本Kafka命令行操作主题命令行操作生产者命令行操消费者命令行操作安装部署 集群规划 集群部署 官方下载地址&#xff1a;http://kafka.apache.org/downloads.html上传安装包到02的/opt/software目录下 [atguiguhadoop02 softwar…