diff --git a/robotis_controller/include/robotis_controller/robotis_controller.h b/robotis_controller/include/robotis_controller/robotis_controller.h index aab8da0..c27d888 100755 --- a/robotis_controller/include/robotis_controller/robotis_controller.h +++ b/robotis_controller/include/robotis_controller/robotis_controller.h @@ -117,6 +117,7 @@ class RobotisController : public Singleton RobotisController(); bool initialize(const std::string robot_file_path, const std::string init_file_path); + bool initialize(Robot *robot, const std::string init_file_path); void initializeDevice(const std::string init_file_path); void process(); diff --git a/robotis_controller/src/robotis_controller/robotis_controller.cpp b/robotis_controller/src/robotis_controller/robotis_controller.cpp index 82c8c54..0f7f200 100755 --- a/robotis_controller/src/robotis_controller/robotis_controller.cpp +++ b/robotis_controller/src/robotis_controller/robotis_controller.cpp @@ -199,8 +199,14 @@ bool RobotisController::initialize(const std::string robot_file_path, const std: std::string dev_desc_dir_path = ros::package::getPath("robotis_device") + "/devices"; // load robot info : port , device - robot_ = new Robot(robot_file_path, dev_desc_dir_path); + Robot *new_robot = new Robot(robot_file_path, dev_desc_dir_path); + initialize(new_robot, init_file_path); +} + +bool RobotisController::initialize(Robot *robot, const std::string init_file_path) +{ + robot_ = robot; if (gazebo_mode_ == true) { queue_thread_ = boost::thread(boost::bind(&RobotisController::msgQueueThread, this));