具身智能

news/2025/3/14 15:44:37/文章来源:https://www.cnblogs.com/scy157609962/p/18728755

Topic I: 3D VIsion

Topic II: Robotics

Topic IV: Reinforcement learning

Linear Algebra

Vector Space 向量空间

  • Linear Combination 线性组合

    \(w=a_1v_1+a_2v_2+...+a_nv_n=\sum_i a_iv_i\)

  • Span of Vectors

    \(v_i \in V_m\), \(w \in V_m\)

  • Infinite-Ddimensional Vector Space

Optimization Problem

\[min_{x \in \mathbb{R}^n f(x)} \\ s.t. g(x) = 0 \\ h(x) \ge 0 \]

  1. Lagrange Multipliers

    \[\nabla f(x)=\lambda\nabla g(x) \\ g(x)=0 \\ \mathcal{L}(x,\lambda) \equiv f(x)+\lambda\cdot g(x) \]

  2. PCA (Principle Component Analysis)

Curve

  1. Parameterized Curve

    \[\gamma:\mathbb{R}\to\mathbb{R}^{2},\gamma(t)=(x(t),y(t)) \]

  2. Reparameterization

    \[\tilde{\gamma}(t):=\gamma(\phi(t)) \\ \tilde{\gamma}^{\prime}(t)=\frac{d}{dt}\gamma(\phi(t))=\mathbf{v}(\phi(t))\phi^{\prime}(t). \]

  3. Arc Length

    \[\int_a^b\left\|\gamma'(t)\right\|dt \]

  4. Tangent and Nomal (切线、法线)

    \[T'(s) = \mathcal{K}(s) N(s) \\ N'(s) = - \mathcal{K}(s) T(s) \]

  5. Curvature (曲率)

    \[\mathcal{r}(s):=\frac{1}{\mathcal{k}(s)} \]

  6. 3D Curves

Surface I

Surface II

Representation

  • Polygonal Mesh & Triangle Mesh
    • Bad Mesh (Nonuniform areas)
      img
    • Data Structures for Surfaces: Triangle list (STL format)
      img
    • Vertex, Face (OBJ format)
      img
  • Point Cloud
    • Uniform Sampling
    • Farthest Point Sampling
  • Voxelization

Transformation

  • Topology (拓朴结构)
    img
  • Orientation: rotation
    • pitch(俯仰角), roll(翻滚角), yaw(偏航角) (rotation in \(\mathbb{R}^3\))

库函数的使用

Mujoco

Basics

mujoco.MjModel

mjModel中包含模型的几何描述信息(不会随时间改变),如颜色、尺寸等信息

from mujoco import MjModelxml = """
<mujoco><worldbody><geom name="red_box" type="box" size=".2 .2 .2" rgba="1 0 0 1"/><geom name="green_sphere" pos=".2 .2 .2" size=".1" rgba="0 1 0 1"/></worldbody>
</mujoco>
"""
"""type(model) => mujoco._structs.MjModel"""
model = MjModel.from_xml_string(xml)
model.ngeom  # 获取模型中定义的几何体数量
model.geom_pos   # 获取模型中所有几何体的位置数组 (n, 3)
model.geom_rgba  # 获取所有几何体的颜色数组 (n, 4) 
# n: 几何体数量,4: [r,g,b,a]"""type(inst) => mujoco._structs._MjModelGeomViews"""
inst = model.geom(<geom_name>)  # 通过名称获取几何体实例(当名称不存在时报错)
inst.rgba  # 获取实例几何体的颜色数组 (4, )
inst.id  # 获取实例几何体的id (int)# 通过几何体的名称查找id
id = mujoco.mj_name2id(model, mujoco.mjtObj.mjOBJ_GEOM, <geom_name>)
model.geom_rgba[id, :]  # 通过id获取几何体的颜色数组

mujoco.MjData

mjData中包含模型的状态信息,如物体在世界空间中的笛卡尔坐标

from mujoco import MjData
"""type(data) => mujoco._structs.MjData"""
data = mujoco.MjData(model)  # model为上一步创建的mjModel几何体
data.geom_xpos  # model中所有实例几何体的笛卡尔坐标 (n, 3)
"""type(inst) => mujoco._structs._MjDataGeomViews"""
inst = data.geom(<geom_name>)
inst.xpos # 通过名称获取实例几何体的笛卡尔坐标 (3, )
"""
inst的属性:idnamexmatxpos: 实例几何体的笛卡尔坐标 (3, )
"""

Rendering

import mujoco
import mediapy as mediaxml = """
<mujoco><worldbody><light name="top" pos="0 0 1"/>  <!--添加场景灯光--><geom name="red_box" type="box" size=".2 .2 .2" rgba="1 0 0 1"/><geom name="green_sphere" pos=".2 .2 .2" size=".1" rgba="0 1 0 1"/></worldbody>
</mujoco>
"""
model = mujoco.MjModel.from_xml_string(xml)
data = mujoco.MjData(model)with mujoco.Renderer(model) as renderer:mujoco.mj_forward(model, data)  # we should propagate the values in `mjData` using `mujoco.mj_forward(model, data)`renderer.update_scene(data)media.show_image(renderer.render())

Numpy

import numpy as npnp.linalg.solve(A, b)  
# 求解线性方程组 Ax=b
# A:(M,M)的二维系数矩阵
# b:(M,1)的一维数组
# 对于一般的非方阵A,可以构造A^TAx=A^Tb,使用`np.linalg.solve(A^TA, A^Tb)`来求解x

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的jieba

jieba 是一个广泛使用的 Python 中文分词库,主要用于将中文文本切分成独立的词语。 https://github.com/fxsjy/jieba 安装pip install jieba使用 (1)分词import jieba # 分词 text = "我爱自然语言处理" words = jieba.cut(text, cut_all=False) # 精确模式 prin…

3. 创建一个菜单组件-DeepSeek辅助编程

在deepseek中输入: 创建一个vue组件 组件实现菜单的功能 需要让调用该组件是可以自定义一些属性:mode:horizontal横向显示/vertical纵向显示,background-color,text-color,active-text-color,model:通过该model绑定菜单/model为MenuItem的数组 MenuItem由这些参数构成:inde…

微信支付相关配置

公众号相关配置 地址:https://mp.weixin.qq.com/一、获取用户openid相关配置 二、获取开发者ID(AppID)/开发者密码(AppSecret) 微信支付相关配置 地址:https://pay.weixin.qq.com/需要先申请开通支付产品微信支付相关参数获取: 一:获取商户号(商户号mach_id)三、获取证书…

华为开发者空间:基于DeepSeek+Cherry Studio构建模拟面试助手

通过实际操作,让开发者熟悉如何通过云主机部署DeepSeek,以及如何将DeepSeek与Cherry Studio结合起来帮助我们解决一些实际的问题。本文分享自华为云社区《华为开发者空间:基于DeepSeek+Cherry Studio构建模拟面试助手》,作者:开发者空间小蜜蜂。 1 案例介绍 CherryStudio …

​信创环境元宇宙应用:3种虚拟团队管理工具前瞻测评

随着信息技术的不断发展,信创环境下的元宇宙应用正逐渐成为各行业关注的焦点。在这个虚拟的世界中,虚拟团队的管理变得至关重要。本文将对三种虚拟团队管理工具进行前瞻测评,探讨它们在信创环境元宇宙应用中的优势和潜在挑战。 信创国产化项目管理解决方案 禅道是一款国产的…

VSCode+Linux+GCC编译运行数据结构的C语言程序集

背景 学习数据结构,写了很多C语言程序,这些C语言程序都保存在一个Git仓库中,以章节、实验内容为目录存放,形如:之前一直是通过gcc命令手动编译、运行,但随着程序逐渐复杂,希望简化构建过程,做到一键编译运行,同时支持断点调试。 环境VSCode,安装了C/C++扩展 Linux GC…

​信创项目管理认证解析:从SAFe到PMBOK的5大适配要点

在当今数字化时代,信创项目管理的重要性日益凸显。SAFe(Scaled Agile Framework,规模化敏捷框架)和 PMBOK(Project Management Body of Knowledge,项目管理知识体系)作为两种广泛应用的项目管理方法,如何实现它们之间的适配,以更好地推动信创项目的成功实施,是一个值…

mybatis如何使用注解方式,不使用xml

前言 大家好,我是小徐啊。我们在使用springboot开发的时候,一般是结合mybatis来使用的。而且,我们一般使用mybatis的时候,都是使用xml的文件。 不过,我之前在开发的时候,遇到了使用xml怎么也读取不到,可能是哪里配置的问题。这个时候,我就想到了使用注解的方式写sql,不…

SHP转WKT文件工具

SHP转WKT文件工具 *.shp转成wkt文件工具:将shp数据的图形转换成wkt工具 参数配置:param.yml设置shape路径,路径参数设置:shapeFile: “你的路径”;注:路径请使用"\\"或者’/’ ;避免使用含中文的路径示例: shapeFile: “C:/Users/Administrator/Desktop/wm/wm.s…

美标插头:插片一大一小,上面带孔

过年期间我遇到了一个刚从美国留学回来的朋友,正好在家无聊,我就让她给我讲讲在美国发生的事情,她告诉我去美国一定要带转换插座,因为那边的插头和国内的不一样,插头上的插片一大一小,可以说是很畸形了,可这是为什么呢?她说她刚开始也不懂,后来查了资料才知道,这是因…

MATLAB R2024b 安装教程

MATLAB R2024b 安装教程 软件介绍 MATLAB 是由 “Matrix” 和 “Laboratory” 两个词组合而成,意为“矩阵工厂”,是一款专注于科学计算、数据可视化和交互式程序设计的高科技计算环境。MATLAB 集成了数值分析、矩阵计算、科学数据可视化以及非线性动态系统建模和仿真等强大功…

手把手教如何将若依前后端分离项目在Tomcat下部署教程

如果你想在Tomcat单独部署诺依项目,前提你要配置好诺依相关的环境,比如安装jdk,mysql,redis,maven等环境,并且开发工具能够正常把项目跑起来,部署可自行去诺依官网查看相关教程。 接下来将详细讲解诺依项目部署在Tomcat下运行相关操作:后端部署1.打开开发工具,修改配置与打…