精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Delta型腿機器狗全動作展示

jf_72402704 ? 來源: jf_72402704 ? 作者: jf_72402704 ? 2023-06-18 10:46 ? 次閱讀

1. 功能說明

本文示例將實現R322樣機Delta型腿機器狗維持身體平衡、原地圓形擺動、原地踏步、蹲起、站立、前進、后退、轉向、橫向移動、斜向移動等功能。

wKgaomSOcBuAckjJAABazMx6Tus641.jpg

2. 電子硬件

本實驗中采用了以下硬件:

主控板 Basra主控板(兼容Arduino Uno)?
擴展板 Bigfish2.1擴展板?
SH-SR舵機擴展板
傳感器 紅外傳感器
六軸陀螺儀
電池 7.4v鋰電池、11.1V動力電池
其它 電壓顯示器

電路連接說明:為了便于識別控制Delta型腿機器狗,我們先對機器狗的腿位置編號(如下圖所示):

wKgZomSOcBuAfz_hAABKHgx4ts8347.png

① 硬件連接:

wKgaomSOcByAZJtYAABT3sfgpgI512.pngwKgZomSOcByATXGQAABawma7JKE824.pngwKgaomSOcB2AAWxuAABbJkTud-Y542.png

② 電壓顯示器與大電池連接:

wKgZomSOcB2ALHEWAACf2gJkguE119.png

③ 舵機接線位置:上面3個舵機分別連接在Bigfish擴展板的D4、D3、D8端口。

wKgaomSOcB6AHAqYAACcziZtrxI202.png

Delta型腿機器狗每條腿有4個舵機,4條腿上總共有16個舵機,將這16個舵機分別連接在SH-SR舵機擴展板的舵機接口上。

wKgZomSOcB6ADSidAABbkhgECgY169.png

1號腿 :s1連接口9 s2連接口8 s3連接口5 s4連接口6

2號腿 :s1連接口18 s2連接口19 s3連接口20 s4連接口21

3號腿 :s1連接口0 s2連接口2 s3連接口1 s4連接口3

4號腿 :s1連接口27 s2連接口25 s3連接口26 s4連接口24

3. 功能實現

編程環境:Arduino 1.8.19

下面提供一個Delta型腿機器狗全動作展示(維持身體平衡、原地圓形擺動、原地踏步、蹲起、站立、前進、后退、轉向、橫向移動、斜向移動)的參考例程(parallel_dog_display.ino),程序源代碼及樣機3D文件資料詳見 https://www.robotway.com/h-col-242.html,具體實驗效果可參考網站演示視頻。

/*------------------------------------------------------------------------------------

  版權說明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

           Distributed under MIT license.See file LICENSE for detail or copy at

           https://opensource.org/licenses/MIT

           by 機器譜 2023-06-07 https://www.robotway.com/

  ------------------------------*/

/*****

  Copyright 2017 Robot TIme

  全動作展示例程

*****/


#include "Tlc5940.h"

#include "tlc_servos.h"

#include 


#include "types.h"

#include "config.h"


// 相關函數聲明

/***** 紅外相關函數 *****/

void IRInit(); //紅外初始化

void enableIR(); //紅外使能

void disableIR(); //關閉紅外

void updateIR(); //紅外避障更新動作

/***** 平衡相關函數 *****/

void switchAdjustStat(uint stat); //切換平衡調節模式 不調節/原地調節/行進間調節

void readGyroSerial(); //讀取陀螺儀串口消息

void adjustAct(); //平衡調節動作

/****** 腿部動作相關函數 *****/

void setTurnLeftFlag(bool flag); //修改左轉狀態標志位

void setTurnRightFlag(bool flag); //修改右轉狀態標志位

void leg1(); //更新1號腿(左前)位置

void leg2(); //更新2號腿(左后)位置

void leg3(); //更新3號腿(右前)位置

void leg4(); //更新4號腿(右后)位置

bool calc(Point3d p, bool leg1, bool leg2, bool leg3, bool leg4); //逆解計算函數

/***** 整機動作相關函數 *****/

void dogReset(Point3d initPos, uint waitTime); //復位動作

void dogInit(); //初始化動作

void upDown(float x, float y, float z1, float z2, uint times); //蹲起動作

void drawCircle(float ox, float oy, float z, float r, uint times); //原地圓形擺動動作

