9.Isaac教程-- Laikago 四足机器人的自主导航

news2024/11/17 18:22:13

Laikago 四足机器人的自主导航

开发智能机器人系统是一项多学科的工作,集成了动力学、控制、计算机视觉、人工智能等。 很难掌握所有这些领域。 即使你掌握了所有这些,也需要花费大量时间才能正确和稳健。

为了帮助机器人专家加速智能机器人的开发,NVIDIA Isaac SDK 包含参考应用程序和平台。 其中一个平台是 Kaya,一种三轮完整的自主机器人。 Laikago 应用程序是使用 Kaya 作为参考构建的,以创建可以导航和避开障碍物的自主机器。

Laikago 是由 Unitree Robotics 制造的四足机器人。 它具有用于在微控制器单元 (MCU) 中行走和平衡的运动控制算法。 它还提供一个作为可选包的安装座,其中包括用于大脑的 NVIDIA Jetson TX2 模块,允许用户开发自定义软件并访问运动控制和传感器数据。 开箱即用,它没有任何用于映射、定位或避障的传感器或软件。

此应用程序使用 Velodyne VLP-16 激光雷达进行感知,并将 Isaac SDK 导航堆栈与 Unitree Robotics API 集成。 所有计算都在 TX2 内部完成。 运动控制器以 500Hz 运行,而导航堆栈需要 50% 的 CPU。 运行此应用程序时,Laikago 以 0.6 m/s 的峰值速度行走。

升级硬件

您需要将激光雷达和接口盒安装到 Laikago。 我们根据 Unitree GitHub 存储库中的 Laikago CAD 文件设计了 3D 打印支架。 Laikago 提供 19V 输出,高于 VLP-16 的工作电压。

注意

最新的 VLP-16 支持高达 32V 的规格。

我们建议使用 DC-DC 转换器来降低电压,并使用 USB 转以太网将激光雷达传感器连接到 TX2。 您还可以安装一个兼容的摄像头用于物体检测,但在这个示例应用程序中没有应用。 下图显示了整体设置。

Isaac SDK 导航和感知堆栈与 Jetson 板的传感器品牌和类型无关。 例如,Kaya 使用相同的导航堆栈,但在 Jetson Nano 上运行,并使用摄像头而不是激光雷达传感器进行定位。 Kaya 的许多感知算法也适用于简单的网络摄像头。

软件概述

此应用程序主要使用 Isaac SDK 导航堆栈,其中包括地图、定位、全局路径规划、控制、避障、里程计和路径跟踪。 Isaac SDK 还包括激光雷达驱动程序和 Laikago SDK,因此不需要额外的库或依赖项。

