Tag Archives: Robots

Dyson Released its New Vacuum Cleaner Robot: 360 Eye

This state-of-the-art vacuum cleaner robot, 360 Eye, was released by Dyson few months ago. From the official website, it can be seen that the robot uses V-SLAM technique which dramatically increases the computational overhead. To fit the computational load, I think the processor of this robot should be at least a Cortex A8 running at 1GHz or an ARM-DSP SoC, like TI DaVinci DM64xx. I think the innovative part which makes this robot unique, is the use of tank-like structure and a 360 degrees camera for video navigation:

dyson
Figure. 360 Eye Vacuum Robot by Dyson (picture from IEEE Spectrum)

The tank structure makes this robot robust to small scale obstacles such as your carpet on the floor and small rising edges. For the idea of using a 360 degrees camera, well, I have to say it is a genius concept. A full view camera promises more contrast features and corners for the robot to navigate while it also reduce the possibility that the view of the robot is blocked by large obstacles like a human.

This is no doubt that this is the most advanced vacuum cleaner robot so far and only the newest technology of micro-processors can ensure this aggressive design. The only problem is, the cost of this robot is also considerable, thus its selling price is more than 900 dollars.

Last thing that I am wondering about is, what if this robot encounters a mirror?

( For Chinese users please visit Youku to see the video: http://v.youku.com/v_show/id_XNzc0MTMzNTA0.html )

AR.Drone Position Servoing and Visual Tracking

A demonstration of my Master’s Thesis: Visual-Based Localization and Tracking of a UGV with a Quadcopter. In this project, a visual tracking framework is designed to track the UGV with an AR.Drone quadcopter from Parrot. The system utilizes a centralized control by a ground station which is running ROS and Ubuntu 12.04 LTS.

The first two experiments were taken with the support of a global vision system which was designed using a low cost web camera. While in the last experiment, the quadcopter simply uses IMU data for navigation. The image was captured from the bottom camera of the AR.Drone and processed with OpenCV. Four PID controllers were designed to control the motion of the quadcopter to make it hold at a position or track a trajectory.

The next step is to use such a robot system for factory and infrastructure inspection. But since I have to return my quadcopter to the department, it is really problematic for me to imply this idea. Hope I can find the chance to get another AR.Drone soon.

(国内用户请访问优酷:http://v.youku.com/v_show/id_XNzczOTg0MDY0.html

机器人仿真软件V-REP

最近有幸接触到了一款非常强大的机器人动态仿真软件:V-REP。V-REP有非常完善的物理仿真引擎,支持移动机器人、飞行机器人、人型机器人、多足机器人以及多轴机械手的运动学仿真。

vrep

V-REP的仿真程度非常高,不仅可以仿真机器人的本体与多种传感器,还支持障碍物以及地型(空中,地面,水底)的仿真。V-REP支持使用C/C++,Python,JAVA,Lua,Matlab编写脚本,十分适合于多机器人的仿真。

官方网站:

http://www.coppeliarobotics.com/

官方演示视频:

第三届谢菲尔德大学搜救机器人比赛

这个月月初参加了我们学校的搜救机器人大赛:谢菲尔德自动工程系搜救机器人比赛 (ACSE Robotic Search and Rescue Competition) 。该比赛的目标是设计一个移动机器人,通过远程视频控制的方法让其通过一个模拟的搜救环境,并在最短时间内到达终点。该场地模拟了很多搜救过程中可能出现的障碍:重型物体、斜坡、坑洼路面、吊桥、狭窄的通道等。图为当天的比赛场地:

DSC01711
Figure 1.  比赛当天场地实景

这个比赛的难点在于机器人的结构必须能应对复杂的场地,并且参赛队伍在比赛过程中无法直接看见机器人所在环境,只能通过远程视频的方式对机器人进行无线控制。这次我采用的架构为Arduino兼容的大谷Wild Thumper机器人控制板 + 树莓派:由Wild Thumper控制板进行电机控制与传感器采集,并通过树莓派实现远程控制与视频传输,两个系统之间通过TTL串口进行通信。PC端使用Processing对机器人实现控制,并展示当前的运行参数与传感器数据。

DSC01774
Figure 2. Wild Thumper(左) + 树莓派(右)的配置

DSC01783
Figure 3. 机器人实体(正面)

DSC01785
Figure 4. 机器人实体(侧面)

机器人所用的摄像头为树莓派官方最新发布的摄像头模块RaspiCam,该模块使用OV5647芯片,图像像素为300万,视频支持1080P@30fps。 摄像头模块通过软排线与树莓派的CSi接口相连接,并通过云台增加了倾斜方向的自由度。视频采集与传输使用Raspivid + Netcat + mplayer,为了提高传输速率使用了UDP协议,并且将采集像素下降到600 * 480。摄像头通过热熔胶固定在舵机云台上,图为摄像头的安装位置:

DSC01775Figure 5. 机器人摄像头特写

DSC01700 Figure 6. 无线视频传输调试

无标题2_副本
Figure 7. 比赛现场 之1

无标题1_副本
Figure 8. 比赛现场 之2

机器人硬件配置清单

核心主控 树莓派 Model B
辅助控制 Wild Thumper (Arduino兼容)
底盘 大谷4WD Wild Thumper Chasis
摄像头 RaspiCam + 单轴云台
传感器 3轴加速度/陀螺仪 + 3轴磁场传感器
电源供电 20C/5000mAh 2s锂聚合物电池+ USB备份电源5V 6000mAh

机器人电机驱动器YFWind

YFWind是专门用于中小型移动机器人的电机驱动模块,该模块支持双路有刷电机驱动,可提供5A持续电流,6A瞬间电流,电路留有YFSMega专用接口,也可使用其它控制器驱动。模块留有电源指示灯、正反转工作指示灯,并具有反接、过热关断、输出短路等保护。

模块的主要特性如下所示:

控制对象

5 – 12V 直流电机

负载电流

5A持续,6A峰值

通道数量

两路

控制方式

GPIO

调速方式

PWM

指示LED

电源、正转、反转

保    护

反接保护、过热关断保护、输出短路保护

接  口

单排插针*2,或10口输出(与YFSMega兼容)

机器人控制器YFSMega128

YFSMega128是我在2010年设计的一款机器人控制器,该控制器使用Atmega128作为主控芯片,具有丰富的外设资源,包括:8路数字输入/输出,8路模拟量输入,6路PWM输出,2路转速传感器输入,1个LCD显示,4个用户按键,1个蜂鸣器,1个IO并口与1个YFWind电机接口。

该控制器的参数如下所示:

Application

机器人竞赛、机器人DIY、AVR学习、毕业设计

MCU

Atmega128

FLASH

128KB

RAM

4KB

EEPROM

4KB

Digital

8路带指示灯三线制I/O,8路并口I/O

Analog

8路12位ADC(可接三线制传感器)

PWM

6路,其中2路与电机复用

LCD

Nokia5110

UART

UART0(TTL,232),UART1(TTL,232)

SPI

1路

I2C

1路

Interface

电机专用接口(与YFWind系列兼容),另含2路转速传感器接口

Power Input

电池或外接电源适配器,6V – 12.6V

Power Supply

舵机总计3A,传感器总计1A

Programming

通用AVR-ISP编程口

MicroMouse V2电机的选择

第一版本的MM(MicroMouse)使用的是带减速箱的N20电机。这种电机非常小巧,比130电机的体积还要小,空载转速大概50转/分钟,适合小型机器人。电机店和淘宝上很容易买到,价格大约在15-25元之间:

图1  N20直流电机

新版本的MM首先希望在电机上进行改进,备选的几个方案有:

1) 直流步进电机;

2) 直流无刷电机;

