佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 5258|回复: 46

2轮平衡ROBOT(更新)

[复制链接]
发表于 26-1-2009 06:05 PM | 显示全部楼层
原帖由 waiweng83 于 26-1-2009 12:03 PM 发表


一个很好的问题 首先,我们须要知道 gyro 和 accelerometer 的性质。

Gyro 所测量到的是角速度(Angular Velocity),就是旋转的速度。但是我们要知道的是机器人倾斜的角度,而不是倾斜的速度。所以我们就必 ...

果然是高手!
我明白了, 很好的解释。 佩服佩服
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 21-1-2009 05:54 PM | 显示全部楼层 |阅读模式
以下是题目:
Linear Quadratic Regulator to DESIGN & DEVELOPMENT OF A SELF BALANCING ROBOT


我的project 步骤:

1.Hardware Design
2.Step response Simulation
3.Controller Design
4.Software/PIC  Programming
5.Interface


设备/Components :

1.PIC18F4550
2.DC Gear Motor
3.Wheel
4.IMU 5 Degree of Freedom
5.Battery

[ 本帖最后由 高明 于 21-10-2009 08:10 PM 编辑 ]
回复

使用道具 举报

发表于 22-1-2009 08:36 AM | 显示全部楼层

回复 1# 高明 的帖子

没有做过, 但2轮平衡机器人, 重点放在平衡系统, 要有陀螺仪(Gyro) + 加速感应器 (accelerometer)+ 运算法, 还有很重要的马达+齿轮组。

参考: Balancing Robot
http://www.tedlarson.com/robots/balancingbot.htm
http://geology.heroy.smu.edu/~dpa-www/robo/nbot/
http://www.barello.net/Robots/gyrobot/index.htm
http://leiwww.epfl.ch/joe/index.html

回复

使用道具 举报

发表于 22-1-2009 10:30 AM | 显示全部楼层
像 PIC 所说的,2 轮平衡机器人最难做的,就是把 gyro 和 accelerometer 的资料联合起来运算以便得到机器人的倾斜度的部分。需要用到 Kalman Filter 之类的 algorithm。

以前我女友的毕业论文也是做2 轮平衡机器人。但她做的比较简单些。只是用了两颗 Sharp IR Distance Sensors 来量前面和后面与地上之间的距离,便能算出机器人的倾斜度了。但这个方法有它的弱点,就是不能上斜坡  更多资料可以参考这里:http://www.balbots.com

