当前位置: 首页 > 工具软件 > RobWork > 使用案例 >

RobWork框架编程(1):加载XML格式的UR3机器人设备文件

蒋波光
2023-12-01

RobWork框架是一个非常成熟的开源机器人框架,其主要由南丹麦大学开发和维护,该框架的开发受到欧盟的经费支持,至今已有十多年历史,比大名鼎鼎的ROS的历史还要悠久。
RobWork的安装方法有两种,一种是通过PPA进行二进制安装,另一种是源码安装。通常,如果你只是想简单的体验一把,可以直接进行二进制安装,但是作为机器人开发者,通常你需要下载源码进行编译,因为你很有可能要在它的基础上进行代码修改或者添加更多的功能,比如网络通信等。
RobWork的源码可以从官方仓库下载
这个软件包并不大,但是如果网速不好的话,下载还是挺费劲的。所以,我把它的源码放到我的百度网盘,大家感兴趣的可以进行下载:
链接: https://pan.baidu.com/s/1uvE7VsKEg-tSHcWlm_fblw 提取码: 22h5

具体的编译和安装过程,可以参考随源码附带的官方安装指南 [路径为:RobWork-master/doc/ressources/installation_ubuntu.hpp.md],我这里不做介绍,编译还是蛮简单的。
注意:可能你从官方仓库下载的源码解压后发现没有这个说明文档,此时,你可能就需要下载我提供的RobWork源码压缩包,解压后里面是包含有安装说明文档的。

本篇博客要讲述的重点是如何使用编译安装好后的RobWork机器人框架,这里以加载XML格式的UR3机器人设备文件为例,介绍如何使用RobWork库进行开发。
UR3机器人设备文件可以从我提供的网盘地址进行下载:
链接: https://pan.baidu.com/s/1XmHPnPxf9r0c-gk3XtOAmA 提取码: 3qw8

准备工作做完之后,现在就可以创建工程,编写一个简单的hello_robwork。
CMakeLists.txt

cmake_minimum_required(VERSION 3.5)

project(hello_robwork LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(RobWork_DIR "/home/liuqiang/SourceCode/RobWork/RobWork/cmake")
find_package(RobWork)
include_directories(${ROBWORK_INCLUDE_DIRS})
add_executable(hello_robwork main.cpp httplib.h)
target_link_libraries(hello_robwork ${ROBWORK_LIBRARIES})

main.cpp

#include <iostream>
#include <rw/loaders/WorkCellLoader.hpp>
#include <rw/models/WorkCell.hpp>
#include <rw/common/Ptr.hpp>

using namespace rw::common;
using namespace rw::loaders;
using namespace rw::models;

int main() {
    WorkCell::Ptr workcell =  WorkCellLoader::Factory::load("/home/liuqiang/UR3_2015/UR3.xml");
    std::cout << workcell->getName() << "\n";
    std::cout << workcell->getFilename() << "\n";
    std::cout << workcell->getFilePath() << "\n";
    return 0;
}

输出的结果为:


/home/liuqiang/UR3_2015/UR3.xml
/home/liuqiang/UR3_2015/

我们会发现,第一行的输出为空,这个很好解释,因为我们加载的UR3.xml文件是一个SerialDevice设备文件,并不是一个WorkCell工作单元文件,所以最简单的判别方法就是查看xml文件中是否有WorkCell标签,如果没有就不是WorkCell工作单元文件,如果没有WorkCell标签,但是有SerialDevice标签,那么就说明这是一个SerialDevice设备文件。

 类似资料: