这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 使用嵌入式RTLinux OS组建机器人控制系统(2)

共1条 1/1 1 跳转至

使用嵌入式RTLinux OS组建机器人控制系统(2)

工程师
2011-03-15 14:34:06     打赏
使用嵌入式RTLinux OS组建机器人控制系统(2)
写于: 星期三 01 十月 @ 04:53:58
 
智能机器人开发这是由在读于Tokyo Institute of Technology的博士生Liu Xinyu写的一篇文章,文章以机器人Quadlator II为实例,详细描述了如何使用嵌入式RTLinux OS组建机器人控制系统。这里是第一章。

使用嵌入式RTLinux OS组建机器人控制系统


第一章 基本系统

 


兄弟我要控制的机器人是一个4足12关节机器人(每足3关节),各个关节由直流电机驱动,直流电机自带了Encoder,以测量转速.核心控制计算机采用东京工业大学的产品化嵌入式系统,T.I.Tech Wire(就是第三产业的副产品.价格变态,约30万日元,比它好了不知多少倍的PDA才卖不到7万日元)以下简称TITechWire.同时一起购买了titechwire用的DAC模块,IO Counter模块,通讯模块,titechwire把计算好的转角指令(或者转矩)通过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

 

关键词: TITech Wire, TITech-Wire, TITechWire.

 

 

在此之前,我已经有了利用Visual C++和Matlib在Windows 9x下直接控制ISA Bus的DA卡和Counter卡进行第一代机器人控制的经验.现在高层程序不变,底层移植到Linux上,中层程序改用网络通讯实现.

 

购入的titechwire系统有如下部分

  1. titechwire 主板
  2. titechwire cpu板
  3. titechwire PCMCIA接口板
  4. titechwire DAC模块
  5. titechwire ADC-IO-Counter模块
  6. tietchwire 模块间通讯组件
  7. 各部分用电缆连线若干

 

1.1组装

  1. 把titechwire的cpu板,插入到主板上,cpu板和现在计算机里的ram条插法相似,有一个不左右对称的缺口,这样不用担心插反.
  2. 如果有CF卡(Compact Flash),插入到背面,CF卡可以是type1或者type2的,单要求是5V,不能是3.3V,根据说明书,CF卡被自动当成D盘处理
  3. 把PCMCIA接口板,插到主板上,我的情况是,购买时PCMCIA卡已经插到主板上.
  4. 把无线网卡插入到PCMCIA接口板上
  5. 把电源连线插好,具体可以参考购买时的附件光盘,电源电缆有2根红线,并联接+5V,有2根黑线,并联接GND,注意直流电源至少要提供2A的电流,如果后面的电机功率比较大,则至少要3A电流.
  6. 连接RS232接口.附件的电缆中有一RS232接口线,一边为标准Desub 9 (male).一边是4线插口,连接titechwire主板.主板上有2个RS232接口,我建议接1,因为系统配置中/etc/inittab仅仅打开了串口1(后面会详细介绍)

 

以上步骤完成后,基本系统如图Fig. 1所示

Fig. 1 CPU板,主板,PCMCIA板,无线网卡组成基本系统

 

1.2 Run it to Test

Titechwire设计时,没有保留显示器接口,和键盘接口.因此无法利用外界键盘和显示器的方法,像对付普通pc机那样对付它.

titechwire 在购买时,一般预装了操作系统(可能是Windows 9X/NT,Linux),我买的这款预安装了RTLinux(我个人认为应该是Linux,RTLinux不算真正的操作系统,它只不过是寄生在Linux上的一组模块)

可以通过普通计算机运行模拟终端软件,经过RS232来控制titechwire.

首先你需要一条RS232接口电缆,把titechwire上的dsub9和计算机的串口连接起来.这条电缆可以购买,也可以自制.9

然后你需要一台普通pc机.(可以是linux也可以是Windows).先说Windows.

日本学生喜欢用一个软件tero term,其实根本没有必要.Windows自己带了必备的软件HyperTermial中文叫超级终端.

个人认为titechwire的说明资料真TM烂.除了自带光盘外,什么说明书,user guide统统没有.我只好问发明titechwire的实验室,串口的波特率是多少,结果是

  1. 波特率19200bps,
  2. 数据位8,
  3. 奇偶校验无,
  4. 停止位1

