Paano Gumawa at Mag-ayos ng Workspace sa ROS1 at ROS2 (Part 1&2) – Filipino ROS Tutorial

Written by Christian Anabeza

20/02/2024

This tutorial is created by Rosbotics Ambassador 019 Christian

Rosbotics Ambassador Program https://www.theconstruct.ai/rosbotics-ambassador/)

Part 1:

Unit 1 Introduksyon

Mabuhay!

Sa maikling ROSject na ito, ating tatalakayin ang isa sa mga pinakamahalagang aspeto na kailangan nating matutunan at maging bihasa bilang mga nagnanais na maging robotics developer na siyang gagamit ng ROS (Robot Operating System) para sa ating mga proyekto — at yan ay ang paggawa ang pag-aayos ng ating mga workspaces!

Ang pangunahing paksa sa kursong ito ay ang paggawa ng mga workspace at maging mga diskurso sa mga best practices sa pag-oorganisa ng mga direktori upang siguraduhin na madali at mabilis nating mahanap, magagamit, at mabubuksan ang ating mga kinakailangang programa o dokumento para sa ating mga susunod na proyektong pang-robotics!

Mayroong dalawang bahagi ang kursong ito — ang una ay siyang tatalakay sa paggawa ng workspace gamit ang ROS1 Noetic Ninjemys at ang ikalawa naman ay siyang gumagamit ng ROS2 Humble Hawksbill.

ROSject sa Paggawa ng Workspace sa ROS2 Humble: Paano Gumawa at Mag-ayos ng Workspace sa ROS1 at ROS2 – Part 2

1.1 Mga Kinakailangan sa Kurso

Para sa kursong ito, inaasahang may payak na kaalaman na ang user sa paggamit ng mga sistemang tumatakbo sa Ubuntu at maging ang pagkumpuni gamit ang Linux Terminal. Kung nais niyong matutunan pa lalo ang mga paksang patungkol sa pangunahing kaalmaan hinggil sa pag-proprogram gamit ang ROS, mangyaring pumunta sa website ng The Construct ukol sa kanilang kursong Code Foundation for ROS Learning Path! Ang mga maiikling kursong ito’y siguradong maghahanda sa inyo para inyong mahasa ang inyong kaalaman hinggil sa mga kinakailangang programming languages na ginagamit sa ROS.

Mga Modules na Nilalaman ng Code Foundation for ROS Learning Path:

  • Linux for Robotics
  • Python 3 for Robotics
  • Examination

Para sa mga nagnanais na gamitin ang kanilang sariling mga kompyueter, para sa parehong kurso ay susundan natin ang OS-to_Distribution compatiblities na galing mula sa opsiyal na dokumentasyon ng ros.org para sa parehong ROS1 Noetic Ninjemys at ROS2 Humble Hawksbill

  • ROS1 Noetic: PC o Virtual Machine na tumatakbo sa Ubuntu 20.04 LTS
  • ROS2 Noetic: PC o Virtual Machine na tumatakbo sa 22.04 LTS

1.2 ROS Workspaces

Sa bawat ROS project, lahat ng ito ay nagsisimula sa tinatwag na Workspace. Ang folder na ito ang siyang maglalaman ng halos lahat na kakailanganin ng iyong robot para ito ay tumakbo — maging mga packages, scripts, at sa pagdalob sa mga partikular ng ROS, ng iyong mga nodes at topics na siyang gagamitin sa kabuuan ng operasyon at pagdisenyo ng robot. Sa ganitong palagay ay tila napakahalagang matutunan natin ang tamang pamamaraan ng paggawa at pag-organisa ng mga nilalaman ng mga ito sapagkat dahil sa natural na pagiging komplikado ng mga ganitong sistema, maaring sa pagtagal ay tila mahirapan tayo dahil sa dami ng mga kumpuni na ating nagawa para sa naturang robot. At sa kursong ito ay siyang mismo ang ating tatalakayin – ang pagsigurado ng kaayusan at kalinisan ng ating mga folder at directory sa kabuuan ng ating development!

Halina’t simulan na natin!

1.3 1.3 Paglikha ng Iyong Unang Workspace sa ROS1 

Masasabing hindi komplikado ang paggawa ng workspace sa ROS2. Sa industriya, sinusunod natin ang format ng pagpapangalan sa ating mga folder na naaayon sa syntax na ‘projectname_ws’. Para tayo ay magsimula, una muna tayong pupunta sa root directory at gagawa ng halimbawang workspace na ating papangalanang ‘robot1_ws’

