Isaac Sim 跑Slam学习过程2024.9.20

news2024/11/14 17:08:24

# 本文随着时间逐渐增加内容,是学习笔记     

# 诶怎么今天Isaac Sim 4.2.0 突然出现了,这哪来的时间再去试试新的....

        没有大佬带...自己学吧

        希望使用仿真环境跑定位Slam,现在IMU在Isaac Sim中有现成的传感器模块,GPS则没有,Odom坐标系也不对,噪声也都没添加,模拟不了现实场景,只能用来做验证。

        Slam也没系统学过,就只是简单翻阅过视觉Slam十四讲,菜的要命啥也不会....尖锐爆鸣。

        现在已知Slam需要或可能需要用到的传感器有:IMU、Odom、LiDAR、GPS、RGB、Depth

  1. 首先先将sensor层部署出来,这个不能出错。
  2. 发布仿真环境的sensor ros topic
  3. 调整帧率,适配现有算法
  4. 现在是“真值环境”,需要添加噪声
  5. 仿真环境初始位置要改为地球坐标系,或大地坐标系,根据需求来

跟着这篇论文进行学习:

Pegasus Simulator: An Isaac Sim Framework for Multiple Aerial
Vehicles Simulation
Marcelo Jacinto 1 , João Pinto 1 , Jay Patrikar 2 , John Keller 2 , Rita Cunha 1 , Sebastian Scherer 2 and António Pascoal 1

1.IMU

Create a Custom Controller — Pegasus Simulator documentation

Pegasus Simulator — Pegasus Simulator documentation

Backend — Pegasus Simulator documentation

Your First Simulation — Pegasus Simulator documentation

        IMU主要有加速度计和陀螺仪两部分组成。用于估计姿态和运动姿态。

        陀螺仪:测量角速度,提供方向信息。

        加速度计:测量线性加速度,用于计算速度和位置。

  1. 陀螺仪(gyroscope):

    • noise_density: 陀螺仪的噪声密度,通常以度每小时每根弧度(rad/h)表示。
    • random_walk: 陀螺仪的随机游走噪声,反映了陀螺仪长期稳定性的特性。
    • bias_correlation_time: 偏置相关时间,表示偏置变化的时间常数。
    • turn_on_bias_sigma: 开机时偏置的标准差,反映初始状态下的偏置不确定性。
  2. 加速度计(accelerometer):

    • noise_density: 加速度计的噪声密度,通常以米每秒平方(m/s²)表示。
    • random_walk: 加速度计的随机游走噪声,表示测量的不确定性。
    • bias_correlation_time: 偏置相关时间,与陀螺仪类似。
    • turn_on_bias_sigma: 开机时加速度计偏置的标准差,反映初始状态下的偏置不确定性。
  3. 更新频率(update_rate): IMU数据更新的频率,单位为赫兹(Hz),表示每秒钟更新的次数。

       

  1. 生成陀螺仪的随机游走值。
  2. 将该值添加到车辆的实际角速度中(相对于ENU惯性框架的FLU,表示为FLU机体框架)。
  3. 对于加速度计和加速度也遵循相同的逻辑。
  4. 角速度被旋转,以便相对于NED惯性框架表示为FRD机体框架。
  5. 此加速度也被旋转,使其表示为车辆的FRD机体框架。该传感器输出遵循PX4采用的标准的数据

[18]J. Rehder, J. Nikolic, T. Schneider, T. Hinzmann, and R. Siegwart,
“Extending kalibr: Calibrating the extrinsics of multiple IMUs and of
individual axes,” in 2016 IEEE International Conference on Robotics
and Automation (ICRA), 2016, pp. 4304–4311.

实际操作试一下IMU的噪声添加

        在论文中,Pegasus适配的是Isaac Sim 4.1.0 ,ubuntu22.04,Driver Version: 550.90.07

我的:Isaac Sim2023.1.1,ubuntu20.04,Driver Version: 535.171.04,显存8188MiB.....咦惹

        没事,全是精华,糟粕是我,就学习一下是如何将代码添加进isaacsim中并使用的,学习一下环境集成和扩展包的使用。

        官方使用IMU进行SLAM的教程:(这里有给IMU加噪声!好耶)

(This tutorial walks you through setting up Isaac ROS Visual SLAM with a Realsense camera.)

Tutorial for Visual SLAM Using a RealSense Camera with Integrated IMU — isaac_ros_docs documentation

简单梳理一下 Pegasus Simulator 的 Extension 使用流程