下图显示了设计层次结构。 所有圆框都包含在 Isaac SDK 中。 矩形框指定机器人硬件。 Laikago 驱动主要用于将 Isaac SDK 的消息传递给 Laikago SDK。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WtYh3q01-1673226211970)(https://docs.nvidia.com/isaac/_images/laikago_app_graph.png)]

运行 Laikago 导航应用程序

  1. 确保 Jetson 设备已按照设置文档中的详细信息进行设置。

  2. 构建一个 ARM 目标并使用以下命令将其部署到机器人:

    bob@desktop:~/isaac/sdk$ ./../engine/engine/build/deploy.sh --remote_user <username> -p //packages/laikago/apps:laikago_navigate-pkg -d jetpack45 -h <robot_ip_address>
    

    其中 <username> 是您在机器人上的用户名(默认为 nvidia),<robot_ip_address> 是机器人的 IP 地址。

  3. 使用以下命令通过 SSH 连接到机器人:

    bob@desktop:~/isaac/sdk$ ssh <username>@<robot_ip_address>
    

    其中 <username> 是您在机器人上的用户名(默认为 nvidia),<robot_ip_address> 是机器人的 IP 地址。

  4. 使用以下命令在机器人上运行 Laikago 应用程序:

    bob@jetson:~/$ ./packages/laikago/apps/laikago_navigate --config <map_config_json> --graph <map_graph_json>
    

    <map_config_json><map_graph_json> 是地图文件。 apps/assets/maps 文件夹中提供了示例。

    连接到蓝牙操纵杆控制器。 我们在此示例中使用 NVIDIA Shield 控制器。 这可用于向 Laikago 发送定向命令并触发自主导航模式。

    注意

    默认情况下,机器人处于“站立”模式。 当方向命令通过一个小阈值时,机器人将开始行走。 有关详细信息,请参阅操纵杆部分。

  5. <robot_ip>:3000 的浏览器中打开 Isaac Sight。 您应该会看到 Laikago 所在的地图。 使用操纵杆移动 Laikago 并观察地图更新。

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

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

相关文章

笔试强训(12)

算法题1:计算日期到天数转换: 我们假设用例输入的是2022 1 1&#xff0c;那么我们对应的天数就是1天&#xff0c;我们就不应该在输出1月份的所有月数 public class Main {public static void main(String[] args) {Scanner scannernew Scanner(System.in);int yearscanner.next…

【uniapp小程序】上传图片

文章目录&#x1f34d;前言&#x1f34b;正文1、首先看官网uni.chooseImage(OBJECT) API 介绍2、案例代码演示3、效果展示&#x1f383;专栏分享&#xff1a;&#x1f34d;前言 本篇文章我们研究一下&#xff0c;在移动端开发过程中经常使用到的图片上传功能。在大多数小程序或…

ArcGIS基础实验操作100例--实验68注记符号化表达

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验68 注记符号化表达 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

C语言入门(四)——分支语句

if语句 if/else语句 布尔代数 switch语句 if语句 目前我们写的简单函数中可以有多条语句&#xff0c;但这些语句总是从前到后顺序执行的。除了顺序执行之 外&#xff0c;有时候我们需要检查一个条件&#xff0c;然后根据检查的结果执行不同的后续代码&#xff0c;在C语言中可…

ResNet精读笔记(1)

introduction部分提出了几个问题 1.构建一个好的网络 &#xff1f; 把层堆起来吗 哈哈 跟堆汉堡一样 这里呢 我们都知道 当网络的层数变多之后 加深了 deep了 但是 就会带来 梯度消失或者爆炸的问题 这里 实在找不到好的图 本质上因为当层数多了之后 反向传播的计算里面是…

嵌入式:万字详解通信接口设计

文章目录UART接口UART的工作原理UART的功能和组成S3C2410A的UARTUART 操作&#xff08;1&#xff09;数据发送&#xff08;2&#xff09;数据接收&#xff08;3&#xff09;自动流控制&#xff08;4&#xff09;非自动流控制&#xff08;a&#xff09;接收数据操作&#xff08;…

【C++】模拟实现List的正向和反向迭代器(iterator、reverse_iterator)

文章目录1、搭建List的基本框架2、List中iterator和const_iterator3、反向迭代器revser_iterator1、搭建List的基本框架 STL中List容器底层是一个双向带头循环链表。 这里简单搭建一个List&#xff0c;下面我们不断完善。 思路&#xff1a; 1、List作为一个双向带头链表&…

excel函数公式:常用高频公式应用总结 下篇

公式6&#xff1a;根据身份证号码计算出生日期要从身份证号码中得到出生日期&#xff0c;这种问题对于从事人资行政岗位的小伙伴一定不陌生&#xff0c;公式也比较简单&#xff1a;TEXT(MID(A2,7,8),"0-00-00")就能得到所需结果&#xff0c;如图所示&#xff1a;要明…

vue+xlsx实现表格的导入导出:

文章目录一、vue前端使用xlsx和 xlsx-style 导出excel&#xff0c;并修改样式:1、改造后效果&#xff1a;2、实现&#xff1a;3、引入库xlsx-style4、excelUtil.js文件二、前端xlsx插件怎么设置导出的excel列宽自适应&#xff1f;2-1、效果2-2、效果三、xlsx插件&#xff0c;导…

Java语法六:线程安全以及死锁

前言&#xff1a; 接下来我们要了解一下&#xff0c;线程安全的集合类有哪些&#xff1f;什么是死锁以及怎么避免死锁问题。 1.多线程环境使用哈希表 1.1&#xff1a;HashTable 只是简单的把关键方法加上synchronized关键字。 public synchronized V put(K key, V value) p…

(1分钟速览)最近邻搜索--激光SLAM常用必杀技

学习kdtree的数据结构&#xff0c;和二叉树的思想大体上算是比较相似的。参考博客&#xff1a;https://blog.csdn.net/dive_shallow/article/details/113136145建树&#xff0c;一个递归的操作。这里的删除操作很好理解&#xff0c;分左子树和右子树两种情况。如果是左子树那么…

Go语言设计与实现 -- 内存对齐机制

什么是内存对齐 为了能让CPU可以更快的存取到各个字段&#xff0c;Go编译器会帮你把struct结构体做数据的对齐。所谓的数据对齐&#xff0c;是指内存地址是所存储数据的大小&#xff08;按字节为单位&#xff09;的整数倍&#xff0c;以便CU可以一次将该数据从内存中读取出来。…

每天五分钟机器学习:推荐系统中所有用户的损失函数是什么?

本文重点 我们分析机器学习算法都是从损失函数的角度来说的,为了找到最佳的参数θ,可以最小化损失函数,那么本节课程我们将学习基于内容的推荐系统的损失函数是什么? 数据集 我们将每一个电影称为样本,每个电影有两个特征x1、x2,其中x1表示该电影为恐怖片的程度,x2表…

测试开发 | 跨平台设备管理方案 Selenium Grid

Selenium Grid 是 Selenium 的三大组件之一&#xff0c;它可以在多台机器上并行运行测试&#xff0c;集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它旨在提供一种在多…

SSL证书的类型

SSL证书类型分3类&#xff1a;DV OV EV.域名型&#xff08;DV&#xff09;SSL证书: 信任等级一般&#xff0c;只需验证网站的真实性便可颁发证书保护网站。企业型&#xff08;OV&#xff09;SSL证书: 信任等级强&#xff0c;须要验证企业的身份&#xff0c;审核严格&#xff0c…

VS2017基于CLR运行环境的VC++.NET界面编程(数据库为mysql)

此篇献给暨南大学珠海校区还在用VS2013编写VC++.NET界面程序的苦逼们! 文章分为四个部分: 1、运行环境的搭建 2、数据库的连接 3、控件介绍 4、程序编写示例 程序效果演示视频和程序源码及数据库文件附于文末。 一、运行环境的搭建 VS自从2013版本后淘汰VC++.NET,编写界面…

恒星物联河道流量监测站——雷达流量计

一、产品概述 河道流量监测站是一款采用一体化设计的河道流量智能监测设备&#xff0c;设备由河道雷达流量计、遥测终端机、太阳能供电系统组成。雷达流量计采用先进的K波段平面雷达技术&#xff0c;通过非接触的方式测量水体的流速和水位&#xff0c;根据内置的软件算法&…

TCP协议重点总结(万字总结-附实例)

文章目录前言一、网络的原生情况二、TCP协议2.1 TCP的特点2.2 TCP协议段格式2.3 TCP原理2.3.1 确认应答机制&#xff08;可靠机制&#xff09;2.3.2 序列号2.3.3 超时重传机制&#xff08;可靠机制&#xff09;2.3.4 连接管理机制&#xff08;可靠机制&#xff09;2.3.5 滑动窗…

RabbitMQ的简介和简单使用

同步调用异步调用MQRabbitMQ的使用docker拉取docker pull rabbitmq:3-management启动容器docker run \-e RABBITMQ_DEFAULT_USERitcast \ &#xff08;账号&#xff09;-e RABBITMQ_DEFAULT_PASS123321 \ &#xff08;密码&#xff09;--name mq \--hostname mq1 \-p 15672:156…

开发工具中SpringBoot使用外置Tomcat启动 (亲测有效)-第458篇

历史文章&#xff08;文章累计450&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 SpringBoot添加外部jar包及打包(亲测有…