Kung inyong mapapapansin, opo, ang isang workspace ay siyang kumakatawan sa isang buong robot. Sa kabuuan ng iyong development, ang folder na ito ang maglalaman ng lahat ng parte and kumpuni ng iyong proyekto.

# Patakbuhin sa Terminal 1

# Pagpunta sa Root Directory
cd ~

# Paglikha ng Workspace
mkdir robot1_ws

Matapos patakbuhin ang mga code na ito, iyong makikita ang iyong panibagong folder na nakalagay na sa iyong root folder:

Mula sa kaninang diskurso, kakailanganin nating pagdaluban ng diwa ang isang mahalagng tanong: Ano kaya ang magiging kalabasan ng ating directory matapos ang 100 mga workspace?

Tunay ngang maari itong magmukhang magulo lalo na at sa root folder natin silang lahat nilalagay. Upang mas mainam ang ating pag-oorganisa sa mga ito ay mangyaring gumawa tayo ng Master Folder na siyang maglalaman ng lahat ng ating mga workspace upang mas mabilis natin silang mahanap at mabuksan.

Papangalanan natin itong “Workspaces” at matapos natin itong magawa, ililipat naman natin ang kaninang “robot1_ws” na folder sa loob nito.

# Patakbuhin sa Terminal 1

# Likhain ang Master Folder
mkdir Workspaces

# Ilipat ang robot1_ws sa Workspaces
mv robot1_ws ~/Workspaces/

Matapos nating gawin ang ating workspace folder, mangyaring gawan natin ito ng ‘src’ folder sa loob.

# Patakbuhin sa Terminal 1
cd ~/Workspaces/robot1_ws
mkdir src

Ganito dapat ang kalalabasan ng iyong diretory:

Ngayon, ano ang halaga ng ‘src’ folder na ito?

Ito lang naman ang siyang naglalaman ng mga ROS Packages na ating gagamitin para sa pagdisenyo ng ating robot – nandito ang mga nodes, topics, messages, at maging mga python o c++ scripts na ating iproprogram para sa mga parte ng ating robot.

Kaya’t gumawa rin tayo ng halimbawang package at pangalanan nating camera1_pkg.

# Patakbuhin sa Terminal 1

# Pumunta sa loob ng src folder bilang paghahanda sa paggawa ng package
cd src

Kung inyong papansinin, ang mag ros package ay siyang mga maituturing na mismong kumpuni ng inyong robot – maaaring ito yung para sa camera, para sa motion planning, at iba pa.

Ngayon, ang paggawa ng package sa ROS1 ay hindi nadadaan sa simpleng paglikha ng folder sa ‘src’ folder; bagkus, ay kakailanganin nating magpatakbo ng mga commands upang maisagawa ito nang maayos.

# Patakbuhin sa Terminal 1

# Siguraduhing nasa loob na ng ‘src’ folder ng iyong nagawang workspace
catkin_create_pkg camera1_pkg roscpp rospy std_msgs

Matapos nito, iyong makikita ang ganitong compigurasyon ng iyong terminal

Iyo ring mapapansin ang mga panibagong laman nito tulad ng CMakeLists.txt at Package.xml na siyang naglalarawan ng mga katangian ng package na ating nalikha.

Ang bagong ‘src’ folder sa loob ng ating package naman ang siyang ating paglalagayan ng lahat ng ating c++ scripts para sa paglikha ng ating mga node. Kung nais nating mag-develop gamit ang python, mainam na lumikha tayo ng folder na pinangalanang ‘scripts’ upanag manatiling organisado at maayos ang ating mga dokumento para sa naturang proyekto.

Upang kumpletuhin ang proseso, ngayon naman ay atin nang bubuuin ang workspace gamit ang syntax na:

catkin_make

Ngunit bago natin ito gawin, siguraduhin nasa loob tayo ng folder ng ating workspace na siyang si ‘robot1_ws’

# Patakbuhin sa Terminal 1

# Bumalik sa robot1_ws folder
cd ../

# Buuin ang Workspacce
catkin_make

Ito ang halimbawa ng resultang lalabas sa inyong mga terminal:

Matapos nito, may mga lalabas ring panibagong mga folder at dokumento sa directory ng inyong workspace:

 

Pag kapareho nito ang lumabas sa inyong IDE, isang masigasig na pagbati! Matagumpay nating nagawa ang ating unang workspace gamit ang ROS1 Noetic.

