2. 机器人基础

2.1. 实例化机器人

1/**
2* @brief  机器人接口类构造函数
3*/
4FRRobot();

2.2. 与控制器建立通信

1/**
2* @brief  与机器人控制器建立通信
3* @param  [in] ip  控制器IP地址,出场默认为192.168.58.2
4* @return 错误码
5*/
6errno_t  RPC(const char *ip);

2.3. 与控制器关闭通讯

1/**
2 * @brief  与机器人控制器关闭通讯
3 * @return 错误码
4 */
5errno_t  CloseRPC();

2.4. 查询SDK版本号

1/**
2* @brief  查询SDK版本号
3* @param  [out] version   SDK版本号
4* @return  错误码
5*/
6errno_t  GetSDKVersion(char *version);

2.5. 获取控制器IP

1/**
2* @brief  获取控制器IP
3* @param  [out] ip  控制器IP
4* @return  错误码
5*/
6errno_t  GetControllerIP(char *ip);

2.6. 控制机器人进入或退出拖动示教模式

1/**
2* @brief  控制机器人进入或退出拖动示教模式
3* @param  [in] state 0-退出拖动示教模式,1-进入拖动示教模式
4* @return  错误码
5*/
6errno_t  DragTeachSwitch(uint8_t state);

2.7. 查询机器人是否处于拖动模式

1/**
2* @brief  查询机器人是否处于拖动示教模式
3* @param  [out] state 0-非拖动示教模式,1-拖动示教模式
4* @return  错误码
5*/
6errno_t  IsInDragTeach(uint8_t *state);

2.8. 控制机器人上使能或下使能

1/**
2* @brief  控制机器人上使能或下使能,机器人上电后默认自动上使能
3* @param  [in] state  0-下使能,1-上使能
4* @return  错误码
5*/
6errno_t  RobotEnable(uint8_t state);

2.9. 控制机器人手自动模式切换

1/**
2* @brief 控制机器人手自动模式切换
3* @param [in] mode 0-自动模式,1-手动模式
4* @return 错误码
5*/
6errno_t  Mode(int mode);

2.10. 代码示例

 1#include <cstdlib>
 2#include <iostream>
 3#include <stdio.h>
 4#include <cstring>
 5#include <unistd.h>
 6#include "FRRobot.h"
 7#include "RobotTypes.h"
 8
 9using namespace std;
10
11int main(void)
12{
13    FRRobot robot;                 //实例化机器人对象
14    robot.RPC("192.168.58.2");     //与机器人控制器建立通信连接
15
16    char ip[64]="";
17    char version[64] = "";
18    uint8_t state;
19
20    robot.GetSDKVersion(version);
21    printf("SDK version:%s\n", version);
22    robot.GetControllerIP(ip);
23    printf("controller ip:%s\n", ip);
24
25    robot.Mode(1);
26    sleep(1);
27    robot.DragTeachSwitch(1);
28    robot.IsInDragTeach(&state);
29    printf("drag state :%u\n", state);
30    sleep(3);
31    robot.DragTeachSwitch(0);
32    sleep(1);
33    robot.IsInDragTeach(&state);
34    printf("drag state :%u\n", state);
35    sleep(3);
36
37    robot.RobotEnable(0);
38    sleep(3);
39    robot.RobotEnable(1);
40
41    robot.Mode(0);
42    sleep(1);
43    robot.Mode(1);
44
45    return 0;
46}