ઉકેલી: setup.py ROS2 માં સેવા ફાઇલો ઉમેરો

તાજેતરના વર્ષોમાં, રોબોટિક્સના ક્ષેત્રમાં પ્રગતિ અને અપનાવવામાં આવેલી તકનીકોમાં વધારો જોવા મળ્યો છે. તેમાંથી એક છે ROS2 (રોબોટ ઓપરેટિંગ સિસ્ટમ 2), એક ઓપન-સોર્સ મિડલવેર ફ્રેમવર્ક જે રોબોટ્સની એપ્લિકેશનને વિકસાવવા, પરીક્ષણ કરવા અને જાળવવા માટે સાધનો, પુસ્તકાલયો અને સંમેલનો પૂરા પાડે છે. આ લેખ setup.py નો ઉપયોગ કરીને ROS2 પૅકેજમાં સેવા ફાઇલો ઉમેરવાની શોધ કરે છે, જે આ પ્લેટફોર્મ સાથે કામ કરતા વિકાસકર્તાઓ માટે આવશ્યક કૌશલ્ય છે. અમે સંક્ષિપ્ત પરિચય સાથે પ્રારંભ કરીશું, સમસ્યાનો ઉકેલ રજૂ કરીશું, તમને પગલું-દર-પગલા માર્ગદર્શિકા દ્વારા લઈ જઈશું અને ઊંડી સમજણ માટે સંબંધિત વિષયોની ચર્ચા કરીશું.

ROS2 પેકેજમાં સર્વિસ ફાઇલને સેટ કરવા માટે બે મુખ્ય પગલાંનો સમાવેશ થાય છે: સર્વિસ મેસેજ ડેફિનેશન ફાઇલ (.srv) બનાવવી અને package.xml અને setup.py ફાઇલોમાં જરૂરી રૂપરેખાંકનો ઉમેરવા. આ ટ્યુટોરીયલમાં, અમે એક સરળ સેવા બનાવીશું જે ઇનપુટ સ્ટ્રીંગ લે છે અને આપેલ ઇનપુટની લંબાઈ પરત કરે છે.

પ્રથમ, ચાલો આપણું કાર્યસ્થળ તૈયાર કરીએ. નીચેના આદેશ સાથે "string_length_service" નામનું ROS2 પેકેજ બનાવો:

"`
ros2 pkg બનાવો -બિલ્ડ-પ્રકાર ament_python string_length_service
"`

હવે, અમારી સેવા સંદેશ વ્યાખ્યા ફાઇલને સંગ્રહિત કરવા માટે “string_length_service” પેકેજની અંદર “srv” નામની ડિરેક્ટરી બનાવો:

"`
mkdir srv
"`

"srv" ડિરેક્ટરીની અંદર, નીચેની સામગ્રી સાથે "StringLength.srv" નામની ફાઇલ બનાવો:

"`
string input_string
-
int64 લંબાઈ
"`

પેકેજ.xml ફાઇલમાં, જરૂરી નિર્ભરતા ઉમેરવાની ખાતરી કરો:

"`xml
std_msgs
service_interface_packages
ament_cmake
ament_cmake_auto
matplotlib
"`

હવે, ચાલો આ લેખના મુખ્ય ભાગમાં જઈએ – setup.py માં સેવા ફાઇલો ઉમેરી રહ્યા છીએ. "setup.py" ફાઇલ ખોલો અને નીચેનો કોડ શામેલ કરો:

"`અજગર
સેટઅપટોલ્સ આયાત સેટઅપમાંથી
ગ્લોબ આયાત ગ્લોબમાંથી

પેકેજ_નામ = 'સ્ટ્રિંગ_લંબાઈ_સેવા'

