由 Clearpath Robotics公司开发的 Husky机器人是一个多功能的四轮平台,可用于室内和室外研究。其改装非常简单,只需添加其他传感器和更改高级电路板即可。本文将介绍如何使用ROS2 Husky 官方软件包将该机器人导入NVIDIA IsaacSim并创建仿真。
本 Demo 中的 Husky 机器人配备了NVIDIA JetsonOrin Nano并在顶部安装了 ZED 2 摄像头。驾驶 Husky 机器人使用的是 Isaac ROS 2 的最新版本,其中包括用于机器人定位(NVIDIA Isaac ROS VSLAM)、地图构建(NVIDIA Isaac ROS NvBlox)和 Apriltag检测(NVIDIA Isaac ROS AprilTag)的Isaac ROS软件包。
Isaac ROS Demo 的工作原理
Husky 的统一机器人描述格式(URDF)是从 ROS 2话题中动态加载的。它用于在 ROS 可视化视图(rviz)中对机器人进行可视化,并将其加载到 NVIDIA Isaac Sim 中。
在加载该机器人后,Isaac Sim 主脚本会创建一个图形来驱动该机器人,将速度和转向命令转换为每个车轮的速度,并在tf中发布车轮状态(图 1)。
图 1. 从 ROS 2 话题加载 Husky 时
自动生成的电机控制动作图
该脚本会为每个摄像头生成一个图形并将输出结果发布到 ROS 2 话题中。每个摄像头都有 ROS 2 图像信息和摄像头信息。
图 2. 带有分辨率配置和发布 ROS 2 话题指令的摄像头图
如图 3 所示,在加载所有图形并成功导入 URDF 后,一个新的 Husky 机器人出现在 Isaac Sim 中。
图 3. NVIDIA Isaac Sim 2023.1.0 中的
Husky 机器人和所有摄像头输出结果
在成功加载 Husky 后,就可以使用 ROS 2 的不同选项,包括摄像头流、电机控制器和其他辅助输出。可以使用以下命令快速查看在另一个终端中正在运行的程序:
ros2topiclist
图 4. Husky ROS 2 的所有话题列表
当 ROS 2 启动器启动时,所有必要的 ROS 2 节点和 Isaac ROS 节点都会运行。机器人将建立一个连接管道,其中,来自“Husky 描述”的 Husky URDF 将被用于 Isaac Sim 和机器人本身。Isaac ROS VSLAM 和 Isaac ROS NvBlox 也将被用于定位和构建实时地图。
当所有必需的软件包都在运行时,机器人就可以实现完全定位并构建一个 3D 地图。现在可以使用 Nav2、键盘或操纵杆来驱动它。
下一步是设置工作站和 Jetson Orin(可选),以便在 Isaac Sim 2023 和 Isaac ROS 2 上测试 Husky。
图 5. 移动中的 Husky 并生成 3D 地图
设置 Demo
有两种方法可以运行该 Demo:直接从工作站运行或使用硬件在环(HIL)配置。以下将介绍每种方法的设置要求。
无论采用哪种方式,首先都要安装最新版本的 Isaac Sim。详细说明参见NVIDIA Omniverse入门:
https://www.nvidia.com/en-us/omniverse/download/
注意:下载完成后请勿启动 Isaac Sim。
Husky Demo: 工作站版本
若要运行 Husky Demo,需要一台搭载NVIDIA RTXGPU的工作站,并安装有最新版本的 NVIDIA Isaac Sim 和 ROS 2 Humble。请记得安装桌面版本。
sudoapt install ros-humble-desktop
安装和运行
系统准备就绪后,可以克隆 Demo 版本,并使用以下脚本在工作站上试用:
git clone https://github.com/NVIDIA-AI-IOT/husky_demo.gitcd husky_demo
运行后使用以下命令启动 Isaac Sim 并打开一个新的终端,其中构建了 Docker,以使用 Isaac ROS 和 Demo 所需的所有软件包:
./husky_demo.sh
该命令将:
克隆所需的所有资源库
克隆 Isaac ROS Docker 镜像
构建新的镜像
构建完成后,该终端将等待新命令(图 6)。图 7 显示 Isaac Sim 正在运行,环境已完全加载。
图 6. 带有 Isaac ROS 提示的
Docker 容器终端正在等待命令
图 7. Isaac Sim 在已加载的仓库环境中运行
现在,可以在第二个终端上运行这个脚本:
bashsrc/husky_isaac_sim/scripts/run_in_docker.sh
脚本 run_in_docker.sh 将在运行 Isaac ROS 启动文件之前执行一些步骤。第一阶段将更新并构建所有必需的 ROS 2 和 Isaac ROS 软件包。然后该脚本将执行启动文件:
ros2launchhusky_isaac_simallinone.launch.py
这个 ROS 2 脚本会启动所有 Isaac ROS 软件包来定位机器人,并开始绘制地图和启动 rviz,以在地图上可视化 Husky。
该脚本还将在环境中加载 Husky,并自动设置摄像头和控制器。
Husky Demo: HIL 版本
要使用 HIL 版本,需要一台装有NVIDIA RTX GPU和最新版本NVIDIA Isaac Sim 2023.1.0的工作站、一台路由器以及 NVIDIA Jetson Orin Nano(请注意,其他型号的 Jetson Orin 也能胜任这项工作)。
在工作站和 Jetson 之间建立有线连接是很重要的,强烈建议在它们之间配置一台好的路由器。请记住,工作站和 Jetson 之间将共享大量数据,因此仅靠Wi-Fi连接是不够的。
您的 NVIDIA Jetson Orin Nano 必须使用最新的 Jetpack 5.1.2 并已安装完毕。请保留 IP 地址。如果使用主机名,则需要从工作站进行远程连接。
运行此配置所需的组件如下:
装有 Ubuntu 22.04 的 x86/64 机器
NVIDIA RTX GPU
内置 Jetpack 5.1.2 的 NVIDIA Jetson Orin Nano开发者套件
路由器和电缆
图 8 显示了如何设置硬件环境。
图 8. 硬件设置:带有 NVIDIA RTX 显卡(左)、
路由器(中)和 NVIDIA Jetson
Orin Nano 开发者套件(右)的台式机
安装与运行
系统准备就绪后,克隆 Demo 版本,并使用以下命令在工作站上试用:
git clone https://github.com/NVIDIA-AI-IOT/husky_demo.gitcdhusky_demo
运行后,使用以下命令:
./husky_demo.sh--HIL
该脚本将自动:
克隆该 Demo 所需的所有资源库
构建所有 ROS 2 软件包
启动 Isaac Sim
构建完成后,终端将等待新的命令。运行以下脚本:
ros2launchhusky_isaac_simrobot_display.launch.py
您将看到 Isaac Sim 上的 Husky 图像显示在工作站上。
接下来,打开一个新终端,远程连接 NVIDIA Jetson Orin 系列。
登录 Jetsterminal 后,克隆 Husky Demo 资源库:
gitclonehttps://github.com/NVIDIA-AI-IOT/husky_demo.gitcdhusky_demo
运行后,使用以下命令:
./husky_demo.sh
该脚本将自动:
克隆该 Demo 所需的所有资源库
- 克隆 Isaac ROS docker 镜像
- 构建新镜像
接下来,在 Docker 容器中运行以下脚本:
bashsrc/husky_isaac_sim/scripts/run_in_docker.sh
该脚本将自动:
构建所有 ROS 2 软件包
启动 Isaac ROS
然后您将看到所有在终端上运行的 Isaac ROS 软件包(图 9)。
图 9. Isaac ROS 在 Jetson Orin Nano 上
运行并传输数据
驾驶您的 Husky
如果 Isaas Sim 和 Isaac ROS 都已启动并运行(根据个人喜好,可以在工作站或 Jetson 上运行)且没有任何问题,那么您应该可以在 rviz 上看到机器人成功定位。定位完成后,它应该会开始构建 3D 地图(图 10)。
图 10. Husky 已在 rviz 上定位并使用
NvBlox 绘制了 3D 地图的第一张切片
现在,您可以使用键盘、操纵杆或 Nav2 来驾驶 Husky。只需简单几步,就可以控制 Husky 在环境中移动。
总结
本文介绍了如何使用 NVIDIA Isaac ROS 操作 Husky 机器人,包括如何加载从机器人描述中导出的 URDF 以及如何在 rviz 上驱动机器人。该 Demo 可以通过多种方式运行,既可以直接从搭载 NVIDIA RTX 显卡的工作站运行,也可以在硬件在环配置中运行,即在 NVIDIA Jetson 上运行 Isaac ROS。
如要了解有关 Isaac Sim 和 Isaac ROS 的更多信息,请查看并加入NVIDIA 开发者机器人技术论坛上的讨论:
https://forums.developer.nvidia.com/c/agx-autonomous-machines/isaac/67
NVIDIA 携手中国百万开发者,有奖征集作品秀。即日起至 2024 年 1 月 12 日,点击“阅读原文”或下方海报,一起来分享您的开发故事或实践心得吧! #1M Strong#
扫描海报二维码,锁定北京时间 1 月 9 日 (星期二) 凌晨 0 点举行的线上 NVIDIA CES 2024 特别演讲。
原文标题:使用 NVIDIA Isaac 仿真并定位 Husky 机器人
文章出处:【微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。
- 英伟达
+关注
关注
22文章
3597浏览量
89592
原文标题:使用 NVIDIA Isaac 仿真并定位 Husky 机器人
文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。
发布评论请先登录
相关推荐
评论