用Python做一隻真·多足機器人,鋼鐵蜈蚣能彎曲還能蠕動

2020-11-22 和訊科技

  大數據文摘出品

  來源:declanoller

  編譯:徐玲、李世林、陳若朦

  足式機器人是如今機器人設計的熱點,相較於輪式和履帶式機器人,足式設計的優勢在於其極強的地形通過能力。

  你一定見過模仿人類的兩足機器人、犬型和馬型的四足機器人、近來爆紅的蜘蛛型六足機器人,那你有想過再多來幾條腿嗎?

  控制行走一直是足式機器人的一大設計難點,腿越多則移動越困難。然而,一位名叫Adimin的外國小哥用python做了一隻可爬行可彎曲的蜈蚣型機器人。

  問:為什麼要做設計成蜈蚣型呢?

  小哥答:蜈蚣在體型上具有相當的長度,而通過向上彎曲身體還可以具有一定的高度。但是重點是——從來沒人做過!蜈蚣機器人夠酷、夠怪、夠有趣!

  讓「蜈蚣」蠕動起來:雙伺服旋轉的腿

  為實現「蜈蚣」的移動,同時考慮到電力需求,Adimin設計了腿在水平和垂直方向上的旋轉功能,分別命名為hip servo 和ankle servo。

  於是,腿就能在兩個方向上蠕動起來!

  此處的所有伺服均由PCA9685 PWM分支板控制——這是一個I2C器件,允許同時控制多達16個伺服器,既便宜又實用。

  考慮腿的數量和「蜈蚣」身體的的連接方式,Adimin小哥將主體平臺部分設計得較大,給腿的添加留出更多空間;同時在前後兩端採取鉸鏈設計(採用金屬齒輪MG 996R),不僅能實現身體長度的延伸,還能完成向上彎曲的動作。

  「蜈蚣」彎曲起來!

  用Python製作多足機器人

  「蜈蚣」運動的控制代碼是一個分層的類結構。

  最基本的單元是Servo部分,使用這部分功能可以直接控制伺服器。

  代碼中更高級的部分是Leg,其中包含了兩個Servo對象,分別用來控制之前提到的 「hip」 和 「ankle」 伺服系統,根據其自身leg_index(2*leg_index和2*leg_index + 1)為它們分配正確的板索引值。

  LegPair部分與之Leg類似類似,其中創建了兩個Leg對象分別控制左右。

  1. b = DriverBoard(args.addr, 16)

  2.

  3. if args.N_pairs > 4:

  4. b_front = DriverBoard(40, 8)

  5.

  6. pairs = []

  7. for i in range(args.N_pairs):

  8. if i < 4:

  9. lp = LegPair(b, i)

  10. else:

  11. lp = LegPair(b_front, i-4)

  12.

  13. pairs.append(lp)

  14.

  15. start = time()

  16. while True:

  17. for p in pairs:

  18. p.increment_ankles()

  讓我們來看看這段代碼的功能——「蜈蚣」彈跳起來了!

  其實,讓「蜈蚣」實現行走的部分是increment _ankles()函數。為了解釋這一點,讓我們回到Servo class。

  伺服系統的主要工作是循環移動。為了控制伺服裝置的位置,需要向它發送一個特定佔空比的脈寬調製(PWM)信號。接下來,我們要找到對應於該點的脈寬調製,即中點脈寬調製(mid_pwm),使它圍繞一個點振蕩。然後,定義一個脈寬調製幅度(pwm_amplitude),該幅度會決定它在這個循環中相對於中點上下移動的距離。於是,讓「蜈蚣」循環移動起來只需通過以下代碼:

  pwm = int(self.pwm_mid + pwm_amplitude*sin(self.phase + self.phase_offset))

  如果要讓一條腿以我們預期的「行走」方式運動,hip和ankle伺服系統不可能做完全相同的運動。讓我們將運動參數化成x和y,加上時間變量t,構成一個正弦函數,令x(t)=y(t)=sin(ωt),便可以得到下面這個運動曲線:

  為了實現行走,則還需要您給其中一個變量提供相位偏移(如上面的代碼所示),最終得到一個圓。

  在伺服系統的相位偏移變量設計中,Adimin表示分層設置實在是太炫酷了——它能使多條腿連貫運動!

  每個腿的伺服對象之間需要一定的相位偏移,而每條腿相對於其他腿也存在相位偏移。因此,我們需要給每個LegPair對象一個高級的相位偏移量,然後每個部分將相應的偏移量分配給它的低級對象。

  除了上下跳動以外,Python還能實現「蜈蚣」的其他運動方式:

  1. b = DriverBoard(args.addr, 16)

  2.

  3. if args.N_pairs > 4:

  4. b_front = DriverBoard(40, 8)

  5.

  6. sleep(0.5)

  7. pairs = []

  8. for i in range(args.N_pairs):

  9. if i < 4:

  10. lp = LegPair(b, i)

  11. else:

  12. lp = LegPair(b_front, i-4)

  13.

  14. if i%2 == 1:

  15. lp.set_phase_offset(pi)

  16. pairs.append(lp)

  17.

  18. start = time()

  19. time_limit = args.runtime

  20.

  21. while True:

  22. for p in pairs:

  23. p.increment()

  自然生物學為機器人設計提供了黃金標準,我們需仍要很長時間才能製造出完成一切動物行為動作的多足機器人。而另一方面,機器人不受生物學的限制,這意味著它們總有可能學習動物天生就不會的新行為。

