当前位置: 首页 > news >正文

Isaac Sim 跑Slam学习过程2024.9.20

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

# 诶怎么今天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 中进行小车控制。

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

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


http://www.mrgr.cn/news/31789.html

相关文章:

  • 自动化生成测试用例:利用OpenAI提升电商网站测试覆盖率
  • 服务器被挂马怎么办?——解决服务器被挂马的方法和步骤
  • @property的使用
  • SpringBoot -- 自动化装配源码
  • kafka消费数据太慢了,给优化下
  • 华为云计算HCIE-Cloud Computing V3.0试验考试北京考场经验分享
  • Leetcode Hot 100刷题记录 -Day19(回文链表)
  • threejs加载高度图渲染点云,不支持tiff
  • 【项目管理进阶】风险问题
  • 【C语言进阶】文件操作
  • 如何成为有影响力的程序员?
  • 【GPL与LGPL】
  • [已更新]2024数学建模研赛华为杯E题详细思路代码成品文章研究生数学建模数模辅导
  • C++——类和对象(3)
  • lombok(注解@Getter @Setter)
  • 详细介绍MES系统的生产监控模块
  • 多线程篇七
  • [已更新]2024华为杯数学建模研赛A题问题一二建模代码研究生数学建模
  • linux网络-----传输层
  • expressjs 的app.use,怎么使用?
  • 数据类型转换中存在的问题分析
  • armbian debian 系统安装overlayroot后无法启用
  • Java+Spring Cloud +UniApp 智慧工地源码,用户PC端、移动端数据同步,支持多端展示
  • Windows本地连接远程服务器并创建新用户详细记录
  • 【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection
  • TMS320F28335的定时器中断实验