La xaliyay: ku dar faylasha adeegga setup.py ROS2

Sanadihii la soo dhaafay, qeybta robotics-ka ayaa lagu arkay horumarro badan oo teknoolojiyadda la qaatay. Mid ka mid ah waa ROS2 (Robot Operating System 2), qaab-dhismeedka il furan oo dhexda ah oo bixiya agabka, maktabadaha, iyo heshiisyada si loo horumariyo, loo tijaabiyo loona ilaaliyo codsiyada robots-ka. Maqaalkani waxa uu ku darayaa faylalka adeegga ee xirmo ROS2 iyada oo la adeegsanayo setup.py, oo ah xirfad lama huraan u ah horumariyeyaasha la shaqeeya goobtan. Waxaan ku bilaabi doonaa horudhac kooban, waxaan soo bandhigi doonaa xalka dhibaatada, waxaan kuugu socon doonaa hage tallaabo tallaabo ah, waxaanan ka doodi doonnaa mowduucyo la xiriira faham qoto dheer.

Dejinta faylka adeegga ee xirmada ROS2 waxay ku lug leedahay laba tillaabo oo muhiim ah: abuurista faylka qeexida farriinta adeegga (.srv) iyo ku darista qaabaynta lagama maarmaanka ah ee xirmada.xml iyo faylalka setup.py. Casharradan, waxaan ku abuuri doonaa adeeg fudud oo qaada xargaha wax gelinta oo soo celiya dhererka wax gelinta ee la bixiyay.

Marka hore, aan diyaarino goobta shaqada. Samee xirmo ROS2 ah oo magaciisu yahay "string_length_service" oo wata amarka soo socda:

““
ros2 pkg waxay abuurtaa nooca-dhiso ament_python string_length_service
““

Hadda, ka dhex abuur hagaha magaciisu yahay "srv" gudaha xirmada "string_length_service" si aad u kaydiso faylka qeexida fariinta adeegga:

““
mkdir srv
““

Gudaha "srv" tusaha, samee fayl lagu magacaabo "StringLength.srv" oo wata waxyaabaha soo socda:

““
string input_string
-
dhererka int64
““

Faylka pack.xml, hubi inaad ku darto ku tiirsanaanta lagama maarmaanka ah:

"xml
std_msgs
xirmooyinka_interface_service
wax_qabad
ament_cme_auto
matplotlib
““

Hadda, aan u gudubno qaybta udub-dhexaadka ah ee maqaalkan - ku darida faylasha adeegga setup.py. Fur faylka "setup.py" oo ku dar koodka soo socda:

"'python
ka soo dejinta settools dejinta
ka glob soo dejinta glob

package_name = 'string_length_service'

habayn (
name=package_name,
nooca='0.0.0′,
xirmo=[package_name],
xogta_files=[
('share/ament_index/resource_index/packages',
['source/' + pack_name]),
('share/' + pack_name, ['package.xml']),
('share/' + pack_name, glob('srv/*'))
],
install_requires=['setuptools'],
zip_safe=Run,
Keeper='horumariyaha_name_halkan',
maintainer_email='horumariyaha_email_halkan',
description='Adeeg lagu xisaabinayo dhererka xadhigga',
shatiga='MIT',
tests_require=['pytest'],
enter_points={
'console_scripts': [
'string_length_server =' + pack_name + '.string_length_server: main',
'string_length_client =' + pack_name + '.string_length_client: main',
],
},
)
““

Aynu hadda ka wada hadalno waxa uu code-kani qabto: Faylka setup.py wuxuu isticmaalaa settools si uu u qaybiyo oo u maareeyo xirmadayada. Doorsoomiyaha xirmada_name wuxuu hayaa magaca xirmadayada. Liiska data_files ayaa qeexaya ilaha lagama maarmaanka ah, pack.xml, iyo faylalka adeegga in lala qaybiyo xirmada. install_requires waxay taxdaa xirmooyinka loo baahan yahay, iyo entry_points waxay qeexayaan adeegeena faylalka la fulin karo. Hubi inaad ku beddesho 'developer_name_here' iyo 'developer_email_here' oo leh qiyam sax ah.

Isticmaalka rclpy iyo std_srvs

Ka dib dejinta faylasha adeegga ee setup.py, waa lagama maarmaan in la hirgeliyo server-ka iyo koodhka macmiilka iyadoo la adeegsanayo ROS2 Python Client Library, rclpy, iyo std_srvs ee noocyada adeegga caadiga ah.

Abuur faylasha "string_length_server.py" iyo "string_length_client.py" gudaha tusaha xirmo kaaga oo hirgeli serverka iyo koodka macmiilka. Waxaad ka heli kartaa faahfaahin ku saabsan sida loo qoro server-ka iyo koodka macmiilka dukumeentiga ROS2.

Dhisidda iyo tijaabinta adeegga

Ugu dambeyntii, dhis oo tijaabi xirmadaada adigoo isticmaalaya amarada soo socda:

““
source /opt/ros/foxy/setup.bash
colcon build –packages-door string_length_service
isha install/setup.bash
““

Kadib dhisitaanka guusha leh, maamul serverka iyo macmiilka adoo isticmaalaya laba terminal oo kala duwan:

““
ros2 orod string_length_service string_length_server
““

““
ros2 run string_length_service string_length_client
““

Hagahan ayaa soo bandhigay sharaxaad qotodheer oo ku saabsan ku darista faylalka adeegga ee setup.py ee xirmooyinka ROS2 iyadoo la taabanayo mowduucyada la xiriira sida rclpy iyo std_srvs. Adigoo raacaya tillaabooyinkan, waxaad u abuuri kartaa oo aad u qaybin kartaa adeegyadaada ROS2 si hufan oo habaysan, fududaynta isdhexgalka gudaha codsiyadaada robotiga ah. Nasiib wacan iyo codayn farxad leh!

Related posts:

Leave a Comment