现在打开超级终端.设置好串口波特率等通讯格式,然后打开titechwire的电源,(titechwire上面根本没有电源开关,你只好给直流电源加一个开关)

titechwire的4个指示灯(LED)一阵狂闪后.Linux boot起来了.超级终端上开始显示整屏幕的启动信息…..NN的Linux启动就是罗嗦.

然后提示:

wsap32FE login:

让你输入帐户名,密码.

查阅了光盘所有的资料,还有包装盒子,没有一处著名了Root的密码. 我faint的一塌糊涂……只好打电话问生产商,结果密码是

TW1x520

肚子里用各种词汇骂了一通之后,先动手改密码

passwd

然后把密码改成Quadlator2 (我机器人的名字)

 

好了,到此为止,至少说明titechwire系统正常能run了

 

注意:不要使用titech的串口2,titechwire根本就把串口2封了,观察/etc/inittab文件,会发现这样的内容

#Serial lines

s1:12345:respawn:/sbin/agetty 19200 ttyS0 vt100

# s1:12345:respawn:/sbin/agetty 19200 ttyS1 vt100

看到了吧,串口2给注释调了.多黑!

 

1.3配置无线网络

必须配置无线网络!,否则太不爽了.理由主要如下

l 你要用自己写的程序控制机器人,titechwire仅仅自带了一个基本的操作系统.连编译器都没有(gcc).所以你不要指望在titechwire上写程序,并且编译(编辑器只有vi,不是vim你估计受不了)

l 要把写好程序的程序编译复制到titechwire上,光靠串口终端肯定没戏.你当然可以用CF卡.可是如果titech安装在机器人的肚子里后,每次都打开肚子,是在麻烦.

l 如果有了无线网后,你只要在pc机上写好程序,在ftp过去(有人喜欢用rcp).如果想直接控制他,可以用ssh(或者telnet,烂烂的titechwire竟然保留了telnet)

 

1.3.1基本网络配置

titechwire能够认出绝大多数无线网卡,这个比较舒服,查看/etc/pcmica/network.opts发现好多无线网卡的模块都有了.因此只要你有无线AP就可以了.

运行ifconfig

系统列出了lo和eth0,说明无线网卡已经工作了.ip是

192.168.100.43

可是我的pc在192.168.0.x的网段内.跑去问管理员,在router上做了一个映射,ok.无线就通了.在自己的pc上ping 192.168.0.43.一切正常

 

顺便说一句,如果你的无线AP不带router功能.那么你只好手动设置固定ip了.方法如下:

运行netcfg,系统说没有,运行netconfig系统说没有,在烂titechwire上,这些方便的工具都没有,你只好手动改配置文件.

不要指望用ipconfig eth0 ipaddr的方法来改ip那只能改一时,下次就不灵了.

编辑/etc/rc.d/rc.inet1

里面可以改你的ip设置

IPADDR=”192.168.100.43”

NETMASK=”255.255.255.0”

NETWORK=”192.168.100.0”

BROADCAST=”192.168.100.255”

GATEWAY=”192.168.100.1”

就成了.当然还要禁止掉dchp

编辑/etc/pcmcia/network

可以看到这样的内容

elif is_true $DHCP; then后面是调用dhcpcd启动去获取ip的脚本,说明要把$DHCP变量设置成NO

继续查看/etc/pcmcia/network.opts

会发现这样的行.

DHCP=”y”

把这个改成n就能不启动DHCP

 

1.3.2改一个酷点的hostname

每次启动都是命名我的机器名字是wasp32FE,是在太土鳖了.决心改一个酷点的hostname

尝试了改了很多配置文件,都不成,最后发现在这里

/etc/pcmcia/network.opts

DHCP_HOSTNAME=xxxxxxxxxxxxxxxx

把他注释掉,改成我的机器人名字

DHCP_HOSTNAME=”quadlator”

 

到此位置,基本上已经把titechwire最基本的东西配置好了.现在你可以在网络上任何一台计算机控制他.(ssh或者telnet,ftp等等).

使用嵌入式RTLinux OS组建机器人控制系统总介绍




关键词: 使用     嵌入式     RTLinux     组建     机器人     控制系    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]