经过前面(1)和(2)的理解与讨论,此篇文章对ROS向机器人控制器的数据下载相关文件进行说明。
JOINT_TRAJECTORY_STREAMER
#ifndef JOINT_TRAJECTORY_STREAMER_H
#define JOINT_TRAJECTORY_STREAMER_H
//头文件thread.hpp用于进行进程管理
#include <boost/thread/thread.hpp>
#include "industrial_robot_client/joint_trajectory_interface.h"
以上thread.hpp文件用于在程序中创建新的线程,并对其进行管理与使用。
namespace industrial_robot_client
{
namespace joint_trajectory_streamer
{
using industrial_robot_client::joint_trajectory_interface::JointTrajectoryInterface;
using industrial::joint_traj_pt_message::JointTrajPtMessage;
using industrial::smpl_msg_connection::SmplMsgConnection;
同样的,client包中的所有程序都有一个统一的命名空间,而不同的功能则有一个对应的子空间,方便对其中的变量与函数进行分类与管理。
namespace TransferStates
{
enum TransferState
{
IDLE = 0, STREAMING =1 //,STARTING, //, STOPPING
};
}
typedef TransferStates::TransferState TransferState;
定义控制命令流的状态字。
class JointTrajectoryStreamer : public JointTrajectoryInterface
{
创建一个将信息向机器人控制器进行传输的类,继承自JointTrajectoryInterface类。