z1_sdk/include/unitree_arm_sdk/control/ctrlComponents.h

53 lines
1.4 KiB
C
Raw Normal View History

2022-11-11 18:17:07 +08:00
#ifndef CTRLCOMPONENTS_H
#define CTRLCOMPONENTS_H
#include "message/arm_common.h"
#include "message/LowlevelCmd.h"
#include "message/LowlevelState.h"
#include "message/udp.h"
#include "utilities/loop.h"
#include "model/ArmModel.h"
2022-11-11 18:17:07 +08:00
2022-11-16 16:23:36 +08:00
namespace UNITREE_ARM {
2022-11-11 18:17:07 +08:00
struct CtrlComponents{
public:
CtrlComponents(double deltaT, bool hasUnitreeGripper);
2022-11-11 18:17:07 +08:00
~CtrlComponents();
/*
* Function: send udp message to z1_ctrl and receive udp message from it
* Input: None
* Output: None
* Description: The function will call udp->send() to send datas in lowcmd to z1_ctrl
* and call udp->recv() to store datas from z1_ctrl into lowstate
*/
2022-11-11 18:17:07 +08:00
void sendRecv();
/*
* Function: Set six joints commands to class lowcmd
* Input: q: joint angle
* qd: joint velocity
* tau: joint (Only used in State_LOWCMD)
* Output: None
*/
2022-11-11 18:17:07 +08:00
void armCtrl(Vec6 q, Vec6 qd, Vec6 tau);
/*
* Function: Set gripper commands to class lowcmd
* Input: q: joint angle
* qd: joint velocity
* tau: joint (Only used in State_LOWCMD)
* Output: None
*/
2022-11-11 18:17:07 +08:00
void gripperCtrl(double gripperPos, double gripperW, double gripperTau);
LowlevelCmd *lowcmd;
LowlevelState *lowstate;
double dt;// default: 0.002
SendCmd sendCmd; // udp command to control the arm
2022-11-11 18:17:07 +08:00
RecvState recvState; // the arm state receive from udp
ArmFSMState statePast;
ArmModel* armModel;
2022-11-11 18:17:07 +08:00
private:
UDPPort *_udp;
};
2022-11-16 16:23:36 +08:00
}
2022-11-11 18:17:07 +08:00
#endif