Isaac Sim Docker 中使用 Python 脚本

笔记,记录个人尝试过程

主要目的:

1. 直接在代码中运行仿真程序,并对某传感器帧率进行固定化设置,添加噪声等操作。

2. 试多个场景的并行处理,和多用户/账户在远程Docker中的并行使用。

3. 对车辆模型、车辆动力学等进行精细化处理。

原因:

1. 当前设备不支持多场景多小车多传感器同时运行,硬件不足,需要远程使用别的服务器。

2. 若不支持同时多场景同时运行,可以远程服务器中开一个仿真地图,本机开一个仿真地图。

3. 我觉得不会不支持的...先试试看 

尝试了用python独立脚本开启直播流和打开场景,但其它脚本无法同步使用。改,换使用扩展。

Isaac Sim教程07 拓展编程Extension_isaac sim extension-CSDN博客

大佬的博客中,很多代码中的意义都翻译了。
 

在扩展的ui_builder.py中,只有_setup_scene函数是对场景的具体设置,其它都是些ui界面的设置,和重置场景等功能,场景中已经有了完善的内容,不需要在此处添加机器人和一些执行逻辑,全都注释掉。

    def _setup_scene(self):"""LOAD 可加载此实例"""usd_file = "/usd_path"# 加载已有场景open_stage(usd_path = usd_file)world = World()# # 加载ur10e模型# robot_prim_path = "/ur10e"# path_to_robot_usd = "omniverse://localhost/NVIDIA/Assets/Isaac/4.1/Isaac/Robots/UniversalRobots/ur10e/ur10e.usd"# # Do not reload assets when hot reloading.  This should only be done while extension is under development.# if not is_prim_path_valid(robot_prim_path):#     create_new_stage()#     add_reference_to_stage(path_to_robot_usd, robot_prim_path)# else:#     print("Robot already on Stage")# # 创建新的舞台# create_new_stage()# # 添加光源到舞台# self._add_light_to_stage()# # 将ur10e机械臂的USD参考添加到舞台# add_reference_to_stage(path_to_robot_usd, robot_prim_path)# # 创建固定的立方体# self._cuboid = FixedCuboid(#     "/Scenario/cuboid", position=np.array([0.3, 0.3, 0.5]), size=0.05, color=np.array([255, 0, 0])# ) # # 实例化ur10e机械臂的Articulation# self._articulation = Articulation(robot_prim_path)# 获取世界实例# world = World.instance()# # 添加Articulation和Cuboid到世界中# world.scene.add(self._articulation)# world.scene.add(self._cuboid)

在原本的_setup_scenario函数中,调用了scenario.py中的逻辑,我将此处机械臂的运动逻辑改为了差速驱动轮的计算逻辑。 

    def _setup_scenario(self):"""原本用来控制机械臂做循环移动(圆周)改成了轮式里程计的发布"""Noneself._reset_scenario()# UI managementself._scenario_state_btn.reset()self._scenario_state_btn.enabled = Trueself._reset_btn.enabled = True

 isaac sim 扩展仅支持异步发布 rostopic,这里可看官方教程:在扩展中使用ros:
Custom Message — Omniverse IsaacSim

import asyncio
import rospytry:rospy.init_node("hello", anonymous=True, disable_signals=True, log_level=rospy.ERROR)
except rospy.exceptions.ROSException as e:print("Node has already been initialized, do nothing")async def my_task():from std_msgs.msg import Stringpub = rospy.Publisher("/hello_topic", String, queue_size=10)for frame in range(10):pub.publish("hello world " + str(frame))await asyncio.sleep(1.0)pub.unregister()pub = Noneasyncio.ensure_future(my_task())

 


 

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

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

相关文章

SickOs1.1

下载安装 名称:SickOs:1.1 发布日期:2015 年 12 月 11 日作者: D4rk系列:SickOs sick0s1.1.7z(大小:623 MB)下载(镜像): https: //download.vulnhub.com/sick…

DP协议:PHY层

引言 DisplayPort物理层规定了上游设备(例如DisplayPort源或分支设备的AV输出端口)和下游设备(例如DisplayPort接收器或分支设备的AV输入端口)之间直接连接的物理属性。 它将数据传输的电气规范从DisplayPort链路层解耦,从而允许链路层具体设计增强的模块化,并且也允许…

Java - 日志体系_Apache Commons Logging(JCL)日志接口库_适配Log4j2 及 源码分析

文章目录 PreApache CommonsApache Commons ProperLogging (Apache Commons Logging ) JCL 集成Log4j2添加 Maven 依赖配置 Log4j2验证集成 源码分析1. Log4j-jcl 的背景2. log4j-jcl 的工作原理2.1 替换默认的 LogFactoryImpl2.2 LogFactoryImpl 的实现…

#C01L11P02. C01.L11.while循环.while循环和for循环的区别

唉,你们善良的王又来给你们发文章了!!! for循环一般应用于循环次数已知的情况; while循环一般应用于循环次数未知的情况; 在一般情况下,这两者是可以相互转化的。 举一个简单较适合用for循环…

HTML——20 自定义属性

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>自定义属性</title></head><body><a href"https://ai.m.taobao.com" 自定义属性"属性值">淘宝网</a><a href"h…

开发模式选择与最佳实践指南20241230

开发模式选择与最佳实践指南 引言 在现代软件开发中&#xff0c;选择合适的开发模式直接影响项目的开发效率和质量。本文将帮助您&#xff1a; &#x1f3af; 了解三种主流开发模式的优缺点&#x1f4a1; 根据项目特点选择最适合的开发模式&#x1f527; 掌握混合开发模式的…

