add grpc servoJ function
This commit is contained in:
parent
0fc5e271e8
commit
17043684fe
@ -1379,8 +1379,9 @@ void HumanoidRobot<DOF>::servoJ(std::vector<JointPoint> &joints, double dt) {
|
|||||||
if (motor->getMode() != msgs::RUN_MODE_CYCLIC_SYNC_POSITION) {
|
if (motor->getMode() != msgs::RUN_MODE_CYCLIC_SYNC_POSITION) {
|
||||||
motor->setMode(msgs::RUN_MODE_CYCLIC_SYNC_POSITION);
|
motor->setMode(msgs::RUN_MODE_CYCLIC_SYNC_POSITION);
|
||||||
}
|
}
|
||||||
motor->setQd(j.vel);
|
motor->setTarget(j.rad,j.vel);
|
||||||
motor->setQ(j.rad);
|
// motor->setQd(j.vel);
|
||||||
|
// motor->setQ(j.rad);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rsm_.store(ROBOT_READY);
|
rsm_.store(ROBOT_READY);
|
||||||
@ -1394,8 +1395,9 @@ void HumanoidRobot<DOF>::servoJ(std::vector<JointPoint> &joints, double vel, dou
|
|||||||
if (motor->getMode() != msgs::RUN_MODE_CYCLIC_SYNC_POSITION) {
|
if (motor->getMode() != msgs::RUN_MODE_CYCLIC_SYNC_POSITION) {
|
||||||
motor->setMode(msgs::RUN_MODE_CYCLIC_SYNC_POSITION);
|
motor->setMode(msgs::RUN_MODE_CYCLIC_SYNC_POSITION);
|
||||||
}
|
}
|
||||||
motor->setQd(vel);
|
motor->setTarget(j.rad,vel);
|
||||||
motor->setQ(j.rad);
|
// motor->setQd(vel);
|
||||||
|
// motor->setQ(j.rad);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,9 @@ namespace cmvr {
|
|||||||
grpc::Status getPose(grpc::ServerContext *context, const cmvr::api::GetPose_Request *request, cmvr::api::GetPose_Response *response) override;
|
grpc::Status getPose(grpc::ServerContext *context, const cmvr::api::GetPose_Request *request, cmvr::api::GetPose_Response *response) override;
|
||||||
|
|
||||||
grpc::Status calibrateZeroQ(grpc::ServerContext* context, const cmvr::api::CalibrateZeroQ_Request* request, cmvr::api::CalibrateZeroQ_Response* response) override;
|
grpc::Status calibrateZeroQ(grpc::ServerContext* context, const cmvr::api::CalibrateZeroQ_Request* request, cmvr::api::CalibrateZeroQ_Response* response) override;
|
||||||
|
|
||||||
|
grpc::Status servoJ(grpc::ServerContext* context, const cmvr::api::ServoJ_Request* request, cmvr::api::ServoJ_Response* response) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
device::DeviceManager& dmgr_;
|
device::DeviceManager& dmgr_;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -244,3 +244,29 @@ grpc::Status gRPCHumanoidRobotServiceImpl::calibrateZeroQ(grpc::ServerContext* c
|
|||||||
*response->mutable_header()->mutable_timestamp() = TimeUtil::GetCurrentTime();
|
*response->mutable_header()->mutable_timestamp() = TimeUtil::GetCurrentTime();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
grpc::Status gRPCHumanoidRobotServiceImpl::servoJ(grpc::ServerContext* context
|
||||||
|
, const cmvr::api::ServoJ_Request* request
|
||||||
|
, cmvr::api::ServoJ_Response* response)
|
||||||
|
{
|
||||||
|
grpc::Status ret = grpc::Status::OK;
|
||||||
|
try {
|
||||||
|
auto robot = dmgr_.getDevice<AbstractRobot>(request->header().device_id());
|
||||||
|
std::vector<JointPoint> cmds{};
|
||||||
|
for (const auto& jc : request->cmds()) {
|
||||||
|
cmds.emplace_back(jc.joint_name(),jc.rad(),jc.vel());
|
||||||
|
}
|
||||||
|
robot->servoJ(cmds,request->vel(),0);
|
||||||
|
|
||||||
|
response->mutable_header()->set_success(true);
|
||||||
|
response->mutable_header()->set_error_message("");
|
||||||
|
}catch (const std::exception& e) {
|
||||||
|
response->mutable_header()->set_success(false);
|
||||||
|
response->mutable_header()->set_error_message(e.what());
|
||||||
|
ret = grpc::Status(grpc::StatusCode::INTERNAL, e.what());
|
||||||
|
}
|
||||||
|
*response->mutable_header()->mutable_timestamp() = TimeUtil::GetCurrentTime();
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@ -144,3 +144,17 @@ message CalibrateZeroQ {
|
|||||||
CommandHeader.Feedback header= 1;
|
CommandHeader.Feedback header= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message ServoJ{
|
||||||
|
message Request{
|
||||||
|
CommandHeader.Request header = 1;
|
||||||
|
repeated JointCmd cmds = 2;
|
||||||
|
double vel = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Response{
|
||||||
|
CommandHeader.Feedback header= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -15,4 +15,5 @@ service HumanoidRobotService{
|
|||||||
rpc getJointState(JointRequest) returns (JointResponse);
|
rpc getJointState(JointRequest) returns (JointResponse);
|
||||||
rpc getPose(GetPose.Request) returns (GetPose.Response);
|
rpc getPose(GetPose.Request) returns (GetPose.Response);
|
||||||
rpc calibrateZeroQ(CalibrateZeroQ.Request) returns (CalibrateZeroQ.Response);
|
rpc calibrateZeroQ(CalibrateZeroQ.Request) returns (CalibrateZeroQ.Response);
|
||||||
|
rpc servoJ(ServoJ.Request) returns (ServoJ.Response);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user