Esempio n. 1
0
    def __init__(self, arg):
        super(Fivel_Controller, self).__init__()

        ##################################################################
        ######################## GAIT PARAMETERS #########################
        ##################################################################
        if len(arg)<10:
            self.SwingEff0 = -1.2             # Default swing effort
            self.SupAnkSetPoint = -0.04       # Setpoint for support ankle
            self.SupAnkGain_p = 30            # Support ankle gain p
            self.SupAnkGain_d = 10            # Support ankle gain d
            self.SwingEffDur = 0.50           # Duration of swing effort
            self.FootExtEff = 1.0             # Foot extension effort
            self.FootExtDur = 0.22            # Foot extension duration
            self.ToeOffEff = 17.65            # Toe-off effort
            self.ToeOffDur = 0.24             # Toe-off duration
            self.DesTorsoAng = -0.055         # Desired torso angle
        else:
            self.SwingEff0 = arg[0]           # Default swing effort
            self.SupAnkSetPoint = arg[1]      # Setpoint for support ankle
            self.SupAnkGain_p = arg[2]        # Support ankle gain p
            self.SupAnkGain_d = arg[3]        # Support ankle gain d
            self.SwingEffDur = arg[4]         # Duration of swing effort
            self.FootExtEff = arg[5]          # Foot extension effort
            self.FootExtDur = arg[6]          # Foot extension duration
            self.ToeOffEff = arg[7]           # Toe-off effort
            self.ToeOffDur = arg[8]           # Toe-off duration
            self.DesTorsoAng = arg[9]         # Desired torso angle
        
        self.StepsTaken = 0
        self.ApertureMean = 0
        self.ApertureStd = 0
        self.GlobalPos = 0

        self.reset_srv = rospy.ServiceProxy('/gazebo/reset_models', Empty)

        ##################################################################
        ###################### RAISE FOOT SEQUENCE #######################
        ##################################################################

        self.pos1=zeros(4)

        # "left_hip","left_ankle","right_hip","right_ankle"
        #      0           1           2            3     

        # Sequence 1 for raising the left foot (from home position)
        self.seq1_1=copy(self.pos1)
        self.seq1_1[3] = -0.05
        self.seq1_1[0] = 0.25
        self.seq1_1[1] = -0.25

        self.seq1_2=copy(self.seq1_1)
        self.seq1_2[1] = -1.49

        # Sequence 2 for raising the right foot (from home position)
        self.seq2_1=copy(self.pos1)
        self.seq2_1[0] = 0.04
        self.seq2_1[1] = -0.04
        self.seq2_1[2] = 0.25
        self.seq2_1[3] = -0.25

        self.seq2_2=copy(self.seq2_1)
        self.seq2_2[3] = -1.49

        ##################################################################
        ########################## INITIALIZE ############################
        ##################################################################

        self.RobotName = "ghost_fivel"
        self.JointNames = ["left_hip","left_ankle","right_hip","right_ankle"]

        # Initialize joint commands handler
        self.JC = JointCommands_msg_handler(self.RobotName,self.JointNames)

        # Initialize robot state listener
        self.RS = robot_state(self.JointNames)
        self.MsgSub = rospy.Subscriber('/'+self.RobotName+'/robot_state',RobotState,self.RS_cb)
        self.OdomSub = rospy.Subscriber('/ground_truth_odom',Odometry,self.Odom_cb)
