Tạo launch file

Một phần của tài liệu nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên (Trang 92)

2. 3 Phương pháp điều khiển tránh vật cản

3.3.6 Tạo launch file

Các bước để tạo một launch file

Một cách để thực thi một chương trình trong ROS, nó khởi chạy một nút tại một thời điểm. ROS có một công cụ gọi là roslaunch cho phép bạn khởi chạy nhiều nút cùng một lúc.

Mở terminal và đi đến gói mà muốn chạy. Ví dụ đi đến gói hello_word: $ cd catkin_ws/src/hello_world

Tạo một folder tên launch: $ mkdir launch

Tạo launch file bên trong launch folder $ cd launch

$ gedit

Ghi mã vào trong launch file và lưu. Dạng file <name>.launch

Ở đây sẽ lưu là talker_listener.launch và được lưu tại

catkin_ws/src/hello_world/launch

Tệp này sẽ khởi chạy các tệp thực thi C++ <launch>

<node name="listener_node" pkg="hello_world" type="listener" output="screen"/>

<node name="talker_node" pkg="hello_world" type="talker" output="screen"/>

</launch>

Ví dụ muốn chạy tệp có tên là example.py thì ta nhập như sau

<node name="listener_node" pkg="hello_world" type="example.py" output="screen"></node>

Để đảm bảo ROS có thể tìm thấy code. Cần thay đổi quyền của tệp lệnh Python. Ta làm như sau:

$ chmod + x example.py

Thay đổi quyền của tệp khởi chạy. Mở một terminal mới và nhập:

$ cd catkin_ws/src/hello_world/launch $ sudo chmod +x talker_listener.launch Chạy launch file

$ roslaunch hello_world talker_listener.launch

**** Đối với ROSLAUNCH thì sẽ tự khởi động ROSCORE không như ROSRUN nên không cần khởi chạy ROSCORE****

Launch file được tạo

<!-- Launch file for the rrt-detector and the assigner --> <launch>

<node pkg="rosserial_arduino" type="serial_node.py" name="serial_arduino ">

<param name="port" value="/dev/ttyACM0" /> </node>

<launch>

<arg name="eta" value="1.0"/> <arg name="Geta" value="15.0"/>

<node pkg="rrt_exploration" type="global_rrt_detector" name=" global _detector" output="screen">

<param name="eta" value="$(arg Geta)"/>

<param name="map_topic" value="/robot_1/map"/> </node>

<node pkg="rrt_exploration" type="local_rrt_detector" name= "local_detecto r" output="screen">

<param name="eta" value="$(arg eta)"/>

<param name="map_topic" value="/robot_1/map"/>

<param name="robot_frame" value="/robot_1/base_link"/> </node>

<node pkg="rrt_exploration" type="filter.py" name="filter" output ="screen ">

<param name="map_topic" value="/robot_1/map"/> <param name="info_radius" value="1"/>

<param name="goals_topic" value="/detected_points"/> <param name="namespace" value="/robot_"/>

<param name="n_robots" value="1"/> </node>

<node pkg="rrt_exploration" type="assigner.py" name="assigner" output= "screen">

</node>

CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ XUẤT 4.1 Kết luận

Trong đề tài này, chúng em đã thành công trong việc khởi tạo robot vi sai đơn giản và đưa lên trình mô phỏng và thực hiện chạy điều hướng tự động né vật cản. Qua đó, chúng em cũng hiểu được cơ bản về những gì liên quan đến đề tài này như:

- Hệ điều hành ROS, cách cài đặt phần mềm, ứng dụng có liên quan,… - Phân tích được mô hình động học của robot dạng vi sai

- Quy trình cài đặt và sử dụng các package trên ROS - Mô phỏng và sử dụng các package trên gazebo và rviz - Can thiệp và hiểu được cơ bản về thuật toán RRT

- Tiến hành điều hướng robot tự động né vật cản tức thì trên mô phỏng - Khảo sát các thông số liên quan ảnh hưởng đến thuật toán

- Quy trình cài đặt, kết nối giữa ros và robot - Lấy dữ liệu dạng bản đồ 2D từ RPLidar

- Giải quyết một số lỗi cơ bản khi sử dụng và cài đặt các gói trên ROS

- Nghiên cứu và thiết kế được mô hình, xuất bản vẽ lắp và bản vẽ gia công cơ bản của robot

4.2 Hạn chế của đề tài

