Quadlator II--基本组件及无线网络访问的配置 写于: 星期六 29 四月 @ 12:46:17 |
![]() Quadlator II--基本组件及无线网络访问的配置 作者:baredog 2003 年秋天的时候,残暑已经过去,天气一天一天凉了下来。我刚巧有一段比较轻松的时间,可以回想那个夏天热火朝天制作机器人的事情。那个夏天现在想起 来已经有些模糊了,大概每天就是在实验室搭电路,焊板子,配线,写程序,调试;在最紧要的关头,我的一颗智齿开始拼命的生长,疼得睡不着。我记得那 是个星期日,所有牙科医院都休息了,我妻子查到町田市有一家诊所开门,就带我过去拔除了那颗结实的智齿。然后我肿着半边脸和脖子到实验室想干活,结果发现 没法低头脖子已经不能动了。后面的几个星期,我妻子天天顶着中午的烈日,给我送去她亲自加工出来的流食。今 天想起这些,我仍然觉得感动。就是在这种状 态下,Quadlator II在9月20日的RSJ2003上demo成功。之后在2003年11月,这个机器人实现了步行功能。 现在思考起来,我觉得实在很难说出我对这个机器人到底是一种什么想法。写这些东西,并且发布到网上也说不好到底是什么一种初衷。也许是希望介绍一些东西给国内的朋友们,也许仅仅是做一个记录(毕竟停顿了2年),也许和一些人把自己的宠物照片贴到网上是同一种心里。 一、基本系统机器人Quadlator II是一个4足12关节机器人(每足3关节),各个关节由直流电机驱动,直流电机自带了Encoder,以测量转速.核心控制器,是一个东京工业大学的产学联合开发的嵌入式系统--T.I.Tech Wire。它负责把计算好的转角指令(或者转矩)通过DAC输入电机驱动模块TITech Robot Driver. 这个driver利用pwm驱动电机,电机旋转后encoder的脉冲送入IO Counter模块,该模块再把角度送入titechwire. 在我的系统中,机器人体内的嵌入控制器titechwire并不进行复杂的运动姿态和控制算法计算.它把各个电机的角度打包利用 socket通过无线LAN上传给PC机,该机器上运行我用Visual C++ 写的控制算法和姿态计算程序,程序把计算后各个电机应该转动的角度命令打包再通过Winsock传给titechwire.titechwire把12个关节的角度分配给各个titech robot dirver.如此循环.控制程序为了计算矩阵方便快速采用了Matlab数学库接口Matcom 4.5中的Matlib 在此之前,2003年的4,5月份,我曾经试着利用Visual C++和Matlib在Windows 9x下直接控制ISA Bus的DA卡和Counter卡控制第一代机器人(Quadlator 1)。现在这个方案,其实是这个思路的延伸:高层程序不变,底层移植到Linux上,中层程序改用网络通讯实现. Titechwire不仅包括核心的嵌入式CPU和外围电路,还包含一些额外的模块:
虽然国内的朋友可能无法找到这样类似的套件,因此也许会问:你介绍这些东西的细节,对我们有什么用呢?在2003年我写这篇文章时,的确没有考虑这么多,但是现在重新整理的时候,我感觉仍然有必要介绍,不是细节,而是供我们借鉴的地方。从RobotDIY等一些国内著名网站上可以看到,这几年国内的套件市场越来越丰富,除了LEGO这样著名的商业化套件外,国内一些厂商也逐渐面向教育产业开发套件,并诞生了一些活跃的公司,如上海广茂达,上海英罗等等。套件的好处是避免重复开发同样的东西,开发者不必每次都从0做起,而是可以借助别人的智慧,把自己的注意力集中到机器人本身上来。这样从社会这个大系统来看,其实是节约了精力,提高了效率。 像titechwire提供的这些模块,如果从产品线上来看,其实是针对开发者的,开发者可以把自己的要求定制到非常细致,包括闭环的组织,反馈类型的选择等等。这一点明显有别于针对青少年儿童的那些商业组件,针对青少年的时候,要简化难度,减少可选择的内容,一个包装好的舵机,一个接触开关也许比上面的DA和DIO更加合适。目标消费群体和产品永远是紧密绑定的一对。 1.1、组装
以上步骤完成后,基本系统如图Fig. 1所示
Fig. 1 CPU板,主板,PCMCIA板,无线网卡组成基本系统 1.2 上电测试我2002年底,在松野研究室接触机器蛇ACM-R3时,曾经看到过机器蛇尾巴上安装的一套嵌入式系统,不敢肯定是不是titech wire的早期产品。有一点我至今还记得,就是那套系统上,设有键盘接口和显示器器接口。现在评判起来,看来这些接口是多余了。如果仅仅是为了访问系统内部,一个简单的串口就足够了。Titechwire因此没有保留显示器接口和键盘接口(利用键盘和显示器像对待普通pc那样访问它看来也意义不大)。可以通过在普通计算机运行模拟终端软件,经过RS232来控制titechwire. 电气连接上,需要一条RS232接口电缆,把titechwire上的dsub9和计算机的串口连接起来。这条电缆一般可以购买,(如今国内中关村这样的电脑城也卖得非常普遍了),也可以自制。我现在还记得自制的口诀。那是读硕士时在长沙做项目学的,9针串口最核心的3根线就可以,收,发和地(GND),对应针脚2,3和5。 此后就可以通过这台普通pc访问系统内部了。PC上可以用Linux也可以用Windows,如果是Windows的话,需要一个终端软件。当时的日本同学喜欢用一个软件叫tero term,现在回想起来,觉得这点上也有他们自己的特色:如果一个软件,有日本人自己开发的,日本人会尽量用它,就好像在日本人几乎只买日本汽车一样。如果我们中国人也这样支持自己的产品,相信我们会进步得更快。我当时使用了Windows自带的超级终端(HyperTermial)。 今天仍然客观的评价titechwire的话,作为大学圈内的一项有意义的事情,它的确非常的出色,极大的提高了大学圈内研发机器人的效率,避免了重复的开发,使得研究人员和学生把精力集中到机器人本身上来。但是作为一个产品,它仍然有一些不足,比如说明书。这套套件除了自带光盘外,没有任何说明书,使用手册,故障参考等等。自带的光盘内有一篇论文,是这套系统的研发者写的,有一个例子程序,是当时的环境编译通不过的。这也许就是产学机构和正规公司的差距。2005年流行的一句细节决定成败的话,也许就是这个意思。当时面临的第一个问题就是串口的数据格式,当我确认没有任何书面资料可查的情况下,只好拨通了电话问titechwire的发明者兼维护者。 通讯格式是:
在超级终端设置上面的通讯格式后,就可以上电了。titechwire上面没有电源开关,只好自己做一个用。上电后 titechwire的4个LED指示灯会不停的闪烁,这一点和PC的指示灯类似。Linux在boot的过程中,所有的信息也会在超级终端上显示。最终提示用户输入密码: wsap32FE login: 仍然是同样的问题,没有任何书面材料标明了系统初始密码。我当时甚至找了包装盒子,CD背面等地方,最后还是只好打电话问,结果密码是 TW1x520。后来我2003年10月份我去和松野实验室的同学龟川哲志聊这件事,他也觉得这件事比较难理解,在他的个人网页中,他写到:没有root密码!!!需要询问;如不询问,就无从知道。 此后可以利用passwd命令修改这个密码 前面提到过不能使用titechwire的串口2,原因现在可以说明了:titechwire根本就把串口2禁止掉了,观察 /etc/inittab文件,会发现这样的内容 #Serial lines 具体是出于什么原因,至今也没有清楚。的确,titechwire距离成熟的产品,还是有一定的距离。也许大量同类产品出现,形成竞争,会客观的促进这些方面的提高。 1.3、配置无线网络通过无线网络可以更加方便的访问系统,这也是绝大多数嵌入式系统流行的一种方式:开发平台+目标平台,然后交叉编译+远传下载,最后是在线调试。但是当时没有理解这么深,只是觉得有如下的三点理由:
Titechwire能够认出绝大多数无线网卡,查看/etc/pcmica/network.opts发现好多无线网卡的模块都有了。所需要的,只是一个无线AP。这也许要归功于Linux社区,这也正是嵌入式Linux生气勃勃的原因之一。 此后运行Linux的命令ifconfig,发现系统列出了lo和eth0,说明无线网卡已经工作了.IP是 192.168.100.43 我的开发用pc的IP在192.168.0.x的网段内,需要在路由器上添加一条路由来连通开发PC和嵌入式系统的网络。此后就可以通过在开发pc上运行ping 192.168.0.43来确认是否正常。 如果无线AP不带路由功能,就需要设置固定ip了。titechwire的嵌入式系统本身装载的工具有限,没有netcfg、 netconfig这类工具,ipconfig eth0 ipaddr这样的方法仅能临时改变IP,重启后就会丢失。因此需要编辑/etc/rc.d/rc.inet1配置文件来设置IP地址,大概把内容改成这样: IPADDR=192.168.100.43 此后还要禁止掉dhcp。编辑/etc/pcmcia/network可以看到这样的内容: elif is_true $DHCP; then 后面是调用dhcpd启动去获取ip的脚本,说明要把$DHCP变量设置成NO,继续查看 /etc/pcmcia/network.opts会发现这样的行: DHCP=y 把这个变量改成n就能不启动DHCP。 网络配置的确是一个比较麻烦的内容,并且是一个潜在的问题。这个问题直接在2003年9月的demo中暴露了出来,后面1年多的几次demo中也处处是个困扰。在机器人demo中,有很多的机器人使用了无线LAN,会场内部也有很多AP和使用无线LAN的设备(笔记本,PDA等)。IP难免要打架,于是需要统一规定各个设备使用channel。几乎每次demo,系统启动后,无线LAN的连接都非常困难,通常要耗费几分钟的时间,才能连接上。而对于使用电池的机器人来说,每一秒钟电力的消耗都是非常大的代价。 1.3.2、更改hostname 缺省的机器名字是wasp32FE,为了方便区分,可以更改hostname。毕竟在日本大学圈内有太多人使用titechwire了,一起DEMO时混乱在所难免。当时尝试了改了很多配置文件,都不成,最后发现在这里 /etc/pcmcia/network.opts中DHCP_HOSTNAME=xxxxxxxxxxxxxxxx 把这行注释掉,改成希望的名字例如 至此,基本上已经把titechwire最基本的东西配置好了。现在可以在网络上任何一台计算机访问系统(ssh或者telnet, ftp等等),进行后继的开发了。 ===== |
共1条
1/1 1 跳转至页
Quadlator II--基本组件及无线网络访问的配置

只看楼主 1楼
关键词: Quadlator 基本 组件 无线网络 访问 配
共1条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
汽车+汽车地线之间连接处理被打赏20分 | |
【Zephyr】使用Zephyr外设初始化过程解析被打赏30分 | |
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
赚取电动螺丝刀+电源电路理论知识分享1被打赏5分 | |
我想要一部加热台+分享常见运算放大器电路的应用被打赏5分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
我想要一部加热台+常见的MOS管驱动电路被打赏5分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下串口调试printf输出记录被打赏29分 |