void stepping(float x, float y, float z1, float z2, uint times); // 原地踏步動作

void liftShoulder(uint height, uint times); //原地擺臂動作


//動作周期計數器

int cycleCount;

//復位計數器

void resetCycleCount()

{

  cycleCount = -1;

}

void updateCycleCount()

{

  cycleCount++;

}


//當前運動狀態

dogMode currentMode;

//切換運動狀態

void setMode(dogMode mode)

{

  if (mode == currentMode) return;

  if (mode == DOG_MODE_TURN_LEFT)

  {

    setTurnLeftFlag(true);

    setTurnRightFlag(false);

  } else if (mode == DOG_MODE_TURN_RIGHT)

  {

    setTurnLeftFlag(false);

    setTurnRightFlag(true);

  } else {

    setTurnLeftFlag(false);

    setTurnRightFlag(false);

  }


  if (mode == DOG_MODE_BACK) //后退時關閉紅外傳感器

  {

    disableIR();

  } else if (mode == DOG_MODE_STOP) //靜止后開始原地姿態調節

  {

    switchAdjustStat(ADJUST_STAT_LEG);

    dogReset({0, 0, Leg_Init_Z_Pos}, 200);

  }

  currentMode = mode;

}


void updateMode()

{

  if (cycleCount == MOTION_TIMES + 1) setMode(DOG_MODE_BACK);

  if (cycleCount == 3 * MOTION_TIMES) setMode(DOG_MODE_LEFT);

  if (cycleCount == 4 * MOTION_TIMES) setMode(DOG_MODE_RIGHT);

  if (cycleCount == 5 * MOTION_TIMES) setMode(DOG_MODE_RIGHT_FRONT);

  if (cycleCount == 6 * MOTION_TIMES) setMode(DOG_MODE_RIGHT_BACK);

  if (cycleCount == 7 * MOTION_TIMES) setMode(DOG_MODE_LEFT_BACK);

  if (cycleCount == 8 * MOTION_TIMES) setMode(DOG_MODE_LEFT_FRONT);

  if (cycleCount == 9 * MOTION_TIMES) setMode(DOG_MODE_TURN_LEFT);

  if (cycleCount == 10 * MOTION_TIMES) setMode(DOG_MODE_TURN_RIGHT);

  if (cycleCount == 11 * MOTION_TIMES) setMode(DOG_MODE_STOP);

}


void setup()

{

  //陀螺儀連接串口,波特率115200

  Serial.begin(115200);


  //舵機驅動板初始化

  Tlc.init(0);

  tlc_initServos();   // Note: this will drop the PWM freqency down to 50Hz.


  //紅外傳感器初始化

  IRInit();


  //大狗身體初始化

  dogInit();


  //原地擺臂動作一次

  liftShoulder(40, 1);

  delay(500);

  //原地做圓形擺動3周

  drawCircle(0, 0, -120, 60, 3);

  delay(500);

  //原地蹲起3次

  upDown(0, 0, -160, -90, 3);

  delay(500);

  //原地踏步6次

  stepping(0, 0, -150, -100, 6);

  delay(500);



  resetCycleCount();

  enableIR();

  switchAdjustStat(ADJUST_STAT_TRACK);

  setMode(DOG_MODE_FRONT);

}


void loop()

{

  //姿態調節

  adjustAct();


  if (currentMode == DOG_MODE_STOP) return; //靜止模式不進行后續動作


  updateMode(); //切換運動模式

  //計算4條腿運動位置

  leg1();

  leg4();

  leg2();

  leg3();

  //更新所有舵機位置

  Tlc.update();

  //檢測紅外傳感器信息

  updateIR();


}


//串口與陀螺儀通信

void serialEvent() {

  readGyroSerial();

}


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器狗
    +關注

    關注

    3

    文章

    170

    瀏覽量

    10107