Trong quá trình thực hiện đồ án tốt nghiệp, nhóm đồ án đã cố gắng hoàn thiện việc mô phỏng và sử dụng các gói, kết nối giữa ros và robot, thiết kế chế tạo mô hình động học robot vi sai dạng 2 bánh dẫn động 2 bánh tự lựa một cách tốt nhất có thể. Tuy nhiên trong thời gian ngắn, việc mô phỏng, kết nối, thiết kế, chế tạo , gia công gặp nhiều khó khăn như:

- Chưa sử dụng thành thạo và hiểu rõ hết các quy trình thiết kế, chế tạo cần thiết trên ros

- Việc sử dụng các package chỉ mới sử dụng được trên mô phỏng và chưa áp dụng được cho robot thực

4.3 Hướng phát triển của đề tài

Tuy gặp nhiều hạn chế trong quá trình làm nhưng để có thể phát triển đề tài và đạt được thành công trong của đồ án ở mức độ cao hơn, nhóm đồ án dự kiến hướng phát triển như sau:

- Nghiên cứ và thực hiện việc kết nối và sử dụng các package trên mô hình robot thực.

- Can thiệp sâu hơn và cải tiến thuật toán sử dụng hiện tại. - Nghiên cứu sử dụng nhiều thuật toán khác nhau cho robot.

- Nghiên cứu về phương pháp định vị nhằm đảm báo tính ổn định của robot trong việc xác định vị trí của robot trong bản đồ 2D trong nhiều loại robot và môi trường khác nhau.

- Nghiên cứu về phương pháp điều hướng, tạo hiệu quả tốt hơn trong quá trình di chuyển của robot trong môi trường.

TÀI LIỆU THAM KHẢO

[1] R. Barber, J. Crespo, C. Gomez, A. C. Hernamdez, M. Galli (2018), “Mobile Robot Navigation in Indoor Environments: Geometric, Topological, and Semantic Navigation”, London, U.K.: IntechOpen, pp. 1–25.

[2] A. Koubaa, H. Bennaceur, I. Chaari, S. Trigui, A. Ammar, M.-F. Sriti, M. M. Alajlan, O. Cheikhrouhou, Y. Javed (2018), ‘‘Introduction to mobile robot path planning’’, Robot Path Planning and Cooperation, Studies in Computational Intelligence. Cham, Switzerland: Springer, pp. 3–12.

[3] J.-H. Park, U.-Y. Huh (2016), ‘‘Path planning for autonomous mobile robot based on safe space’’, J. Electr. Eng. Technol., Vol. 11, pp. 1441–1448.

[4] D. Xin, C. Hua-Hua, G. Wei-Kang (2005), ‘‘Neural network and genetic algorithm based global path planning in a static environment’’, J. Zhejiang Univ.-Sci. A, Vol. 6, pp. 549–554.

[5] V. Aenugu, P.-Y. Woo (2012), ‘‘Mobile robot path planning with randomly moving obstacles and goal’’, Int. J. Intell. Syst. Appl., Vol. 4, pp. 1–15.

[6] Siegwart, R., Nourbakhsh, I.R., Scaramuzza, D. (2011), “Introduction to Autonomous Mobile Robots”, PHI Learning Private Limited, New Delhi.

[7] Yuan, Y., Su, W., Li, Z., Shi, G. (2019), “Brain-computer interface-based stochastic navigation and control of a semiautonomous mobile robot in indoor environments”, IEEE Trans. Cogn. Dev. Syst., Vol. 11 (1), pp. 129–141.

[8] Song, K.-T., Chiu, Y.-H., Kang, L.-R., Song, S.-H., Yang, C.-A., Lu, P.-C., Ou, S.-Q. (2018), “Navigation control design of a mobile robot by integrating obstacle avoidance and LiDAR SLAM”, IEEE International Conference on Systems, Man, and Cybernetics (SMC), Miyazaki, Japan, pp. 1833–1838.

[9] Cheein, F.A.A., Toibero, J.M., Sciascio, F.di., Carelli, R., Pereira, F.L. (2010),

“Monte Carlo uncertainty maps-based for mobile robot autonomous SLAM navigation”, IEEE International Conference on Industrial Technology, Vina del Mar, pp. 1433–1438.

[10] R. N. Wiki, "Robot Operating System Wiki," Navigation, [Online]. Available:

http://wiki.ros.org/navigation/Tutorials/RobotSetup

[11] W. C. ROS, "Robot Operating System Wiki," Costmap 2D, [Online]. Available:

Một phần của tài liệu nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên (Trang 92)