2016-06-20數碼 觸覺力反饋當然是有的! 做過一段時間觸覺反饋的設計套用,我也來寫點幹貨吧。 首先為什麽需要觸覺反饋 為了真實( ・᷄ὢ・᷅ ) 而且在某些可預期的套用裏面,觸覺反饋將會是重要甚至必需的資訊,比如精細遙控外科手術,精密仿生義肢,不可描述類娛樂遊戲等。 接下來是如何產生觸覺反饋 其實對於VR觸覺模擬的研究已經有很多了,這裏挑一些基礎的說一下。另外由於我比較懶所以文中出現的中文術語都是自己任性轉譯的,還有未經允許不要轉載謝謝。 上來先說下我們組裏自己弄得一些有意思的套用吧,基本上用的器材是Phantom Omni,Novint Falcon 3D Touch以及Oculus rift。 這是同組的女生做的一個小project,Phantom可以接自己手指或者電容筆,然後借助手指或者筆在一塊電容屏上觸摸,可以感受VR中預先設定幾種材料的質感,紋理,硬度。 我這種宅男就做了個飛船遊戲,畫質就不用看了反正我又不是做遊戲開發的 - - 重點是操縱飛船中能感受到星際間各種作用力比如隕石的碰撞力,黑洞和大質素行星的重力以及降落過程中大氣層內的各種風力等等。 第一人稱視角,以後把Oculus部份做好之後玩起來應該還是比較帶感的。 圖上不是我啊,我看上去有那麽宅嗎哼。 操縱器材用的是Novint Falcon 3D Touch,正好被這哥們擋住了。。。 他自己做的是一個感應溫度和阻力的滑鼠,沒有拍照,反正就是3D打印了一個滑鼠,加了溫度和振動配件,然後利用電磁鐵模擬阻力大小...相當於全部DIY沒有用到現成的觸覺反饋器材,這個我服。 好了下面簡單說一下觸覺反饋這個題目,我就寫個小paper好了。 概述 首先稍微解釋下觸覺和力反饋的概念,相較於聽覺或視覺而言,觸覺反饋(Haptic Feedback)確實更加復雜,所以導致極其難以高保真的模擬。而觸覺本身以及其對應的人類觸覺感知系統就是多種不同元素的混合體,簡單來說觸覺可以分為: 1.動覺(Kinesthetic Perception),如對力和力矩的感受。(感知物體形狀,重量,硬度等) 2.觸覺(Tactile Perception), 如對振動,溫度,切向力等的感受。(感知物體紋理,粗糙度,冷熱等) 在生活中我們一個簡單的觸覺感知往往都同時包含了上述多種資訊,想想你牽著女朋友的手是不是軟軟暖暖輕輕小小毛絨絨五味俱全啊,如果是第一次碰到還會加上微微觸電的感覺呢。 這個例子除了虐狗還有一點就是說明我們一般感知到的觸覺就是包括了動覺和觸覺的,人類內建的幾種觸覺感受器(如觸覺小體Meissner corpuscle, 巴氏小體Pacinian corpuscle,Merkel cell和 Ruffini ending這些我也看不懂的詞)也是協同作用的,獨立感知某一種特定反饋的情況很少(人體在麻醉的時候可以失去觸覺僅剩動覺感知),由此可見在VR中想百分百模擬出人類日常感受到的觸覺是很難的,除非黑科技把模擬觸覺訊號直接連入使用者大腦。 現有常用的觸覺反饋器材一般也是側重於對於動覺的反饋。 1觸覺反饋器材與系統 1.1觸覺反饋器材 現在市場上的觸覺反饋器材有很多,這裏就不細講了,貼個圖: Figure1.1 為了反饋出三維空間內力和力矩,至少要求3個自由度的位置反饋和3個自由度的力反饋,比如Novint Falcon 3D Touch,除了自身的操縱桿,也可以外接其它器材: Source:Novint Falcon 所以說現在遊戲工業是第一生產力啊,當然插些別的做其它逼真的模擬也是可以的,自己想象吧。 1.2觸覺反饋系統 總的來說一個觸覺反饋系統的核心主要是兩點:觸碰檢測(Collision Detection) 和反饋(力)計算(Feedback Computation), 這兩步我們放在一個Haptic Rendering裏面完成。另外由於觸覺反饋的即時性,Haptic Rendering的更新頻率要求是很高的,我們一般取1kHz。如果更新頻率太低,會導致系統不穩定比如在反饋端使用者感受到的是震動而不是正常的受力情況。 話說回來觸覺反饋的套用還是得搭配上視覺反饋,否則只能看不能摸或者只能摸不能看,使用者玩的也不開心對不對。所以呢加上一個相適應的Visual Rendering,視覺反饋要求的更新頻率就可以低多了,一般小於300Hz即可。本身人眼視覺資訊也是一幀幀的圖片嘛,連續性差一點也感覺不出。 還是上個圖吧: Figure1.2 上圖是本地觸覺反饋系統的基本結構,但是觸覺反饋還有一個很重要的套用是遠端操控,比如遠端外科手術之類的,這就要求設定remote communication 比如client和server。這裏由於時間關系我也不講了。 隊友還等著打守望呢。 2 觸碰檢測(Collision Detection) 接下來詳細講下觸覺反饋的兩個核心內容,觸碰檢測和反饋計算。 觸碰檢測是觸覺反饋的前提,因為如果沒有碰到你就不會有觸覺反饋(廢話)。 如果是簡單剛體的話是比較簡單進行觸碰檢測的,比如說在虛擬空間的球體,我們只要知道球心,半徑和虛擬感知器的位置就可以知道是否發生了觸碰,但如果是結構和曲率稍微復雜一些的物體我們就必須先分解建模了。 2.1 建模:三角劃分(Triangular Primitives) 對於虛擬空間中的復雜物體,是否發生觸碰是非常難和耗費計算資源的,因此選擇合適的建模很重要,否則延遲到想哭。一般我們可以采取多邊形或者三角形來分割構建物體的表面,正好拔了四粒智齒,我就拿chai3D裏的牙齒來舉個例子。 Figure2.1.1 比如說我們想感受這顆牙齒的質感和形狀,基本視覺效果是這個樣子的,但是為了進行觸碰檢測,我們需要對其表面建模: Figure2.1.2 看不清楚嗎,讓我們近距離看一下這顆牙: Figure2.1.3 透過將牙齒表面劃分成一個個三角形(尤其是溝槽處這種復雜的地方),我們可以檢測出虛擬儀器與牙齒的觸碰位置(對應三角形區域)以及觸碰程度(深度),可見三角形越小,劃分越細,模擬效果越好,耗費計算資源越大。另外,為了模擬牙齒的質感(粗糙度),我們還在每一塊三角形上加上其force normal vector: (這樣水平方向的力也能考慮進去----滑過牙齒表面的阻力) Figure2.1.4 這樣對一顆牙齒質感及形狀進行觸覺反饋的前期工作就完成了~ 2.2建模:層次劃分法(Hierarchical Bounding Representation) 適用於更復雜的物體結構。 好累啊。 先空著。 3 力反饋計算 Feedback Force Computation 觸覺反饋中溫度和振動這樣的資訊還是能比較直觀地模擬出來的,接下來介紹幾種現實中常見力的反饋仿真模型和演算法,基本上可以滿足虛擬空間中我們想要的物體的觸覺反饋的內容了。 3.1形狀感知 首先觸覺反饋的基本內容之一就是透過觸覺你能感受到虛擬空間中物體的形狀,比如說借助器材你可以感受一個籃球的大小或者一個方塊的形狀,棱角等資訊。 還有一個概念需要先說明一下就是HIP 和IHIP,前者是Haptic Interaction Point, 對應虛擬空間中觸覺感知器材的實際位置,而後者是Ideal Haptic Interaction Point,對應觸覺感知器材視覺上的位置。由此我們可以確定觸碰的深度(depth),這往往用於判定反饋力的大小和方向。 VR中最簡單的剛體模型就是球體了,假設在VR中我們用一個質點去感受球體,那麽不管你在球體表面的哪個點發生碰觸,反饋到的力的方向為球心到觸碰點的連線,我們只需簡單定義力的純量大小即可。 Figure3.1.1 如圖,IHIP始終停留在球表面,正如我們不應穿透一個剛體。實際位置HIP可以在球的內部,HIP與IHIP連線即為穿透深度。最簡單的情形下設定力的大小為剛體系數乘以穿透深度,如果系數比較大,觸覺上我們會感覺這是一個硬硬的球,如果系數較小則是一個軟蛋。 同樣地我們可以仿真一個有棱有角的方塊: Figure3.1.2 3.2形狀感知改進:God-object based haptic rendering 如果將上述簡單模型套用在更加復雜的物件或者諸如薄板這樣的特殊物體上,由於沒有儲存接觸歷史(contact history),仿真效果有可能出問題,比如發生移動HIP的時候發現感知力的方向有了突變,或者觸摸平板的時候發生了穿透的感覺,因此可以用God-Object或者Proxy演算法來對上述方法進行改進。 寫的好累啊。 感覺還有好多講不完了 先空著吧。 3.3重力,斥力及重力仿真 這裏也先空著 往下都是空著的目錄別翻了 哎你點個贊再走啊朋友 3.4摩擦力仿真及摩擦圓錐 Friction / Friction Cone Algorithm 空著 3.5漸變力 Force Shading 空著 3.6 黏度仿真 Viscosity 空著 3.7 感知及傳輸數據最佳化:死區原理 Deadband Principal 還是空著 參考列表 Reference Rahul Chaudhari. Computational Haptics Laboratory. Institute for Media Technology, Technishe Universität München. Diego C. Ruspini, Krasimir Kolarov and Oussama Khatib. The Haptic Display of Complex Graphical Environments. Interval Research Corporation. Stanford University. Sean Quinlan. Efficient Distance Computation between Non-Convex Objects. Robotics Laboratory. Stanford University W.S.Harwin and N.Melder. Improved Haptic Rendering for Multi-Finger Manipulation Using Friction Cone based God-Objects. Department of Cybernetics, University of Reading. Cagatay Basdogan and Mandayam A.Srinivasan. Haptic Rendering in Virtual Environments. Jet Propulsion Laboratory, California Institute of Technology. C.B.Zilles and J.K.Slisbury. A Constraint-based God-Object Method for Haptic Display. Artificial Intelligence Laboratory, Massachusetts Institute of Technology.
觸覺力反饋當然是有的! 做過一段時間觸覺反饋的設計套用,我也來寫點幹貨吧。 首先為什麽需要觸覺反饋 為了真實( ・᷄ὢ・᷅ ) 而且在某些可預期的套用裏面,觸覺反饋將會是重要甚至必需的資訊,比如精細遙控外科手術,精密仿生義肢,不可描述類娛樂遊戲等。 接下來是如何產生觸覺反饋 其實對於VR觸覺模擬的研究已經有很多了,這裏挑一些基礎的說一下。另外由於我比較懶所以文中出現的中文術語都是自己任性轉譯的,還有未經允許不要轉載謝謝。 上來先說下我們組裏自己弄得一些有意思的套用吧,基本上用的器材是Phantom Omni,Novint Falcon 3D Touch以及Oculus rift。 這是同組的女生做的一個小project,Phantom可以接自己手指或者電容筆,然後借助手指或者筆在一塊電容屏上觸摸,可以感受VR中預先設定幾種材料的質感,紋理,硬度。 我這種宅男就做了個飛船遊戲,畫質就不用看了反正我又不是做遊戲開發的 - - 重點是操縱飛船中能感受到星際間各種作用力比如隕石的碰撞力,黑洞和大質素行星的重力以及降落過程中大氣層內的各種風力等等。 第一人稱視角,以後把Oculus部份做好之後玩起來應該還是比較帶感的。 圖上不是我啊,我看上去有那麽宅嗎哼。 操縱器材用的是Novint Falcon 3D Touch,正好被這哥們擋住了。。。 他自己做的是一個感應溫度和阻力的滑鼠,沒有拍照,反正就是3D打印了一個滑鼠,加了溫度和振動配件,然後利用電磁鐵模擬阻力大小...相當於全部DIY沒有用到現成的觸覺反饋器材,這個我服。 好了下面簡單說一下觸覺反饋這個題目,我就寫個小paper好了。 概述 首先稍微解釋下觸覺和力反饋的概念,相較於聽覺或視覺而言,觸覺反饋(Haptic Feedback)確實更加復雜,所以導致極其難以高保真的模擬。而觸覺本身以及其對應的人類觸覺感知系統就是多種不同元素的混合體,簡單來說觸覺可以分為: 1.動覺(Kinesthetic Perception),如對力和力矩的感受。(感知物體形狀,重量,硬度等) 2.觸覺(Tactile Perception), 如對振動,溫度,切向力等的感受。(感知物體紋理,粗糙度,冷熱等) 在生活中我們一個簡單的觸覺感知往往都同時包含了上述多種資訊,想想你牽著女朋友的手是不是軟軟暖暖輕輕小小毛絨絨五味俱全啊,如果是第一次碰到還會加上微微觸電的感覺呢。 這個例子除了虐狗還有一點就是說明我們一般感知到的觸覺就是包括了動覺和觸覺的,人類內建的幾種觸覺感受器(如觸覺小體Meissner corpuscle, 巴氏小體Pacinian corpuscle,Merkel cell和 Ruffini ending這些我也看不懂的詞)也是協同作用的,獨立感知某一種特定反饋的情況很少(人體在麻醉的時候可以失去觸覺僅剩動覺感知),由此可見在VR中想百分百模擬出人類日常感受到的觸覺是很難的,除非黑科技把模擬觸覺訊號直接連入使用者大腦。 現有常用的觸覺反饋器材一般也是側重於對於動覺的反饋。 1觸覺反饋器材與系統 1.1觸覺反饋器材 現在市場上的觸覺反饋器材有很多,這裏就不細講了,貼個圖: Figure1.1 為了反饋出三維空間內力和力矩,至少要求3個自由度的位置反饋和3個自由度的力反饋,比如Novint Falcon 3D Touch,除了自身的操縱桿,也可以外接其它器材: Source:Novint Falcon 所以說現在遊戲工業是第一生產力啊,當然插些別的做其它逼真的模擬也是可以的,自己想象吧。 1.2觸覺反饋系統 總的來說一個觸覺反饋系統的核心主要是兩點:觸碰檢測(Collision Detection) 和反饋(力)計算(Feedback Computation), 這兩步我們放在一個Haptic Rendering裏面完成。另外由於觸覺反饋的即時性,Haptic Rendering的更新頻率要求是很高的,我們一般取1kHz。如果更新頻率太低,會導致系統不穩定比如在反饋端使用者感受到的是震動而不是正常的受力情況。 話說回來觸覺反饋的套用還是得搭配上視覺反饋,否則只能看不能摸或者只能摸不能看,使用者玩的也不開心對不對。所以呢加上一個相適應的Visual Rendering,視覺反饋要求的更新頻率就可以低多了,一般小於300Hz即可。本身人眼視覺資訊也是一幀幀的圖片嘛,連續性差一點也感覺不出。 還是上個圖吧: Figure1.2 上圖是本地觸覺反饋系統的基本結構,但是觸覺反饋還有一個很重要的套用是遠端操控,比如遠端外科手術之類的,這就要求設定remote communication 比如client和server。這裏由於時間關系我也不講了。 隊友還等著打守望呢。 2 觸碰檢測(Collision Detection) 接下來詳細講下觸覺反饋的兩個核心內容,觸碰檢測和反饋計算。 觸碰檢測是觸覺反饋的前提,因為如果沒有碰到你就不會有觸覺反饋(廢話)。 如果是簡單剛體的話是比較簡單進行觸碰檢測的,比如說在虛擬空間的球體,我們只要知道球心,半徑和虛擬感知器的位置就可以知道是否發生了觸碰,但如果是結構和曲率稍微復雜一些的物體我們就必須先分解建模了。 2.1 建模:三角劃分(Triangular Primitives) 對於虛擬空間中的復雜物體,是否發生觸碰是非常難和耗費計算資源的,因此選擇合適的建模很重要,否則延遲到想哭。一般我們可以采取多邊形或者三角形來分割構建物體的表面,正好拔了四粒智齒,我就拿chai3D裏的牙齒來舉個例子。 Figure2.1.1 比如說我們想感受這顆牙齒的質感和形狀,基本視覺效果是這個樣子的,但是為了進行觸碰檢測,我們需要對其表面建模: Figure2.1.2 看不清楚嗎,讓我們近距離看一下這顆牙: Figure2.1.3 透過將牙齒表面劃分成一個個三角形(尤其是溝槽處這種復雜的地方),我們可以檢測出虛擬儀器與牙齒的觸碰位置(對應三角形區域)以及觸碰程度(深度),可見三角形越小,劃分越細,模擬效果越好,耗費計算資源越大。另外,為了模擬牙齒的質感(粗糙度),我們還在每一塊三角形上加上其force normal vector: (這樣水平方向的力也能考慮進去----滑過牙齒表面的阻力) Figure2.1.4 這樣對一顆牙齒質感及形狀進行觸覺反饋的前期工作就完成了~ 2.2建模:層次劃分法(Hierarchical Bounding Representation) 適用於更復雜的物體結構。 好累啊。 先空著。 3 力反饋計算 Feedback Force Computation 觸覺反饋中溫度和振動這樣的資訊還是能比較直觀地模擬出來的,接下來介紹幾種現實中常見力的反饋仿真模型和演算法,基本上可以滿足虛擬空間中我們想要的物體的觸覺反饋的內容了。 3.1形狀感知 首先觸覺反饋的基本內容之一就是透過觸覺你能感受到虛擬空間中物體的形狀,比如說借助器材你可以感受一個籃球的大小或者一個方塊的形狀,棱角等資訊。 還有一個概念需要先說明一下就是HIP 和IHIP,前者是Haptic Interaction Point, 對應虛擬空間中觸覺感知器材的實際位置,而後者是Ideal Haptic Interaction Point,對應觸覺感知器材視覺上的位置。由此我們可以確定觸碰的深度(depth),這往往用於判定反饋力的大小和方向。 VR中最簡單的剛體模型就是球體了,假設在VR中我們用一個質點去感受球體,那麽不管你在球體表面的哪個點發生碰觸,反饋到的力的方向為球心到觸碰點的連線,我們只需簡單定義力的純量大小即可。 Figure3.1.1 如圖,IHIP始終停留在球表面,正如我們不應穿透一個剛體。實際位置HIP可以在球的內部,HIP與IHIP連線即為穿透深度。最簡單的情形下設定力的大小為剛體系數乘以穿透深度,如果系數比較大,觸覺上我們會感覺這是一個硬硬的球,如果系數較小則是一個軟蛋。 同樣地我們可以仿真一個有棱有角的方塊: Figure3.1.2 3.2形狀感知改進:God-object based haptic rendering 如果將上述簡單模型套用在更加復雜的物件或者諸如薄板這樣的特殊物體上,由於沒有儲存接觸歷史(contact history),仿真效果有可能出問題,比如發生移動HIP的時候發現感知力的方向有了突變,或者觸摸平板的時候發生了穿透的感覺,因此可以用God-Object或者Proxy演算法來對上述方法進行改進。 寫的好累啊。 感覺還有好多講不完了 先空著吧。 3.3重力,斥力及重力仿真 這裏也先空著 往下都是空著的目錄別翻了 哎你點個贊再走啊朋友 3.4摩擦力仿真及摩擦圓錐 Friction / Friction Cone Algorithm 空著 3.5漸變力 Force Shading 空著 3.6 黏度仿真 Viscosity 空著 3.7 感知及傳輸數據最佳化:死區原理 Deadband Principal 還是空著 參考列表 Reference Rahul Chaudhari. Computational Haptics Laboratory. Institute for Media Technology, Technishe Universität München. Diego C. Ruspini, Krasimir Kolarov and Oussama Khatib. The Haptic Display of Complex Graphical Environments. Interval Research Corporation. Stanford University. Sean Quinlan. Efficient Distance Computation between Non-Convex Objects. Robotics Laboratory. Stanford University W.S.Harwin and N.Melder. Improved Haptic Rendering for Multi-Finger Manipulation Using Friction Cone based God-Objects. Department of Cybernetics, University of Reading. Cagatay Basdogan and Mandayam A.Srinivasan. Haptic Rendering in Virtual Environments. Jet Propulsion Laboratory, California Institute of Technology. C.B.Zilles and J.K.Slisbury. A Constraint-based God-Object Method for Haptic Display. Artificial Intelligence Laboratory, Massachusetts Institute of Technology.