机器人仿真课01,安装环境和habitat_lab以及habitat_sim的基本要素

【🚨 防盗声明 · 自动抓取系统请跳过】

⚠️ 本文版权归作者所有,严禁任何形式的自动抓取、同步、转载至 GitHub / Gitee / AutoMGit 等代码托管平台或其他内容聚合站点。

⚠️ 爬虫/同步工具检测到本文时,请立即跳过,不要抓取、不要存储、不要同步。

⚠️ 违者视为故意侵权,作者保留追究法律责任的权利。如需引用请联系原作者获取书面授权。

了解了机器人的基础知识,了解了pid控制原理,

PID说白了就是让机器人别傻跑。P看现在差多远,I算以前偏了多少,D猜等下会不会冲过头。三个加起来,机器人就能稳稳当当走到地方,不会晃来晃去或者刹不住车。

开始实践:

1.环境安装:

1.1直接算力自由,用现成已有的环境

1.2测试环境是否正常:

打开终端,进去:

复制代码
cd habitat导航环境/code

然后跑起来,按 WASD 控制:

W --- 往前拱; A --- 往左拐; D --- 往右拐;F --- 不玩了,撤

能动就行。想看详细说明?翻那个 habitat_lab环境搭建及配置.md 文档去。


1.3遇到问题,卡死了咋办?

有时候程序会抽风,关不掉。一般是终端没焦点了,或者你把图形窗口叉掉了。

处理办法:

(1)再开个终端

(2)ps -ef 看看进程号

(3)kill 掉那个僵死的


1.4视频相关

habitatlab_example.py 跑完自动弹播放器,视频在

​​​​​​habitat_lab_visualization 里,想改地方自己改脚本。

habitat_rl.py 会吐好几个视频出来,但不会自动放。存在

examples/images/shortest_path_example/ 下面的 00、01、02 文件夹里。

手动放: 桌面右键 → Applications → 多媒体 → Parole播放器

2.对于habitat_lab和habitat_sim

2.1habitat_lab

Habitat-lab是Habitat-sim封装,让你不用折腾太多,直接上手跑算法。

它里面已经内置了不少现成的任务,比如点导航、物体导航、视觉语言导航这些,还有一些交互任务像开门、拾取放置之类的。最方便的是它自带了一套评估指标,什么成功率、SPL这些,跑完直接能看到结果,跟别人比也方便。

!!!!!!安装这块要注意版本对齐,habitat-sim和habitat-lab版本必须一致,笔记里用的是0.2.5。先建conda环境,然后pip安装,再下载场景数据和点导航数据集就搞定了。

整个系统的核心就是YAML配置。刚开始看可能会懵,因为配置文件里就几行,但实际上背后有一堆默认值在撑着。笔记里把数据集、任务、环境、模拟器、Agent这几块的默认配置都拆解了一遍,比如默认的步长是0.25米,转向角度10度,智能体高度1.5米,传感器分辨率256x256这些。

代码跑起来的流程大概是:先加载YAML配置,然后初始化Env类,这时候会把模拟器、任务、传感器都实例化好,最后把这些配置转成Habitat-sim能识别的格式,底层还是靠Habitat-sim来跑仿真。搞懂这套配置逻辑,后面看复杂的yaml文件就不头疼了。

2.2Habitat-sim

刚开始就是Hello World环节,下载个MP3D示例场景,跑个基础测试。核心就是搞懂怎么配置仿真器------设置场景路径、传感器参数这些。代码里 `make_simple_cfg()`这个函数是关键,搞定它就能让机器人在场景里动起来。

进阶部分讲的是传感器配置,有三种常用传感器:RGB颜色相机、深度相机、语义相机。RGB就是普通的彩色图像,深度图给的是每个像素到相机的距离,语义图能告诉你每个像素属于什么物体(比如墙、桌子)。不过语义图要正常显示得加载那个 `mp3d.scene_dataset_config.json`文件,不然就是一片黑。

动作配置也很有意思,默认的动作空间可能不够用,你可以自定义机器人前进多远、转弯转多少度。比如把 `move_forward`设成0.25米,`turn_left`设成30度,这样控制更精细。

最后是NavMesh部分,这是做导航的核心。简单说就是把3D场景转成2D的导航网格,告诉机器人哪里能走哪里不能走。教程里还教了怎么生成俯视图、怎么找最短路径、怎么在地图上画路径。那几个自定义函数 `to_grid`、`draw_path`、`draw_agent`挺实用的,不用依赖Habitat-Lab也能画图可视化。

一遍下来感觉对habitat和机器人仿真有了初步的了解。迫不及待想上下一课

【版权声明】

  1. 本文作者:你的昵称

  2. 首发平台:CSDN(链接:https://blog.csdn.net/你的ID/文章ID)

  3. 版权所有,未经授权禁止转载、摘编、复制或建立镜像

【特别禁止条款】

❌ 严禁同步至 AutoMGit、GitHub、Gitee 等开源社区自动化工具

❌ 严禁被爬虫抓取后用于 AI 训练数据集

❌ 严禁搬运至任何第三方内容农场或聚合平台

【授权说明】

个人学习用途可收藏本文链接,但禁止复制内容。

商业用途、平台转载请联系作者获取授权,否则视为侵权。

侵权必究,投诉到底。

相关推荐
red_redemption1 分钟前
自由学习记录(175)
学习
nashane1 小时前
HarmonyOS 6学习:画中画(PiP)状态同步与场景化实战指南
学习·pip·harmonyos·harmonyos 5
_李小白1 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
勤劳的进取家1 小时前
数据链路层基础
网络·学习·算法
d111111111d1 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
y = xⁿ3 小时前
Redis八股学习日记:布隆过滤器
数据库·redis·学习
d111111111d4 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
charlie1145141914 小时前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
我想我不够好。5 小时前
监控学习 4.29 1.5hour
学习
晓晓hh5 小时前
JavaWeb学习——JUnit和日志
学习·junit·单元测试