(Touch™)搭建 Ubuntu 开发环境

前言


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 SetupTouch 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 SetupTouch 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 复制到当前项目下

对该项目进行编译和执行,可参考下述指令:

  1. 生成构建目录 build:cmake -B build
  2. 从 build 目录编译项目:cmake --build build
  3. 运行编译后的程序:./build/touch_demo

Refer & Relevant


  • 20
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值