珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK

前言

编译运行机械臂Linux-SDK,尝试直接在ubuntu中用C++开发。

不使用实时内核!


目录

前言

基本环境介绍

编译流程

step1 安装依赖(通过安装ros解决)

step2 安装vscode以及必要的VSCode扩展

step3 添加头文件路径

step4 添加头文件

step5 修改example文件内容

step6 进行编译

step7 更改网络环境

step8 执行编译生成的文件

踩坑记录

大坑

大坑1:没有实时内核也可以编译运行机械臂SDK

大坑2:虚拟机软件一定要使用VMWare的pro系列

小坑

小坑1:关于虚拟机配置

小坑2


基本环境介绍

宿主机:win10(带有显卡,为什么要强调显卡后续会讲)

虚拟机:ubuntu20.04

编译流程

step1 安装依赖(通过安装ros解决)

wget http://fishros.com/install -O fishros && . fishros 

通过鱼香ros一键安装

(过程中会完成换源,所以在这步之后可以安装输入法)

step2 安装vscode以及必要的VSCode扩展

必须的扩展如下: 

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第1张图片

step3 添加头文件路径

第一次进入工程右下角会弹窗,询问是否configure头文件,选择是,会自动在.vscode文件夹下生成c_cpp_properties.json。

如果跳过了这步直接生成,网上还有很多其他教程/模板,还是可以生成该文件,这里就不赘述。

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第2张图片

step4 添加头文件

对工程中所有的.cpp文件都添加如下头文件:

#include 

不然sleep函数会报错。

对joint_s_mu.cpp文件额外添加如下头文件:

#include 

step5 修改example文件内容

对于所有的例程都需要检查如下内容,如果不是则需要进行修改。

IP地址:本地的机械臂ip地址为192.168.0.160

初始姿态:

原本有的初始姿态

std::array q_drag = {{0,PI/6,PI/3,0,PI/2,0,0}};

是错误的,需要修改为:

std::array q_drag = {{0,PI/6,0,PI/3,0,PI/2,0}};

不使用实时内核:在初始化部分,将原本代码中的

xmate::Robot robot(ipaddr, port,XmateType::XMATE7_PRO);

改为

xmate::Robot robot(ipaddr, port,XmateType::XMATE7_PRO,false);

step6 进行编译

直接在vscode中使用终端依次输入如下命令:

cd rci_client/build/
cmake ..
make

编译不报错即可。

这样是编译了整个工程,后续应改为只编译使用的文件!

step7 更改网络环境

首先通过如下语句安装net-tools网络工具,通过ifconfig命令查看当前的ip地址。

sudo apt install net-tools

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第3张图片

在虚拟机界面,虚拟机-设置-网络适配器-桥接模式(勾选“复制物理网络连接状态”),如上图所示,点击确定退出。

留在虚拟机界面,编辑-虚拟网络编辑器,将虚拟机的主网络桥接到宿主机的物理连接上,如下图所示:

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第4张图片

 通过下列语句将虚拟机主网络ip地址改为192.168.0.50(跟机械臂在同一网段)

sudo ifconfig ens33 192.168.0.50

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第5张图片

此时可以看到虚拟机主网的ip修改成功。 

通过ping 192.168.0.160检查与机械臂是否连接,出现下图状况说明连接正常。

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第6张图片

step8 执行编译生成的文件

通过如下指令切换到相应路径:

cd build/example

直接通过如下指令运行可执行文件:

sudo ./cartesian_position_move

一定要加上sudo,不然执行依然需要实时内核。

然后就可以看机械臂执行程序啦~

** 程序执行完后,不要忘记通过HMI给机械臂手动下电(后续可以写在程序中)

踩坑记录

大坑

大坑1:没有实时内核也可以编译运行机械臂SDK

之前在外接固态上安装过ubuntu系统并成功安装了实时内核,当外接固态接在主机上通过bios启动时,显示器因为接在显卡上并没有安装显卡驱动,因此分辨率只能达到1024x768,在官网下载了对应的显卡驱动但是在安装时提示不能在实时内核环境下安装,所以不用死磕实时内核环境。

大坑2:虚拟机软件一定要使用VMWare的pro系列

因为机械臂和主机通过网线连接,后续在运行c++生成的可执行文件时,需要将虚拟网络桥接到机器人网口,而VMware Workstation Player需要没有虚拟网络编辑器的功能。

具体设置过程如下:

小坑

小坑1:关于虚拟机配置

珞石机械臂ROKAE实战2:虚拟机编译运行机械臂SDK_第7张图片

 创建虚拟机时需要自定义硬件,内存需要调大一些,默认内存的2GB是远远不够用的。(会导致一些潜在问题,例如:VS Code界面显示不全,VS Code运行较为卡顿)

小坑2

(未完待续)

你可能感兴趣的:(ubuntu,linux)