Edit on GitHub

Step 2: Read Data from DYNAMIXEL

NOTE: It assumes that you have already installed and built the SDK.

Make cpp file

Check the Port Names

Source Code Description

#include "dynamixel_easy_sdk/dynamixel_easy_sdk.hpp"

int main(){

  dynamixel::Connector connector("/dev/ttyACM0", 57600);
  std::unique_ptr<dynamixel::Motor> motor1 = connector.createMotor(1);

  auto result_int32_t = motor1->getPresentPosition();
  int present_position = result_int32_t.value();
  std::cout << "Present Position: " << present_position << std::endl;
}

Add Header Files

Create Connector and Motor Object

Get Present Position

Error Handling

Compile and Run

Full Source Code With Error Handling

#include "dynamixel_easy_sdk/dynamixel_easy_sdk.hpp"

int main(){
  dynamixel::Connector connector("/dev/ttyUSB0", 2.0, 57600);
  std::unique_ptr<dynamixel::Motor> motor1 = connector.createMotor(1);

  auto result_int32_t = motor1->getPresentPosition();
  if (!result_int32_t.isSuccess()) {
    std::cerr << dynamixel::getErrorMessage(result_int32_t.error()) << std::endl;
    return 1;
  }
  int present_position = result_int32_t.value();
  std::cout << "Present Position: " << present_position << std::endl;
  }
}