在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > Chai3D之觸覺設備

            Chai3D之觸覺設備

            發(fā)布人:xyni2023 時間:2023-02-28 來源:工程師 發(fā)布文章
            Chai3D之觸覺設備


            推薦:將 NSDT場景編輯器 加入你的3D開發(fā)工具鏈

            介紹

            ??觸覺設備是一種雙向儀表/致動的人機界面,由人類操作員用于與計算機模擬虛擬環(huán)境進行主動交互。觸覺設備可以是鼠標、方向盤、指墊、機器人手柄、抓手、操縱桿、手套、磁懸浮手腕,甚至是移動整個用戶身體的運動平臺的形式。它可用于模擬具有質(zhì)量、阻尼、摩擦和剛度屬性的環(huán)境,也可以模擬虛擬工具與其周圍虛擬環(huán)境交互的機械行為。

            ??CHAI3D 提供了一個名為 cGenericHapticDevice 的基類,它實現(xiàn)了一組與最常見的 3D 觸覺設備進行通信的方法。觸覺設備的末端執(zhí)行器或手柄的位置可以通過使用getPosition(),getRotation(),getGripperAngleDeg()等方法讀取。可選的用戶開關或按鈕可以通過調(diào)用getUserSwitch()來讀取。

            ??力和扭矩可以通過調(diào)用諸如setForce(),setForceAndTorque()和setForceAndTorqueAndGripperForce()等方法發(fā)送到觸覺設備。

            ??對于每種型號的觸覺設備(例如delta.x,omega.x獵鷹,幻影等)CHAI3D 實現(xiàn)了一個特定的類(例如 cDeltaDevice、cPhantomDevice),該類繼承自 cGenericHapticDevice,并通過從支持該設備的 API 調(diào)用特定命令來實現(xiàn)每個命令。

            一般規(guī)定

            ??所有數(shù)量均以IUS(公制)單位表示。參考設備坐標系指定 x 軸指向操作員,y 軸指向操作員的右側(cè),z 軸指向上方。最后,原點始終位于設備物理工作區(qū)的中心。

            ??如果觸覺設備帶有手腕或手寫筆,則其手柄的方向使用旋轉(zhuǎn)矩陣表示。下圖說明了三自由度、六自由度和七自由度設備的約定。

            三自由度、六自由度和七自由度觸覺設備的參考框架。

            ??示例 02-multi-devices 是一個簡單的應用程序,它顯示連接到計算機的每個觸覺設備的參考幀。參考框架使用顏色而不是標簽來命名不同的軸(分別為 x、y 和 z)。顏色約定為:紅色表示 x 軸,綠色表示 y 軸,藍色表示 z 軸。

            CHAI3D 示例 02-多設備:參考幀和光標。觸覺設備處理程序

            ??觸覺設備處理程序 (cHapticDeviceHandler) 是一個類,用于搜索并列出連接到計算機的所有觸覺設備。

            ??在下面的列表中,我們說明了一個簡單的示例,該示例對觸覺設備施加力,使其末端執(zhí)行器朝向其工作空間的中心點:

            using namespace chai3d;
            // create haptic device handler
            cHapticDeviceHandler* handler;
            handler = new cHapticDeviceHandler();
            // get handle to first available haptic device on the list
            cGenericHapticDevice* hapticDevice;
            handler->getDevice(hapticDevice, 0);
            // open connection to haptic device
            hapticDevice->open();
            // initialize simulation
            bool simulationRunning = true;
            double Kp = 25;
            cVector3d position(0,0,0);
            // haptics loop
            while (simulationRunning)
            {
            // read position from haptic device
            hapticDevice->getPosition(position);

                // compute force
                cVector3d force = -Kp * position;
                // send force to haptic device
                hapticDevice->setForce(force);

            }
            // close connection to haptic device
            hapticDevice->close();

            如何定制觸覺設備

            ??cMyCustomDevice 提供了一個基本模板,可讓您非常輕松地將 CHAI3D 連接到您自己的自定義觸覺設備。只需按照文件 CMyCustomDevice 中的 12 個注釋步驟操作.cpp并相應地完成代碼。根據(jù)設備上的自由度數(shù),可能需要實現(xiàn)并非所有方法。例如,如果您的設備不提供任何旋轉(zhuǎn)自由度,只需忽略 getRotation() 方法即可。如果未在設備上實現(xiàn)默認值,則將正確返回默認值。例如,在旋轉(zhuǎn)的情況下,返回單位矩陣。

            ??您還可以重命名此類,在這種情況下,您還需要自定義觸覺處理程序以自動檢測您的設備。請查閱 cHapticDeviceHandler 類的方法 update(),該類位于文件 CHapticDeviceHandler.cpp 中。只需查看觸覺設備處理程序如何查找 cMyCustomDevice 類型的設備。

            ??如果您在實現(xiàn)時遇到任何問題,請檢查實例文件 CDeltaDevices.cpp該文件實現(xiàn)了對力維度和 Novint 觸覺設備的支持。為了驗證實現(xiàn),請使用01-mydevice示例開始。示例 11-effects 是一個很好的演示,用于驗證基本觸覺效果在觸覺設備上的行為方式。如果您確實遇到振動或不穩(wěn)定性,請嘗試降低設備支持的最大剛度(請參閱文件 CMyCustomDevice.cpp 中的 STEP1)。

            ??確保您的設備與計算機的通信速度也足夠快。理想情況下,通信周期應小于1ms,以達到至少1000Hz的所需更新速率。例如,使用慢速串行端口 (RS232) 時通常會出現(xiàn)問題。

            3D建模學習工作室翻譯整理,轉(zhuǎn)載請標明出處!

            Sign up for more like this.


            *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




            相關推薦

            技術專區(qū)

            關閉