Python骨架肌體運動學數學模型

🎯要點

🎯運動學矢量計算 | 🎯跳遠的運動學計算 | 🎯關節肢體運動最小加加速度模型 | 🎯膝關節和踝關節角度二維運動學計算 | 🎯上下肢體關節連接運動鏈數學模型 | 🎯剛體連接點速度加速度計算 | 🎯剛體變換二維三維運動學計算 | 🎯奇異值分解算法剛體變換 | 🎯三維運動角速度計算 | 🎯肌體和步態模型

📜Python,R,C++/C#和MATLAB運動學剛體動力學用例

📜Python重力彈弓流體晃動微分方程模型和交直流電阻電容電路

📜Python和R概率統計算法建模評估氣象和運動

📜Python流體數據統計模型和淺水滲流平流模型模擬

📜Python自行車六自由度飛行器多連接件非線性運動方程模型

📜Python協作運動機器人剛體力學解耦模型

📜ROS2(Cpp或Python)機器學習路徑選擇三維模擬平衡車及YOLOv8視覺消息

📜Python | C++ | MATLAB機器人正逆向運動學動力學求解器及算法

📜Python | C# | MATLAB 庫卡機器人微分運動學 | 歐拉-拉格朗日動力學 | 混合動力控制

📜C++和Python螞蟻搬食和蚊蟲趨光性和浮標機群行為算法神經網絡

📜Python人形機踴躍跨欄舉重投籃高維數動作算法模型

📜MATLAB和Python發那科ABB庫卡史陶比爾工業機器人模擬示教框架

📜MATLAB雨刮通風空調模糊器和發電廠電力聚變器卷積神經

🍪語言內容分比

在這里插入圖片描述
在這里插入圖片描述

🍇Python運動學可視化

運動學是力學的一個分支,涉及物體的運動,而不考慮引起運動的力。給定一個描述粒子位置矢量隨時間變化的方程,就可以計算各種運動學屬性。最重要的是速度和加速度。如果粒子沿直線運動,則運動是直線運動。類似地,沿著彎曲路徑行進的粒子也進行曲線運動。

x x x y y y z z z 笛卡爾坐標系定義了粒子在歐幾里得空間中的空間位置。方程 1 顯示了粒子位置隨時間的變化。秒 (s) 是時間單位,米 (m) 是位置單位。
r ? ( t ) = x ( t ) ? ^ + y ( t ) ? ^ + z ( t ) k ^ ( 1 ) \vec{r}(t)=x(t) \hat{\imath}+y(t) \hat{\jmath}+z(t) \hat{k}\qquad(1) r (t)=x(t)^+y(t)^?+z(t)k^(1)
曲率半徑 (rho) 是從粒子 P 到路徑 C 的曲率中心的距離。當粒子在空間中移動時,曲率半徑會根據描述運動的函數而變化。

速度是由方程 2 表示的位置的一階導數。速度矢量與粒子的軌跡相切。

v ? ( t ) = d x ( t ) d t ? ^ + d y ( t ) d t ? ^ + d z ( t ) d t k ^ ( 2 ) \vec{v}(t)=\frac{d x(t)}{d t} \hat{\imath}+\frac{d y(t)}{d t} \hat{\jmath}+\frac{d z(t)}{d t} \hat{k}\qquad(2) v (t)=dtdx(t)?^+dtdy(t)?^?+dtdz(t)?k^(2)
該方向上的單位矢量是單位切矢量,由公式 3 給出。它等于速度矢量除以幅值。

u ^ t = v ? v ( 3 ) \hat{u}_t=\frac{\stackrel{\rightharpoonup}{v}}{v}\qquad(3) u^t?=vv??(3)
向量有方向和大小。公式 4 顯示了如何計算 3 維位置矢量的大小。它可以應用于任何向量并擴展到任意數量的維度。

∥ r ? ∥ = r = x 2 + y 2 + z 2 ( 4 ) \|\vec{r}\|=r=\sqrt{x^2+y^2+z^2}\qquad(4) r =r=x2+y2+z2 ?(4)
加速度是位置的二階導數或速度的一階導數。法向分量和切向分量包括加速度。

  • 切向加速度與速度方向相同。
  • 法向加速度是朝著粒子路徑的曲率中心的方向。

方程 5 顯示了加速度的兩個分量。單位切向加速度矢量和法向加速度矢量是正交單位矢量。因此,它們形成一個稱為密切平面的平面。

