1. 概述

frcobot_ros简要架构如下图所示,协作机器人端提供了XMLRPC服务器和TCP服务器。

  • XMLRPC服务器主要提供机器人指令API完成机器人运动和状态值获取功能

  • 状态反馈的TCP服务器提供了机器人状态的实时反馈,反馈周期8ms。

用户PC端中已安装了ROS和Moveit!,编译完成frcobot_ros。在frcobot_ros中每个功能包都包含了机器人API的lib库,以及在frcobot_hw建立与机器人状态反馈服务器通讯的TCP客户端,获取机器人状态反馈数据。

../_images/frcobot_ros.png

2. 安装

本章介绍如何构建frcobot_ros以及所需的安装环境。

2.1. 环境要求

frcobot_ros推荐环境如下:

备注

  • Ubuntu 18.04 LTS Bionic Beaver和ROS Melodic Morenia

  • Ubuntu 20.04 LTS Focal Fossa和ROS Noetic Ninjemys

以下说明适用于 Ubuntu 20.04 LTS 系统和 ROS Noetic Ninjemys。如果使用的是Melodic,则将下发命令行中的 noetic 替换成 melodic.

2.2. ROS安装要求

在安装好Ubuntu系统后,安装和配置好ROS Noetic环境

在配置好ROS Noetic后,安装如下所需环境:

1echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
2source ~/.bashrc
3sudo apt-get install -y \
4    ros-noetic-rosparam-shortcuts \
5    ros-noetic-ros-control \
6    ros-noetic-ros-controllers \
7    ros-noetic-moveit \
8    libxmlrpcpp-dev

2.3. 编译ROS包

在正确安装和配置好ROS Noetic后,在您选择的目录中创建一个Catkin工作区。

1mkdir -p ~/catkin_ws/src
2cd ~/catkin_ws
3catkin_init_workspace src

然后从Gitee克隆frcobot_ros库。

1cd ~/catkin_ws/src
2git clone https://gitee.com/fair-innovation/frcobot_ros.git

构建frcobot_ros包

1cd ~/catkin_ws
2catkin_make
3echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
4source ~/.bashrc

如果出现报错请检查ROS安装要求中的包是否都已安装成功,编译完成后,将lib库拷贝到ROS的lib环境下(路径为:/opt/ros/noetic/lib),以便程序可以正常运行。

1# 此处catkin_ws默认路径为“~”,如有不同,将“~”改为实际路径即可
2sudo cp ~/catkin_ws/src/frcobot_ros/frcobot_hw/lib/* /opt/ros/noetic/lib

3. 快速开始

3.1. frcobot_hw

frcobot_hw主要提供了和协作机器人通讯的基本功能。

备注

  • 包含协作机器人状态反馈msg

  • 提供控制协作机器人的指令demo

  • 提供协作机器人状态反馈节点和Topic

  • 可通过launch文件快速启动状态节点和指令demo

frcobot_hw.launch内容如下:

 1<launch>
 2
 3    <!-- params -->
 4    <param name="robot_ip" type="string" value="192.168.58.2"/>
 5    <param name="robot_port" type="int" value="8083"/>
 6
 7    <!-- frcobot status node -->
 8    <node pkg="frcobot_hw" type="frcobot_status_node" name="frcobot_status_node" output="screen" />
 9
10    <!-- frcobot control demo -->
11    <node pkg="frcobot_hw" type="frcobot_cmd_demo" name="frcobot_cmd_demo" output="screen" />
12
13</launch>

重要

  • robot_iprobot_port 需要注意与被控制的协作机器人IP和端口一致

  • 出厂机器人默认IP为192.168.58.2,用户状态反馈端口为8083

通过以下指令可快速启动机器人状态反馈节点和指令demo功能。

1roslaunch frcobot_hw frcobot_hw.launch

新开一个terminal,通过以下指令可打印并查看实时的状态反馈数据。

1rostopic ehco /frcobot_status