From 9eab69831067249fac736d4a5170924e3264f19c Mon Sep 17 00:00:00 2001 From: zcy <290198252@qq.com> Date: Wed, 10 Jul 2024 08:11:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- csdn/csdn.py | 39 +++++----- csdn/tomd.py | 10 ++- single_article.py | 4 +- test.html | 192 ++++++++++++++++++++++++++++++++++++++++++++++ user.py | 4 +- 5 files changed, 220 insertions(+), 29 deletions(-) create mode 100644 test.html diff --git a/csdn/csdn.py b/csdn/csdn.py index 1c01022..2093511 100644 --- a/csdn/csdn.py +++ b/csdn/csdn.py @@ -99,7 +99,7 @@ class CSDN(object): soup = BeautifulSoup(html, 'lxml') content = soup.select_one("#mainBox > main > div.blog-content-box") if(content == None): - return "" + return "",soup.title.text print(str(content)) # 删除注释 for useless_tag in content(text=lambda text: isinstance(text, Comment)): @@ -114,9 +114,13 @@ class CSDN(object): eles_except = ["img", "br", "hr"] delete_blank_ele(content, eles_except) # 转换为markdown - print(str(content)) + file = open('test.html','w+',encoding='utf-8') + file.write(str(content)) + file.close() + + md = Tomd(str(content)).markdown - return md + return md,soup.title.text def write_readme(self): print("+"*100) @@ -158,7 +162,7 @@ class CSDN(object): time.sleep(randint(5, 25)) md = self.get_md(article_href) - md = '[引用自](www.csdn.net)\r\n ' + md_head + md + md = '[引用自](www.csdn.net)\r\n ' + md_head + md[1] print("[++++] 正在处理URL:{}".format(article_href)) # https://www.testingcloud.club/sapi/api/article_tree with open(artical_path, "w", encoding="utf-8") as artical_file: @@ -191,7 +195,7 @@ def onearticle(href: str,cookie:str,folder_name: str = "blog"): if not os.path.exists(folder_name): os.makedirs(folder_name) csdn = CSDN('username', folder_name, cookie) - md = csdn.get_md(href) + md,title = csdn.get_md(href) print(md) while md == "": time.sleep(randint(5, 25)) @@ -199,19 +203,16 @@ def onearticle(href: str,cookie:str,folder_name: str = "blog"): print("[++++] 正在处理URL:{}".format(href)) # https://www.testingcloud.club/sapi/api/article_tree - # with open(artical_path, "w", encoding="utf-8") as artical_file: - # artical_file.write(md) - # requests.put("https://www.testingcloud.club/sapi/api/article_tree",json.dumps({ - # "title": (article_title), - # "content":(md), - # "spend_time":1, - # "father":2500, - # "level":1, - # "author":"sds", - # "is_public":1, - # "author":"admin" - # })) - # md = md - # self.url_num += 1 + + requests.put("https://www.testingcloud.club/sapi/api/article_tree",json.dumps({ + "title": (title), + "content":(md), + "spend_time":1, + "father":2500, + "level":1, + "author":"sds", + "is_public":1, + "author":"admin" + })) diff --git a/csdn/tomd.py b/csdn/tomd.py index 37ffc7b..b8bd886 100644 --- a/csdn/tomd.py +++ b/csdn/tomd.py @@ -117,8 +117,9 @@ class Element: elif self.tag == 'math': self.content = re.sub(pattern, '{}\g<1>{}'.format(wrapper[0], wrapper[1]), self.content) else: - wrapper = MARKDOWN.get(tag) - self.content = re.sub(pattern, '{}\g<1>{}'.format(wrapper[0], wrapper[1]), self.content) + wrapper = MARKDOWN.get(tag) + if wrapper != None: + self.content = re.sub(pattern, '{}\g<1>{}'.format(wrapper[0], wrapper[1]), self.content) class Tomd: @@ -147,8 +148,9 @@ class Tomd: elements.sort(key=lambda element: element.start_pos) for e in elements: - if e.tag == 'p_with_out_class': - # print(e.content) + print(e.content) + if(str(e).find('",str(e),re.S) if imgs: print("found 1",len(imgs)) diff --git a/single_article.py b/single_article.py index 606858e..06a0fb2 100644 --- a/single_article.py +++ b/single_article.py @@ -4,6 +4,4 @@ import csdn if __name__ == "__main__": - csdn.onearticle("https://blog.csdn.net/u010658002/article/details/124567286", "cookie.txt") - - \ No newline at end of file + csdn.onearticle("https://blog.csdn.net/weixin_43002939/article/details/124751083", "cookie.txt") \ No newline at end of file diff --git a/test.html b/test.html new file mode 100644 index 0000000..8319621 --- /dev/null +++ b/test.html @@ -0,0 +1,192 @@ +
+
+
+
+