Esempio n. 2
0
    def __init__(self, arg):
        super(Fivel_Controller, self).__init__()

        ##################################################################
        ######################## GAIT PARAMETERS #########################
        ##################################################################
        if len(arg) < 10:
            self.SwingEff0 = -1.2  # Default swing effort
            self.SupAnkSetPoint = -0.04  # Setpoint for support ankle
            self.SupAnkGain_p = 30  # Support ankle gain p
            self.SupAnkGain_d = 10  # Support ankle gain d
            self.SwingEffDur = 0.50  # Duration of swing effort
            self.FootExtEff = 1.0  # Foot extension effort
            self.FootExtDur = 0.22  # Foot extension duration
            self.ToeOffEff = 17.65  # Toe-off effort
            self.ToeOffDur = 0.24  # Toe-off duration
            self.DesTorsoAng = -0.055  # Desired torso angle
        else:
            self.SwingEff0 = arg[0]  # Default swing effort
            self.SupAnkSetPoint = arg[1]  # Setpoint for support ankle
            self.SupAnkGain_p = arg[2]  # Support ankle gain p
            self.SupAnkGain_d = arg[3]  # Support ankle gain d
            self.SwingEffDur = arg[4]  # Duration of swing effort
            self.FootExtEff = arg[5]  # Foot extension effort
            self.FootExtDur = arg[6]  # Foot extension duration
            self.ToeOffEff = arg[7]  # Toe-off effort
            self.ToeOffDur = arg[8]  # Toe-off duration
            self.DesTorsoAng = arg[9]  # Desired torso angle

        self.StepsTaken = 0
        self.ApertureMean = 0
        self.ApertureStd = 0
        self.GlobalPos = 0

        self.reset_srv = rospy.ServiceProxy('/gazebo/reset_models', Empty)

        ##################################################################
        ###################### RAISE FOOT SEQUENCE #######################
        ##################################################################

        self.pos1 = zeros(4)

        # "left_hip","left_ankle","right_hip","right_ankle"
        #      0           1           2            3

        # Sequence 1 for raising the left foot (from home position)
        self.seq1_1 = copy(self.pos1)
        self.seq1_1[3] = -0.05
        self.seq1_1[0] = 0.25
        self.seq1_1[1] = -0.25

        self.seq1_2 = copy(self.seq1_1)
        self.seq1_2[1] = -1.49

        # Sequence 2 for raising the right foot (from home position)
        self.seq2_1 = copy(self.pos1)
        self.seq2_1[0] = 0.04
        self.seq2_1[1] = -0.04
        self.seq2_1[2] = 0.25
        self.seq2_1[3] = -0.25

        self.seq2_2 = copy(self.seq2_1)
        self.seq2_2[3] = -1.49

        ##################################################################
        ########################## INITIALIZE ############################
        ##################################################################

        self.RobotName = "ghost_fivel"
        self.JointNames = [
            "left_hip", "left_ankle", "right_hip", "right_ankle"
        ]

        # Initialize joint commands handler
        self.JC = JointCommands_msg_handler(self.RobotName, self.JointNames)

        # Initialize robot state listener
        self.RS = robot_state(self.JointNames)
        self.MsgSub = rospy.Subscriber('/' + self.RobotName + '/robot_state',
                                       RobotState, self.RS_cb)
        self.OdomSub = rospy.Subscriber('/ground_truth_odom', Odometry,
                                        self.Odom_cb)