a ? ( t ) = a t u ^ t ? 切向? + a n u ^ n ? 法向? ( 5 ) \vec{a}(t)=\underbrace{a_t \hat{u}_t}_{\text {切向 }}+\underbrace{a_n \hat{u}_n}_{\text {法向 }}\qquad(5) a (t)=切向? at?u^t???+法向? an?u^n???(5)
單位副法向量垂直于密切平面,構成右手正交系。因此,方程 6 給出了單位副法線。
u ^ b = u ^ t × u ^ n = v ? × a ? ∥ v ? × a ? ∥ ( 6 ) \hat{u}_b=\hat{u}_t \times \hat{u}_n=\frac{\vec{v} \times \vec{a}}{\|\vec{v} \times \vec{a}\|}\qquad(6) u^b?=u^t?×u^n?=v ×a v ×a ?(6)
單位法線指向曲率中心,這意味著曲率中心 C 位于密切平面內。因此,相對于粒子 P,曲率中心 C 由方程 7 給出。
r ? c / p = ρ u ^ n ( 7 ) \vec{r}_{c / p}=\rho \hat{u}_n\qquad(7) r c/p?=ρu^n?(7)
向量相加給出了 C 的位置向量,如公式 8 所示。
r ? c = r ? + r ? c / p ( 8 ) \vec{r}_c=\vec{r}+\vec{r}_{c / p}\qquad(8) r c?=r +r c/p?(8)

Python模擬三維運動學

模擬從 0 秒開始,360 秒后結束。以下代碼顯示了時間線束參數。

t0 = 0
tf = 720
dt = 1
time = np.arange(t0, tf, dt, dtype='float')

方程 9 定義了粒子的位置如何隨時間變化,從而定義了軌跡。
r ? ( t ) = sin ? ( 3 t ) ? ^ + cos ? ( t ) ? ^ + cos ? ( 2 t ) k ^ ( 9 ) \vec{r}(t)=\sin (3 t) \hat{\imath}+\cos (t) \hat{\jmath}+\cos (2 t) \hat{k}\qquad(9) r (t)=sin(3t)^+cos(t)^?+cos(2t)k^(9)
以下顯示了該符號運動方程以及速度和加速度導數的聲明。還提出了切向加速度方程,它是速度大小的導數。

t = sp.symbols('t')
R = [sp.cos(t), sp.sin(t), t / 5] 
V = vector_derivative(R, t)
A = vector_derivative(V, t)
At = vector_magnitude(V).diff(t)

矢量方程

def vector_derivative(vector, wrt):return [component.diff(wrt) for component in vector]def vector_magnitude(vector):magnitude = 0for component in vector:magnitude += component ** 2return magnitude ** (1 / 2)def unit_vector(from_vector_and_magnitude=None, from_othogonal_vectors=None, from_orthogonal_unit_vectors=None):if from_vector_and_magnitude is not None:vector_a, magnitude = from_vector_and_magnitude[0], from_vector_and_magnitude[1]return [component / magnitude for component in vector_a]if from_othogonal_vectors is not None:vector_a, vector_b = from_othogonal_vectors[0], from_othogonal_vectors[1]vector_normal = np.cross(vector_a, vector_b)return unit_vector(from_vector_and_magnitude=(vector_normal, vector_magnitude(vector_normal)))if from_orthogonal_unit_vectors is not None:u1, u2 = from_orthogonal_unit_vectors[0], from_orthogonal_unit_vectors[1]return np.cross(u1, u2)def evaluate_vector(vector, time_step):numerical_vector = [float(component.subs(t, time_step).evalf()) for component in vector]magnitude = vector_magnitude(numerical_vector)return numerical_vector, magnitude

定義了相關的矢量函數后,就可以開始隨時間傳播。以下顯示了用于運行模擬的代碼。