四足综述(一)四足机器人发展现状

+
+
+
+ +
+子墨_bupt + +已于 2024-03-16 01:06:43 修改 +
+ +阅读量2.4k + + + +收藏 + + 32 + + +
+ + +点赞数 + 22 + +
+
+
+
+
+
+分类专栏: +四足机器人 +文章标签: +机器人 +人工智能 +机器学习 +
+
+
于 2024-03-15 16:34:57 首次发布
+
+
+
+ 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 +
+ +
+
+
+版权 +
+
+
+
+ +
+
+
+ +
+13 篇文章 +6 订阅 +
+ +
+
+
+
+
+ + +
+

目录

+

A.发展现状    

+

B.国内外四足公司、机构

+
+

欢迎关注微信公众号 “四足机器狗研习社”,本公众号的文章和资料和四足机器人相关,包括行业的经典教材、行业资料手册,同时会涉及到职业知识学习及思考、行业发展、学习方法等一些方面的文章。

+ +

A.发展现状    

+

        四足机器人广泛运用于航空航天,军事作战,消防巡检等领域。根据末端执行机构的方式不同,移动机器人可以被分为轮式机器人、腿式机器人和履带式机器人等。其中,轮式机器人具有结构和控制简单,易于设计和操作,平坦的地面能灵活快速移动的特点;缺点在于非结构环境下轮式移动机器人的越障能力和运动平稳性差。履带式机器人有以下优点:接地比压小、支撑面积大并具备很强的道路适应能力,但存在缺点:自身重量较大、移动时振动较大、运动惯性大、行动速度较慢且相较于轮式移动机构灵活性不足。腿式机器人的优点是:越障能力强,能够实现全方位移动。

+

(a)  轮式机器人

(b)  腿式机器人

(c)  履带式机器人

+

                                                轮式、腿式和履带式机器人

+

        在地球的陆地表面,有超过 50%以上的面积为崎岖不平的山丘或低注潮湿的沼泽不适合轮式或履带式机动平台在其上行走。在这种环境下,足式机器人有着轮式和履带式机器人无法比拟的优点。足式机器人可以利用孤立的地面支撑而不是轮式机器人所需的连续地面支撑,在可能到达的地面上可以选择最优的支撑点,更加能够适应不平坦的地面,因此具有更强的机动性和更好的适应性:另外,足式机器人腿部所具有的多个自由度,使其具有良好的选择性与灵活性,这些特点使得足式机器人在非结构化、存在不确定因素的环境中具有绝对的优势。因此,足式机器人近年来日益成为国内外机器人领域的研究热点,不断激励着科学家们锲而不舍地探索其中的奥秘。

+

        第一个步行机器是在1870年前后,由Chebyshev基于他20年前提出的想法建成的。它由一个基于四连杆的装置组成。使用这种简单的装置,可以交替支撑(姿态)和转移(摆动)相位。这种由Chebyshev设计的步行机器和草绘图如图所示,双腿成对安装(对侧,非相邻腿)。因此,通过每一对腿支撑相和摆动相的交替(对角步态)就可能实现小跑。但是,这种设备只能应用在完全平坦的地形上,因为它没有地形适应机制或独立的腿部运动,从而限制了立足点的选择。尽管如此,在19世纪最后一个季度,Chebyshev步行机器也被纳入两个著名的机器中,即MELWALK(Kaneko等,1985)和Dante(Wettergreen等,1993)。

