1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

A study on obstacle avoidance in autonomous robot system using robotics system toolbox

6 54 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 779,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

In this paper, a TurtleBot, which is an open-source personal research robot platform, will be introduced to create an obstacle avoiding system. To control the robot avoid obstacles, the coordinate data from the laser sensor will be received and calculated the distance from all obstacles to robot for finding the direction of the closest obstacle.

Trang 1

A STUDY ON OBSTACLE AVOIDANCE IN AUTONOMOUS ROBOT SYSTEM

USING ROBOTICS SYSTEM TOOLBOX

LUU HOANG MINH

Faculty of Electrical and Electronic Engineering, Vietnam Maritime University

Abstract

In robotics, obstacle avoidance is the task of satisfying some control objective subject to non-intersection or non-collision position constraints Normally obstacle avoidance is considered to be distinct from path planning in that one is usually implemented as a reactive control law while the other involves the pre-computation of an obstacle-free path which a controller will then guide a robot along In this paper, a TurtleBot, which is an open-source personal research robot platform, will be introduced to create an obstacle avoiding system

To control the robot avoid obstacles, the coordinate data from the laser sensor will be received and calculated the distance from all obstacles to robot for finding the direction of the closest obstacle Based on that, robot direction control command will be decided by using robotics system toolbox and MATLAB program

Keywords: TurtleBot, obstacle avoiding, robotics system toolbox, MATLAB

Tóm tắt

Trong robot học, tránh chướng ngại vật là nhiệm vụ phải thỏa mãn một số mục tiêu ràng buộc trong điều khiển như tránh những vị trí giao cắt với các đối tượng di động hoặc tránh

va chạm với đối tượng cố định Thông thường, phương pháp tránh chướng ngại vật khác biệt với phương pháp bám quỹ đạo, tránh chướng ngại vật thường được thực hiện dưới dạng một luật điều khiển các phản ứng của robot, trong khi phương pháp bám quỹ đạo liên quan đến việc tính toán trước đường đi của robot Trong bài báo này, tác giả sẽ giới thiệu một phương pháp điều khiển robot tự hành tránh chướng ngại vật sử dụng TurtleBot Để điều khiển robot tránh chướng ngại, dữ liệu tọa độ từ cảm biến laser của robot sẽ được sử dụng để tính khoảng cách từ tất cả các vật cản đến robot và xác định được hướng của vật cản gần nhất Dựa vào đó, một ứng dụng tự động điều khiển robot thay đổi hướng tránh vật cản được lập trình bằng cách sử dụng MATLAB và bộ chương trình robotics system toolbox của MATLAB

Từ khóa: TurtleBot, tránh chướng ngại vật, robotics system toolbox, MATLAB

1 Introduction

The ability to detect and avoid obstacles quickly is an important design requirement for all application of autonomous robot system In the past, a lot of solutions have been proposed for this problem But most of these solutions demand a heavy computational load, which makes them very difficult and cannot use to control a low-cost robot system

This paper presents the results of a research aimed to presented a new method for obstacle avoidance relying on low cost robot with laser sensors, and involving a reasonable level of calculations, so that it can be easily used in real time control applications The Cartesian coordinates signal from laser sensor will be used to calculate distance from robot to all obstacle, and the index number of this signal will decide the signal to control the robot

Besides this introduction, the structure of the present paper is as follows:

Section 2 introduces about TurtleBot and robot system configuration;

Section 3 contains a description of the obstacle avoidance solution to control robot by using signal from laser sensor;

Section 4 presents the experimental results used for evaluating the system

2 System configuration

TurtleBot is a low-cost, personal robot kit with open-source software With TurtleBot, we can build a robot that can drive around our house or our office, and have enough horsepower to create exciting applications [1]

Trang 2

The Figure 1 shows the TurtleBot of Willow

Garage TurtleBot is an open source hardware project

as described by the Open Source Hardware Statement

of Principles and Definition v1.0 Open source

hardware is hardware whose design is made publicly

available so that anyone can study, modify, distribute,

make, and sell the design or hardware based on that

design The hardware's source, the design from which

it is made, is available in the preferred format for

making modifications to it Ideally, open source

hardware uses readily-available components and

materials, standard processes, open infrastructure,

unrestricted content, and open-source design tools to

maximize the ability of individuals to make and use

hardware Open source hardware gives people the

freedom to control their technology while sharing

knowledge and encouraging commerce through the

open exchange of designs Hardware of TurtleBot is