સ્થાપના(
નામ=પેકેજ_નામ,
સંસ્કરણ = '0.0.0',
પેકેજો=[પેકેજ_નામ],
data_files=[
('share/ament_index/resource_index/packages',
['સંસાધન/' + પેકેજ_નામ]),
('share/' + package_name, ['package.xml']),
('શેર/' + પેકેજ_નામ, ગ્લોબ('srv/*'))
],
install_requires=['setuptools'],
zip_safe=સાચું,
maintener='developer_name_here',
maintener_email='developer_email_here',
description='સ્ટ્રિંગ લંબાઈની ગણતરી કરવા માટેની સેવા',
લાયસન્સ = 'MIT',
tests_require=['pytest'],
પ્રવેશ_બિંદુ ={
'કન્સોલ_સ્ક્રિપ્ટ્સ': [
'string_length_server = ' + પેકેજ_નામ + '.string_length_server:main',
'string_length_client = ' + પેકેજ_નામ + '.string_length_client:main',
],
},
)
"`

ચાલો હવે ચર્ચા કરીએ કે આ કોડ શું કરે છે: setup.py ફાઇલ અમારા પેકેજનું વિતરણ અને સંચાલન કરવા માટે setuptools નો ઉપયોગ કરે છે. પેકેજ_નામ વેરીએબલ અમારા પેકેજનું નામ ધરાવે છે. data_files યાદી પેકેજ સાથે વિતરિત કરવા માટે જરૂરી સંસાધન, package.xml અને સેવા ફાઈલોનો ઉલ્લેખ કરે છે. install_requires જરૂરી પેકેજોની યાદી આપે છે, અને entry_points અમારી સેવા એક્ઝિક્યુટેબલ ફાઇલોને વ્યાખ્યાયિત કરે છે. 'developer_name_here' અને 'developer_email_here' ને યોગ્ય મૂલ્યો સાથે બદલવાની ખાતરી કરો.

rclpy અને std_srvs નો ઉપયોગ કરીને

setup.py માં સેવા ફાઇલો સેટ કર્યા પછી, પ્રમાણભૂત સેવા પ્રકારો માટે ROS2 Python ક્લાયંટ લાઇબ્રેરી, rclpy અને std_srvs નો ઉપયોગ કરીને સર્વર અને ક્લાયંટ કોડનો અમલ કરવો જરૂરી છે.

તમારી પેકેજ ડિરેક્ટરીમાં "string_length_server.py" અને "string_length_client.py" ફાઇલો બનાવો અને સર્વર અને ક્લાયંટ કોડનો અમલ કરો. તમે ROS2 દસ્તાવેજીકરણમાં સર્વર અને ક્લાયંટ કોડ કેવી રીતે લખવો તેની વિગતો મેળવી શકો છો.

સેવાનું નિર્માણ અને પરીક્ષણ

છેલ્લે, નીચેના આદેશોનો ઉપયોગ કરીને તમારું પેકેજ બનાવો અને પરીક્ષણ કરો:

"`
સ્ત્રોત /opt/ros/foxy/setup.bash
colcon બિલ્ડ -પેકેજ-પસંદ કરો string_length_service
સ્ત્રોત install/setup.bash
"`

સફળ બિલ્ડ પછી, સર્વર અને ક્લાયંટને બે અલગ-અલગ ટર્મિનલ્સનો ઉપયોગ કરીને ચલાવો:

"`
ros2 string_length_service string_length_server ચલાવો
"`

"`
ros2 રન string_length_service string_length_client
"`

આ માર્ગદર્શિકાએ rclpy અને std_srvs જેવા સંબંધિત વિષયો પર સ્પર્શ કરતી વખતે ROS2 પેકેજો માટે setup.py માં સેવા ફાઇલો ઉમેરવાની ઊંડાણપૂર્વકની સમજૂતી રજૂ કરી છે. આ પગલાંને અનુસરીને, તમે તમારી રોબોટિક એપ્લિકેશન્સમાં ક્રિયાપ્રતિક્રિયાઓને સરળ બનાવીને, કાર્યક્ષમ અને સંગઠિત રીતે તમારી ROS2 સેવાઓ બનાવી અને વિતરિત કરી શકો છો. સારા નસીબ અને હેપી કોડિંગ!

સંબંધિત પોસ્ટ્સ:

પ્રતિક્રિયા આપો