3) 直流空心杯电机。

步进电机的好处是易于控制,且不需要额外的转速反馈。缺点是速度较慢,且一旦打滑就会造成累积误差。2010年参加全国电脑鼠大赛时,赞助商周立功公司提供的电脑鼠就是使用步进电机的。我觉得步进电机是一个好的入门级方案,可以实现,但无法出色。

之后考虑过使用无刷电机,无刷电机没有换向接触损耗、噪音低、寿命长、稳定性好,广泛用于光盘驱动、电动车中。无刷电机的缺点就是要使用专门的驱动电路,之前和朋友做毕业设计时接触过无刷驱动器的设计,觉得还是挺麻烦的。再者就是控制难度比较大,每路需要六个Mos管、三个驱动芯片和三个PWM。虽然可以使用成品电调,可是势必会增加重量,对电脑鼠的速度性能不利。

现在我有了更好的选择:直流空心杯电机。空心杯电机使用无铁芯转子,具有很小的转动惯量,这一点对于需要快速起停、运动灵活的电脑鼠来说非常适合。参照以往电脑鼠国际大赛的设计,一般使用Faulhaber1717 (冯哈伯1717)电机。1717后缀表示直径17mm,机身长度17mm。以下是冯哈伯电机的介绍:

“FAULHABER直流电机采用斜绕方式的空心杯转子,没有齿糟效应以及非常轻的重量。这使得转子转动惯量极小。因而FAULHABER电机动态性能上卓越超群。对小动率产品,FAULHABER电机采用精密合金换向器,因其接触电阻低而使性能优良。”(引自互联网)

在机器人设计中经常可见Faulhaber电机,之前使用博创的机器人平台好像也是使用的Faulhaber电机。尤其是其德国的血统,让人对之的性能充满信心。

      图2  Faulhaber电机 

可惜的是,我在网上并没有找到本地销售Faulhaber1717这款电机的,只找到一家国外的网站,报价大约是500元一个,那是相当贵啊。不过我倒是找到有售Faulhaber2224电机的,价格也很便宜只有几十块钱。虽然体积大了一点(r=22mm l=24mm),但是我想对于我这种业余爱好者来说应该不是很大的问题。

四轴飞行器室内3D SLAM