跳到主要内容

伺服映射关系配置

通过调用函数int NRC_SetAllServoMapRelation(std::vector<int> servoMap,int syncGroupSum, int syncType[], std::vector<std::vector<int>> syncServoMap)设置伺服映射关系。

  • servoMap 表示机器人伺服映射关系,个数为设置的机器人总轴数,值为每一轴所连接的伺服编号。
  • syncGroupSum 外部轴组最大数目,最大为 3,最多支持两个双变位机加一个地轨。
  • syncType 表示外部轴组类型,0:无,1:单轴变位机,2:双轴变位机,3:地轨。syncServoMap,外部轴伺服映射关系。

例如:机器人轴与伺服对应关系为:1 轴连接第 2 个伺服,2 轴连接第 3 个伺服,3 轴连接第 1 个伺服,4 轴连接第 4 个伺服,5 轴连接第 6 个伺服,6 轴连接第 5 个伺服,则 servoMap 的值为{2,3,1,4,6,5}

外部轴个数与伺服对应关系:

  • 无外部轴,则 syncGroupSum 值为 0;
  • 一个单轴变位机,则 syncGroupSum 值为 1,syncType 为{1,0,0},syncServoMap 为{{7}}。
  • 两个双轴变位机,一个地轨,则 syncGroupSum 值为 3,syncType 为{2,2,3},syncServoMap 为{{7,8},{9,10},{11}。

设置伺服映射关系的 C++demo 程序

#include <iostream>
#include "nrcAPI.h"
using namespace std;
void SetServoMap()
{
std::vector<int> servoMap = {0,0,0,0,0,0};//机器人映射
int syncGroupNum = 1;//外部轴组数
int syncType[]={0,0,0};//外部轴类型
std::vector<std::vector<int>> syncServoMap={{0,0},{0,0},{0,0}};
NRC_SetAllServoMapRelation(servoMap,syncGroupNum,syncType,syncServoMap);
}
int main()
{
SystemStartup();//系统启动,详见3.3节
SetServoMap();//设置伺服映射关系,为程序简洁使用函数调用形式实现
while(1)//保持程序继续运行
{
NRC_Delayms(1000);
}
}