Esempio n. 3
0
    def __init__(self, arg):
        super(Fivel_Controller, self).__init__()

        ##################################################################
        ######################## GAIT PARAMETERS #########################
        ##################################################################
        if len(arg)<12:
            self.SwingEff0 = 0.44        # Default swing effort
            self.kAp = 3                 # Aperture feedback gain
            self.DesAp = 0.4             # Desired aperture
            self.SupAnkGain_p = 10       # Ankle gain p during support
            self.SupAnkGain_d = 10       # Ankle gain d during support
            self.SupAnkSetPoint = -0.02  # Support ankle set point
            self.ToeOffEff0 = 3.5        # Toe-off effort
            self.ToeOffDur = 0.20        # Toe-off duration
            self.TotSwingDur = 0.85      # Swing duration
            self.FootExtEff = 0.75       # Foot extension effort (right before touch down)
            self.FootExtDur = 0.18       # Foot extension duration
            self.FreeSwingDur = 0.15     # Swing duration
            
            self.SwingEff = self.SwingEff0
            self.ToeOffEff = self.ToeOffEff0
        else:
            self.SwingEff0 = arg[0]      # Default swing effort
            self.kAp = arg[1]            # Aperture feedback gain
            self.DesAp = arg[2]          # Desired aperture
            self.SupAnkGain_p = arg[3]   # Ankle gain p during support
            self.SupAnkGain_d = arg[4]   # Ankle gain d during support
            self.SupAnkSetPoint = arg[5] # Support ankle set point
            self.ToeOffEff0 = arg[6]      # Toe-off effort
            self.ToeOffDur = arg[7]      # Toe-off duration
            self.TotSwingDur = arg[8]    # Swing duration
            self.FootExtEff = arg[9]     # Foot extension effort (right before touch down)
            self.FootExtDur = arg[10]    # Foot extension duration
            self.FreeSwingDur = arg[11]  # Swing duration
            
            self.SwingEff = self.SwingEff0
            self.ToeOffEff = self.ToeOffEff0
        
        self.StepsTaken = 0
        self.ApertureMean = 0
        self.ApertureStd = 0
        self.GlobalPos = 0

        self.reset_srv = rospy.ServiceProxy('/gazebo/reset_models', Empty)

        ##################################################################
        ###################### RAISE FOOT SEQUENCE #######################
        ##################################################################

        self.pos1=zeros(6)

        # "inner_hip","inner_ankle","left_hip","left_ankle","right_hip","right_ankle"
        #      0            1           2           3            4            5

        # Sequence 1 for raising the inner foot (from home position)
        self.seq1_1=copy(self.pos1)
        self.seq1_1[3] = self.seq1_1[5] = -0.03
        self.seq1_1[0] = 0.25
        self.seq1_1[1] = -0.25

        self.seq1_2=copy(self.seq1_1)
        self.seq1_2[1] = -1.49

        # Sequence 2 for raising the outer feet (from home position)
        self.seq2_1=copy(self.pos1)
        self.seq2_1[1] = -0.03
        self.seq2_1[2] = self.seq2_1[4] = 0.25
        self.seq2_1[3] = self.seq2_1[5] = -0.25

        self.seq2_2=copy(self.seq2_1)
        self.seq2_2[3] = self.seq2_2[5] = -1.49
        #self.seq2_2[1] = self.seq2_2[3] = -0.16
        #self.seq2_2[1] = 0.06

        #self.seq2_3=copy(self.seq2_2)
        #self.seq2_3[1] = self.seq2_3[3] = -0.1

        ##################################################################
        ########################## INITIALIZE ############################
        ##################################################################
        self._robot_name = "five_link_walker"
        self._jnt_names = ["inner_hip","inner_ankle","left_hip","left_ankle","right_hip","right_ankle"]
        # Initialize joint commands handler
        self.JC = JointCommands_msg_handler(self._robot_name,self._jnt_names)

        # Initialize robot state listener
        self.RS = robot_state(self._jnt_names)
        self.MsgSub = rospy.Subscriber('/'+self._robot_name+'/robot_state',RobotState,self.RS_cb)
        self.OdomSub = rospy.Subscriber('/ground_truth_odom',Odometry,self.Odom_cb)
