રોબોવર્ક્સ રોબોફ્લીટ ઓરીન નેનો x3 આરઓએસ રોબોટ
સારાંશ
આ દસ્તાવેજ મુખ્યત્વે wheeltec_multi નામના મલ્ટિ-રોબોટ ફોર્મેશન ફંક્શન પેકેજના ઉપયોગને સમજાવે છે.
આ દસ્તાવેજ ચાર ભાગોમાં વહેંચાયેલો છે:
- પ્રથમ ભાગ મુખ્યત્વે મલ્ટિ-રોબોટ નિર્માણ પદ્ધતિની રજૂઆત વિશે છે;
- બીજો ભાગ મુખ્યત્વે ROS મલ્ટિ-મશીન કમ્યુનિકેશન સેટિંગ્સનું વર્ણન કરે છે, જેમાં મલ્ટિ-મશીન કમ્યુનિકેશનના ROS બાંધકામ અને ROS કમ્યુનિકેશનની પ્રક્રિયામાં આવી શકે તેવી સમસ્યાઓનો સમાવેશ થાય છે;
- ત્રીજો ભાગ મુખ્યત્વે મલ્ટિ-મશીન ટાઇમ સિંક્રોનાઇઝેશનના ઓપરેશન સ્ટેપ્સનું વર્ણન કરે છે;
- ચોથો ભાગ મલ્ટી-મશીન ફોર્મેશન ફંક્શન પેકેજના ચોક્કસ ઉપયોગને સમજાવે છે.
આ દસ્તાવેજનો હેતુ મલ્ટિ-એજન્ટ રોબોટિક સિસ્ટમનો પરિચય છે અને વપરાશકર્તાને મલ્ટિ-રોબોટ નિર્માણ પ્રોજેક્ટ ઝડપથી શરૂ કરવાની મંજૂરી આપે છે.
મલ્ટી-એજન્ટ અલ્ગોરિધમ્સનો પરિચય
મલ્ટી-એજન્ટ રચના ગાણિતીક નિયમો
આ ROS પેકેજ ફોર્મેશન ડ્રાઇવ દરમિયાન સહયોગી નિયંત્રણમાં મલ્ટી-એજન્ટ્સની લાક્ષણિક સમસ્યા રજૂ કરે છે. આ ટ્યુટોરીયલ આ વિષય પર ભાવિ વિકાસ માટે પાયો નાખે છે. રચના નિયંત્રણ અલ્ગોરિધમ એ એક અલ્ગોરિધમનો સંદર્ભ આપે છે જે કાર્ય કરવા માટે ચોક્કસ રચના રચવા માટે બહુવિધ એજન્ટોને નિયંત્રિત કરે છે. સહયોગ એ કાર્ય પૂર્ણ કરવા માટે ચોક્કસ અવરોધ સંબંધનો ઉપયોગ કરીને બહુવિધ એજન્ટો વચ્ચેના સહકારનો સંદર્ભ આપે છે. મલ્ટી-રોબોટ ફોર્મેશન ડ્રાઇવને ભૂતપૂર્વ તરીકે લોample, સહયોગનો અર્થ એ છે કે બહુવિધ રોબોટ્સ એકસાથે ઇચ્છિત રચના બનાવે છે. તેનો સાર એ છે કે દરેક રોબોટની સ્થિતિ વચ્ચે ચોક્કસ ગાણિતિક સંબંધ સંતુષ્ટ છે. રચના પદ્ધતિઓ મુખ્યત્વે કેન્દ્રિય રચના નિયંત્રણ અને વિતરિત રચના નિયંત્રણમાં વિભાજિત થાય છે. કેન્દ્રિય રચના નિયંત્રણ પદ્ધતિઓમાં મુખ્યત્વે વર્ચ્યુઅલ સ્ટ્રક્ચર મેથડ, ગ્રાફિકલ થિયરી મેથડ અને મોડલ પ્રિડિક્ટિવ મેથડનો સમાવેશ થાય છે. વિતરિત રચના નિયંત્રણ પદ્ધતિઓમાં મુખ્યત્વે નેતા-અનુયાયી પદ્ધતિ, વર્તન-આધારિત પદ્ધતિ અને વર્ચ્યુઅલ માળખું પદ્ધતિનો સમાવેશ થાય છે.
આ ROS પેકેજ મલ્ટિ-રોબોટ ફોર્મેશન ડ્રાઇવને એક્ઝિક્યુટ કરવા માટે ડિસ્ટ્રિબ્યુટેડ ફોર્મેશન કંટ્રોલ મેથડમાં લીડર-ફોલોઅર પદ્ધતિ લાગુ કરે છે. રચનામાં એક રોબોટને નેતા તરીકે નિયુક્ત કરવામાં આવે છે, અને અન્ય રોબોટ્સને નેતાને અનુસરવા માટે ગુલામ તરીકે નિયુક્ત કરવામાં આવે છે. ચોક્કસ દિશા અને ઝડપ સાથે નીચેના રોબોટ્સ દ્વારા ટ્રેક કરવા માટે કોઓર્ડિનેટ્સ સેટ કરવા માટે એલ્ગોરિધમ અગ્રણી રોબોટની હિલચાલના માર્ગનો ઉપયોગ કરે છે. ટ્રેકિંગ કોઓર્ડિનેટ્સમાંથી સ્થિતિના વિચલનોને સુધારીને, અનુયાયીઓ આખરે અનુયાયી અને અપેક્ષિત ટ્રેકિંગ કોઓર્ડિનેટ્સ વચ્ચેના વિચલનને શૂન્ય સુધી ઘટાડી દેશે જેથી ફોર્મેશન ડ્રાઇવના ઉદ્દેશ્યો પ્રાપ્ત થાય. આ રીતે, અલ્ગોરિધમ પ્રમાણમાં ઓછું જટિલ છે.
અવરોધ ટાળવાના ગાણિતીક નિયમો
એક સામાન્ય અવરોધ ટાળવા અલ્ગોરિધમ એ કૃત્રિમ સંભવિત ક્ષેત્ર પદ્ધતિ છે. ભૌતિક વાતાવરણમાં રોબોટની હિલચાલને વર્ચ્યુઅલ કૃત્રિમ બળ ક્ષેત્રમાં ચળવળ તરીકે ગણવામાં આવે છે. સૌથી નજીકનો અવરોધ LiDAR દ્વારા ઓળખવામાં આવે છે. અવરોધ રોબોટને પ્રતિકૂળતા પેદા કરવા માટે પ્રતિકૂળ બળ ક્ષેત્ર પ્રદાન કરે છે અને લક્ષ્ય બિંદુ રોબોટને ગુરુત્વાકર્ષણ બળ પેદા કરવા માટે ગુરુત્વાકર્ષણ ક્ષેત્ર પ્રદાન કરે છે. આ રીતે, તે પ્રતિકૂળતા અને આકર્ષણની સંયુક્ત ક્રિયા હેઠળ રોબોટની ગતિને નિયંત્રિત કરે છે.
આ ROS પેકેજ કૃત્રિમ સંભવિત ક્ષેત્ર પદ્ધતિ પર આધારિત સુધારો છે. પ્રથમ, રચના અલ્ગોરિધમ સ્લેવ અનુયાયીના રેખીય અને કોણીય વેગની ગણતરી કરે છે. પછી તે અવરોધ ટાળવાની આવશ્યકતાઓ અનુસાર રેખીય અને કોણીય વેગમાં વધારો અથવા ઘટાડો કરે છે. જ્યારે સ્લેવ અનુયાયી અને અવરોધ વચ્ચેનું અંતર નજીક હોય છે, ત્યારે સ્લેવ અનુયાયી માટે અવરોધનું પ્રતિકૂળ બળ વધારે હોય છે. દરમિયાન રેખીય વેગમાં ફેરફાર અને કોણીય વેગની વિવિધતાઓ વધારે છે. જ્યારે અવરોધ સ્લેવ અનુયાયીના આગળના ભાગની નજીક હોય છે, ત્યારે સ્લેવ અનુયાયી માટેના અવરોધનું પ્રતિકૂળ વધારે બને છે (આગળનું પ્રતિક્રમણ સૌથી મોટું છે અને બાજુનું પ્રતિક્રમણ સૌથી નાનું છે). પરિણામે, રેખીય વેગ અને કોણીય વેગની ભિન્નતા વધારે છે. કૃત્રિમ સંભવિત ક્ષેત્ર પદ્ધતિ દ્વારા, તે ઉકેલને સુધારે છે
જ્યારે રોબોટ અવરોધ સામે જવાબ આપવાનું બંધ કરી શકે છે. આ વધુ સારી રીતે અવરોધ ટાળવાના હેતુને પૂર્ણ કરે છે.
મલ્ટી-એજન્ટ કોમ્યુનિકેશન સેટઅપ
મલ્ટિ-એજન્ટ કમ્યુનિકેશન એ મલ્ટિ-રોબોટ રચનાને પૂર્ણ કરવા માટેના મુખ્ય પગલાઓમાંનું એક છે. જ્યારે બહુવિધ રોબોટ્સની સાપેક્ષ સ્થિતિ અજાણ હોય છે, ત્યારે રોબોટ્સને કનેક્શનની સ્થાપનાની સુવિધા માટે સંચાર દ્વારા એકબીજાની માહિતી શેર કરવાની જરૂર છે. ROS વિતરિત આર્કિટેક્ચર અને નેટવર્ક સંચાર ખૂબ શક્તિશાળી છે. તે માત્ર આંતર-પ્રક્રિયા સંદેશાવ્યવહાર માટે અનુકૂળ નથી, પરંતુ વિવિધ ઉપકરણો વચ્ચેના સંચાર માટે પણ છે. નેટવર્ક કમ્યુનિકેશન દ્વારા, તમામ નોડ્સ કોઈપણ કમ્પ્યુટર પર ચાલી શકે છે. ડેટા પ્રોસેસિંગ જેવા મુખ્ય કાર્યો હોસ્ટ બાજુ પર પૂર્ણ થાય છે. સ્લેવ મશીનો વિવિધ સેન્સર દ્વારા એકત્રિત કરવામાં આવેલ પર્યાવરણીય ડેટા મેળવવા માટે જવાબદાર છે. અહીં હોસ્ટ મેનેજર છે જે ROS માં માસ્ટર નોડ ચલાવે છે. વર્તમાન મલ્ટિ-એજન્ટ કમ્યુનિકેશન માળખું નોડ મેનેજર અને પેરામીટર મેનેજર દ્વારા બહુવિધ રોબોટ્સ વચ્ચેના સંચારને નિયંત્રિત કરવા માટે છે.
મલ્ટિ-એજન્ટ કમ્યુનિકેશન્સ સેટ કરવાનાં પગલાં
સમાન નેટવર્કમાં ROS નિયંત્રણો સેટ કરો
સમાન નેટવર્ક હેઠળ માસ્ટર/સ્લેવ આરઓએસ કંટ્રોલ્સ સેટ કરવાની 2 રીતો છે.
વિકલ્પ 1:
માસ્ટર હોસ્ટ માસ્ટર નોડ મેનેજર ચલાવીને સ્થાનિક વાઇફાઇ બનાવે છે. સામાન્ય રીતે, માસ્ટર તરીકે નિયુક્ત કરાયેલા રોબોટમાંથી એક આ વાઇફાઇ નેટવર્ક બનાવે છે. અન્ય રોબોટ્સ અથવા વર્ચ્યુઅલ મશીનો આ વાઇફાઇ નેટવર્કમાં ગુલામ તરીકે જોડાય છે.
વિકલ્પો 2:
સ્થાનિક વાઇફાઇ નેટવર્ક માહિતી રિલે કેન્દ્ર તરીકે તૃતીય-પક્ષ રાઉટર દ્વારા પ્રદાન કરવામાં આવે છે. બધા રોબો એક જ રાઉટર સાથે જોડાયેલા છે. રાઉટરનો ઉપયોગ ઇન્ટરનેટ કનેક્શન વિના પણ કરી શકાય છે. માસ્ટર તરીકે રોબોટમાંથી એક પસંદ કરો અને માસ્ટર નોડ મેનેજર ચલાવો. અન્ય રોબોટ્સને ગુલામ તરીકે નિયુક્ત કરવામાં આવ્યા છે અને માસ્ટર પાસેથી માસ્ટર નોડ મેનેજર ચલાવે છે.
કયો વિકલ્પ પસંદ કરવો તેનો નિર્ણય તમારી પ્રોજેક્ટ જરૂરિયાતો પર આધારિત છે. જો સંચાર કરવાની જરૂર હોય તેવા રોબોટ્સની સંખ્યા વધુ ન હોય, તો વિકલ્પ 1 ની ભલામણ કરવામાં આવે છે કારણ કે તે ખર્ચ બચાવે છે અને તે સેટ કરવું સરળ છે. જ્યારે રોબોટ્સની સંખ્યા વધુ હોય, ત્યારે વિકલ્પ 2 ની ભલામણ કરવામાં આવે છે. ROS માસ્ટર કંટ્રોલની કમ્પ્યુટિંગ પાવર પરની મર્યાદા અને મર્યાદિત ઓનબોર્ડ વાઇફાઇ બેન્ડવિડ્થ સરળતાથી વિલંબ અને નેટવર્ક વિક્ષેપનું કારણ બની શકે છે. રાઉટર આ સમસ્યાઓને સરળતાથી ઠીક કરી શકે છે.
મહેરબાની કરીને નોંધ કરો કે મલ્ટી-એજન્ટ કમ્યુનિકેશન કરતી વખતે, જો વર્ચ્યુઅલ મશીનનો ઉપયોગ ROS સ્લેવ તરીકે થાય છે, તો તેના નેટવર્ક મોડને બ્રિજ મોડ પર સેટ કરવાની જરૂર છે.
માસ્ટર/સ્લેવ પર્યાવરણ ચલો ગોઠવો
બધા ROS માસ્ટર્સ એક જ નેટવર્કમાં હોય તે પછી, મલ્ટી-એજન્ટ કમ્યુનિકેશન માટે પર્યાવરણ ચલો સેટ કરવાની જરૂર છે. આ પર્યાવરણ ચલ .bashrc માં ગોઠવેલ છે file મુખ્ય ડિરેક્ટરીમાં. તેને શરૂ કરવા માટે gedit ~/.bashrc આદેશ ચલાવો. મહેરબાની કરીને નોંધ કરો કે બંને .bashrc fileમલ્ટિ-એજન્ટ કમ્યુનિકેશનમાં માસ્ટર અને સ્લેવને ગોઠવવાની જરૂર છે. જે બદલવાની જરૂર છે તે છેના અંતે IP એડ્રેસ છે file. આકૃતિ 2-1-4 માં બતાવ્યા પ્રમાણે ROS_MASTER_URI અને ROS_HOSTNAME ની બે રેખાઓ છે. ROS હોસ્ટના ROS_MASTER_URI અને ROS_HOSTNAME બંને સ્થાનિક IP છે. ROS સ્લેવમાં ROS_MASTER_URI .bashrc file જ્યારે ROS_HOSTNAME સ્થાનિક IP સરનામા તરીકે રહે છે ત્યારે હોસ્ટના IP સરનામામાં બદલવાની જરૂર છે.
આરઓએસ મલ્ટિ-મશીન સંચાર આરઓએસ રીલીઝ સંસ્કરણ દ્વારા મર્યાદિત નથી. મલ્ટિમશીન કમ્યુનિકેશનની પ્રક્રિયામાં, વ્યક્તિએ નીચેની બાબતોથી વાકેફ હોવું જોઈએ:
- આરઓએસ સ્લેવ પ્રોગ્રામનું સંચાલન આરઓએસ માસ્ટર ડિવાઇસના આરઓએસ માસ્ટર પ્રોગ્રામ પર આધારિત છે.
ROS માસ્ટર પ્રોગ્રામને સ્લેવ ડિવાઇસ પર સ્લેવ પ્રોગ્રામ એક્ઝિક્યુટ કરતા પહેલા માસ્ટર ડિવાઇસ પર લૉન્ચ થવો જોઈએ. - મલ્ટિ-મશીન કોમ્યુનિકેશનમાં માસ્ટર અને સ્લેવ મશીનોના IP એડ્રેસ સમાન નેટવર્કમાં હોવા જરૂરી છે. આનો અર્થ એ છે કે IP સરનામું અને સબનેટ માસ્ક સમાન નેટવર્ક હેઠળ છે.
- પર્યાવરણ ગોઠવણીમાં ROS_HOSTNAME file .bashrc ને લોકલહોસ્ટનો ઉપયોગ કરવાની ભલામણ કરવામાં આવતી નથી. ચોક્કસ IP સરનામાંનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે.
- ગુલામ IP સરનામું યોગ્ય રીતે સેટ ન હોય તેવા કિસ્સામાં, ગુલામ ઉપકરણ હજી પણ ROS માસ્ટરને ઍક્સેસ કરી શકે છે પરંતુ નિયંત્રણ માહિતી ઇનપુટ કરી શકતું નથી.
- જો વર્ચ્યુઅલ મશીન મલ્ટી-એજન્ટ સંચારમાં ભાગ લે છે, તો તેના નેટવર્ક મોડને બ્રિજ મોડ પર સેટ કરવાની જરૂર છે. નેટવર્ક કનેક્શન માટે સ્ટેટિક IP પસંદ કરી શકાતું નથી.
- મલ્ટિ-મશીન કોમ્યુનિકેશન કરી શકતા નથી view અથવા સ્થાનિક રીતે અસ્તિત્વમાં ન હોય તેવા મેસેજ ડેટા પ્રકારના વિષયો પર સબ્સ્ક્રાઇબ કરો.
- રોબોટ્સ વચ્ચેનો સંચાર સફળ છે કે કેમ તે ચકાસવા માટે તમે લિટલ ટર્ટલ સિમ્યુલેશન ડેમોનો ઉપયોગ કરી શકો છો:
a. માસ્ટર પાસેથી ચલાવો
roscore #launch ROS સેવાઓ
rosrun turtlesim turtlesim_node #launch turtlesim ઇન્ટરફેસ
b. ગુલામ થી ભાગો
rosrun turtlesim turtle_teleop_key # ટર્ટલસિમ માટે કીબોર્ડ કંટ્રોલ નોડ લોંચ કરો
જો તમે સ્લેવ પરના કીબોર્ડ પરથી કાચબાની હિલચાલને ચાલાકી કરી શકો છો, તો તેનો અર્થ એ છે કે માસ્ટર/સ્લેવ સંચાર સફળતાપૂર્વક સ્થાપિત થઈ ગયો છે.
ROS માં સ્વચાલિત વાઇફાઇ કનેક્શન
નીચેની કાર્યવાહી સમજાવે છે કે હોસ્ટ નેટવર્ક અથવા રાઉટર નેટવર્ક સાથે આપમેળે કનેક્ટ થવા માટે રોબોટને કેવી રીતે ગોઠવવું.
જેટસન નેનો માટે સ્વચાલિત વાઇફાઇ કનેક્શન સેટઅપ
- જેટસન નેનોને VNC રિમોટ ટૂલ દ્વારા અથવા સીધા જ કોમ્પ્યુટર સ્ક્રીન સાથે કનેક્ટ કરો. ઉપરના જમણા ખૂણે વાઇફાઇ આઇકન પર ક્લિક કરો અને પછી "કનેક્શન્સ સંપાદિત કરો.." ક્લિક કરો.
- નેટવર્ક કનેક્શન્સમાં + બટન પર ક્લિક કરો:
- "કનેક્શન પ્રકાર પસંદ કરો" વિંડો હેઠળ, ડ્રોપ-ડાઉન મેનૂ પર ક્લિક કરો અને "બનાવો..." બટનને ક્લિક કરો:
- કંટ્રોલ પેનલમાં, Wifi વિકલ્પ પર ક્લિક કરો. "કનેક્શન નામ" અને SSID ફીલ્ડમાં કનેક્ટ કરવા માટે Wifi નામ દાખલ કરો. "મોડ" ડ્રોપડાઉન મેનૂમાં "ક્લાયન્ટ" પસંદ કરો અને "ઉપકરણ" ડ્રોપડાઉન મેનૂમાં "wlan0" પસંદ કરો.
- કંટ્રોલ પેનલમાં, "સામાન્ય" વિકલ્પને ક્લિક કરો અને "આ નેટવર્કથી આપોઆપ કનેક્ટ કરો..." ચેક કરો. "સ્વતઃ-સક્રિયકરણ માટે કનેક્શન પ્રાધાન્યતા" વિકલ્પમાં કનેક્શન પ્રાધાન્યતા 1 પર સેટ કરો. "બધા વપરાશકર્તાઓ આ નેટવર્કથી કનેક્ટ થઈ શકે છે" વિકલ્પને ચેક કરો. જ્યારે અન્ય વાઇફાઇ માટે "સ્વતઃ-સક્રિયકરણ માટે કનેક્શન પ્રાધાન્યતા" માં વિકલ્પ 0 પર સેટ કરવામાં આવે છે, ત્યારે આનો અર્થ એ છે કે ભૂતકાળમાં આ પસંદગીનું વાઇફાઇ નેટવર્ક છે.
- કંટ્રોલ પેનલમાં "Wi-Fi સુરક્ષા" વિકલ્પ પર ક્લિક કરો. "સુરક્ષા" ફીલ્ડમાં "WPA અને WPA2 વ્યક્તિગત" પસંદ કરો. પછી Wifi પાસવર્ડ દાખલ કરો
નોંધ:
જો વાઇફાઇ પ્રાધાન્યતા 0 પર સેટ હોય ત્યારે બુટ કર્યા પછી રોબોટ આપમેળે વાઇફાઇ નેટવર્ક સાથે કનેક્ટ થઈ શકતું નથી, તો તે નબળા વાઇફાઇ સિગ્નલની સમસ્યાને કારણે થઈ શકે છે. આ સમસ્યાને ટાળવા માટે, તમે ભૂતકાળમાં કનેક્ટ થયેલા તમામ વાઇફાઇ વિકલ્પોને કાઢી નાખવાનું પસંદ કરી શકો છો. ફક્ત હોસ્ટ અથવા રાઉટર દ્વારા બનાવેલ વાઇફાઇ નેટવર્ક રાખો.
નેટવર્ક સેટિંગ્સ નિયંત્રણ પેનલમાં "IPv4 સેટિંગ્સ" વિકલ્પને ક્લિક કરો. "મેથડ" ફીલ્ડમાં "મેન્યુઅલ" વિકલ્પ પસંદ કરો. પછી "એડ" પર ક્લિક કરો, "સરનામું" ફીલ્ડમાં સ્લેવ મશીનનું IP સરનામું ભરો. "નેટમાસ્ક" ફીલ્ડમાં "24" ભરો. "ગેટવે" માં IP નેટવર્ક સેગમેન્ટ ભરો. IP નેટવર્ક સેગમેન્ટના છેલ્લા ત્રણ અંકોને "1" માં બદલો. આ પગલાનો મુખ્ય હેતુ IP એડ્રેસને ઠીક કરવાનો છે. આ પ્રથમ વખત પૂર્ણ થયા પછી, જ્યારે તે જ WIFI સાથે કનેક્ટ થશે ત્યારે IP સરનામું યથાવત રહેશે.
બધી સેટિંગ્સ ગોઠવ્યા પછી, સેટિંગ્સ સાચવવા માટે "સાચવો" પર ક્લિક કરો. બચત સફળ થયા પછી, જ્યારે તે ચાલુ થાય ત્યારે રોબોટ હોસ્ટ અથવા રાઉટરના નેટવર્ક સાથે આપમેળે કનેક્ટ થઈ જશે.
નોંધ:
- અહીં સેટ કરેલ IP એડ્રેસ .bashrc માં સેટ કરેલ IP એડ્રેસ જેવું જ હોવું જરૂરી છે file વિભાગ 2.1 માં.
- માસ્ટર અને દરેક સ્લેવનું IP સરનામું અનન્ય હોવું જોઈએ.
- માસ્ટર અને સ્લેવ IP એડ્રેસ સમાન નેટવર્ક સેગમેન્ટમાં હોવા જરૂરી છે.
- સ્લેવ રોબોટ ચાલુ થાય અને વાઇફાઇ નેટવર્ક સાથે આપમેળે કનેક્ટ થાય તે પહેલાં તમારે હોસ્ટ અથવા રાઉટર દ્વારા WiFi સિગ્નલ મોકલવાની રાહ જોવી પડશે.
- સેટિંગ ગોઠવ્યા પછી, જો રોબોટ જ્યારે ચાલુ હોય ત્યારે WiFi સાથે આપમેળે કનેક્ટ થઈ શકતું નથી, તો કૃપા કરીને નેટવર્ક કાર્ડને પ્લગ અને અનપ્લગ કરો અને ફરીથી કનેક્ટ કરવાનો પ્રયાસ કરો.
Raspberry Pi માટે સ્વચાલિત Wifi કનેક્શન સેટઅપ
રાસ્પબેરી પાઈ માટેની પ્રક્રિયા જેટસન નેનો જેવી જ છે.
Jetson TX1 માટે સ્વચાલિત Wifi કનેક્શન સેટઅપ
Jetson TX1 માં સેટઅપ લગભગ Jetson Nano જેવું જ છે એક અપવાદ સાથે કે Jetson TX1 એ નેટવર્ક સેટિંગ્સ કંટ્રોલ પેનલમાં "ઉપકરણ" માં "wlan1" નું ઉપકરણ પસંદ કરવું જોઈએ.
મલ્ટી-એજન્ટ સિંક્રોનાઇઝેશન સેટઅપ
મલ્ટી-એજન્ટ નિર્માણ પ્રોજેક્ટમાં, મલ્ટી-એજન્ટ સમય સુમેળ સેટિંગ એ એક નિર્ણાયક પગલું છે. રચનાની પ્રક્રિયામાં, દરેક રોબોટના અસુમેળ સિસ્ટમ સમયને કારણે ઘણી સમસ્યાઓ ઊભી થશે. મલ્ટિ-એજન્ટ ટાઈમ સિંક્રોનાઈઝેશનને બે પરિસ્થિતિઓમાં વિભાજિત કરવામાં આવે છે, એટલે કે, માસ્ટર અને સ્લેવ રોબોટ્સ બંને નેટવર્ક સાથે જોડાયેલા હોય અને નેટવર્કથી બંને ડિસ્કનેક્ટ થઈ ગયા હોય તેવી પરિસ્થિતિ.
સફળ માસ્ટર/સ્લેવ નેટવર્ક કનેક્શન
મલ્ટિ-એજન્ટ કમ્યુનિકેશન ગોઠવ્યા પછી, જો માસ્ટર અને સ્લેવ મશીન સફળતાપૂર્વક નેટવર્ક સાથે કનેક્ટ થઈ શકે છે, તો તેઓ નેટવર્ક સમયને આપમેળે સિંક્રનાઇઝ કરશે. આ કિસ્સામાં, સમય સુમેળ પ્રાપ્ત કરવા માટે કોઈ વધુ ક્રિયાઓની જરૂર નથી.
નેટવર્ક ડિસ-કનેક્શન્સનું મુશ્કેલીનિવારણ
મલ્ટી-એજન્ટ કમ્યુનિકેશન ગોઠવ્યા પછી, જો માસ્ટર અને સ્લેવ ઉપકરણો સફળતાપૂર્વક નેટવર્ક સાથે કનેક્ટ થઈ શકતા નથી, તો સમયને મેન્યુઅલી સિંક્રનાઇઝ કરવું જરૂરી છે. અમે સમય સેટિંગ પૂર્ણ કરવા માટે તારીખ આદેશનો ઉપયોગ કરીશું.
પ્રથમ, ટર્મિનેટર ટૂલ ઇન્સ્ટોલ કરો. ટર્મિનેટર ટૂલમાંથી, માસ્ટર અને સ્લેવના કંટ્રોલ ટર્મિનલ્સને સમાન ટર્મિનલ વિન્ડોમાં મૂકવા માટે વિન્ડો સ્પ્લિટિંગ ટૂલનો ઉપયોગ કરો (સ્પ્લિટ વિન્ડો સેટ કરવા માટે જમણું-ક્લિક કરો અને અલગ-અલગ વિંડોમાં ssh દ્વારા માસ્ટર અને સ્લેવ મશીનમાં લૉગ ઇન કરો) .
sudo apt-get install terminator # ટર્મિનલ વિન્ડોને સ્પ્લિટ કરવા માટે ટર્મિનેટર ડાઉનલોડ કરો
ઉપર ડાબી બાજુના બટન પર ક્લિક કરો, [બ્રોડકાસ્ટ ટુ ઓલ]/[બ્રોડકાસ્ટ ઓલ] વિકલ્પ પસંદ કરો, નીચેનો આદેશ દાખલ કરો. પછી માસ્ટર અને સ્લેવ માટે સમાન સમય સેટ કરવા માટે ટર્મિનેટર ટૂલનો ઉપયોગ કરો.
sudo તારીખ -s "2022-01-30 15:15:00" # મેન્યુઅલ સમય સેટઅપ
મલ્ટી-એજન્ટ ROS પેકેજ
ROS પેકેજ પરિચય
ગુલામનું નામ સેટ કરો
wheeltec_multi ફંક્શન પેકેજમાં, ભૂલો ટાળવા માટે દરેક સ્લેવ રોબોટ માટે અનન્ય નામ સેટ કરવું જરૂરી છે. માજી માટેample, slave1 માટે નંબર 1 અને slave2 માટે નંબર 2 વગેરે.
જુદાં જુદાં નામો સેટ કરવાનો હેતુ ચાલી રહેલ નોડ્સને જૂથબદ્ધ કરવાનો અને તેમને વિવિધ નેમસ્પેસ દ્વારા અલગ પાડવાનો છે. માજી માટેample, સ્લેવ 1 નો રડાર વિષય છે: /slave1/scan, અને સ્લેવ 1 નો LiDAR નોડ છે: / slave1/laser.
સ્લેવ કોઓર્ડિનેટ્સ સેટ કરો
wheeltec_multi પેકેજ વૈવિધ્યપૂર્ણ રચનાઓ અમલમાં મૂકી શકે છે. જ્યારે વિવિધ રચનાઓ જરૂરી હોય, ત્યારે ફક્ત સ્લેવ રોબોટ્સના ઇચ્છિત કોઓર્ડિનેટ્સને સંશોધિત કરો. Slave_x અને slave_y એ મૂળ સંદર્ભ બિંદુ તરીકે માસ્ટર સાથે ગુલામના x અને y કોઓર્ડિનેટ્સ છે. માસ્ટરનો આગળનો ભાગ એ x કોઓર્ડિનેટની સકારાત્મક દિશા છે, અને ડાબી બાજુ એ y સંકલનની હકારાત્મક દિશા છે. સેટિંગ પૂર્ણ થયા પછી, ગુલામના અપેક્ષિત સંકલન તરીકે TF કોઓર્ડિનેટ સ્લેવ1 જારી કરવામાં આવશે.
જો ત્યાં એક માસ્ટર અને બે ગુલામો હોય, તો નીચેની રચના સેટ કરી શકાય છે:
- આડી રચના: તમે ડાબી બાજુના સ્લેવના કોઓર્ડિનેટ્સને: slave_x:0, slave_y: 0.8 અને જમણી બાજુના સ્લેવના કોઓર્ડિનેટ્સને: slave_x:0, slave_y:-0.8 પર સેટ કરી શકો છો.
- કૉલમ રચના: એક સ્લેવના કોઓર્ડિનેટ્સ: slave_x:-0.8, slave_y:0, અને બીજા સ્લેવના કોઓર્ડિનેટ્સ: slave_x:-1.8, slave_y:0 પર સેટ કરી શકાય છે.
- ત્રિકોણાકાર રચના: એક સ્લેવના કોઓર્ડિનેટ્સ સેટ કરી શકાય છે: slave_x:-0.8, slave_y: 0.8, અને બીજા સ્લેવના કોઓર્ડિનેટ્સ: slave_x:-0.8, slave_y:-0.8 પર સેટ કરી શકાય છે.
અન્ય રચનાઓ જરૂરિયાત મુજબ કસ્ટમાઇઝ કરી શકાય છે.
નોંધ
બે રોબોટ્સ વચ્ચે ભલામણ કરેલ અંતર 0.8 પર સેટ છે, અને તે 0.6 કરતા ઓછું ન રાખવાની ભલામણ કરવામાં આવે છે. સ્લેવ્સ અને માસ્ટર વચ્ચેનું અંતર 2.0 થી નીચે સેટ કરવાની ભલામણ કરવામાં આવે છે. તે માસ્ટરથી જેટલું દૂર છે, જ્યારે માસ્ટર વળતો હોય ત્યારે સ્લેવની રેખીય ગતિ વધુ હોય છે. મહત્તમ ઝડપની મર્યાદાને લીધે, સ્લેવની ઝડપ જો તે જરૂરિયાતોને પૂર્ણ કરતી નથી તો તે વિચલિત થશે. રોબોટની રચના અસ્તવ્યસ્ત બની જશે.
ગુલામ પદની શરૂઆત
સ્લેવની પ્રારંભિક સ્થિતિ મૂળભૂત રીતે અપેક્ષિત કોઓર્ડિનેટ્સ પર છે. પ્રોગ્રામ ચલાવતા પહેલા, શરૂઆત પૂર્ણ કરવા માટે સ્લેવ રોબોટને તેના અપેક્ષિત કોઓર્ડિનેટ્સની નજીક મૂકો.
આ કાર્ય પોઝ_સેટર નોડ દ્વારા અમલમાં મૂકવામાં આવે છે file આકૃતિ 4-1-3 માં બતાવ્યા પ્રમાણે, wheeltec_multi પેકેજમાં turn_on_wheeltec_robot.launch નામ આપવામાં આવ્યું છે.
જો વપરાશકર્તા સ્લેવની પ્રારંભિક સ્થિતિને કસ્ટમાઇઝ કરવા માંગે છે, તો તેણે wheeltec_slave.launch માં આકૃતિ 4-1-4 માં બતાવ્યા પ્રમાણે માત્ર slave_x અને slave_y મૂલ્યો સેટ કરવાની જરૂર છે. slave_x અને slave_y મૂલ્યો turn_on_wheeltec_robot.launch પર પસાર કરવામાં આવશે અને pose_setter નોડને સોંપવામાં આવશે. પ્રોગ્રામ ચલાવતા પહેલા ફક્ત રોબોટને કસ્ટમ સ્થિતિમાં મૂકો.
પોઝિશન કન્ફિગરેશન
મલ્ટિ-એજન્ટ રચનામાં, ઉકેલવા માટેની પ્રથમ સમસ્યા એ માસ્ટર અને સ્લેવની સ્થિતિ છે. માસ્ટર પહેલા 2D મેપ બનાવશે. નકશો બનાવ્યા અને સાચવ્યા પછી, 2D નેવિગેશન પેકેજ ચલાવો અને માસ્ટરની સ્થિતિને ગોઠવવા માટે 2D નેવિગેશન પેકેજમાં અનુકૂલનશીલ મોન્ટે કાર્લો પોઝિશનિંગ અલ્ગોરિધમ (amcl પોઝિશનિંગ) નો ઉપયોગ કરો.
માસ્ટર અને સ્લેવ એક જ નેટવર્કમાં હોવાથી અને એક જ નોડ મેનેજરને શેર કરતા હોવાથી, માસ્ટરે 2D નેવિગેશન પેકેજમાંથી નકશો લોન્ચ કર્યો છે, બધા સ્લેવ એક જ નોડ મેનેજર હેઠળ સમાન નકશાનો ઉપયોગ કરી શકે છે. તેથી, ગુલામને નકશો બનાવવાની જરૂર નથી. wheeltec_slave.launch માં, મોન્ટે કાર્લો પોઝિશનિંગ (amcl પોઝિશનિંગ) ચલાવો, ગુલામો માસ્ટર દ્વારા બનાવેલા નકશાનો ઉપયોગ કરીને તેમની સ્થિતિને ગોઠવી શકે છે.
રચના કેવી રીતે બનાવવી અને રચના જાળવવી
રચના ચળવળની પ્રક્રિયામાં, મુખ્ય ચળવળને Rviz, કીબોર્ડ, રિમોટ કંટ્રોલ અને અન્ય પદ્ધતિઓ દ્વારા નિયંત્રિત કરી શકાય છે. સ્લેવ તેની હિલચાલને નિયંત્રિત કરવા અને રચનાનું લક્ષ્ય હાંસલ કરવા માટે સ્લેવ_ટીએફ_લિસ્ટનર નોડ દ્વારા તેની ગતિની ગણતરી કરે છે.
slave_tf_listener નોડ નોડની ગણતરી દ્વારા વધુ પડતી ઝડપને ટાળવા માટે સ્લેવ સ્પીડને મર્યાદિત કરે છે, જે શ્રેણીબદ્ધ અસરોનું કારણ બનશે. ચોક્કસ મૂલ્ય wheeltec_slave.launch માં સુધારી શકાય છે.
રચના અલ્ગોરિધમના સંબંધિત પરિમાણો નીચે મુજબ છે:
રચનામાં અવરોધ ટાળવો
મલ્ટિ-એજન્ટ રચનામાં, માસ્ટર અવરોધ ટાળવા માટે મૂવ_બેઝ નોડનો ઉપયોગ કરી શકે છે. જો કે, સ્લેવની શરૂઆત મૂવ_બેઝ નોડનો ઉપયોગ કરતી નથી. આ સમયે, સ્લેવ પ્રોગ્રામમાં મલ્ટિ_અવોઇડન્સ નોડને કૉલ કરવાની જરૂર છે. અવરોધ ટાળવા નોડ પેકેજમાં મૂળભૂત રીતે સક્ષમ છે. જો જરૂરી હોય તો, અવરોધ ટાળવા નોડને નિષ્ક્રિય કરવા માટે "ખોટા" પર સેટ કરી શકાય છે.
અવરોધ નિવારણ નોડના કેટલાક સંબંધિત પરિમાણો નીચેની આકૃતિમાં બતાવવામાં આવ્યા છે, જ્યાં સલામત_અંતર એ અવરોધ સલામત અંતર મર્યાદા છે, અને ભય_અંતર એ અવરોધ જોખમી અંતર મર્યાદા છે. જ્યારે અવરોધ સલામત_અંતર અને ભય_અંતરની અંદર હોય છે, ત્યારે ગુલામ અવરોધને ટાળવા માટે તેની સ્થિતિને સમાયોજિત કરે છે. જ્યારે અવરોધ ભય_અંતરની અંદર હોય છે, ત્યારે ગુલામ અવરોધથી દૂર જશે.
ઓપરેશન પ્રક્રિયા
એક્ઝેક્યુશન આદેશ દાખલ કરો
મલ્ટિ-એજન્ટ રચના શરૂ કરતા પહેલા તૈયારીઓ:
- માસ્ટર અને સ્લેવ એક જ નેટવર્કથી કનેક્ટ થાય છે અને મલ્ટિ-એજન્ટ કમ્યુનિકેશન યોગ્ય રીતે સેટ કરે છે
- માસ્ટર અગાઉથી 2D નકશો બનાવે છે અને તેને સાચવે છે
- માસ્ટરને નકશાના પ્રારંભિક બિંદુ પર મૂકવામાં આવે છે, અને સ્લેવને પ્રારંભિક સ્થિતિની નજીક મૂકવામાં આવે છે (મૂળભૂત સ્લેવ રચના સ્થિતિ)
- Jetson Nano/Raspberry Pi માં રિમોટલી લોગ ઇન કર્યા પછી, સમય સુમેળ કરો.
sudo તારીખ -s "2022-04-01 15:15:00"
પગલું 1: માસ્ટર તરફથી 2D નકશો ખોલો.
roslaunch turn_on_wheeltec_robot navigation.launch
પગલું 2: બધા ગુલામોમાંથી રચના કાર્યક્રમ ચલાવો.
roslaunch wheeltec_multi wheeltec_slave.launch
પગલું 3: માસ્ટર તરફથી કીબોર્ડ કંટ્રોલ નોડ ખોલો અથવા માસ્ટર મૂવમેન્ટને રિમોટ કંટ્રોલ કરવા માટે જોયસ્ટિકનો ઉપયોગ કરો.
roslaunch wheeltec_robot_rc keyboard_teleop.launch
પગલું 4: (વૈકલ્પિક) Rviz તરફથી રોબોટની હિલચાલનું અવલોકન કરો.
આરવીઝ
નોંધ
- પ્રોગ્રામ એક્ઝેક્યુટ કરતા પહેલા સમય સુમેળ કામગીરી પૂર્ણ કરવાની ખાતરી કરો.
- મલ્ટિ-એજન્ટ રચનાના માસ્ટરને નિયંત્રિત કરતી વખતે, કોણીય વેગ ખૂબ ઝડપી ન હોવો જોઈએ. ભલામણ કરેલ રેખીય ગતિ 0.2m/s છે, કોણીય ઝડપ ડિગ્રી 0.3rad/s ની નીચે છે. જ્યારે માસ્ટર વળાંક લે છે, ત્યારે ગુલામ માસ્ટરથી જેટલો દૂર છે, તેટલી વધુ રેખીય ગતિ જરૂરી છે. પેકેજમાં રેખીય ગતિ અને કોણીય ગતિની મર્યાદાને કારણે, જ્યારે સ્લેવ કાર જરૂરી ઝડપ સુધી પહોંચી શકતી નથી, ત્યારે રચના અસ્તવ્યસ્ત હશે. એકંદરે, વધુ પડતી રેખીય ગતિ રોબોટને સરળતાથી નુકસાન પહોંચાડી શકે છે.
- ROS હોસ્ટની મર્યાદિત ઓન-બોર્ડ વાઇફાઇ બેન્ડવિડ્થને કારણે જ્યારે સ્લેવની સંખ્યા એક કરતાં વધુ હોય છે, ત્યારે મલ્ટિ-એજન્ટ કમ્યુનિકેશનમાં નોંધપાત્ર વિલંબ અને ડિસ્કનેક્શન કરવાનું સરળ બને છે. રાઉટરનો ઉપયોગ કરવાથી આ સમસ્યા સારી રીતે ઉકેલી શકાય છે.
- મલ્ટિ-રોબોટ રચનાનું TF વૃક્ષ (2 સ્લેવ્સ) છે: rqt_tf_tree
- મલ્ટિ-રોબોટ રચના (2 સ્લેવ્સ) નો નોડ રિલેશનશિપ ડાયાગ્રામ છે: rqt_graph
દસ્તાવેજો / સંસાધનો
![]() |
રોબોવર્ક્સ રોબોફ્લીટ ઓરીન નેનો x3 આરઓએસ રોબોટ [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા Orin Nano x3, Robofleet ROS Robot, Robofleet ROS, Robot, Robofleet Orin Nano x3 ROS રોબોટ, Robofleet Orin Nano x3, Orin Nano x3 ROS Robot, Orin Nano x3 |