Para sa ikalawang parte nitong tutorial na ito, atin namang titignan ang proseso ng paggawa ng workspace para sa ROS2 Humble. Mangyaring inyo na rin itong matignan gamit ang ROSject link na ito:

Paano Gumawa at Mag-ayos ng Workspace sa ROS1 at ROS2 – Part 2

1.1 Mga Kinakailangang Kagamitan Para sa Kurso

Para sa kursong ito, inaasahang may payak na kaalaman na ang user sa paggamit ng mga sistemang tumatakbo sa Ubuntu at maging ang pagkumpuni gamit ang Linux Terminal. Kung nais niyong matutunan pa lalo ang mga paksang patungkol sa pangunahing kaalmaan hinggil sa pag-proprogram gamit ang ROS, mangyaring pumunta sa website ng The Construct ukol sa kanilang kursong Code Foundation for ROS Learning Path! Ang mga maiikling kursong ito’y siguradong maghahanda sa inyo para inyong mahasa ang inyong kaalaman hinggil sa mga kinakailangang programming languages na ginagamit sa ROS.

Mga Modules na Nilalaman ng Code Foundation for ROS Learning Path:

  • Linux for Robotics
  • Python 3 for Robotics
  • Examination

Para sa mga nagnanais na gamitin ang kanilang sariling mga kompyueter, para sa parehong kurso ay susundan natin ang OS-to_Distribution compatiblities na galing mula sa opsiyal na dokumentasyon ng ros.org para sa parehong ROS1 Noetic Ninjemys at ROS2 Humble Hawksbill

  • ROS1 Noetic: PC o Virtual Machine na tumatakbo sa Ubuntu 20.04 LTS
  • ROS2 Noetic: PC o Virtual Machine na tumatakbo sa 22.04 LTS

1.2 ROS Workspaces

Sa bawat ROS project, lahat ng ito ay nagsisimula sa tinatwag na Workspace. Ang folder na ito ang siyang maglalaman ng halos lahat na kakailanganin ng iyong robot para ito ay tumakbo — maging mga packages, scripts, at sa pagdalob sa mga partikular ng ROS, ng iyong mga nodes at topics na siyang gagamitin sa kabuuan ng operasyon at pagdisenyo ng robot. Sa ganitong palagay ay tila napakahalagang matutunan natin ang tamang pamamaraan ng paggawa at pag-organisa ng mga nilalaman ng mga ito sapagkat dahil sa natural na pagiging komplikado ng mga ganitong sistema, maaring sa pagtagal ay tila mahirapan tayo dahil sa dami ng mga kumpuni na ating nagawa para sa naturang robot. At sa kursong ito ay siyang mismo ang ating tatalakayin – ang pagsigurado ng kaayusan at kalinisan ng ating mga folder at directory sa kabuuan ng ating development!

Halina’t simulan na natin!

1.3 Paglikha ng Iyong Unang Workspace sa ROS2 

Masasabing hindi komplikado ang paggawa ng workspace sa ROS2. Sa industriya, sinusunod natin ang format ng pagpapangalan sa ating mga folder na naaayon sa syntax na ‘projectname_ws’. Para tayo ay magsimula, una muna tayong pupunta sa root directory at gagawa ng halimbawang workspace na ating papangalanang ‘robot1_ws’

Kung inyong mapapapansin, opo, ang isang workspace ay siyang kumakatawan sa isang buong robot. Sa kabuuan ng iyong development, ang folder na ito ang maglalaman ng lahat ng parte and kumpuni ng iyong proyekto.

# Patakbuhin in Terminal 1

# Pagpunta sa Root Directory
cd ~

# Paggawa ng Workspace
mkdir robot1_ws

Matapos patakbuhin ang mga code na ito, iyong makikita ang iyong panibagong folder na nakalagay na sa iyong root folder:

Mula sa kaninang diskurso, kakailanganin nating pagdaluban ng diwa ang isang mahalagng tanong: Ano kaya ang magiging kalabasan ng ating directory matapos ang 100 mga workspace?

Tunay ngang maari itong magmukhang magulo lalo na at sa root folder natin silang lahat nilalagay. Upang mas mainam ang ating pag-oorganisa sa mga ito ay mangyaring gumawa tayo ng Master Folder na siyang maglalaman ng lahat ng ating mga workspace upang mas mabilis natin silang mahanap at mabuksan.

Papangalanan natin itong “Workspaces” at matapos natin itong magawa, ililipat naman natin ang kaninang “robot1_ws” na folder sa loob nito.

# Patakbuhin sa in Terminal 1

# Likhain ang Master Folder
mkdir Workspaces