Esempio n. 4
0
    def __init__(self, arg):
        super(STC_Controller, self).__init__()
        ##################################################################
        ###################### Basic Standing Pose #######################
        ##################################################################

        self.BasStndPose = zeros(28)
        self.BasStndPose[5] = 0.1
        self.BasStndPose[5 + 6] = -0.1
        self.BasStndPose[6] = self.BasStndPose[6 + 6] = -0.2
        self.BasStndPose[7] = self.BasStndPose[7 + 6] = 0.4
        self.BasStndPose[8] = self.BasStndPose[8 + 6] = -0.2
        self.BasStndPose[9] = -0.1
        self.BasStndPose[9 + 6] = 0.1
        self.BasStndPose[17] = -1.3
        self.BasStndPose[17 + 6] = 1.3
        self.BasStndPose[18] = self.BasStndPose[18 + 6] = 1.5
        self.BasStndPose[21] = 0.4
        self.BasStndPose[21 + 6] = -0.4

        self.BaseHandPose = zeros(12)
        self.BaseHandPose[1] = self.BaseHandPose[1 + 3] = self.BaseHandPose[
            1 + 6] = 1.5
        self.OpenHandPose = zeros(12)
        self.ClosedHandPose = zeros(12)
        self.ClosedHandPose[1] = self.ClosedHandPose[
            1 + 3] = self.ClosedHandPose[1 + 6] = self.ClosedHandPose[1 +
                                                                      9] = 1.5
        self.ClosedHandPose[2] = self.ClosedHandPose[
            2 + 3] = self.ClosedHandPose[2 + 6] = self.ClosedHandPose[2 +
                                                                      9] = 1.5

        ##################################################################
        ########################## INITIALIZE ############################
        ##################################################################

        self._robot_name = "atlas"
        self._jnt_names = [
            'back_lbz',
            'back_mby',
            'back_ubx',
            'neck_ay',  #3
            'l_leg_uhz',
            'l_leg_mhx',
            'l_leg_lhy',
            'l_leg_kny',
            'l_leg_uay',
            'l_leg_lax',  #9
            'r_leg_uhz',
            'r_leg_mhx',
            'r_leg_lhy',
            'r_leg_kny',
            'r_leg_uay',
            'r_leg_lax',  #15
            'l_arm_usy',
            'l_arm_shx',
            'l_arm_ely',
            'l_arm_elx',
            'l_arm_uwy',
            'l_arm_mwx',  #21
            'r_arm_usy',
            'r_arm_shx',
            'r_arm_ely',
            'r_arm_elx',
            'r_arm_uwy',
            'r_arm_mwx'
        ]  #27

        # Initialize joint commands handler
        self.JC = JointCommands_msg_handler(self._robot_name, self._jnt_names)
        self.LHC = hand_joint_controller("left")
        self.RHC = hand_joint_controller("right")

        # Initialize robot state listener
        self.RS = robot_state(self._jnt_names)
        self.MsgSub = rospy.Subscriber('/' + self._robot_name + '/atlas_state',
                                       AtlasState, self.RS_cb)
        self.OdomSub = rospy.Subscriber('/C25/publish', C25C0_ROP,
                                        self.Odom_cb)
        self.GlobalPos = 0
        self.GlobalOri = 0

        self.reset_srv = rospy.ServiceProxy('/gazebo/reset_models', Empty)

        self.TF = tf.TransformListener()

        ##################################################################
        ######################## Controller Gains ########################
        ##################################################################

        self.JC.set_gains('l_leg_uhz', 1000, 0, 50)
        self.JC.set_gains('r_leg_uhz', 1000, 0, 50)
        self.JC.set_gains('l_leg_mhx', 1000, 0, 50)
        self.JC.set_gains('r_leg_mhx', 1000, 0, 50)
        self.JC.set_gains('back_lbz', 5000, 0, 100)
        self.JC.set_gains('back_ubx', 5000, 0, 100)
        self.JC.set_gains('back_mby', 5000, 0, 100)
        self.JC.set_gains('l_arm_usy', 1000, 0, 10)
        self.JC.set_gains('r_arm_usy', 1000, 0, 10)
        self.JC.set_gains('l_arm_shx', 1000, 0, 10)
        self.JC.set_gains('r_arm_shx', 1000, 0, 10)
        self.JC.set_gains('l_arm_ely', 1000, 0, 10)
        self.JC.set_gains('r_arm_ely', 1000, 0, 10)
        self.JC.set_gains("l_arm_elx", 900, 0, 5)
        self.JC.set_gains("r_arm_elx", 900, 0, 5)
        self.JC.set_gains("l_arm_mwx", 900, 0, 5)
        self.JC.set_gains("r_arm_mwx", 900, 0, 5)
        self.JC.send_command()
    def __init__(self, arg):
        super(GCB_Controller, self).__init__()

        ##################################################################
        ######################## GAIT PARAMETERS #########################
        ##################################################################
        if len(arg) < 12:
            self.SwingEff0 = 0.45  # Default swing effort
            self.kAp = 2  # Aperture feedback gain
            self.DesAp = 0.35  # Desired aperture
            self.SupAnkGain_p = 10  # Ankle gain p during support
            self.SupAnkGain_d = 5  # Ankle gain d during support
            self.SupAnkSetPoint = -0.03  # Support ankle set point
            self.ToeOffEff0 = 4.0  # Toe-off effort
            self.ToeOffDur = 0.16  # Toe-off duration
            self.TotSwingDur = 0.85  # Swing duration
            self.FootExtEff = 0.85  # Foot extension effort (right before touch down)
            self.FootExtDur = 0.18  # Foot extension duration
            self.FreeSwingDur = 0.15  # Swing duration

            self.SwingEff = self.SwingEff0
            self.ToeOffEff = self.ToeOffEff0
        else:
            self.SwingEff0 = arg[0]  # Default swing effort
            self.kAp = arg[1]  # Aperture feedback gain
            self.DesAp = arg[2]  # Desired aperture
            self.SupAnkGain_p = arg[3]  # Ankle gain p during support
            self.SupAnkGain_d = arg[4]  # Ankle gain d during support
            self.SupAnkSetPoint = arg[5]  # Support ankle set point
            self.ToeOffEff0 = arg[6]  # Toe-off effort
            self.ToeOffDur = arg[7]  # Toe-off duration
            self.TotSwingDur = arg[8]  # Swing duration
            self.FootExtEff = arg[9]  # Foot extension effort (right before touch down)
            self.FootExtDur = arg[10]  # Foot extension duration
            self.FreeSwingDur = arg[11]  # Swing duration

            self.SwingEff = self.SwingEff0
            self.ToeOffEff = self.ToeOffEff0

        self.StepsTaken = 0
        self.ApertureMean = 0
        self.ApertureStd = 0
        self.GlobalPos = 0

        self.reset_srv = rospy.ServiceProxy("/gazebo/reset_models", Empty)

        ##################################################################
        ###################### RAISE FOOT SEQUENCE #######################
        ##################################################################

        self.pos1 = zeros(3)

        # Sequence 1 for raising the left foot (from home position)
        self.seq1_1 = copy(self.pos1)
        self.seq1_1[0] = self.seq1_1[1] = 0.2

        self.seq1_2 = copy(self.seq1_1)
        self.seq1_2[1] = -1.45
        self.seq1_2[0] = 0.16
        self.seq1_2[2] = 0.06

        self.seq1_3 = copy(self.seq1_2)
        self.seq1_3[0] = -0.1

        # Sequence 2 for raising the right foot (from home position)
        self.seq2_1 = copy(self.pos1)
        self.seq2_1[0] = -0.2
        self.seq2_1[2] = 0.2

        self.seq2_2 = copy(self.seq2_1)
        self.seq2_2[2] = -1.45
        self.seq2_2[0] = -0.16
        self.seq2_2[1] = 0.06

        self.seq2_3 = copy(self.seq2_2)
        self.seq2_3[0] = 0.1

        ##################################################################
        ########################## INITIALIZE ############################
        ##################################################################

        # Initialize joint commands handler
        self._robot_name = "ghost_compass_biped"
        self._jnt_names = ["hip", "left_ankle", "right_ankle"]
        self.JC = JointCommands_msg_handler(self._robot_name, self._jnt_names)

        # Initialize robot state listener
        self.RS = robot_state(self._jnt_names)
        self.MsgSub = rospy.Subscriber(
            "/" + self._robot_name + "ghost_compass_biped/robot_state", RobotState, self.RS_cb
        )
        self.OdomSub = rospy.Subscriber("/ground_truth_odom", Odometry, self.Odom_cb)