+ + +

                                                        Chebyshev机器摆动轨迹

+ + +

                                                                第一个步行机器,草图

+

        另一个步行机器发展史上的里程碑是机器马,由A.Rygg于1893年在美国专利局注册,如下图所示。操作者通过使用脚踏板为机器提供动力,利用连杆和曲柄产生腿的移动。这一度被认为是关于腿式系统的第一个专利,但不清楚它是否实际建成。20世纪40年代,研究人员和工程师为步行机器人开发出了新的潜在应用军事和空间领域的研究人员被足式运动的优势所吸引,提出了一些有趣的研究申请,首先是在英国,然后是在美国,作为战争机器和行星探索。

+ + +

                                                                                机器马

+

        第一个具有独立控制的腿和适应地形的步行机器,是英国人在1940年建造的。A.C.Hutchinson 认为,对于1000t以内的重型车辆,腿可能比轮子或履带更有效率。Hutchinson与F.S.Smith合作开发能够水平和垂直运动解耦的腿部系统,只需要有两个液压执行机构就可以移动机器。最终,他们建立了一个尺寸的四足机器,高60cm,有8个关节,由操作员线控来实现运动。该机被测试用于装甲车辆的,但当时英国深陷在第二次世界大战中,英国战争部对这些事态的发展并不感兴趣,以致阻碍了机器的进一步发展(Todd,1985)。这是第一台建成的具有地形适应性的四足机器。在其后的20年,基于美国宇航局和美国陆军的资助,美国进行了一些重要的理论研究。在美国陆军坦克汽车公司制造中心,波兰工程师M.G.Bekker的发现特别值得注意。这些发现促成了在通用电气公司合作下GE步行卡车的开发。这个四足工作平台机体长3m,重量1400kg,由R.S.Mosher于1962年开始建造,采用一个90马力·汽油发动机。所以从能量角度看,它是一个自主机器;但是由坐在机器上的操作员执行腿的控制。操作员通过自己的手和脚控制手柄和踏板,操纵机器所有的12个关节运动。Todd(1985)在他的书中提到,负责协调如此大量的手柄和踏板,操作员无法控制系统超过5min。但Raibert(1986)声称该项目的主任能够实现在大约20h的训练后顺畅地驾驶车辆。不管怎样,这个项目具有关键作用,它激励南加州大学的R.McGhee扩大研究现有的运动技术。MeGhee看到了GE步行卡车在20世纪60年代中期的演示,认识到主要问题是机器操作者无法协调腿部运动,即使是在短时间内。他当时正在与尔格莱德大学R.Tomovic合作研究有限状态控制理论,认为自动循环系统可代替操作员解决协调腿部运动问题。

+

        大概在同一时间,美国宇航局和美军再次赞助探索军事运输的步行机器人、行星探测和辅助残疾人应用可行性的项目。这项研究的一个重要成果是太空总公司建造的 lron Mule Train。Iron Mule Train 是一个八足机器人,被认为是步行机器发展史上的另一个里程碑(Morrison,1968)。20多年后,Tod(1991)出基于lron Mule Train的一些轻微修改,有助于使部件更容易制造。他的结论是:修改后的机器人并没有在技术上取得进步,但提出平衡问题对于机器人优点的局限至关重要。