# Ilipat ang robot1_ws sa Workspaces
mv robot1_ws ~/Workspaces/

Matapos nito, ganito na dapat ang lalabas sa ating directory:


Upang ating masubukan mamaya kung paano gumamit ng mahigit sa isang workspace sa ROS2, tayo’y gumawa pa ng isang folder na ating papangalanang robot2_ws sa loob ng Workspaces master folder. Matapos na ito’y gawin, ganito dapat ang kalalabasan:

# Patakbuhin sa Terminal 1

# Solusyon A:
mkdir robot2_ws
mv robot2_ws ~/Workspaces

#Solusyon B:
cd ~/Workspaces
mkdir robot2_ws

Mahusay!

Ngayong nalikha na natin ang ating mga workspace folder, ang sunod na hakbang ay ang paggawa ng mga ‘src’ folder sa bawat workspace natin.

# Patakbuhin sa Terminal 1
cd ~/Workspaces/robot1_ws
mkdir src

cd ../
cd robot2_ws
mkdir src

Ganito na dapat ang kalalabasan ng ating directory:

Matapos nito ay babalik tayo sa main folder ng ating workspace at tsaka patatakbuhin ang command na ‘colcon build’

# Patakbuhin sa Terminal 1
cd ~/Workspaces/robot1_ws
colcon build

cd ~/Workspaces/robot2_ws
colcon build

Maglalabas ang terminal ng naturang output:

MAHALAGA: Kahit mapapansing gumana ang command na ito sa terminal, nararapat lamang na sa inyong mga lokal na kompyuter ay siguraduhing na-source nang maigi ang ating ROS Distro (Distribusyon) sa pamamagitan ng pagtakbo ng code na ito sa root folder:

# Hindi kailangang patakbuhin ngunit PALAGING TANDAAN!!!

cd ~
source ~/opt/ros/[distro]/setup.bash

# Note: the -distro- is to be replaced with the disitrbution that you have installed and are currently using. In this case, we will use humble

source ~/opt/ros/humble/setup.bash

Matapos gawin ang mga ito, dapat na lumabas ang mga panibagong folder na ito sa inyong mga workspace:

Ngayon, ating talakayin ang iilan sa mga payak ngunit mahahalagang folder na kailangan nating pagtuunan ng pansin matapos ang paggawa ng ating workspace. Magsimula tayo sa ‘src’ folder, ang folder na ito ang maglalaman ng lahat ng packages na ating nalikha para sa ating robot. Bilang maikling pagtalakay, ang package ay masasabing isang esensyal na lipon ng mga script na siyang naglalarawan o naglilikha sa isang partikular na parte ng ating robot — maari itong maging camera, pang-motion-planning, at iba pa. May hiwalay na commands na kailangan upang makagawa ng package sa ROS2 na siyang tatalakayin sa iba pang maiksing kurso.

Pumunta naman tayo sa ‘install’ folder. Kung inyong mapapansin mula sa inyong mga IDE, napakaraming bagong dokumento sa loob nito at isa sa mga kailangan nating tignan ay ang ‘setup.bash’. Sa ROS2, pag nais nating gamitin ang mahigit sa isang workspace, nararapat nating ma-source nang maigi hindi lamang ang distro na gamit natin; bagkus, maging na rin ang workspace na ating patatakbuhin.

Sa ganitong palagay, kung nais nating gamitin ang laman ng ‘robot1_ws’ na workspace, kakailanganin nating i-source ito sa terminal gamit ang sumusunod na code:

# Patakbuhin sa in Terminal 1

cd ~/Workspaces
source robot1_ws/install/setup.bash

Kung nais mo namang gamitin at ‘robot2_ws’ workspace, mangyaring patakbuhin ang sumusunod na command:

Ang karaniwang panuntunan na ating susundin ay ang pag-source ng setup.bash file ng workspace mula sa ‘install’ folder nito

source ~/folder1/sample_ws/install/setup.bash

# Patakbuhin sa Terminal 1

cd ~/Workspaces
source robot2_ws/install/setup.bash

At ayan! Matagumpay nating nagawa ang ating workspace gamit ang ROS2 Humble Hawksbill.

 

Video Tutorial

 

Topics: ros1 | ros2
Masterclass 2023 batch2 blog banner

Check Out These Related Posts

129. ros2ai

129. ros2ai

I would like to dedicate this episode to all the ROS Developers who believe that ChatGPT or...

read more

1 Comment

  1. Name

    Comment

    Reply

Submit a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pin It on Pinterest

Share This