Esempio n. 6
0
    def Initialize(self, Terrain):
        self._robot_name = "atlas"
        self._jnt_names = [
            'back_lbz',
            'back_mby',
            'back_ubx',
            'neck_ay',  #3
            'l_leg_uhz',
            'l_leg_mhx',
            'l_leg_lhy',
            'l_leg_kny',
            'l_leg_uay',
            'l_leg_lax',  #9
            'r_leg_uhz',
            'r_leg_mhx',
            'r_leg_lhy',
            'r_leg_kny',
            'r_leg_uay',
            'r_leg_lax',  #15
            'l_arm_usy',
            'l_arm_shx',
            'l_arm_ely',
            'l_arm_elx',
            'l_arm_uwy',
            'l_arm_mwx',  #21
            'r_arm_usy',
            'r_arm_shx',
            'r_arm_ely',
            'r_arm_elx',
            'r_arm_uwy',
            'r_arm_mwx'
        ]  #27

        # Initialize joint commands handler
        self.JC = JointCommands_msg_handler(self._robot_name, self._jnt_names)
        self.LHC = hand_joint_controller("left")
        self.RHC = hand_joint_controller("right")
        # Initialize robot state listener
        self.RS = robot_state(self._jnt_names)
        self.IMU_mon = IMUCh()

        print("DW::Initialize")
        self.GlobalPos = 0
        self.GlobalOri = 0
        self._counter = 0
        self._terrain = Terrain
        self._fall_count = 0
        self.FALL_LIMIT = 3
        # self.reset_srv = rospy.ServiceProxy('/gazebo/reset_models', Empty)

        ##################################################################
        ######################## Controller Gains ########################
        ##################################################################

        self.JC.set_gains('l_leg_uhz', 1000, 0, 10)
        self.JC.set_gains('r_leg_uhz', 1000, 0, 10)
        self.JC.set_gains('l_leg_mhx', 1000, 0, 10)
        self.JC.set_gains('r_leg_mhx', 1000, 0, 10)
        self.JC.set_gains('back_lbz', 5000, 0, 10)
        self.JC.set_gains('back_ubx', 1000, 0, 10)
        self.JC.set_gains('l_arm_usy', 1000, 0, 10)
        self.JC.set_gains('r_arm_usy', 1000, 0, 10)
        self.JC.set_gains('l_arm_shx', 1000, 0, 10)
        self.JC.set_gains('r_arm_shx', 1000, 0, 10)
        self.JC.set_gains('l_arm_ely', 2000, 0, 10)
        self.JC.set_gains('r_arm_ely', 2000, 0, 10)
        self.JC.set_gains("l_arm_elx", 1200, 0, 5)
        self.JC.set_gains("r_arm_elx", 1200, 0, 5)
        self.JC.set_gains("l_arm_mwx", 1200, 0, 5)
        self.JC.set_gains("r_arm_mwx", 1200, 0, 5)
