AIBOT 2015 Team Description Paper
NiuXuesong, Jin Qianlong, Han Shuning, Li Fengting, Li Jikun, Li Xiaobin, Zhang Wenkai
Robot Laboratory
http://www.isi-lab.com.cn/a/Project/20150217/92.html
Abstract AIBOT Team participates "RoboCup 2015 RoboCup @ Home League", in July 2015 held in Hefei, China. This article describes AIBOT and the work which has been produced. Our team has two kinds of robot : Turtlebot and NAO. Our research primarily focuses on Turtlebot. The introduction of hardware, software platform, algorithms, re-usable, practical application of the robot are as followed.
1 The Hardware of the Robot
Placeholder
1.1 Turtlebot Robot
The hardware consists of the Kobuki base, Kinect for xbox360, the compatible ROS Netbook and a mechanical arm. (See Figure 1)
The Kobuki base, consisting of sensors,a motor, and power supply, can set up the platform according tothe needs and can be implemented.
Kinect for xbox360 , using IR depth-finding technology, a built-in RGB camera, an infrared (IR) launcher and a microphone array, sensors the position, movement and sound of a person. Details: (1) IR camera: 512 x 484 ,30 Hz (2)FOV: 70 x 60 (3) Recognisable scope of the depth: 0.5-4.5 meters (4) 1080p RGB camera: 30 Hz (under weak light: 15 Hz) (5)Initiative infrared ray: 512x484, 30 Hz.
ROS and Netbook, which are compatible on Turtlebot enables Turtlebot Robot to proceed control operation and algorithms. We have assembled mechanical arms, using AX-12 Dynamixel digital steering engine, with six degrees of freedom, so that flexible control can be achieved.
1.2 NAO
NAO is a humanoid robot which has 25 degrees of freedom .NAO has: CPU: x86 AMD Geode with 500 MHz, Memory: 256 MB SDRAM and 1 Gb Flash memory, WiFi (802.11g) and Ethernet, Two 640x480 camera with up to 30 frames per second (one pointing at the feet, and one point forward), An Inertial measurement unit (2 gyro meters and 3 accelerometers), 2 bumper sensors, 2 ultrasonic distance sensors, Touch sensors, Four directional microphones.(See Figure 2)
2 The Algorithms ofthe Robots in the Operating Platform
We introduce the algorithm of Turtlebot in the platform of ROS system. Nao is based on the C programming language to implement operating control. Details won't be described in this paper.
2.1 The Human Detection and Gesture Recognition of Turtlebot
When the Turtlebot Robot detects humans, the Kinect applies skeleton tracking technology by processing depth and RGB information. The skeleton tracking technology creates coordinates by processing in- depth data. The skeleton tracking technology can detect every part human body, for example, which part the hand, the head, or the body is. The technology can detectits position as well.
Turtlebot gesture recognition, using the information of skeleton obtained from Kinect, to detect the position of the hand. Turtlebot is also able to recognise hand signals by the changing of the depth value. OpenNI can obtain in-depth information from Kinect. Depth information is of great use to gesture recognition so we use OpenNI to make some simple gesture recognition. When the target swings the arm in front of the robot, the robot proceeds accordingly by analysing IR images collected from Kinect, to detect the movement of the target. Therefore, it obtains the details of the position of the target, and then traces the target.
2.2 Interaction Between Human and Robot
We use voice packet pi_speech_tutorial and ros-pocketsphinx-speech-recognition-tutorial of the ROS system to enable the robot to identify the received words and sentences. The robot is able to analyse the sentence structure, obtain key words and accomplish the given movement. At the same time, the robot is able to interact with the target. During the conversation, it is able to communicate with humans by uttering the preloaded complete sentences.
2.3 Localisation and Navigation
The robot is capable of obtaining in- depth information by employing IR sensor (Kinect) in the unfamiliar environment. First, it sets up a map model. Then, it navigates and locates itself according to the map. This is a practical application of the famous OpenSlam packet implemented under the framework of ROS. In the construction of the graph, we applies the program package: (1)move_base (package): According to the reference, we design a path plan to order the robot to reach a specified location; (2)gmapping package: According to the data of laser (or the data of laser emulated by the depth data), establish a map; (3)AMCL packages: Locate according to the established map We establish the map by utilising gmapping and the above packages. We locate and navigate by referring to the established map.
2.4 The Control of Mechanical Arms
The mechanical arm of the Turtlebot Robot is constituted of five steering engines of AX-12A type, which have 6 degrees of freedom. The control panel of the mechanical arm is an ArbotiX-M. When we controlthe movement of the robot, with the help of the mechanical arm navigation package of ROS - arm_navigation, we combine the data collected from Kinect and the location analysed by the robot, to control the mechanical arm. One of the difficulties lies in how to manipulate safe movement and realise accuracy.
3 The Reusability for Other Research Teams
Our system has a strong transportability. It is very easy for other groups to apply this system to their hardware and software, which won't interfere with its normal function.
Our system is implemented on the basis of ROS system and its provided tools and libraries. As we all know, the robot operating system (ROS) can provide a specified and flexible framework for writing software for robots. This is a collection of tools, libraries, and conventions. It aims at simplifying tasks for all kinds of robots on the platform in order to conduct complex and difficult movements of robots. The primary goal of the design of ROS is to increase the reusability of the code in the field of robots. The Nodes of ROS enables performable documents to be separately designed and loosely coupled when proceeding. These processes can be encapsulated into data packages and stacks in order to share and distribute.
ROS supports many different languages, including C++, Python, Octave and LISP, and contains multiple connections in other languages. The advantage of using it to establish a system lies in the features of its modules. The code of every module can be compiled separately. Furthermore, the compiling tool - CMake, makes things easier. ROS basically encapsulates complex codes in the library. It creates some small applications to display the functions of the library, which allows simple codes to transfer and reuse. As a new kind of advantage, unit tests become easy when the code in the library disperses. A single unit can test many features of the library.
To sum up, our system is developed on the basis ofROS so it shares the mutual
4 The Application of Robots in Practice
This robot is designed for the elderly, children, the handicapped and patients with special needs. Therefore, the demand mainly comes from hospitals and families. However, who would refuse to have robots and to save a lot of time to live a convenient and efficient life? Thus we can say that there isno limit to its application as it can be maximised.
So why use robots? Comparing with human workforce, robots has many outstanding advantages. First, they can function beyond the physical limit of human body, and can carry and bear the weight of what human beings cannot bear. Second, robots does not need a rest. It only needs electricity to function. Robots do not need vacations. They won't be tired of repeating the work for tens of thousands of times. Finally, no matter what commands are given, they would not complain at all. Thus robots can accomplish a lot of work.
Imagine this: At home, people can talk with robots and make them do some chores, such as throwing the rubbish, closing the door, turning on the TV, cleaning, watering, and etc. The voice recognition technology allows a robot to understand his work. Moreover, the obstacle avoidance technology and navigation technology allow the robot to get to the right place. In such way, can the robot quickly and accurately accomplish his given task. When people want to go out, for safety and convenience, a robot can be a very good company. People can walk freely at usual speed, without worrying about whether the robot can keep up. They do not need to worry that the robot may follow a wrong master either. When something unusual happens, for example, people faint, get injured and so on, robots will take emergent action to deal with the different circumstances and notice the relevant people.
In addition, the robot can also be used in many other situations: All the sanitation and guard work can be done by robots. They won't get tired and they won't be lazy. At hospitals, robots can complete the work without any mistakes, which provides the safest and most careful medical service for patients. When people go out, bags can be borne by robots, which saves time and energy. In factories, robots can help with dramatically reducing production cost and bringing huge profit.
In summary, this robot can be used in a wide range of applications, including providing service, security work, logistics, production, and so on.
References
- Microsoft.Kinect-xbox.com-xbox.com. http://www.xbox.com/en-US/Kinect,11 2010
- Munaro M., Basso F.and Menegatti E. "Tracking people within groups with RGB-D data" In Proceedings of the International Conference on Intelligent Robots and Systems(IROS), Vilamoura(Portugal) Pages 2101-2107,2012
- ROS.Turtlebot, Turtorials.visit Website: http://wiki.ros.org/ROS/Tutorials; http://wiki.ros.org/turtlebot/Tutorials/
- ARM ON TURTLEBOT.visit Website http://makezine.com/projects/build-an-arm-for-your-turtlebot/