propagation_time_history = []for ti in time:ti_r = d2r(ti)r, r_mag = evaluate_vector(R, ti_r)v, v_mag = evaluate_vector(V, ti_r)v_theta = [r2d(angle) for angle in direction_angles(v, v_mag)]a_theta = [r2d(angle) for angle in direction_angles(a, a_mag)]ut = unit_vector(from_vector_and_magnitude=(v, v_mag))ub = unit_vector(from_othogonal_vectors=(v, a))un = unit_vector(from_orthogonal_unit_vectors=(ub, ut))at = float(At.subs(t, ti_r).evalf())rc = r + (rho * un)rc_mag = vector_magnitude(rc)iteration_results = {'t': ti, 'rx': r[0], 'ry': r[1], 'rz': r[2], 'r_mag': r_mag,'vx': v[0], 'vy': v[1], 'vz': v[2], 'v_mag': v_mag,'rcx': rc[0], 'rcy': rc[1], 'rcz': rc[2], 'rc_mag': rc_mag, 'rho': rho,'ax': a[0], 'ay': a[1], 'az': a[2], 'a_mag': a_mag, 'an': an, 'at': at,'ubx': ub[0], 'uby': ub[1], 'ubz': ub[2],'utx': ut[0], 'uty': ut[1], 'utz': ut[2],'unx': un[0], 'uny': un[1], 'unz': un[2]}propagation_time_history.append(iteration_results)df = pd.DataFrame(propagation_time_history)

👉參閱&更新:計算思維 | 亞圖跨際

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/web/41884.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41884.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41884.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[python]Markdown圖片引用格式批處理桌面應用程序

需求 使用python編寫一個exe,實現批量修改圖片引用,將修改后的文件生成為 文件名_blog.md。有一個編輯框,允許接收拖動過來md文件,拖入文件時獲取文件路徑,有一個編輯框編輯修改后的文件的輸出路徑,用戶拖入…

Springboot實戰:AI大模型+亮數據代理助力短視頻時代

目錄 前言1.如何入門亮數據1.1、注冊登錄1.2、注冊賬號1.3、登錄1.4、購買靜態住宅代理1.5、展示購買的代理 2. 使用Springboot、AI大模型構建系統2.1 使用Springboot、AI大模型構建爬蟲2.2、在Springboot項目添加工具 3、編寫代碼,爬取視頻素材3.1、代碼里使用代理…

Redis核心問題總結(一)

1、為什么要使用Redis做緩存 緩存的好處 使用緩存的目的就是提升讀寫性能。而實際業務場景下,更多的是為了提升讀性能,帶來更好的性 能,帶來更高的并發量。Redis 的讀寫性能比 Mysql 好的多,我們就可以把 Mysql 中的熱點數據緩 …

如何編譯ffmpeg支持h265(hevc)?

推薦使用這里的文件:https://github.com/runner365/ffmpeg_rtmp_h265 根據你ffmpeg的源碼 版本,切換到不同分支即可。 國內cdn方式: 新增codecid hevc/vp8/vp9/opus在rtmp中的codecid沒有官方協議定義,由國內眾多知名cdn共同制定。 FLV_COD…

1. LangChain4j 之入門(簡單易學)

一:前言 什么是LangChain?而LangChain4j又是什么?不知道的朋友,可以看我一下兩篇文章 1分鐘了解LangChain是什么? | 1分鐘了解LangChain4j是什么? LangChain4j是LangChain的Java版本,幫助開發者很容易的接入大模型的…

提升結構安全性:應變計在現代建筑中的應用

在現代建筑領域,隨著工程技術的不斷進步,對結構安全性的要求也日益提高。作為一種關鍵的工程儀器儀表,應變計在提升結構安全性方面發揮著不可替代的作用。本文將深入探討應變計在現代建筑中的應用,以及它如何助力工程師們實時監測…

權力之望怎么注冊賬號創建角色 權利之網角色賬號注冊教程

權力之望是一款全新的大型MMORPG游戲,擁有9把獨特武器和56種職業組合,并搭配了超炫酷的戰斗畫面,全程采用低俯視角游戲,讓玩家能體驗到更強的操作感和爽快感。這款游戲主打高養成自由度玩家可以自由更換武器進行戰斗,還…

前端面試題30(閉包和作用域鏈的關系)

閉包和作用域鏈在JavaScript中是緊密相關的兩個概念,理解它們之間的關系對于深入掌握JavaScript的執行機制至關重要。 作用域鏈 作用域鏈是一個鏈接列表,它包含了當前執行上下文的所有父級執行上下文的變量對象。每當函數被調用時,JavaScri…

零基礎也能成為產品冊設計高手

?在當今數字化時代,產品冊設計已成為企業營銷的重要手段之一。過去,人們認為只有專業人士才能設計出精美的產品冊,然而,隨著設計工具的普及和在線學習資源的豐富,零基礎的你也能成為產品冊設計高手。本文將帶你走進這…

MindsDB:一個利用企業數據構建 AI 的平臺