+

        从1966年到1969年,Bucyrus-Eire公司从事BigMuskie的建造,是至今最大的步行机器。它重13500t,是专门在露天矿工作的牵引车。其基于四足液压驱动,足围绕固定轴旋转向前移动,而机器的机体停留在地面上。当四只足都接触地面时,机器抬起并移动,转到新的放置位置。足可以看作是一个特定半径的车轮,机器速度能够达到270m/h。BigMuskie被认为是Hutchinson 想法有效的证据,令人惊讶的是,直到1991年它还可以运行(BigMuskie,2005)。1966年,McGhee继续他的研究,并与A.A.Frank一起建成一个中型(50kg)的四足机人“PhonyPony”,如下图所示。每条腿都是基于带旋转关节的两自由度系统,通过电动机驱动。足是倒T形结构,保证了在平面上的稳定性。每个关节都安装了一些传感器,用于检测向前运动或向后运动关节是否锁定。有这样3种不同的状态,并且使用基于触发器的电子逻辑,他们创建了一个具有6个同步状态的状态机。机器人通过状态图选择,执行四足的爬行和对角小跑运动。 

+ + +

                                                                Phony Pony草图

+

        “Phony Pony”的出现是一个至关重要的里程碑,因为它启发McGhee 在俄亥俄州立大学(OSU)建立了新的步行机器,并成为步行机器人史上的重要里程碑!E OsU hexapod 和 Adaptive Suspension Vehicle (ASV)

+

        OSU hexapod 建于1977年,是第一台电脑控制的步行机器人。它的腿基于昆虫腿部构型,具有3个电动机驱动的旋转关节。这个机器人成为一个大型的实验测试平台,产生众多与步态生成、机器人控制和力分配算法相关的科学成果1986年,McGhee和还在OSU的Waldron一起测试了ASVhexapod,其可能是最大并与地形适应最好的步行机器人(Waldron和McGhee,1986;Song和Waldron,1989)

+

        1980年,日本东京工业大学(TIT)的Hirose开始开发大型家用四足步行机器人。第一个是Pre-ambulate Vehicle(PV-Ⅱ),被认为是四足步行机器人发展的重要里程碑,虽然在它之前还有一个名为KUMO的前身。PV-Ⅱ重10kg,高约1m。它的是基于3自由度的比例缩放机构,作为PANTOMEC获得专利。此后,该结构已被广泛应用于步行机器人的建造[图1.8和1.13(a)]。几年后,Hirose开始开发TITAN系列,自2001年以来,他直在研发TITAN-IX(Kato和Hirose,2001)。为了提高步行机器人的环境适应能力,研制了TITAN-IV,该四足机器人采用智能控制方法,利用姿态传感器和触觉传感器,可以实时产形适应能力的运动步态。德国的Dimann和他的团队多年来致力于研究复杂性的足式机策略,并且延伸到对足式哺乳动物的运动研究,开发了基于振荡器的步态生成器,基于腿部的行走策略等多种研究方法,研制了四足机器人实验平台BISAM。

+ + +

                                                        TITAN 系列四足移动机器人

+

        1983年,Odetics Incorporated推出了ODEX,一个六足机器人,其腿部基于比例缩放机构,并且放置在圆形构架中(Russell,1983)。这个机器人的推出并没有任何重要的科学贡献,但它作为第一个商业化的步行机器人,被列人重要成果。该公司制作了一个升级版,用于检查核电厂(Byrd和DeVries,1990)之后该公司突然停止了其步行机器人的研发。

+

                

+ + +

                                        Raibert动态稳定四足步行机器人简图

+

        美国NASA 研制的用于航空领域的微型爬行机器人 Spider-bot,该机器)形很像蜘蛛,可以在不规则的星球表面爬行。2018年,瑞士联邦理工学院发布了新版本的四器人ANYmal。该机器人能够适应复杂的环境,具有极高的灵活性和移动性,其执行机构使其能够动态运行和高速移动攀爬。由于装配有激光传感器和环境相机,该机器人可以感知周围环境,构建局部地图并准确定位,实现高效的路径规划和避障。

+ + +

                                                                ANYmal四足机器人

+

        2016年,美国波士顿动力公司开发了全电驱动的四足机器人SpotMini。该机器人具备优良的移动性,其配备的传感器包括立体摄像头、深度摄像头、惯性传感器(IMU)及位置/力传感器,可实现环境感知、自主导航、路径规划等功能。该机器人还能够攀爬楼梯,挥倒后可利用机械手自主恢复平衡。2012年,美国麻省理工学院的腿足机器人实验室根据猎豹的身体结构矿制出了 Cheetah四足机器人,它实现四足机器人的“高速奔跑”,奔跑速度高达 22km/h