本文首發於微信公眾號:大數據文摘。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

(責任編輯:張洋 HN080)

相關焦點

  • 情侶七夕夜酒店開房 十多釐米長蜈蚣在被窩裡蠕動
    這隻十多釐米長的蜈蚣,就是爬上床的「不速之客」,可把盧先生和女友給嚇得不清。盧先生說,當晚入住酒店後,凌晨一點左右,他突然感覺被子裡有東西在蠕動。 盧先生打開被窩,竟看到一隻十多釐米長的蜈蚣,情急之下,他用手機把蜈蚣壓住,再找了個玻璃杯把蜈蚣給罩住。
  • 教你如何用用單個電機製作六足轉向機器人
    想像一下有這麼個小機器人,六條腿在地上吧嗒吧嗒亂爬。嗯,倒是不用想像,看看下圖就知道了。它叫做1STAR,就是1個驅動裝置的可轉向機器人的意思(1 actuator STeerAble Robot)。儘管它有六條腿,能夠左右轉向,但只用一個電機就能做到,一個!
  • 蜈蚣能有多剽悍?真的猛士,敢於獵殺飛行的蝙蝠!
    真•節肢動物的逆襲: 老子能抓住飛行的蝙蝠 你見過的蜈蚣個頭小,並不等於蜈蚣個頭都很小。圖/arachnoboards.com這麼大的一隻蜈蚣,吃什麼過活呢?各種大小合適的蟲子、青蛙、蜥蜴、小型齧齒動物、小鳥都在它們的食譜上榜上有名。秘魯巨蜈的腿長而強健,因此它們能夠快速移動,捕捉獵物。節肢動物獵食脊椎動物非常常見。君不見巨大的田鱉能夠捕捉水蛇,蜘蛛也能布下天羅地網獵殺小鳥乃至毒蛇,甚至蜻蜓的幼蟲也是水中一霸能以蝌蚪小魚為食。
  • 女子發現家中馬桶現巨型蜈蚣 掙扎蠕動嚇壞網友
    2014年12月31日,馬桶沒衝乾淨令人心煩,但據外媒報導,馬桶中有時候竟然也有意料之外的東西——近日網上流傳一段影片,在一個住宅內的馬桶裡,竟然有一條大蜈蚣在掙扎蠕動,觀之令人毛孔直豎。遠看還以為馬桶中沒衝乾淨,但近看竟然是一隻大蜈蚣,嚇得女子驚聲尖叫。更可怕的是,這隻大蜈蚣還在馬桶內探頭探腦不停蠕動,似乎是想離開馬桶。專家指出,這種大型蜈蚣可能是巨型非洲千足蟲(giant African millipede),喜歡待在潮溼的環境中,最長可達31釐米長。這段視頻上傳不到兩天,已經有數萬人觀看。網友除了驚呼可怕之餘,還呼籲拍片的人應儘快衝馬桶。
  • 俄羅斯發現新型多足蜈蚣 足數可達750條(圖)
    資料圖【環球科技綜合報導】據俄羅斯OANE新聞網11月7日消息,俄羅斯阿爾泰地區阿爾泰生物保護區發現一種新型蜈蚣。此種蜈蚣的代表性特徵就是多足,甚至可擁有多達750條腿。該種蜈蚣由阿爾泰生物保護區科學研究員米洛斯拉夫·薩赫涅維奇首次發現,並命名為Sibiriulus baigazanensis。
  • 一條蜈蚣面對一群美洲大蠊的圍攻,能以少勝多嗎?
    一條蜈蚣面對一群美洲大蠊的圍攻,能以少勝多嗎?看到這個標題的小夥伴可能會覺得,小編是不是沒啥可寫的了?在這「無病呻吟強說愁」……小編在這裡解釋一下,這兩種昆蟲看似在生活中少有交集,但還真不是不會碰面,特別是在人為安排下。
  • 俄羅斯發現多足蜈蚣新種:750 條腿
    據俄羅斯OANE新聞網消息,俄羅斯阿爾泰地區阿爾泰生物保護區發現一種新型蜈蚣。此種蜈蚣的代表性特徵就是多足,甚至可擁有多達750條腿。該種蜈蚣由阿爾泰生物保護區科學研究員米洛斯拉夫·薩赫涅維奇首次發現,並命名為Sibiriulus baigazanensis。
  • 情侶七夕夜酒店開房 被窩竟有一隻十多釐米長的蜈蚣
    情侶七夕夜酒店開房 被窩竟有一隻十多釐米長的蜈蚣時間:2017-09-03 19:22   來源:今日頭條   責任編輯:毛青青 川北在線核心提示:原標題:情侶七夕夜酒店開房 被窩竟有一隻十多釐米長的蜈蚣 過七夕,很多情侶都會來個浪漫約會,在外地工作的盧先生,七夕當天就專門趕回柳州,陪女朋友過節。
  • 小區頻現「多足怪蟲」 身影遍布多地還會散發臭氣
    本報記者吳濤最近一段時間,市區一些居民小區裡,出現了許多「多足爬蟲」。為了對付這「蟲蟲大軍」,居民和物業使盡了腳踩、噴藥、開水燙等等招數,但都沒太大效果。因為蟲的體側有著兩排密密麻麻的腳,有人說,這是「百腳」,也就是蜈蚣。記者近日去實地一看,此類蟲子大多三五條一起行動,讓人看了心裡直發麻。
  • 【中藥典故】漲姿勢:以毒攻毒的【蜈蚣】,真能解蛇毒?
    他急忙拿下來打開蓋子,壺裡還真有半壺陳茶。貨郎不管三七二十一,對著壺嘴兒就喝。陳茶灌進肚子,覺得舒服多了,他謝過孩子,又挑上擔子趕集去了。真謝謝啦! 哎呀,這都是小孩子不懂事! 那茶放在櫥頂都半年了,不能喝!貨郎說"我喝完倒覺得挺舒服。"是嗎?您讓我看看,那是一壺什麼茶?
  • Raptor:四足機器人與雙足機器人的對決
    ,這種設計令其在保持直立的同時還能彈跳。Raptor究竟能夠跑多快?Velociraptor是迅猛龍的意思,學者推測這種恐龍具有很高的智能,並且是冷血的殺手。Raptor一詞就是由此而來,KAIST的開發者可能希望這樣的雙足機器人有一天能夠作為高機動機器人的雙腳。該機器人能夠迅速的奔跑,目前它能夠在跑步機上達到46千米每小時的速度。
  • 日本擬人化真可怕,蜈蚣蟑螂能變成少女,便便也能成精
    然而大家都低估了日本畫師的創作能力,他們不僅能將貓貓狗狗擬人化,甚至還能用其他東西進行擬人化創作。日本擬人化真可怕,蜈蚣蟑螂能變成少女,便便也能成精。大家好~這裡是你的靈子呀~如果身邊的小動物突然變成美貌的少男少女,你會如何應對呢?
  • 《精靈寶可夢》圖鑑543:性格很粗暴,會麻痺對手——百足蜈蚣
    小夥伴們好呀,本篇我們要介紹的寶可夢就是百足蜈蚣啦,百足蜈蚣也算是五代的家門蟲,所以五代也是有著兩家家門蟲的世代,類似於一代的綠毛蟲和獨角蟲以及二代的圓絲蛛和芭瓢蟲,那麼,百足蜈蚣到底是怎樣的一隻寶可夢,就讓我們一起來看一下吧!
  • 服貿會上的機器狗、機器昆蟲:國產足式機器人發展到哪一步
    王興興向澎湃新聞透露,AlienGo「大狗」的價格約為30萬元人民幣,視配置而定,賣得比較多的「小狗」則為幾萬元人民幣。「我們是全球範圍內這種類型的機器狗出貨量最多的公司,比去年翻了幾番,預期明年還能有大幅增長。」據介紹,這些訂單有一半是出口的,主要去向日本東京大學、瑞士蘇黎世聯邦理工、英國利茲大學等高校,以及谷歌、英偉達等科技公司。
  • 人類「機器人助手」能讀心會走路還能打官司(圖)
    莫凡 攝  能讀心會走路還能打官司  模仿人類、協助人類 「機器人助手」將會很出色  在2017世界機器人大會上,腦控機器人、雙足行走機器人、法官機器人等在專一功能上向人類靠攏。可以想像,當未來的機器人將這些功能集於一身時,會成為人類出色的助手。
  • 中藥的故事 [ 毒蛇·蜈蚣·蠍子 ]
    他急忙拿下來打開蓋子,壺裡還真有半壺陳茶。貨郎不管三七二十一,對著壺嘴兒就喝。乘茶灌進肚子,覺得舒服多了。他謝過孩子,又挑上擔子趕集去了。再說貨郎的老婆,天亮時爬起來吃飯,發現鍋裡剩著一點莧菜湯,湯裡有一要死毒蛇。她嚇得大叫一聲:「哎呀,我的媽!」心想,這準是毒蛇鑽進了那捆莧菜,孩子他爸沒看見,就一塊兒做進了湯裡。他一定中毒了,說不定還會鬧出人命呢!
  • 蜈蚣又名百足蟲、千足蟲、金頭蜈蚣、百腳、蝍蛆、吳公、天龍、嗷高姆《本草綱目大全-虫部》
    在形態上大體相似,主要區別是:個體較大;尾足的前股節背面內側棘數、腹面外側棘數、腹面內側棘數均較少棘蜈蚣為多;顎肢齒板的齒數亦多。「生長環境」棲居於潮溼陰暗處;食肉性。1、少棘巨蜈蚣,棲息於丘陵地帶和多砂土的低山區,喜歡在溫暖的地方。以小型昆蟲及其卵等為食。
  • 女子拆快遞時發現條多足蟲子 嚇壞了
    拆包裹時,突然爬出一條多足的蟲子10月12號,小餘在天貓上的太平鳥官方旗艦店買了三件衣服和一件褲子,一共616元,優惠券抵扣了100塊。前段時間,快遞到了,是一個紙盒子,衣服是用塑膠袋裝好的。小餘:「包裹拆來,裡面爬出一條類似於蜈蚣一樣的蟲子,(它當時是在紙盒裡,還是在塑料包裝裡出來的?)那我不太清楚了,它爬的超快的。」
  • 蜈蚣不是千足蟲
    蜈蚣,英文名叫』centipede『,是有一百條腿兒的意思,是多足動物亞門唇足綱動物,常見的蜈蚣有二十來對腿,地蜈蚣目可以有一百多對腿
  • 科普 | 蜈蚣、蚰蜒和馬陸
    多足動物是最早由水登陸的一個類群,目前的化石證據表明,在距今4.2億多年前的志留紀多足動物的祖先就已經作為第一批登陸的動物,在陸地上開闢新天地,而到了石炭紀,有一種巨型多足動物可以長到3米長,是當時陸地上最大的動物之一,而它們的子孫後代,依舊在世界各地繁衍生息。