shown as following table

Table 1 TurtleBot technical specifications

MOBILE BASE AND POWER BOARD Platform:

Battery:

User Power:

Yujin Kobuki

Up to 4400mAh Ni-lon 5V and 19V at 1A 12V at 1.5A 12V at 5A

TURTLEBOT HARDWARE Mechanical:

Electrical:

Mounting hardware TurtleBot structure Module Plate with 1 inch spacing hole pattern Modified Kinect cable for Kokuki access

ON-BOARD 3D SENSING Sensor:

Specs:

Range:

Gyro:

ASUS Xtion PRO 640x480 @ 30 frames/sec 0.8 - 3.5m

110 degrees/sec, Factory Calibrated

ON-BOARD NETBOOK Processors:

Memory:

HDD:

Connectivity:

Intel Core i3-4010U 4G

500GB USB, Wi-Fi, Ethernet,VGA, HDMI, SD card

The robotic software of TurtleBot includes

Ubuntu OS and Robotic operation system (ROS)

ROS is a collection of software

frameworks for robot software development

There are more than 2,000 packages, going from

diverse robotic platforms, and passing from

hardware drivers to many computer algorithms

ROS is a collection of tools, libraries, and

conventions that aim to simplify the task of

creating complex and robust robot behavior

across a wide variety of robotic platforms

Figure 2 showed the hardware diagram In

TurtleBot, the net-book is connected with Kobuki base and Kinect sensors by USB cables Kinect sensor contains a laser sensor, it measures the coordinates of obstacle When battery is low, robot can charge by direct power cable or through docking station

To control TurtleBot, a master computer (host) is used The host and TurtleBot must be connected to the same wireless local area network

There are two methods to control TurtleBot:

Figure 1 TurtleBot of Willow Garage

Figure 2 Hardware diagram

Trang 3

 The host is installed Ubuntu OS and ROS;

 The host uses Window OS and MATLAB program with Robotics system toolbox

In this research, the second method is used to build an application of obstacle avoiding system

3 Obstacle avoidance algorithm

This part introduces an obstacle avoidance algorithm to control TurtleBot The data from laser sensor [2÷4] is used to control robot for avoiding obstacles The coordinate data from the sensor will be received by net-book of TurtleBot After that, this data will be send to the host to calculate the distance of all obstacles to the robot and obtain the minimum distance and index of minimum and maximum distances If the minimum distance is bigger than a fix distance, which is called threshold distance, the robot will move forward If the minimum distance is smaller than threshold, the robot will turn with spin and back up slight velocities The process will be repeated until the robot has other order

Table 2 Laser sensor specification

Range 110 degrees with minimum distance is 50 cm

Data type Array (Cartesian coordinates of obstacle)

Size of data Over 500 scan points (depend on material of obstacle)

Table 2 and Figure 3 showed the laser sensor specification Because the laser sensor cannot detect a near distance object, about 20 cm from the robot to object, so in our program, the threshold distance is 30cm, it means that when the robot moves to obstacle with distance from laser sensor to obstacle is 30 cm, the robot will turn to other direction The distance from sensor to obstacle can be calculated as following:

where, x and y is Cartesian coordinates of obstacle

Besides that, the index of laser data increases from right position to left position, so the obstacle avoiding program has three cases as follows:

Case 1: The robot approaches to obstacle from the right side (Figure 4) In this case the minimum distance index is smaller than the maximum distance index; the robot will be controlled to turn to the left side

Figure 3 Laser data indexes Figure 4 The robot approaches to obstacle from right side

Case 2: The robot approaches to obstacle from the left side (Figure 5) In this case the minimum distance index is bigger than the maximum distance index; the robot will be controlled to turn to the right side

Case 3: The robot moves to the corner (Figure 6) In this case the maximum distance index is

in the middle range of data size; the robot will be controlled to turn to the left side with big angle

Figure 5 The robot approaches to obstacle

from left side

Figure 6 The robot moves to the corner

Trang 4

Anobstacle avoidance program was created with three cases above The Figure 7 shows the flowchart of obstacle avoidance program

Begin

Receive scan data

scan = receive(laser)

Receive scan data

scan = receive(laser)

Enter TurtleBot IP address Define parameter for obstacle avoiding (Angular velocity; forward velocity; Backward velocity; Distance threshold)

Enter TurtleBot IP address Define parameter for obstacle avoiding (Angular velocity; forward velocity; Backward velocity; Distance threshold)

