极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10734|回复: 0

帮忙看一下这段程序,有什么问题

[复制链接]
发表于 2015-1-15 09:06:26 | 显示全部楼层 |阅读模式
/*
* Auto-Generated by NUKE!
*   http://arbotix.googlecode.com
*/

#include <ax12.h>
#include <BioloidController.h>
#include <Commander.h>
#include "nuke.h"

// Define one or the other depending upon which servo type you are using.
#define AX12_HEXAPOD
//#define AX18_HEXAPOD

Commander command = Commander();
int multiplier;
int id;

#define LEG_COUNT  6
#define RIPPLE_SPEED    1
#define AMBLE_SPEED     3
#define TRIPOD_SPEED    5

/*Servo IDs */               /定义每条腿的关节舵机id/
#define RM_TIBIA 18
#define RF_COXA 2
#define LR_TIBIA 11
#define LF_FEMUR 3
#define RF_TIBIA 6
#define RM_FEMUR 16
#define RM_COXA 14
#define RR_COXA 8
#define LF_TIBIA 5
#define LF_COXA 1
#define LR_FEMUR 9
#define RR_FEMUR 10
#define LM_TIBIA 17
#define RF_FEMUR 4
#define LM_FEMUR 15
#define RR_TIBIA 12
#define LM_COXA 13
#define LR_COXA 7

/* Actual positions, and indices of array. */
extern ik_req_t endpoints[LEG_COUNT];
#define RIGHT_FRONT    0
#define RIGHT_REAR     1
#define LEFT_FRONT     2
#define LEFT_REAR      3
#define RIGHT_MIDDLE   4
#define LEFT_MIDDLE    5

#ifdef AX12_HEXAPOD
#define TOP_SPEED      10
#endif

void setup(){
  pinMode(0,OUTPUT);
  // setup IK
  setupIK();
  gaitSelect(AMBLE_SMOOTH);
  // setup serial
  Serial.begin(38400);

// stand up slowly
  bioloid.poseSize = 18;
  bioloid.readPose();
  doIK();
  bioloid.interpolateSetup(1000);
  while(bioloid.interpolating > 0)
{
    bioloid.interpolateStep();
    delay(3);
}
  multiplier = AMBLE_SPEED;
}

void loop()
{
  // take commands
   if(command.buttons&BUT_L4)              / /如果按下L4,选择左前腿//
    {
      LEFT_FRONT;
      multiplier=AMBLE_SPEED;
          Serial.println("####################");
          Serial.println("Initializing Left_FRONTLeg Tests");
          Serial.println("####################");
           delay(500);  
     if((command.walkV) > 5 );                      //左前腿向前移动100mm//
      {
         endpoints[LEFT_FRONT].x = endpoints[LEFT_FRONT].x+10;
       endpoints[LEFT_FRONT].y = -118;
       endpoints[LEFT_FRONT].z = 97;
         bioloid.poseSize = 3;
       bioloid.readPose();
       doIK();
       bioloid.interpolateSetup(1000);
       while(bioloid.interpolating > 0)
         {
         bioloid.interpolateStep();
         delay(3);
       }

       }
      if((command.walkV < -5) );         //左前腿向后移动100mm//
      {
         endpoints[LEFT_FRONT].x = endpoints[LEFT_FRONT].x -10;
       endpoints[LEFT_FRONT].y = -118;
       endpoints[LEFT_FRONT].z = 97;
         bioloid.poseSize = 3;
       bioloid.readPose();
       doIK();
       bioloid.interpolateSetup(1000);
       while(bioloid.interpolating > 0)
         {
         bioloid.interpolateStep();
         delay(3);
       }

       }
      if((command.walkH) > 5 );                        //左前腿向左移动100mm//      
       {
         endpoints[LEFT_FRONT].x = 52;
         endpoints[LEFT_FRONT].y = endpoints[LEFT_FRONT].y +10;
           endpoints[LEFT_FRONT].z = 97;
         bioloid.poseSize = 3;
         bioloid.readPose();
       doIK();
       bioloid.interpolateSetup(1000);
       while(bioloid.interpolating > 0)
         {
         bioloid.interpolateStep();
         delay(3);
       }

       }
      if((command.walkH < -5) );                           //左前腿向右移动100mm//
       {
                endpoints[LEFT_FRONT].x = 52;
                  endpoints[LEFT_FRONT].y = endpoints[LEFT_FRONT].y -10;
                  endpoints[LEFT_FRONT].z = 97;
         bioloid.poseSize = 3;
       bioloid.readPose();
       doIK();
       bioloid.interpolateSetup(1000);
       while(bioloid.interpolating > 0)
         {
         bioloid.interpolateStep();
         delay(3);
       }

       }
      if((command.lookH) > 5 );                               //左前腿抬高移动50mm//  
       {
          endpoints[LEFT_FRONT].x = 52;
              endpoints[LEFT_FRONT].y = -118;
           endpoints[LEFT_FRONT].z = endpoints[LEFT_FRONT].z -50;
        bioloid.poseSize = 3;
       bioloid.readPose();
       doIK();
       bioloid.interpolateSetup(1000);
       while(bioloid.interpolating > 0)
         {
         bioloid.interpolateStep();
         delay(3);
       }

       }
      if((command.lookH < -5) );                              //左前腿降低移动50mm//
       {
                endpoints[LEFT_FRONT].x = 52;
                  endpoints[LEFT_FRONT].y = -118;
                  endpoints[LEFT_FRONT].z = endpoints[LEFT_FRONT].z+50;
       bioloid.poseSize = 3;
       bioloid.readPose();
       doIK();
       bioloid.interpolateSetup(1000);
       while(bioloid.interpolating > 0)
         {
         bioloid.interpolateStep();
         delay(3);
       }

        }

        }
   

   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 03:55 , Processed in 0.038939 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表