def ResetPose():
    JC.set_pos('left_hip',0)
    JC.set_pos('left_ankle',0)
    JC.set_pos('right_hip',0)
    JC.set_pos('right_ankle',0)
    JC.set_pos('inner_ankle',0)
    JC.send_command()

def RS_cb(msg):
    RS.UpdateState(msg)

# Initialize joint commands handler
JC = JointCommands_msg_handler()

# Initialize robot state listener
RS = robot_state()
MsgSub = rospy.Subscriber('/compass_biped/robot_state',RobotState,RS_cb)

rospy.sleep(0.1) 
#JC.send_pos_traj(RS.GetJointPos(),pos1,0.5,0.01)
JC.send_pos_traj(RS.GetJointPos(),seq2_3,0.5,0.01)
reset()

#rospy.sleep(1) 
#RaiseLeg("inner")
rospy.sleep(1.5) 
TakeFirstStep("outer")

TakeStep("inner")
TakeStep("outer")
Esempio n. 8
0
    def __init__(self, arg):
        super(Fivel_Controller, self).__init__()

        ##################################################################
        ######################## GAIT PARAMETERS #########################
        ##################################################################
        if len(arg) < 12:
            self.SwingEff0 = 0.44  # Default swing effort
            self.kAp = 3  # Aperture feedback gain
            self.DesAp = 0.4  # Desired aperture
            self.SupAnkGain_p = 10  # Ankle gain p during support
            self.SupAnkGain_d = 10  # Ankle gain d during support
            self.SupAnkSetPoint = -0.02  # Support ankle set point
            self.ToeOffEff0 = 3.5  # Toe-off effort
            self.ToeOffDur = 0.20  # Toe-off duration
            self.TotSwingDur = 0.85  # Swing duration
            self.FootExtEff = 0.75  # Foot extension effort (right before touch down)
            self.FootExtDur = 0.18  # Foot extension duration
            self.FreeSwingDur = 0.15  # Swing duration

            self.SwingEff = self.SwingEff0
            self.ToeOffEff = self.ToeOffEff0
        else:
            self.SwingEff0 = arg[0]  # Default swing effort
            self.kAp = arg[1]  # Aperture feedback gain
            self.DesAp = arg[2]  # Desired aperture
            self.SupAnkGain_p = arg[3]  # Ankle gain p during support
            self.SupAnkGain_d = arg[4]  # Ankle gain d during support
            self.SupAnkSetPoint = arg[5]  # Support ankle set point
            self.ToeOffEff0 = arg[6]  # Toe-off effort
            self.ToeOffDur = arg[7]  # Toe-off duration
            self.TotSwingDur = arg[8]  # Swing duration
            self.FootExtEff = arg[
                9]  # Foot extension effort (right before touch down)
            self.FootExtDur = arg[10]  # Foot extension duration
            self.FreeSwingDur = arg[11]  # Swing duration

            self.SwingEff = self.SwingEff0
            self.ToeOffEff = self.ToeOffEff0

        self.StepsTaken = 0
        self.ApertureMean = 0
        self.ApertureStd = 0
        self.GlobalPos = 0

        self.reset_srv = rospy.ServiceProxy('/gazebo/reset_models', Empty)

        ##################################################################
        ###################### RAISE FOOT SEQUENCE #######################
        ##################################################################

        self.pos1 = zeros(6)

        # "inner_hip","inner_ankle","left_hip","left_ankle","right_hip","right_ankle"
        #      0            1           2           3            4            5

        # Sequence 1 for raising the inner foot (from home position)
        self.seq1_1 = copy(self.pos1)
        self.seq1_1[3] = self.seq1_1[5] = -0.03
        self.seq1_1[0] = 0.25
        self.seq1_1[1] = -0.25

        self.seq1_2 = copy(self.seq1_1)
        self.seq1_2[1] = -1.49

        # Sequence 2 for raising the outer feet (from home position)
        self.seq2_1 = copy(self.pos1)
        self.seq2_1[1] = -0.03
        self.seq2_1[2] = self.seq2_1[4] = 0.25
        self.seq2_1[3] = self.seq2_1[5] = -0.25

        self.seq2_2 = copy(self.seq2_1)
        self.seq2_2[3] = self.seq2_2[5] = -1.49
        #self.seq2_2[1] = self.seq2_2[3] = -0.16
        #self.seq2_2[1] = 0.06

        #self.seq2_3=copy(self.seq2_2)
        #self.seq2_3[1] = self.seq2_3[3] = -0.1

        ##################################################################
        ########################## INITIALIZE ############################
        ##################################################################
        self._robot_name = "five_link_walker"
        self._jnt_names = [
            "inner_hip", "inner_ankle", "left_hip", "left_ankle", "right_hip",
            "right_ankle"
        ]
        # Initialize joint commands handler
        self.JC = JointCommands_msg_handler(self._robot_name, self._jnt_names)

        # Initialize robot state listener
        self.RS = robot_state(self._jnt_names)
        self.MsgSub = rospy.Subscriber('/' + self._robot_name + '/robot_state',
                                       RobotState, self.RS_cb)
        self.OdomSub = rospy.Subscriber('/ground_truth_odom', Odometry,
                                        self.Odom_cb)
Esempio n. 9
0
#! /usr/bin/env python
import rospy
import robot_state 
from constants import constants as C
from functions import print_ros

print_ros("Main starting...")
robostilt=robot_state.robot_state()  
robostilt.set_initial_state()
#robostilt.lower_legs_on_frame(C.FRAME.EVEN,False)

robostilt.move_actuator(4,-0.2) #fall on purpose
robostilt.raise_frame_while_leveling(-1.0)
# while(True):
#     robostilt.step_forward()
# #print_ros("Done with stepForward")

rospy.spin()