Initialize ROS (Connect to the TurtleBot)

Initialize ROS (Connect to the TurtleBot)

Create a publisher for the robot's velocity and create a message for velocity

robot = rospublisher('/mobile_base/commands/velocity');

velmsg = rosmessage(robot);

Create a publisher for the robot's velocity and create a message for velocity

robot = rospublisher('/mobile_base/commands/velocity');

velmsg = rosmessage(robot);

Subscribe to the topic /scan

laser = rossubscriber('/scan');

Subscribe to the topic /scan

laser = rossubscriber('/scan');

Receive coordinates from all obstacle

data = readCartesian(scan)

Receive coordinates from all obstacle

data = readCartesian(scan)

Compute distances from Robot to all obstacles (dist) Compute size of distances data (n) Compute distance of the closest (MinDist) and farest

(MaxDist) obstacles and data indexes (Minindex, Maxindex) of thore distances

Compute distances from Robot to all obstacles (dist) Compute size of distances data (n) Compute distance of the closest (MinDist) and farest

(MaxDist) obstacles and data indexes (Minindex, Maxindex) of thore distances

Closest distance < Distance threshold

Control robot continue on forward path with forward velocity

Control robot continue on forward path with forward velocity

Stop?

End

1

0

1

MaxIndex<(n2/-50) OR MaxIndex>(n/2+50)

(Not move to corner)

MaxIndex<(n2/-50) OR MaxIndex>(n/2+50)

(Not move to corner)

1

MaxIndex>MinIndex (Robot moves to obst from right side)

MaxIndex>MinIndex (Robot moves to obst from right side)

Control robot back up slightly and left spin with Angular velocity

Control robot back up slightly and left spin with Angular velocity

1

Control robot back up slightly and right spin with negative Angular velocity

Control robot back up slightly and right spin with negative Angular velocity

0

Control robot left spin with 4 times of Angular velocity

Control robot left spin with 4 times of Angular velocity 0

0

Figure 7 The flowchart of obstacle avoidance algorithm

The control signal is created by using MATLAB program and tranfer to robot base on wifi network After communication between robot and the host succeeded, the TurtleBot can be controlled by publishing a message For example, the linear velocity is controlled by typing following commands [5]:

Trang 5

robot = rospublisher('/mobile_base/commands/velocity')

velmsg = rosmessage(robot)

velmsg.Linear.X = 0.1; % meters per second

send(robot,velmsg);

4 Experimental result

(a) The robot moves to the obstacle (b) The robot turn to other direction

(c) Image from robot’s camera

Figure 9 TurtleBot avoids the wall

Figure 8 shows the way the robot escapes the corner When the distance between laser sensor and the door is 30 cm and the maximum distance index is in the middle range of data index, the robot will automatic change its direction following the red line

The second obstacle is the wall The robot also avoids the wall perfect with the direction is the red line in Figure 9

(a) The robot moves to corner (b) The robot finds the way to escape

(c) Image from robot’s camera

Figure 8.TurtleBot escapes the corner

Trang 6

5 Conclusion

This paper presented the obstacle avoidance method using signal of laser sensor From above results these following conclusion are given:

(1) The method demands very low computational load, and can be implemented on low-cost autonomous robot and can be easily adapted for other sensors, like sonar sensors, infrared sensors; (2) The robot could avoid any kind of static obstacles, and even some moving obstacles with low velocity;

(3) The robot performs very well on narrow zone (Figure 8);

(4) The method can be combined with some control theory such as fuzzy logic control or neural networks, etc., to control robot more smoothly and exactly

REFERENCES

[1] Willow Garage, “TurtleBot”, URL: http://turtlebot.com

[2] MediaWiki, "OpenKinect", URL: http://www.openkinect.org, 2013

[3] Ayrton Oliver, Steven Kang, Burkhard C Wünsche, Bruce MacDonald, "Using the Kinect as a Navigation Sensor for Mobile Robotics", IVCNZ ’12, Dunedin, New Zealand, November 2012 [4] K Khoshelham “Accuracy Analysis of Kinect Depth Data” In ISPRS Workshop Laser Scanning, volume 38, 2011

[5] Luu Hoang-minh, Park Young_san “A study on TurtleBot Controll using Matlab Program”, The

Korean Society of Marine Engineering, 10/2015

Received: 10 January 2018

Revised: 22 January 2018

Accepted: 28 January 2018

Ngày đăng: 10/02/2020, 03:01

TỪ KHÓA LIÊN QUAN