Breadcrumbs

CDRFLEx.read_data_rt

기능

외부 제어기에서 수신한 출력 데이터(로봇 제어기 → 외부 제어기)를 읽는 함수이다.

인수

없음

리턴

설명

LPRT_OUTPUT_DATA_LIST

출력 데이터 리스트 참조.

예제

C++
// main.cpp
CDRFLEx drfl;
drfl.connect_rt_control();
string version = “v1.0”;
float period = 0.001; // 1 msec
int losscount = 4;
Drfl.set_on_rt_monitoring_data(OnRTMonitoringData);
drfl.set_rt_control_output(version, period, losscount);
drfl.start_rt_control();

float q[NUMBER_OF_JOINT] = {0.0, };
float q_dot[NUMBER_OF_JOINT] = {0.0, };
float trq_g[NUMBER_OF_JOINT] = {0.0, };
while (1)
{
    time=(++count)*st;

    memcpy(q, drfl.read_data_rt()->actual_joint_position, sizeof(float)*6);
    memcpy(q_dot, drfl.read_data_rt()->actual_joint_velocity, sizeof(float)*6;
    memcpy(trq_g, drfl.read_data_rt()->gravity_torque, sizeof(float)*6);
    memcpy(trq_d, trq_g, sizeof(float)*6);

    drfl.torque_rt(trq_d, 0);

    if(time > plan1.time)
    {
        time=0;
        Drfl.stop(STOP_TYPE_SLOW);
        break;
    }
    rt_task_wait_period(NULL);
}