diff --git a/CMakeLists.txt b/CMakeLists.txt index 657d933..65723b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,15 +52,16 @@ if(SIMULATION) endif() set(EIGEN_PATH /usr/include/eigen3) +find_package(Boost REQUIRED) include_directories( include - ${Boost_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} ${EIGEN_PATH} ) link_directories(lib) # ----------------------add executable---------------------- -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../build) # EXECUTABLE:CMAKE_RUNTIME_OUTPUT_DIRECTORY +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) add_executable(z1_ctrl main.cpp) target_link_libraries(z1_ctrl libZ1_${COMMUNICATION}_Linux64.so ${catkin_LIBRARIES} ) diff --git a/config/savedArmStates.csv b/config/savedArmStates.csv index 398bd2f..891be1b 100755 --- a/config/savedArmStates.csv +++ b/config/savedArmStates.csv @@ -1,5 +1,5 @@ forward, 0.0, 1.5, -1.0, -0.54, 0.0, 0.0, startFlat, 0.0, 0.0, -0.005, -0.074, 0.0, 0.0, show_left, -1.0, 0.9, -1., -0.3, 0.0, 0.0, -show_mid, 0.0, 0.9, -1.2, 0.3, 0.0, 0.0, +show_mid, 0.0, 0.9, -1.2, 0.25, 0.0, 0.0, show_right, 1.0, 0.9, -1., -0.3, 0.0, 0.0, \ No newline at end of file diff --git a/include/FSM/State_SetTraj.h b/include/FSM/State_SetTraj.h deleted file mode 100644 index 2767232..0000000 --- a/include/FSM/State_SetTraj.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef STATE_SETTRAJ_H -#define STATE_SETTRAJ_H - -#include "FSM/State_Trajectory.h" - -class State_SetTraj: public State_Trajectory{ -public: - State_SetTraj(CtrlComponents *ctrlComp, - ArmFSMStateName stateEnum = ArmFSMStateName::SETTRAJ, - std::string stateString = "setTraj"); - ~State_SetTraj(); - void enter(); - void run(); - void exit(); - int checkChange(int cmd); -private: - Vec6 _posture[2]; -}; - -#endif \ No newline at end of file diff --git a/include/FSM/State_Trajectory.h b/include/FSM/State_Trajectory.h index ea5c47d..9955df9 100755 --- a/include/FSM/State_Trajectory.h +++ b/include/FSM/State_Trajectory.h @@ -16,7 +16,7 @@ public: int checkChange(int cmd); protected: void _setTraj(); - void _setTrajSDK(); + TrajectoryManager *_traj; HomoMat _goalHomo; Vec6 _goalTwist; diff --git a/include/common/enumClass.h b/include/common/enumClass.h index 548e3eb..a48e186 100755 --- a/include/common/enumClass.h +++ b/include/common/enumClass.h @@ -20,7 +20,7 @@ enum class ArmFSMStateName{ TEACH, TEACHREPEAT, CALIBRATION, - SETTRAJ, + SETTRAJ,//no longer used BACKTOSTART, NEXT, LOWCMD diff --git a/include/control/cmdPanel.h b/include/control/cmdPanel.h index 6ed3a5a..f4efa46 100644 --- a/include/control/cmdPanel.h +++ b/include/control/cmdPanel.h @@ -72,10 +72,11 @@ public: void setValue(double value){_value = value;} private: double _value; - double _changeDirection; + double _changeDirection=0.0; double _dV = 0.0; //delta value per delta time double _dt = 0.0; double _dVdt = 0.0; // delta value per second + double _dVdtf = 0.0; // delta value per second after filter double _lim1, _lim2; bool _hasLim = false; bool _hasGoZero = false; diff --git a/include/message/arm_common.h b/include/message/arm_common.h index 5b101fb..c11d799 100644 --- a/include/message/arm_common.h +++ b/include/message/arm_common.h @@ -20,7 +20,7 @@ enum class ArmFSMState{ TEACH, TEACHREPEAT, CALIBRATION, - SETTRAJ, + SETTRAJ,//no longer used BACKTOSTART, NEXT, LOWCMD diff --git a/include/model/ArmModel.h b/include/model/ArmModel.h index c4a1099..bd61c38 100644 --- a/include/model/ArmModel.h +++ b/include/model/ArmModel.h @@ -26,10 +26,10 @@ public: std::vector getJointQMin() {return _jointQMin;} std::vector getJointSpeedMax() {return _jointSpeedMax;} void addLoad(double load); + bool checkAngle(Vec6 ); const size_t dof = 6; protected: - bool _checkAngle(Vec6 ); void _buildModel(); // initial parameters HomoMat _M; //End posture at the home position diff --git a/lib/libZ1_ROS_Linux64.so b/lib/libZ1_ROS_Linux64.so index 7147f12..46e22bd 100644 Binary files a/lib/libZ1_ROS_Linux64.so and b/lib/libZ1_ROS_Linux64.so differ diff --git a/lib/libZ1_UDP_Linux64.so b/lib/libZ1_UDP_Linux64.so index feecccb..d3d629d 100644 Binary files a/lib/libZ1_UDP_Linux64.so and b/lib/libZ1_UDP_Linux64.so differ diff --git a/main.cpp b/main.cpp index 3e3639a..aadcc1d 100755 --- a/main.cpp +++ b/main.cpp @@ -19,12 +19,6 @@ bool running = true; -// over watch the ctrl+c command -void ShutDown(int sig){ - running = false; - std::cout << "[STATE] stop the controller" << std::endl; -} - //set real-time program void setProcessScheduler(){ pid_t pid = getpid(); @@ -96,13 +90,12 @@ int main(int argc, char **argv){ states.push_back(new State_ToState(ctrlComp)); states.push_back(new State_Trajectory(ctrlComp)); states.push_back(new State_Calibration(ctrlComp)); - // states.push_back(new State_SetTraj(ctrlComp)); FiniteStateMachine *fsm; fsm = new FiniteStateMachine(states, ctrlComp); ctrlComp->running = &running; - signal(SIGINT, ShutDown); + signal(SIGINT, [](int signum){running = false;}); while(running){ usleep(100000); }