+ + +

                                                                波士顿四足机器人

+
+ +

B.国内外四足公司、机构

+

        美国的波士顿动力(BostonDynamics)公司在足式机器人领域具有深厚的技术积淀。其创始人 Marc Raiben 在创立波士顿动力公司之前,在麻省理工学院(MIT)组建了MITLeg实验室,并且在足式机器人动态平衡方面做出了突出贡献,其中很多成果目前仍在足式机器人上使用。该实验室先后完成了平面单腿弹跳机器人、空间单腿弹跳机器人以及空间四足机器人。在成立波士顿动力公司之后,又发布了多款经典的足式机器人,其中著名的有双足机器人 Adas、轮足机器人Stretch以及四足机器人Spot。并且波士顿动力公司也在推动四足机器人走向实用,Spot机器人已经在一些应用场景下开展了应用测试。

+

            

+ +

                                                        波士顿动力机械狗

+

        另一个十分知名的组织是麻省理工学院的BiomimeticRobotcs实验室,其指导教授为Sangbae Kim。该实验室近年来发布了MITCheelah3和Mini Cheetah 两款机器人。这两款机器人的运动性能都非常优异,尤其是其中的小型化机器人MiniCheetah,是世界上首款实现后空翻的四足机器人。并且Biomimetic Robotics实验室开源了MiniCheetah的硬件设计,2019年底又开源了控制算法。

+ + +

                                                                MiniCheetah四足

+

        苏黎世联邦理工学院(ETH)的RoboticSystems 实验室也在四足机器人的理论研究方面做出了许多突出贡献,并且推出了四足机器人ANYmal。意大利技术研究院(IIT)的Dymamie Legged System实验室发布了使用液压动力的四足机器人 HyQ。宾夕法尼亚大学(UPenn)的GRASP实验室与GhostRobotics公司也公布了多款四足机器人,并且开始了商业化。

+ + +

                                                                ANYmal轮足机器人

+

        基于浙江大学的研究基础,杭州云深处科技公司随后推出了“绝影”系列四足机器人分“绝影 Mini”“绝影 Mini Lite”和“绝影X20”,该系列拥有大量外扩平台,支持丰富的传感设备化组合搭载,可以胜任多场景的任务,如图所示。

+ + +

                                                                        绝影四足机器人

+

        2016年,上海大学王兴兴研发出四足机器人XDog(图1.25)。XDog由电机驱动,十分能够在斜坡上保持平衡,在行走过程中动态保持平衡,并能穿越4cm高的障碍物,爬上约1坡。后来,王兴兴成立宇树科技,2017年发布了全新重构的四足机器人Laikago展示了优异的动态性能,它能在上下20°的斜坡、不平整的碎石路面上自适应行走,能够定范围内的外部冲击力。2017年,宇树科技开始公开出售四足机器人Laikago。在这之后,又陆续发布了Aliengo、A1、Go1机器人。

+ + +

                                                                        宇树科技四足

+ +

参考:

+

[1]Pablo等著,王宇等译.《四足运动——四足机器人控制技术》

+

[2]李彬等著.《四足仿生机器人基本原理及开发教程》

+

[3]卞泽坤,王兴兴.《四足机器人控制算法——建模、控制与实践》

+

[4]王鹏飞. 四足机器人稳定行走规划及控制技术研究[D].哈尔滨工业大学,2008.

+
+
+ +
+ +
\ No newline at end of file diff --git a/user.py b/user.py index 1d5dc20..d7c2481 100644 --- a/user.py +++ b/user.py @@ -4,6 +4,4 @@ import csdn if __name__ == "__main__": - csdn.spider("Poulen", "cookie.txt") - - \ No newline at end of file + csdn.spider("qq_60513199", "cookie.txt") \ No newline at end of file