
主要工作流
## 主要参数要求 在室外工作,输出至少720P深度与RGB图像 最好可以支持gmsl2接口 ### 电爪相机 拍摄"角钢选取"画面 - 距离要求:>0.4m - 精度误差要求:<10mm@1m 近距离拍摄"角钢抓取点"画面 - 距离要求:0.2-0.3m - 精度误差要求:<3mm@0.3m紧固相机
近距离拍摄”螺栓”
- 距离要求:<0.3m
- 精度误差要求:<1mm@0.3m
奥比中光
待选:
- Gemini 335Lg(作为电爪相机)
Intel
待选:
- D405(作为紧固相机)
近距离拍摄”螺栓”
待选:
- Gemini 335Lg(作为电爪相机)
待选:
- D405(作为紧固相机)
奠定世界模型= Intelligence without representation
目前学界广泛认为,世界模型是通往AGI的正确道路。而世界模型这一理念可以追溯到这篇1991年的文章。
1890 年代的人想造飞机,却只能根据他们零碎的观察去猜。他们看到现代飞机巨大、复杂,于是做了一个错误类比:
“现代飞机又大又重 → 所以重量不是问题。”
这当然荒唐。真正让飞机能飞的前提是升力、功率重量比、材料强度等关键工程指标的平衡。但他们只看到了表象,所以:
寓言中的团队觉得项目太大,所以分专业化研究,但他们犯了一个致命错误: 没有系统架构,没有统一指标,没有工程指导思想。
因此:
Brooks 的核心观点用一句话总结就是:
智能不是“建模世界 + 推理”的结果,而是“直接在世界中行动”的结果。世界本身就是模型,不需要额外的表征。
传统 AI(symbolic AI)强调:
Brooks 强烈反对。他认为:
这种思想后来直接催生了:
Custom Robot URDF with Moveit2
使用solidworks URDF exporter.
需要注意不要使用
lock constrain限制零件位置。
https://moveit.picknik.ai/main/doc/examples/examples.html#integration-with-a-new-robot
首先克隆moveit2的示例仓库:
1 | git clone -b humble https://github.com/moveit/moveit2_tutorials |
编译项目colcon build,启动setup assistant:
1 | ros2 launch moveit_setup_assistant setup_assistant.launch.py |
随后按照教程配置SRDF。
配置完成后可以启动示例代码:
1 | ros2 launch panda_moveit_config demo.launch.py |
会将机械臂可视化并且拖动目标位置之后可以plan&execute。
(Mindmap) Part-level Scene Understanding for Robots
A scene graph is a structural representation, which can capture detailed semantics by explicitly Modeling:
A scene graph is a set of visual relationship triplets in the form of <subject, relation, object> or <object, is, attribute>
Scene graphs should serve as an **objective semantic representation** of the state of the scene(Roadmap) Deeper Scene Graph For Robots
Robotic planning and execution in open-world environments is a complex problem due to the vast state spaces and high variability of task embodiment.
例如针对家用场景:
目前粗粒度(object-level)的场景抽象(场景图构建)已经有许多工作了,详见Reconstruct-Anything Literature Review,在这些工作中,重点都在于object detection和 object-level visual relationship detection
需要聚焦的部分是多粒度的场景抽象
需要多粒度的原因:
在更细粒度(part-level)的场景抽象中,重点在于子物体和父物体关系的识别
除此,和object-level scene graph中的object detection相对的,是part-level scene graph的子物体语义的多粒度分割和语义信息提取,可以由现有的Semantic-SAM和类似CLIP或者其他多模态模型的语义特征提取器实现。
What aspects does parent-child relationship include?
Reconstruct Anything Literature Review
涉及的文章:
通过构建part-level scene-graph,结合Reasoning with LLM 让机器人能够实现更复杂的交互,并以此完成更复杂的任务。
Visual scene understanding长期以来一直被认为是计算机视觉的圣杯
Visual scene understanding 可以被分为两块任务
recognition task
application task
但是以上这些Generally的工作注重的都是the localization of objects,更高级别的任务强调探索对象之间的丰富语义关系,以及对象与周围环境的相互作用
除此之外还有将NLP和CV结合起来的方向,主要是一些VLM
对于总体场景的感知和信息的有效表示仍然是瓶颈。
所以Li Feifei 在[[Image Retrieval using Scene Graphs]]提出Scene Graph
与Structured Representation相对的是Latent Representation
A scene graph is a structural representation, which can capture detailed semantics by explicitly Modeling
A scene graph is a set of visual relationship triplets in the form of <subject, relation, object> or <object, is, attribute>
Scene graphs should serve as an objective semantic representation of the state of the scene
Scene Graph具有应对和改善其他视觉任务的内在潜力。
可以解决的视觉任务包括:
场景图生成的目的是解析图像或一系列图像,并且生成结构化表示,以此弥合视觉和语义感知之间的差距,并最终达到对视觉场景的完整理解。
任务的本质是检测视觉关系。
早先由Feifei [[Visual Relationship Detection with Language Priors]] 提出了视觉关系检测的方法。
以及Visual Genome这个包含物体关系的数据集
Detects objects first and then solves a classification task to determine the relationship between each pair of objects
**General:** a) 通过图片获取 subject/object and union box proposals (ROI感兴趣区域)b) 提取每个区域的特征。包括object的appearance, spatial information, label, depth, and mask;predicate的appearance, spatial, depth, and mask。
c) 这些多模态特征被 vectorized, combined, and refined。可以通过:
d) 分类器用于预测predicate的类别
基于Visual translation embedding的
Simultaneously detects and recognizes objects and relations
相较于two-stage:
基本都是基于LLM或者VLM之类的大模型
这里所有的工作都是关于如何判断两个独立物体之间的谓语关系(例如riding, holding…),并没有涉及part-level relationship的工作。part-level的父子关系和object-level的谓语关系是很不一样的。
即场景信息存储在一个神经网络中,并没有显式的结构,规划器(可以是LLM)通过query这个模型来获得信息。
核心思想是用交互更丰富的模型组合成可交互的替代场景。
主要用于建模物体之间的运动学关系
将 scene graph 用于机器人任务理解和规划
本文提出的模型主要想解决3D密集标注和交互式规划。
结合
需要align the dense 3D visual information with the textual embedding space of a pre-trained LLM。3D点集由于其连续坐标系以及需要适应场景状态变化的表示形式而构成了一个独特的问题
3D-VQA
VLN(Visual-Language Navigation)
和[[3D-LLM]]一样,都是多视角采集D-RGB信息然后整合为3D frame
标注信息来自于Mini-GPT-V2(capable of generating captions and object descriptions from images by using caption and grounded caption identifiers)。
Uses image frames and a 2D-VLM(Mini-GPT-V2) to generate frame descriptions
3D场景数据是通过基于其相机姿势汇总的3D帧来重建
使用Llama-2-Chat-70B [65]生成场景的语言注释
From Vision Studio 对于VLM生成内容使用的self-checking: [83]prompted with a mix of context data including generated frame captions, frame object descriptions, annotated object lists, and annotated bounding boxes. These prompts lead to diverse instruction-following data types like dense caption, object caption, task decomposition, functionality enhancement, question-answering, and human-robot dialogues
场景-LLM是一种3D视觉语言模型(VLM),具有简单而有效的体系结构,旨在理解以基于本体和场景级别的3D视觉信息,使其能够成功执行交互式计划任务。本节概述了3D视觉特征提取过程,我们的模型的体系结构,3D视觉信息与数据集的对齐以及使用Scene-LLM进行推理。
Employ visual language semantic features [51] to represent 3D visual semantics
Tokenize 3D visual features for LLM input:
To bridge 3D visual tokens(F) with the LLM’s tokenized space
FC(1030, 768)->GELU->FC(768,768)
Llama-2-7b as the foundational LLM backbone
在两个坐标系统(camera和世界坐标)下使用3D帧数据,以确保场景-LLM理解以自我为中心和以场景为中心的观点。
在此阶段,仅训练了projection layer,可以有效地对齐具有文本特征的3D视觉特征,同时保持LLM参数(φ)不变。
优化Scene-llm,以准确响应用户说明。我们使用标识符令牌“我看到”将3D帧语言和3D场景语言数据合并到前言。文本描述分为指令($T_{INST}$)及其相应的响应($T_{ANS}$)。利用转换后的3D视觉令牌($T_{3D}$)和指令令牌($T_{INST}$),我们的目标是微调LLM(φ)以自动生成$T_{ANS}$.
在这里,我们共同微调了投影层和LLM,由θ= {ψ,φ}表示