【JavaWeb后端学习笔记】MySQL的数据控制语言(Data Control Language,DCL)

MySQL DCL 1、管理用户2、控制权限 DCL英文全称是Data Control Language&#xff08;数据控制语言&#xff09;&#xff0c;用来管理数据库用户、控制数据库访问权限。 1、管理用户 管理用户的操作都需要在MySQL自带的 mysql 数据库中进行。 -- 查询用户 -- 需要先切换到MyS…

《特征工程:自动化浪潮下的坚守与变革》

在机器学习的广阔天地中&#xff0c;特征工程一直占据着举足轻重的地位。它宛如一位幕后的工匠&#xff0c;精心雕琢着原始数据&#xff0c;将其转化为能够被机器学习模型高效利用的特征&#xff0c;从而推动模型性能迈向新的高度。然而&#xff0c;随着技术的飞速发展&#xf…

IDEA错题集

一、 报java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have错。 二、一个工程在编译时报某个模块没有指定JDK。 解决方案&#xff1a; 从IDEA的菜单中&#xff0c;依次执行&#xff1a;文件-项目结构-项目设置-项目&#xff…

stm32内部flash在线读写操作

stm32内部flash在线读写操作 &#x1f4cd;相关开源库文章介绍《STM32 利用FlashDB库实现在线扇区数据管理不丢失》 ✨不同系列&#xff0c;内部flash编程有所区别。例如stm32f1是按照页擦除&#xff0c;半字&#xff08;16bit&#xff09;或全字(32bit)数据写入&#xff1b;st…

Acwing 基础算法课 数学知识 筛法求欧拉函数

【G09 筛法求欧拉函数】https://www.bilibili.com/video/BV1VP411p7Bs?vd_source57dbd16b8c7c2ad258cccce5966c5be8 闫总真是把听者当数学系转cs的来讲&#xff0c;菜逼完全听不懂&#xff0c;只能其他地再搜 欧拉函数 φ ( n ) \varphi(n) φ(n)&#xff1a;1~n中与n互质的数…

优化我们的程序(数据篇):自空间复用

自空间复用 当遍历的元素恰好在一条cache线上时&#xff0c;称之为自空间复用&#xff0c;在前面我们已经知道了矩阵的秩就是数据的空间维度&#xff0c;也就是相对独立变量的个数。 当矩阵的秩小于循环嵌套深度时&#xff0c;此时一定是可以进行优化的。 例如&#xff1a; …

攻防世界web新手第五题supersqli

这是题目&#xff0c;题目看起来像是sql注入的题&#xff0c;先试一下最常规的&#xff0c;输入1&#xff0c;回显正常 输入1‘&#xff0c;显示错误 尝试加上注释符号#或者–或者%23&#xff08;注释掉后面语句&#xff0c;使1后面的单引号与前面的单引号成功匹配就不会报错…

SQL SERVER日常运维巡检系列之-日志

前言 做好日常巡检是数据库管理和维护的重要步骤&#xff0c;而且需要对每次巡检日期、结果进行登记&#xff0c;同时可能需要出一份巡检报告。 本系列旨在解决一些常见的困扰&#xff1a; 不知道巡检哪些东西不知道怎么样便捷体检机器太多体检麻烦生成报告困难&#xff0c;无…

小程序基础 —— 08 文件和目录结构

文件和目录结构 一个完整的小程序项目由两部分组成&#xff1a;主体文件、页面文件&#xff1a; 主体文件&#xff1a;全局文件&#xff0c;能够作用于整个小程序&#xff0c;影响小程序的每个页面&#xff0c;主体文件必须放到项目的根目录下&#xff1b; 主体文件由三部分组…

Vue 中el-table-column 进行循环,页面没渲染成功

文章目录 前言效果图代码示例可能出现的问题及原因解决思路 前言 实现效果&#xff1a;el-table-column 进行循环&#xff0c;使之代码简化 遇到的问题&#xff1a; data进行默认赋值&#xff0c;操作列的删除都可以出来&#xff0c;其他表格里面的数据没出来 效果图 示例&am…

不使用docker push ,使用docker save 打包成tar文件,scp到服务器上,应对离线环境

如果你不想使用 docker push&#xff0c;而是希望将本地 Docker 镜像打包成 tar 文件&#xff0c;并通过 scp 将其传输到目标服务器上&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 在本地打包 Docker 镜像为 tar 文件 首先&#xff0c;在本地构建并打包你的 Docker 镜…

HarmonyOS NEXT应用开发实战:一分钟写一个网络接口,JsonFormat插件推荐

在开发鸿蒙操作系统应用时&#xff0c;网络接口的实现往往是一个繁琐且重复的过程。为了提高开发效率&#xff0c;坚果派(nutpi.net)特别推出了一个非常实用的插件——JsonFormat。这款插件的主要功能是将JSON格式的数据直接转换为arkts的结构定义&#xff0c;让我们在编写接口…

vue3中使用el-tag结合element-plus使用方法

vue3中使用el-tag结合element-plus在行内使用el-button按钮&#xff0c;带背景色&#xff0c;效果&#xff1a; 代码&#xff1a; <el-table-column label"状态" align"center" prop"states"><template #default"scope">…

快速排序算法的 Java 实现与性能调优

目录 一、快速排序的基本原理 二、快速排序的 Java 实现 三、时间复杂度与空间复杂度 四、总结 引言 排序是计算机科学中的基础问题之一&#xff0c;无论是在数据库查询、数据分析&#xff0c;还是在日常编程中&#xff0c;排序算法的选择都对性能有着重要的影响。快速排序…