这个是我女友的机器人
[url=http://www.youtube.com/watch?v=9-QRXHdQjOA]http://www.youtube.com/watch?v=9-QRXHdQjOA[/url]

[ 本帖最后由 waiweng83 于 22-1-2009 10:32 AM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 22-1-2009 04:30 PM | 显示全部楼层

回复 3# waiweng83 的帖子

我有读到一些国外的Thesis,里头都有谈到 Kalman Filter, 我就不知道是什么咚咚来的。

之前我也是想到用Sharp infra red 的,较容易做, 但supervisor说:UTM 学生 做过但” 好像“ 并不成功。

谢谢你推荐的网站,那拿着BALANCING ROBOT 的美眉就是你女朋友吗?。。。  
宿舍banned 了youtube , 回家乡才看。

还有,你女朋友是用些什么controller 的?? LQR, PID, Fuzzy or pole placement?

那能帮我问问你女朋友,他的BALANCING ROBOT 用些什么材料的,能list out  给我吗??还有很多地方要向她请教请教。


谢谢。
回复

使用道具 举报

 楼主| 发表于 22-1-2009 04:19 PM | 显示全部楼层

回复 2# pic 的帖子

我在网上搜索了很久,但没得到什么结果。

我今年是做Final project 的,但supervisor 一点都不懂。。。他也不知道需要些什么components。。。我晕。。。ZZZzz

你说得对,需要用到陀螺仪(Gyro).或inclinometer....set the axis and 运算机器人的倾斜度。

你给的网站我之前都浏览过了,Anyway, 还是要谢谢你。
回复

使用道具 举报

Follow Us
发表于 23-1-2009 10:52 AM | 显示全部楼层
原帖由 高明 于 22-1-2009 04:30 PM 发表
我有读到一些国外的Thesis,里头都有谈到 Kalman Filter, 我就不知道是什么咚咚来的。


首先,要先了解为什么你不能单单只用 accelerometer / inclinometer 来量机器人的倾斜度,而一定要配合 gyro 来使用。Kalman Filter 是用来结合 gyro 和 accelerometer 的资料的。实际上 Kalman Filter 怎样操作我就不懂,但是网络上有很多 sample code,只要改一点点就可以用了。

可以看看这个:
http://rotomotion.com/downloads/tilt.c
http://rotomotion.com/downloads/tilt.h

原帖由 高明 于 22-1-2009 04:30 PM 发表
之前我也是想到用Sharp infra red 的,较容易做, 但supervisor说:UTM 学生 做过但” 好像“ 并不成功。


许多大专都有毕业生做 2 轮平衡机器人的,当然有成功也有失败的。可能你的 lecturer 只是听说过失败的而已。我和我女友就是 UTM 的

原帖由 高明 于 22-1-2009 04:30 PM 发表
谢谢你推荐的网站,那拿着BALANCING ROBOT 的美眉就是你女朋友吗?。。。  


不客气。看到有人做 2 轮平衡机器人,我就兴奋起来了。因为我对这个课题瞒有兴趣的
http://www.balbots.com 是商业网站啦,youtube 的才是我女友的,。而且红毛美眉不适合我的

原帖由 高明 于 22-1-2009 04:30 PM 发表
还有,你女朋友是用些什么controller 的?? LQR, PID, Fuzzy or pole placement?


只是两个简单的 PID controller。一个用来控制 motor 的速度,另外一个用来平衡机器人。它的 gain 全部都是用 trial and error 来调的。

原帖由 高明 于 22-1-2009 04:30 PM 发表
那能帮我问问你女朋友,他的BALANCING ROBOT 用些什么材料的,能list out  给我吗??还有很多地方要向她请教请教。


两粒二手的 Brushed DC geared motors,两粒 Sharp IR Distance Sensors,PIC16F877A, 一粒 12V NiMh Battery,一个 RC Controller 和 Servo (用来控制机器人的方向的),还有一些电子零件。
回复

使用道具 举报

 楼主| 发表于 23-1-2009 11:33 AM | 显示全部楼层
谢谢waiweng兄的帮助。


.看到有人做 2 轮平衡机器人,我就兴奋起来了。因为我对这个课题瞒有兴趣
想到其高难度我就软掉。。。

这个学期将进行hardware 部分,下个学期则是software部分。目前乃拼命读Article review,看之前他们用些什么材料。

还有就是读着MC68HC12 microcontroller,不知道MC68HC12 在理头有用到吗?Supervisor 叫读的。

我和我女友就是 UTM 的

我在UMP读着(该没听过吧)。
你们都是Robotic的?
目前在那里工作?
大学读的有帮助吗?

新年间将会作些资料寻找与阅读,有疑问将会在此发问, 希望 在这方面有经验的网友能分享。


谢谢
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 23-1-2009 11:28 PM | 显示全部楼层
建议新手还是从 C 开始学起吧。日后如果真的需要到精准的 timing 和快速的运行速度的话,那时也可以用 Inline Assembly 在C 里面。而且现在的 C Compiler 已经很聪明了,compile 出来的 code 已经是很 optimized 了的。

记得以前在大学参加机械人比赛的时候,我是从 assembly 学起的, MCU 是 PIC16F877A。一旦学会了以后,有人曾建议我改去用C 来写,可是我就是习惯了 assembly,宁愿抓破头也不要改。后来有机会接触到 C 以后,我觉悟了。从此再也不用去管什么 banking,paging 之类的东西,而且要运行乘,除,甚至浮点数的计算也不是问题。如果不是及时学会 C,我看我的 FYP 也是做不出来了。

以下是一些 C 的好处:
1. Human Readable - 因为 C 的 syntax 都是英文字来得,所以也比较容易明白。记得有一句话是这样说的:一个好的 programmer 不止要会写机器能明白的 code,而且也要会写人类能够明白的 code。

2. Easy to Maintain - C 会比较系统化,所以容易管理。

3. Portable - 当你在开发一个程序到 90% 的时候,突然间老板叫你换去另外一颗 MCU。如果你的程序是用 assembly 写的,那你就得从新写过整个程序。如果是 C,你只需改一点点就可以了。



原来大大参加过ROBOCON的。
看了这板大部分帖后,发现大大真是非常厉害,觉得自己很失败,SEM6了,什么都不会,真惭愧。

大学学过PLC,Autrotonic , 一点点的C++ 与Visual Basic 6,还有超少的MATLAB, 不知这些   那一样     对将来工作较有用?
请大大告知,以便我能在还没失业之前能补救。


谢谢。
回复

使用道具 举报

发表于 24-1-2009 10:52 PM | 显示全部楼层
很兴趣的课题。不过我不会。。。。来向大家学习学习。

就是把 gyro 和 accelerometer 的资料联合起来运算以便得到机器人的倾斜度的部分

我有问题想问
其实为什么要结合gyro和accelometer来算倾斜度呢?单单gyro也不就是可以吗??
回复

使用道具 举报

发表于 26-1-2009 10:48 AM | 显示全部楼层
原帖由 高明 于 23-1-2009 11:33 AM 发表
这个学期将进行hardware 部分,下个学期则是software部分。目前乃拼命读Article review,看之前他们用些什么材料。


我觉得不应该用一个学期的时间来做 hardware。毕竟 2 轮平衡机器人的 hardware 只是很简单而已。建议你花多一点时间在 software 里。

原帖由 高明 于 23-1-2009 11:33 AM 发表
还有就是读着MC68HC12 microcontroller,不知道MC68HC12 在理头有用到吗?Supervisor 叫读的。


Microcontroller 是一定会用到的,但不一定是要 MC68HC12 (除非你的 supervisor 指定你用)。你也可以选择用其他的。
但我觉得奇怪的是为什么你的 supervisor 会叫你用 matlab 呢?是拿来作 simulation 吗?如果是的话,那你就不须要做 hardware 出来了。因为单单是 simulation 就足够给 degree 的毕业论文了。
但如果要用 matlab 来 program 你的 microcontroller, 那我就不懂怎样作了。

原帖由 高明 于 23-1-2009 11:33 AM 发表
我在UMP读着(该没听过吧)。
你们都是Robotic的?
目前在那里工作?
大学读的有帮助吗?


University Malaysia Pahang,我有听过。因为你们其中一位 lecturer 是我公司的客户来的。
以前我是在 UTM 读 Mechatronics 的。现在是在 Cytron 打工。至于在大学读的有帮助吗,那就见仁见智了。在大学所读的,大多数都是 theory 而已,你要懂得应用那些 theory 在你的 application 里,才能够发挥。其实有很多科目,到现在我已经还回给 lecturer 了

原帖由 高明 于 23-1-2009 11:33 AM 发表
原来大大参加过ROBOCON的。
看了这板大部分帖后,发现大大真是非常厉害,觉得自己很失败,SEM6了,什么都不会,真惭愧。


闻道有先后,我只是比你早接触到这些东西而已,并不代表比你厉害。

原帖由 高明 于 23-1-2009 11:33 AM 发表
大学学过PLC,Autrotonic , 一点点的C++ 与Visual Basic 6,还有超少的MATLAB, 不知这些   那一样     对将来工作较有用?


那看你将来要进哪一行了。PLC 和 Autrotonic 在 automation 会比较有用吧。C++ 和 VB 就比较多人用。其实 programming language 你只要精于一两种就可以了。记得我旧公司的老板曾经告诉过我们,programming language 只是一个工具而已。你会一两种后,要去学其他的很快就可以上手。更重要的是你要懂得怎么去写你的 algorithm。那个 logic 要怎么 flow。
至于 Matlab 我就不清楚了。但在本地并不多人用吧。
回复

使用道具 举报

发表于 26-1-2009 12:03 PM | 显示全部楼层
原帖由 fritlizt 于 24-1-2009 10:52 PM 发表
其实为什么要结合gyro和accelometer来算倾斜度呢?单单gyro也不就是可以吗??


一个很好的问题 首先,我们须要知道 gyro 和 accelerometer 的性质。

Gyro 所测量到的是角速度(Angular Velocity),就是旋转的速度。但是我们要知道的是机器人倾斜的角度,而不是倾斜的速度。所以我们就必须 integrate gyro 所测量到的角速度以得到角度。可是,这样作有一个问题,就是 gyro 在长时间操作下会 drift,而且当我们 integrate 时,noise 也会一起被 integrate。所以当操作了一段时间后 (一两分钟后),运算出来的角度就会慢慢偏离了。

而 Accelerometer 呢,它所测量到的是加速度 (Acceleration)。那加速度和机器人的倾斜度又有什么关系呢?原来地心引力也是加速度来的。当 accelerometer 和地心引力成 90 度的时候,它所测量到的加速度会是 0,而当 accelerometer 和地心引力成平行时,所量到的加速度会是 1G。所以,从加速度中,我们可以运算出机器人的倾斜度。

那,为什么我们还需要 gyro 呢?单单 accelerometer 不够吗?其实,如果机器人是静止的话,单单 accelerometer 就够了。但是,如果当机器人移动的时后会有其它的加速度。这样所运算出来的角度就不准了。解决方法就是 low pass filter accelerometer 的资料。因为通常机器人移动所产生的加速度是短暂的,而地心引力所产生的加速度是永久的。我们只要把一两分钟的加速度平均起来,就可以得到地心引力的加速度和运算出机器人的倾斜度。

但是这样会使到 respond time 便的很慢,还没来得及反应机器人就已经跌倒了。所以,我们就必须结合 gyro 和 accelerometer。我们知道,gyro  会有drift 和 noise 的问题。但是在短暂的时间里,我们可以当作 integrate 角速度而得到的角度是准确的。而 accelerometer 呢,它会被移动所产生的加速度影响。但在一段时间后,平均出来的角度是准确的。总结来说就是 gyro 是在短暂的时间里准确,而 accelerometer 是在长时间后才准确。所以 Kalman Filter 就是把两个不同性质的资料,取长补短地来运算出准确的角度。


不好意思,我不是很会解释,希望能够明白吧。我会知道这些是因为之前我 FYP 做四浆直升机的时候学到的。

评分

参与人数 1积分 +30 收起 理由
pic + 30 谢谢分享。

查看全部评分

回复

使用道具 举报

发表于 26-1-2009 11:05 PM | 显示全部楼层
原帖由 fritlizt 于 26-1-2009 06:05 PM 发表

果然是高手!
我明白了, 很好的解释。 佩服佩服


高手就不敢当了。只是骗吃而已
回复

使用道具 举报

 楼主| 发表于 31-1-2009 03:20 PM | 显示全部楼层

回复 10# waiweng83 的帖子

supervisor 建议我们使用CME-0555, 你觉得适合吗?  我E-mail 去问过了,价格好像非常昂贵哦。

原来您在Cytron 打工,之前也浏览过Cytron网站。supervisor 说 Cytron 是一班在ROBOCON 比赛冠军出来创立的公司 , 他也叫我们问一问Cytron有没有卖CME-0555(本来他是打算海外买的,所以叫我E-mail 去询问)。

matlab 是用来 program  microcontroller 的,而我用的MC是 LQR (Linear Quadratic Regulator). 但不明白如何使用 LQR。

看了很多Article,得到的资料不是很多.目前知道需要用的材料是: ADX300EB gyro, Accelerometer,servo control system,DC geared motor .

servo 拿来控制movement of the robot,如向前,后,转。
gyro 和 accelerometer结合起来,需要advanced algorithms,Kalman Filter,一大堆方程式,看到傻去   。拿来衡量机械人的倾斜度。

supervisor也告诉我们说UPM正做着类是的东西,他还问我有没有朋友在那边,叫我向他们索取 Component list 和 complete 的 circuit diagram    

还有谢谢你对gyro 和 accelerometer的解释。
回复

使用道具 举报

发表于 3-2-2009 11:00 AM | 显示全部楼层
原帖由 高明 于 31-1-2009 03:20 PM 发表
supervisor 建议我们使用CME-0555, 你觉得适合吗?  我E-mail 去问过了,价格好像非常昂贵哦。


如果没错的话,CME-0555 是 PowerPC 的开发系统来的。我觉得有点大材小用。而且它也瞒大片的,要装在你的机器人上面也不简单。你也必须考虑到要怎么去保护那片板,以免机器人跌倒时把它弄坏。

原帖由 高明 于 31-1-2009 03:20 PM 发表
原来您在Cytron 打工,之前也浏览过Cytron网站。supervisor 说 Cytron 是一班在ROBOCON 比赛冠军出来创立的公司 , 他也叫我们问一问Cytron有没有卖CME-0555(本来他是打算海外买的,所以叫我E-mail 去询问)。


我的老板是我的 senior 来的 我们并没有卖 CME-0555。但你还是可以通过我们帮你定,不过价钱肯定会比较贵。

原帖由 高明 于 31-1-2009 03:20 PM 发表
matlab 是用来 program  microcontroller 的,而我用的MC是 LQR (Linear Quadratic Regulator). 但不明白如何使用 LQR。


我想你误会了。LQR 不是 microcontroller 来的。它是一种 control system,就好像 PID,Fuzzy Logic 等等。
要怎样用 Matlab 来 program microcontroller 我就不会了。

原帖由 高明 于 31-1-2009 03:20 PM 发表
supervisor也告诉我们说UPM正做着类是的东西,他还问我有没有朋友在那边,叫我向他们索取 Component list 和 complete 的 circuit diagram    


就算给你拿到也没有什么用。因为重点是在 firmware。
回复

使用道具 举报

 楼主| 发表于 4-2-2009 11:09 PM | 显示全部楼层

gyro 和 accelerometer 的了解

读了一些有关gyro 和 accelerometer 的东西,大致上与waiweng83 兄说的一样,在此分享。


倾斜和倾斜率(tilt and tilt rate)在平衡机械人是很重要的。
accelerometer 是拿来衡量倾斜率的。倾斜率可Integrated 到接近倾斜以便控制机器人。

而gyro 则是拿来衡量倾斜的。

但这两种sensor都有其弱点,所以必须结合在一起相辅相助。

accelerometer 的信号快速,准确,不是很多杂音。但其不为零开始的bacaan /慢慢远离零开始的bacaan, 即使机器人没有旋转,都会发现其drift 到相当明显。

gyro 没有 bacaan 远离零开始的问题,但更新的速度比accelerometer要缓慢得多。gyro 还会发出噪声(noise)和spikes,所以需要一个过滤器,以防止这些特点进入control system。

这都能用RC连接一起解决。



LOW pass filter the gyro and high pass filter the accelerometer.然后将两个加起来。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 4-2-2009 11:14 PM | 显示全部楼层
以上说的对吗?  

当一个RC  filter 量 C时是HIGH pass filter.  量 R 时则是low pass filter 。

问题来了,如何结合两个 filter呢?  这算是Kalman Filter吗 ?  

还有待研究。


to be continue........  
回复

使用道具 举报

发表于 5-2-2009 10:25 AM | 显示全部楼层
你好像把 gyro 和 accelerometer 弄倒反了。

Kalman Filter 不是 hardware 的 filter 来得。它是一种 algorithm,用 statistic 的方法运算出 gyro 和 accelerometer,哪一个的可信度比较高,然后放比较多的 gain 在那边。它的 gain 是一直在变的。

你可以试找看关于 IMU (Inertial Measurement Unit) 的资料,可能对你有帮助。
回复

使用道具 举报

 楼主| 发表于 5-2-2009 05:33 PM | 显示全部楼层
accelerometer provides an       absolute measurement of platform tilt, with no integration necessary.  The       gyro, when integrated, tends to “drift”, and the null value of the       platform inclination will change slightly over time.  Differentiating the       accelerometer works in theory, but in practice, noise and the somewhat       slow response of the filtered accelerometer make it too slow to use as an       accurate rate measurement.  The gyro must be used for fast rate changes,       and the accelerometer must be used for an absolute reading of the platform       balance point.

http://www.prism.gatech.edu/~gth856d/buffalo/sensors.htm


  
Due to a constant small butnon-zero reading on the accelerometer even when the robot is not rotating, theintegrated tilt signal drifts quite noticeably. ....

he gyro signal does not drift from its zero noticeably butupdates much more slowly than the accelerometer......

http://coecsl.ece.uiuc.edu/ge423/spring05/group3/website/kalman_info.htm  


再看了一下,两个网站说的都不不同,还是我理解能力有问题??


我到了youtube看了一些相关的片段,发现大多数的balancing robot 都是高的,是不是越高其sensor 越敏感?
你女友的我也看了。。。可惜。。。看不到其面目。

还有,是不是一定要用到 wheel encoder 的?? 拿来 convert (encode) a  mechanical position as an signal that is readable by some sort of control  circuit.

你可以试找看关于 IMU (Inertial Measurement Unit) 的资料,可能对你有帮助。   


谢谢您的建议,我会去看看。


小的不才,加上资质有限,所以问题多多,希望您不会嫌弃 小的   
回复

使用道具 举报

 楼主| 发表于 6-2-2009 07:32 PM | 显示全部楼层
今天去见了 Supervisor,报告一个星期来做了些什么。

TMD,    我给他气到 肺都爆,他问我为什么还没找到完整的components list 和价格一起,他说要定购components  了。我给他看了些components,他问我,你确定这些都能用吗?    :@

由于现在我们正读着MC68HC11,还会做MC的project,所以我建议他如果用MC68HC11 就能省下一点时间与钱。他却说我叫你看 MC68HC12 能不能接(interface) with 电脑,不是MC68HC11 ,MC68HC11能接电脑咩?? 我心想    ,HC11与HC12 就那一点点分别,HC11也能接电脑呀,但我没出声,给他威下。

他也叫我找motor 的driver,说什么 用motor the feedback signal 来控制 robot (不就是wheel encoder 麻,之前我就解释给他说需要wheel encode record  rotatio, acceleration,velocity 等)。

他说可以拿 line follower 的来用(上次他supervised line follower, 但hareware 做到了,software 却不成,那条水还能拿 A,因为他是长嘴的) ,还问我你有概念那个robot大概怎么样的?由于我在youtube 看了多数都是高高的就告诉他大约形状,他说可以把line follower  改成 vertical 的呀 (又好像有道理)。

最后,他问我有找到circuit diagram 吗(之前他有叫我 e-mail 去问 cytron 和一些网站,还有问一些朋友,以便索取电路图)?我说我有e-mail 去问,但他们不给,我都没有办法,网上也找不到。我说, line follower 的就有看到,他说那用 line follower 改一改就可以啦 (又好像有道理)。

要走时,他说下次来我就要看到完整的component list circuit  和diagram,要不然我就给你 FAIL.   

我真是要顶他的肺,如果我会就不需要你做我Supervisor啦,你是协助我的,不是我去告诉你,教你做。。#$%$#%$#    :@

他 到底他是深长不露,扮猪吃老虎,还是根本就是猪???   

气死我了,头要爆炸了  


未免被扣分, P/S : TMD = To My Dear.

评分

参与人数 1积分 +20 收起 理由
pic + 20 给你打气, 继续努力。 :)

查看全部评分

回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 19-4-2024 10:15 AM , Processed in 0.097598 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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