1. 在~/.bashrc 中先设置好环境变量

# Isaac Sim root directory
export ISAACSIM_PATH="${HOME}/.local/share/ov/pkg/isaac_sim-2023.1.1"
# Isaac Sim python executable
alias ISAACSIM_PYTHON="${ISAACSIM_PATH}/python.sh"
# Isaac Sim app
alias ISAACSIM="${ISAACSIM_PATH}/isaac-sim.sh"

尝试用这种方式打开下Isaac Sim App ,看看能不能行

# Run the simulator with the --help argument to see all available options
ISAACSIM --help

# Run the simulator. A new window should open
ISAACSIM

 检查是否可以从 Python 脚本启动Isaac Sim

# Run the bundled python interpreter and see if it prints on the terminal "Hello World."
ISAACSIM_PYTHON -c "print('Hello World.')"

# Run the python interpreter and check if we can run a script that starts the simulator and adds cubes to the world
ISAACSIM_PYTHON ${ISAACSIM_PATH}/standalone_examples/api/omni.isaac.core/add_cubes.py 

2.  可以开始尝试使用扩展

论文中使用的是无人机PX4(Pegasus Simulator),Clone Pegasus Simulator:

# Option 1: With HTTPS
git clone https://github.com/PegasusSimulator/PegasusSimulator.git
# Option 2: With SSH (you need to setup a github account with ssh keys)
git clone git@github.com:PegasusSimulator/PegasusSimulator.git

虽然我并不使用这个,但想下载下来看看大佬是怎么写的

下载好后,Launch ISAACSIM application 

打开Extensions,指定路径添加扩展

在添加后,就可以在third-party tab 中使用Pegasus Simulator extension了

第一次启用扩展时,Python 依赖项应该会自动为内置的 ISAACSIM_PYTHON 安装,几秒钟后,Pegasus 小部件 GUI 应该会弹出。呈现在左下角。

在 Pegasus 模拟器的扩展模式中,提供的 GUI 小部件仅在打算使用 PX4-Autopilot 时才有用。要安装 PX4-Autopilot。(=需要下载一个无人机飞行控制软件PX4)

这里我控制小车不需要这么复杂,因为可以直接在Isaac Sim 中进行小车控制。

3. 接下来学习如何创建一个控制后端

使用非线性控制器,使车辆按照预定的轨迹进行移动(或使用ROS),接收车辆及其传感器的当前状态,并充当控制输入。==通过Python代码直接在3D仿真环境中实现和测试算法。

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

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

相关文章

电商ISV 电商SaaS 是什么

Independent Software Vendors的英文缩写,意为“独立软件开发商” 软件即服务(SaaS) 指一种基于云技术的软件交付模式 订阅收费 这些公司叫做ISV软件供应商,通过SaaS服务交付收费 为什么会有电商ISV 从商家角度划分:有独立品牌商家、大商…

MySQL篇(SQL优化)(持续更新迭代)

目录 一、插入数据:Insert 1. 优化方案一:批量插入数据 2. 优化方案二:手动控制事务 3. 优化方案三:主键顺序插入,性能要高于乱序插入 4. 大批量插入数据 5. 案例 5.1. 创建表结构 5.2. 设置参数 5.3. load加载…

计算机毕业设计 基于Python的校园个人闲置物品换购平台 闲置物品交易平台 Python+Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Wireshark学习使用记录

wireshark 是一个非常好用的抓包工具,使用 wireshark 工具抓包分析,是学习网络编程必不可少的一项技能。 原理 Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境,另外一种就是应用比较多的互联网环境,也就是连接…

macOS 中搭建 Flutter 开发环境

如果你的 Mac 是 Apple silicon 处理器,那么有些 Flutter 组件就需要通过 Rosetta 2 来转换适配(详情)。要在 Apple silicon 处理器上运行所有 Flutter 组件,请运行以下指令来安装 Rosetta 2。 sudo softwareupdate --install-ro…

低代码可视化工具-uniapp页面跳转传参-代码生成器

uniapp页面跳转传参 在uni-app中,页面间的跳转和传参是一个常见的需求。uni-app提供了多种页面跳转方式,如uni.navigateTo、uni.redirectTo、uni.reLaunch、uni.switchTab、uni.navigateBack等,每种方式适用于不同的场景。以 页面跳转并传参…

【笔记】第三节 组织与性能