收藏 人收藏

    評論

    相關推薦

    美國軍方最新型號大機器人——“阿爾法(或者LS3)”,

    `日前,美國軍方展示了最新型號大機器人——“阿爾法(或者LS3)”,這是一種四自治機器人。
    發表于 01-16 14:31

    通過肩部動作操控機器

    在6月6日舉行的2018年以色列教育科技峰會上,特拉維夫大學學生展示人機接口研發進展。學生通過肩部動作操控桌上的機器人舉手、行走和轉向。相關儀器通過學生身上傳感器,不僅能將肢體動作信號
    發表于 11-09 16:01

    ANYmal機器人具有和腳,可跨越障礙物

    ANYmal機器人的實驗版本具有和腳,蘇黎世聯邦理工學院步行,有機器人可能擅長于越過障礙物,但車輪在光滑地面上行駛仍然更有效率。這就是蘇黎世聯邦理工學院的工程師向其現有的ANYm
    發表于 08-30 08:02

    波士頓機器電機控制相關資料推薦

    開始接觸到像波士頓機器這樣的項目一只12個電機4條每個腿上3個1個是控制胯轉動1個控制大腿也就是整條動的1個是控制小腿打彎的主控用l
    發表于 09-03 06:25

    一只完全由PCB制造的智能機器

    得不切割 PCB自己用卷軸鋸(或類似工具),但這不會花費你超過幾個小時。智能機器展示PS:在發布這個項目的時候,我沒有一個好的可靠的代碼可以在這個機器人上使用,所以我不會分享它,但我
    發表于 07-05 06:16

    小米機器二代來了,比上一代更瘦、更快、更強!NVIDIA主控+志MR813+志R329協處理器

    能看、能聽、能感知,CyberDog2確實如雷軍所調侃的那樣,它比從前“更了”。 在剛剛結束的秋季新品發布會上,小米發布了最新的仿生四足機器人CyberDog2,雖然沒有在發布會現場進行實物展示
    發表于 09-06 09:39

    大族機器人-Delta

    大族機器人-Delta
    發表于 12-25 22:21 ?0次下載

    Spot機器正在新西蘭的草原上展示放牧技巧

    在沒有人類監督的情況下管理羊群,就是Spot機器最新的技能之一。
    的頭像 發表于 06-03 17:06 ?1823次閱讀

    波士頓動力對機器進行了更新換代——能夠感應人體動作進行模仿

    機器的設計與發明,就是一項大膽的創新,近期波士頓動力又搞了一個神秘的測試,這款新型機器進行了更新換代,不僅保留著初代機器
    的頭像 發表于 07-27 11:48 ?2731次閱讀

    +輪式動力!瑞士四足機器展示最佳混合步態、運動更靈活

    +輪式動力!瑞士四足機器人ANYmal展示最佳混合步態,運動更靈活,機器人,四足機器人,步態,輪子,車輪
    發表于 02-20 13:44 ?2454次閱讀
    <b class='flag-5'>腿</b>+輪式動力!瑞士四足<b class='flag-5'>機器</b>人<b class='flag-5'>展示</b>最佳混合步態、運動更靈活

    波士頓動力機器學會了“三一組”跳大繩

    跳完集體舞、引得馬斯克贊嘆不已后,波士頓動力的機器Spot,又有了新才藝。 安裝了機械臂的Spot Arm,甚至學會了“三一組”跳大繩: 起跳動作,對于
    的頭像 發表于 02-02 14:06 ?1529次閱讀

    波士頓動力Spot機器獲新技能:玩跳繩游戲

    據外媒CNET報道,波士頓動力公司的Spot機器已經擁有跳舞、探索礦井及幫助醫療工作者等多項技能。而Spot機器正在不斷學習新的技巧,現在它們有了一個機械臂和一個新的編程界面,有了
    的頭像 發表于 02-03 17:27 ?1678次閱讀

    Arduino控制的Delta機器

    電子發燒友網站提供《Arduino控制的Delta機器人.zip》資料免費下載
    發表于 07-05 11:01 ?6次下載
    Arduino控制的<b class='flag-5'>Delta</b><b class='flag-5'>機器</b>人

    瑞士蘇黎世聯邦理工學院新型四足機器人單完成開關門、移動任務

    據本周五出版的Popular Science雜志報道,近日瑞士蘇黎世聯邦理工學院機器人系統實驗室的科研團隊展示了新研究進展:他們訓練了自家的機器,讓其用單
    的頭像 發表于 02-25 11:55 ?629次閱讀

    為什么四足機器人設計常借鑒的外形特征?

    劉表示,機器機器人的一部分,被稱為“四足動物”,意思很明顯是“四條”。四足機器人之所以多數被設計為
    發表于 04-10 14:30 ?376次閱讀