MindsDB作為一個開源項目,它旨在將機器學習模型無縫集成到現有的數據庫系統中,為用戶提供實時的數據預測能力。這個項目的創新之處在于,它能夠以簡單、直觀的方式讓開發者和非技術人員都能夠利用AI進行數據分析和預測。 它是根據企業數據庫定…

航空航天單位保密網文件導出管理難點在哪里?如何解決?

航空航天單位的重要性不言而喻,它們在國家安全、科技進步、經濟發展以及國際合作等多個領域都扮演著至關重要的角色。為了保護工作內容中的重要數據,遵守保密規定,對涉密人員、保密要害部門單位、涉密載體、涉密信息傳輸和涉密活動進行嚴格管…

glide加載mp4 源碼堆棧調用核心代碼分析

load 數據走的httpurlfetcher 的loaddata 從MultiLoader 調用而來 load到inputstream流后的處理 核心 圖片是glide 首先創建解釋器的時候 加了videodecoder 然后這里會從流中加載對應幀的圖片保存在手機cache目錄中 將這個file 作為bitmap傳遞 然后加載 private static final…

MySQL物理備份與恢復工具XtraBackend使用總結

文章目錄 1.描述2.安裝3.使用3.1 備份源數據庫3.2 恢復到目標數據庫3.2.1 恢復目錄3.2.2 解壓文件3.2.3 應用日志3.2.4 復制數據 4.使用總結4.1 備份4.2 恢復4.3 例子 1.描述 借助Percona XtraBackup工具實現MySQL的物理備份與恢復,相當于將整個MySQL進行了復制&am…

Django+vue自動化測試平臺(25)-- 自動化測試之封裝APscheduler定時任務框架

APscheduler簡介 APscheduler全稱Advanced Python Scheduler,作用為在指定的時間規則執行指定的作業,其是基于Quartz的一個Python定時任務框架,實現了Quartz的所有功能,使用起來十分方便。提供了基于日期、固定時間間隔以及cront…

2.5 C#視覺程序開發實例1----CamManager實現模擬相機采集圖片

2.5 C#視覺程序開發實例1----CamManager實現模擬相機采集圖片 1 目標效果視頻 CamManager 2 CamManager讀取本地文件時序 3 BD_Vision_Utility添加代碼 3.0 導入鏈接庫 BD_OperatorSets.dllSystem.Windows.Forms.dllOpencvSharp 3.1 導入VisionParam中創建的文件Util_FileO…

安防監控/視頻匯聚平臺EasyCVR設備錄像回看請求播放時間和實際時間對不上,是什么原因?

安防監控EasyCVR視頻匯聚平臺可提供多協議(RTSP/RTMP/國標GB28181/GAT1400/海康Ehome/大華/海康/宇視等SDK)的設備接入、音視頻采集、視頻轉碼、處理、分發等服務,系統具備實時監控、云端錄像、回看、告警、平臺級聯以及多視頻流格式分發等視…

旅游計劃定制小程序網頁模板源碼

手機在線旅游定制服務,定制旅游出行app小程序模板。包含:定制介紹、定制表單填寫、我的訂單等。 旅游計劃定制小程序網頁模板源碼

C++ STL 文件系統用法介紹

目錄 一. 獲取當前工作目錄 二:設置和讀取文件寫入時間 三:獲取文件目錄大小 四:獲取文件類型信息 一. 獲取當前工作目錄 #include <filesystem> #include <iostream> #include <fstream> namespace fs = std::filesystem;int main() {std::cout &l…

交換機接口三種模式Access、Trunk、Hybrid

交換機接口的三種模式 1.access接口模式&#xff08;接入鏈路&#xff0c;接入模式&#xff09; 接收數據&#xff1a;當接收到一個無標記幀的時候&#xff0c;打上自己的PVid并接受&#xff08;就是自己的vlan標簽&#xff09;。當接收到一個有標記幀的時候&#xff0c;對比…

swiftui中NavigationStack布局navigationBarTitleDisplayMode作用,以及內容頂部空白區域解決辦法

寫了一個小demo用于學習NavigationStack和toolbar/ToolbarItem知識&#xff0c;但是在寫一個瀑布流布局的時候&#xff0c;設置了頂部的toolbar&#xff0c;然后內容區域的頂部出現了一大片空白區域&#xff0c;這樣的效果并不是很美觀很好看&#xff0c;所以就想著研究解決一下…