3.1 基本成分 3.2 微观组织特征 0.6-0.8C%碳素钢的组织为珠光体和少量的铁素体。 如何把组织和性能联系起来?德国克虏伯公司的研究——珠光体片间距与渗碳体片层厚度成比例: t s 0 ( ρ 15 ( C % ) − 1 ) ts_0(\frac{\rho}{15(C\%)}-1) ts0​(15(C%)…

【EtherCAT】CiA402简介

目录 1、CiA402是CANopen协议的子协议 2、CiA402是 用于驱动和运动控制的CANopen设备配置文件 3、 CiA402主要由三部分组成 4、CiA介绍 4.1、操作模式 4.2、对象字典 5、一般对象字定义 6、详细对象字定义 7、Profile position mode 8、Homing mode 9、 Position co…

【Unity踩坑】UI Image的fillAmount不起作用

在游戏场景中,我们经常在界面上展示进度条,当然有各种形状的,线性的,长方形的,圆形,环形等等。 Unity中实现这种效果的话,最基本的方法说是改变Image的fillAmout属性。 如果你是初次使用UI Ima…

如何安装1Panel面板并架设一个静态网站

我们通常要架设网站在vps上,就要用到面板,一般是宝塔,但这个面板收费项目较多,用着不太方便。相比宝塔面板,1panel面板是国内功能强大、操作简单、免费易学的Linux服务器管理面板。我们还可以使用一键代码来安装这个面…

新手教学系列——基于统一页面的管理后台设计(二)集成篇

在现代企业级应用中,后台管理系统不仅是业务运营的核心,还承担着数据管理、用户权限控制等重要功能。随着业务规模的不断扩大,系统架构逐渐向微服务转变,多个后端服务模块协同工作,如何高效地集成这些模块,确保系统的稳定性和可维护性,成为开发者亟需解决的问题。在《新…

网络丢包定位记录(一)

数据在Internet上是以数据包为单位传输的,单位为字节,数据在网络上传输,受网络设备,网络质量等原因的影响,使得接收到的数据少于发送出去的数据,造成丢包。 数据包接收、发送原理 发送数据包: …

刷题训练之字符串

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握字符串算法。 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自:刷题…

2024年9月第3周AI资讯

阅读时间:3-4min 更新时间:2024.9.16-2024.9.20 目录 OpenAI 推出 o1:一种新的“推理”人工智能模型 微软为 Excel 和 Word 添加了更快的 Copilot World Labs 利用 AI 创建 3D 世界 AI 利用文本创建开放世界视频游戏 OpenAI 推出 o1&#x…

ESP32 JTAG 调试

前言 个人邮箱:zhangyixu02gmail.com本人使用的是 Ubuntu 环境,采用 GDB 方式进行调试。对于新手,我个人还是建议参考ESP32S3学习笔记(0)—— Vscode IDF环境搭建及OpenOCD调试介绍进行图形化的方式调试。如果是希望在…

Java反序列化利用链篇 | URLDNS链

文章目录 URLDNS链调用链分析Payload编写 系列篇其他文章,推荐顺序观看~ Java反序列化利用链篇 | JdbcRowSetImpl利用链分析Java反序列化利用链篇 | CC1链_全网最菜的分析思路Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版调用链Java反序列化利用链篇 | URLD…

【2024华为杯数学建模研赛赛题已出(A-F题)】

华为杯2024年中国研究生数学建模竞赛A-F题已公布 A题 B题 C题 D题 E题 F题

国庆小长假让你双倍快乐感的好物分享!宅家出游都满意~

经过长时间的工作与学习,终于即将迎来期盼已久的国庆长假。我相信许多朋友已经迫不及待地开始规划假期了,无论是踏上归途还是外出旅行,音乐总能为我们的旅程增添无限乐趣,成为提升心情的绝佳选择。而耳机,则是连接这份…

深度学习的新突破:Difformer模型

人工智能咨询培训老师叶梓 转载标明出处 在现实世界中,数据之间的复杂相互依赖性是一个普遍存在的现象。这种错综复杂的依赖关系,对于传统的机器学习算法来说,是一个巨大的挑战。因为它们通常假设数据是独立同分布的,这使得算法难…

暴力枚举算法

《啊哈&#xff01;算法》学习笔记 本博客的题目仅用暴力枚举&#xff0c;并不一定是最好的解法&#xff0c;主要是了解枚举算法 例题一&#xff1a;两方框奥数 在两个方框内填入相同的数字使得等式成立&#xff1a; 代码如下&#xff1a; for(i1;i<9;i) {if((i*103)*652…