前言
Touch™ 力反馈设备支持 Windows 和 Linux 平台,本文将介绍如何在 Linux 平台上安装 Touch™ 驱动及运行开发包自带的 demo 示例
>> 注意:虚拟机中无法正常安装使用 Touch™
Touch™ 设备驱动安装
>> 从官网获取设备最新驱动:OpenHaptics for Linux Developer Edition v3.4
解压 TouchDriver_2023_01_12.tgz
,进入解压文件夹,可以使用 tree .
查看目录结构
.
├── bin
│ ├── Touch_AdvancedConfig
│ ├── Touch_Diagnostic
│ └── Touch_Setup
├── install_haptic_driver
├── ListCOMPortHapticDevices
├── rules.d
│ └── 99-3dsystems.rules
└── usr
└── lib
└── libPhantomIOLib42.so
在上述目录下,执行以下命令,安装 Touch 设备驱动,过程中提示需要管理员权限
./install_haptic_driver
将 Touch Setup
和 Touch diagnostics
可执行文件复制到 /usr/bin
路径下;将LibPhantomIOLib42.so
复制到 /usr/lib
路径下
sudo cp -a bin/. /usr/bin
sudo cp usr/lib/libPhantomIOLib42.so /usr/lib
Ubuntu 20.04 默认安装 Qt,若系统中未安装 Qt,则安装
sudo apt install qt-default
创建 3DSystems 目录来配置和保存设置 Touch 和 Touch X 设备所需的配置文件
sudo mkdir /usr/share/3DSystems
设置环境变量 GTDD_HOME 映射上一步创建的配置文件目录路径,并添加到系统级环境变量 /etc/environment
中,使其成为永久性的,并且对所有用户均有效:
sudo -H gedit /etc/environment
在打开的文件中添加:GTDD_HOME="/usr/share/3DSystems"
环境变量的生效需要先注销再重新登入系统,可以使用命令:gnome-session-quit
,或手动注销。重新登入后,执行下方命令检查环境变量是否添加成功
echo $GTDD_HOME
结果会打印出:/usr/share/3DSystems
在 /usr/share/3DSystems
目录下创建文件夹 config
sudo mkdir GTDD_HOME/config
连接触觉反馈设备,使用官方提供的脚本 ListCOMPortHapticDevices
来查找触觉反馈设备被电脑分配的端口
./`TouchDriver_2023_01_12/ListCOMPortHapticDevices
为该端口赋予权限
chmod 777 /dev/ttyACM0
用户每次断开和重新连接 USB 设备,或者系统从休眠状态退出时,都需要重新设置 COM 端口的读/写/执行权限(Chmod 777)
当设备权限被正确赋予后,可以运行官方程序 Touch Setup
和 Touch diagnostics
,注意以管理员权限执行,否则无法保存设备参数
sudo Touch_Setup
sudo Touch_Diagnostic
OpenHaptics 开发包安装
>> 从官网获取最新 OpenHaptics 开发包:OpenHaptics for Linux Developer Edition v3.4
解压 openhaptics_3.4-0-developer-edition-amd64.tar.gz
,进入解压文件夹,执行
sudo ./install
出现如下提示:
THE COMPUTER MUST REBOOT AFTER THE INSTALLATION IN ORDER FOR THE SOFTWARE TO WORK PROPERLY. PLEASE SAVE ANY OPEN FILES OTHERWISE YOU WILL LOSE UNSAVED DATA.
** Please make sure that you have installed the following dependencies before compiling OpenHaptics applications:
- ncurses (libncurses5-dev)
- freeglut (freeglut3)
- build-essential
The software will be installed to path : /opt/OpenHaptics/Developer/3.4-0/
Do you want to continue? (y/n):
根据提示,在安装该开发包前,须安装好如下组件:
sudo apt install libncurses5-dev freeglut3 build-essential
接着继续 sudo ./install
,出现如下提示:
IMPORTANT NOTE: The following dependencies are needed to compile OpenHaptics SDK examples. Please make sure they are installed on your system.
1. freeglut3-dev
2. libncurses5-dev
3. zlib1g-dev
Please reboot the computer before using Geomagic Touch Device Driver software.
Press ANY key to RESTART now or 'q' to cancel
继续根据提示安装好所需依赖
sudo apt install freeglut3-dev libncurses5-dev zlib1g-dev
按照提示按任意键,系统会自动重启
>> 验证开发包是否安装成功:
OpenHaptics 开发包安装在 /opt/OpenHaptics/Developer/3.4-0/
,可以打开一个 example 进行编译,验证开发包是否安装成功
打开其中一个案例:ComplexScene
cd /opt/OpenHaptics/Developer/3.4-0/QuickHaptics/examples/ComplexScene/ComplexSceneGLUT
查看目录结构:tree .
.
├── Makefile
├── Models
│ ├── box.jpg
│ ├── brick.jpg
│ ├── earth.jpg
│ ├── Rusty.jpg
│ ├── Thumbs.db
│ └── verdana.ttf
└── src
└── main.cpp
由此,可以使用 make
编译,最后直接运行可执行文件,查看案例效果
![[OpenHaptics 案例 ComplexScene.png]]
其他案例类似,先编译 make
再执行
搭建 Touch™ 编程开发环境
介绍在 Ubuntu 中使用 VSCode 和 Cmake 搭建 Touch™ 的 C/C++ 编程环境
CMakeLists.txt 模板如下:
cmake_minimum_required(VERSION 3.16)
project(touch_demo)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -W -O2 -DNDEBUG -Dlinux")
include_directories(/usr/include)
add_executable(touch_demo AnchoredSpringForce.cpp conio.c)
target_link_libraries(touch_demo /lib/libHD.so /lib/libHDU.a)
将 touch 开发包中的 HD 示例 AnchoredSpringForce 的 conic.c、conio.h、AnchoredSpringForce.c 复制到当前项目下
对该项目进行编译和执行,可参考下述指令:
- 生成构建目录 build:
cmake -B build
- 从 build 目录编译项目:
cmake --build build
- 运行编译后的程序:
./build/touch_demo