Isaac Sim 跑Slam学习过程2024.9.20

news/2024/9/21 14:52:32 标签: 学习

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

# 诶怎么今天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

        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 中进行小车控制。


http://www.niftyadmin.cn/n/5668989.html

相关文章

计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法。本文主要探讨计算机视觉领域中人脸关键点特征智能提取的技术方法。详细介绍了基于卷积神经网络模型进行人脸关键点提取的过程,包括使…

SaaS 架构:益处及挑战

软件即服务(SaaS)的采用率在过去几年中稳步增长,越来越多的企业选择这种类型的软件分发模型。无论您是从头开始构建SaaS产品,还是考虑基于内部SaaS的解决方案是否比内部部署的解决方案更好,都必然会出现 SaaS 架构的话…

数据结构之二叉树查询

二叉树之查询 二叉树的查询是建立遍历的基础上更进一步的对比查询,下面分别从前序、中序、后续三种方法中查询对应的节点。 前序查找 /*** 前序查询*/public Person preSelectById(Integer id) {Person person null;if (this.data.getId().equals(id)) {person …

MiniCPM3-4B | 笔记本电脑运行端侧大模型OpenBMB/MiniCPM3-4B-GPTQ-Int4量化版 | PyCharm环境

MiniCPM3-4B,轻松在笔记本电脑上运行大模型? 背景一、选择模型二、模型下载三、模型运行四、总结 背景 2024年9月5日,面壁智能发布了MiniCPM3-4B,面壁的测试结果声称MiniCPM3-4B表现超越 Phi-3.5-mini-instruct 和 GPT-3.5-Turbo-…

Could not load library libcudnn_cnn_train.so.8 问题及(非常简单)解决方案

问题描述 Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.8/lib64/libcudnn_cnn_train.so.8: undefined symbol: _ZN5cudnn3cnn34layerNormFwd_execute_internal_implERKNS_7backend11VariantPackEP11CUstream_stRNS0_18LayerNormFwdParamsERKNS…

执行网络攻击模拟的 7 个步骤

在进攻和防守策略方面,我们可以从足球队和美式足球队身上学到很多东西。球员们会分析对方球队的策略,找出弱点,相应地调整进攻策略,最重要的是,练习、练习、再练习。作为最低要求,网络安全部门也应该这样做…

[SDX35+WCN6856]SDX35 + WCN6856 WiFi可以up起来之后无法扫描到SSID

SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…

Node.js官网无法正常访问时安装NodeJS的方法

目录 一、使用 nvm 进行安装二、通过阿里云开源镜像站进行安装 一、使用 nvm 进行安装 此时如果直接使用 nvm install 命令进行安装会报错: nvm install 16.14.0Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get “https://nodejs.org/dis…