跳至主要內容

简介

JAKA大约 7 分钟

简介

本文档主要展示的是节卡SDK支持的各语言(C/C++、C#、Python)在主流开发平台(Windows/Linux)下的环境搭建

C++在Microsoft Visual Studio(Windows)下环境搭建步骤

1.首先下载安装IDE:Microsoft Visual Studio (请读者自行查阅资源下载安装,配置,一下步骤默认读者已经安装好该IDE)

2.新建工程

如何创建工程

  1. 文件-->新建-->项目
  2. 点击空项目-->下一步,如下图所示: alt text
  3. 填写项目名称-->选择项目工程存储位置-->创建 alt text
  4. 创建完成的空项目工程 alt text

如何添加头文件

  1. 右键点击 Piano-->在文件资源管理器中打开文件夹 alt text
  2. 将头文件复制到文件夹下 将 JAKA 二次开发资料包\JAKA_SDK 资料包\c++头文件里的三个头文件复制粘贴到 刚刚创建的工程文件夹下: alt text
  3. 在解决方案资源管理器中添加头文件 右键点击头文件-->添加-->现有项 alt text 选中刚刚复制的三个头文件: alt textalt text 至此进行二次开发的头文件就添加完成了。

如何添加动态库

  1. 在项目属性中添加动态库路径 先点击一下项目名称 Piano-->项目-->属性 alt textalt text (链接器)常规-->附加库目录 然后添加动态库所在目录 alt text 添加完成如下图所示: alt text 选择链接器-->输入-->附加依赖项,添加动态库名字 alt textalt text

如何编写最小示例

选择 源文件-->添加-->新建项 alt text 创建一个新的 test.cpp 文件,如下图所示: alt text 创建完成,在解决方案资源管理器中可以看到文件名称: alt text 将以下代码复制粘贴到 test.cpp 中去:

#include <iostream>
#include "JAKAZuRobot.h"
#define PI 3.1415926
int main()
{
 //实例 API 对象 demo
 JAKAZuRobot demo;
 //登陆控制器,需要将 192.168.2.229 替换为自己控制器的 IP
 std::cout << demo.login_in("192.168.2.194") << std::endl;
 //机器人上电
 std::cout << demo.power_on() << std::endl;
 //机器人上使能
 std::cout << demo.enable_robot() << std::endl;
 return 0;
}

如下图所示,因为我们选择的动态库是 64 位版本的,选择 x64,再按 F5 即可运行,给 机器人上电上使能。 alt text

C#在Microsoft Visual Studio(Windows)下环境搭建步骤

C# 配置步骤和C++基本相似,其中动态库的添加可能有所不同,C#需要将JAKA SDK动态库添加进C#项目生成主程序下面即可,即.exe文件同级目录下

C++在Linux下开发环境搭建(代码编辑器默认VScode)

此节主要目的是说明,如何通过CMake构建工具去搭建一个可以使用JAKA SDK的应用程序,推荐使用的操作系统为类Linux(包括Debian、Ubuntu等)。本示例使用的Debian 9,推荐使用的代码编辑器为MicroSoft 的 Visual Studio Code。

环境准备

首先下载安装Cmake工具

推荐到官网下载对应平台下的安装包Cmake官网open in new window, 本示例使用的Cmake版本为3.7.2,推荐使用此版本或以上版本。(具体安装操作请读着自行查阅网上资源,下载并安装)以下说明默认读者已经完成此操作。 下载完成后,在终端输入 cmake --version ,显示如下内容即代表安装成功。

jakauser@ZuCAB2001:~$ cmake --version
cmake version 3.7.2
  
CMake suite maintained and supported by Kitware (kitware.com/cmake).

下载安装VS Code

用户可前往Visual Studio Code官网(https://code.visualstudio.com/Download)查找软件安装包并下载安装。VS Code安装完成后,请在VS Code拓展中安装CMake拓展。

下载JAKA SDK包

JAKA SDK软件包可通过JAKA官网渠道下载获取。 中文官方请通过JAKA官网首页(资料中心 (jaka.com)),点击[服务与支持]-> [资料中心] -> [二次开发] -> [SDK],查看最新SDK以及历史版本信息。 alt text 英文版本可通过英文官网首页https://www.jakarobotics.com/,点击[Resources] -> [Download] -> [Technical Information] -> [Secondary Development]查看最新与历史版本。 alt text 开发配置步骤说明

编写入门hello world程序

在Linux下新建一个项目文件夹CmakeSDKDemo,创建以下文件,其中c&c++为节卡提供的SDK包里Linux下的资源文件,包括头文件inc及动态库文件。main.cpp为项目的主文件,CMakeLists.txt文件为Cmake配置文件,请注意大小写。 alt text 接下来用Cmake编写运行一个简单的hello world程序,首先在CMakeLists.txt下输入以下内容

cmake_minimum_required(VERSION 3.5)
project(JAKADemo)

add_executable(hello main.cpp)

● cmake_minimum_required: 指定CMake的最低版本要求。 ● project: 定义项目名称。 ● add_executable: 添加一个可执行目标,第一个参数是目标名称,第二个参数是源文件列表 注:此项目默认使用的是gcc编译器 ,如下,请读者自行配置好C++编译器。 alt text 编写main.cpp主程序,输入以下代码

#include <string>
#include <iostream>

int main(){
    std::cout << "hello world" << std::endl;
}

Cmake配置构建项目 在终端输入cmake . 配置整个项目。之后会在项目文件下生成很多多余文件,请不要在意。 alt text 生成完成后,在终端输入make命令,构建编译可执行程序,会在当前目录下生成一个hello的可执行程序。 alt text 在终端输入 ./hello 命令。执行程序,结果如下 alt text 至此,用Cmake运行一个简单的helloworld程序就大功告成了。

链接JAKA SDK动态库

在CMakeLists.txt文件下输入以下内容,各行作用请见注释

cmake_minimum_required(VERSION 3.7.2)    # Minimum CMake Version 
project(sdk_test VERSION 1.0)     # Project Definition

# C++ Standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED true)

# Source Directory Information
message(${CMAKE_SOURCE_DIR})

# Executable Creation
add_executable(demo main.cpp)

# Set the header file path of the SDK included in the project
target_include_directories(demo PUBLIC ${CMAKE_SOURCE_DIR}/c&c++/inc_of_c++)
  
# Set the SDK dynamic library link path
target_link_libraries(demo ${CMAKE_SOURCE_DIR}/c&c++/x86_64-linux-gnu/shared/libjakaAPI.so pthread)

编写main.cpp文件,实现通过SDK的控制示例代码如下:此实例实现的功能是打印SDK版本信息、获取当前tcp位姿、将机器人末端沿y轴移动一定距离。

#include <string> 
#include <vector> 
#include <iostream>
#include <chrono>
#include "JAKAZuRobot.h" // 确保包含此行
#include <thread>
int main(int argc, char** argv)
{

    JAKAZuRobot demo;

    demo.login_in("192.168.164.222");
    //sleep(2);
    demo.power_on();
    //sleep(2)
    demo.enable_robot();
    //sleep(2);

    CartesianPose tcp_pos;
    int ret;
    char ver[100];
    demo.get_tcp_position(&tcp_pos);
    demo.get_sdk_version(ver);

    std::cout << "SDK version is :" << ver << std::endl;
    std::cout << "tcp_pos is :\n x: " << tcp_pos.tran.x << "y: " << tcp_pos.tran.y << "z: " << tcp_pos.tran.z << std::endl;

    std::cout << "tcp_pos is :\n rx: " << tcp_pos.rpy.rx << "ry: " << tcp_pos.rpy.ry << "rz: " << tcp_pos.rpy.rz << std::endl;
    auto now = std::chrono::system_clock::now().time_since_epoch();
    auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(now).count();
    std::cout << "Current s: " << std::fixed << ((double)ms) / 1000.0f << std::endl;
    tcp_pos.tran.y = tcp_pos.tran.y + 60.0;
    ret = demo.linear_move(&tcp_pos, ABS, TRUE, 10, 10, 1, NULL);
    std::cout << "ret==" << ret << std::endl;
    std::cout << "linear_move finish! " << std::endl;
    now = std::chrono::system_clock::now().time_since_epoch();
    
    return 0;
}

以上都准备好之后,通过cmake配置并构建整个项目。 建议在项目根目录下新建build目录,用于存放构建生成的中间文件,避免导致文件内容复杂 alt text 之后 cd build 进入到build目录,然后运行命令 cmake .. ,构建整个项目,系统自动将生成的中间文件放到build目录下。(注意是cmake .. ,代表CMakeLists.txt所在目录的上一级目录)。 alt text 之后在终端输入 make 构建编译可执行程序 alt text 以上完成后,会在build目录下生成一个demo的可执行程序,读者可通过在终端运行 ./demo运行C++程序。 alt text 通过以上步骤,读者的C++程序便编写好了并可成功运行。

上次编辑于: