ROBOWORKS రోబోఫ్లీట్ మల్టీ-ఏజెంట్ అల్గోరిథంలు
స్పెసిఫికేషన్లు
- ఉత్పత్తి పేరు: ROBOWORKS
- వెర్షన్: 20240501
- తయారు చేసినవారు: వేన్ లియు & జానెట్ లిన్
- తేదీ: 1 మే 2024
ఉత్పత్తి సమాచారం
ROBOWORKS అనేది రోబోట్ కోఆర్డినేషన్ మరియు కమ్యూనికేషన్ కోసం వివిధ అల్గారిథమ్లను అమలు చేయడానికి అనుమతించే బహుళ-ఏజెంట్ సిస్టమ్.
తరచుగా అడిగే ప్రశ్నలు
ప్ర: రోబోట్ స్వయంచాలకంగా Wifiకి కనెక్ట్ చేయలేకపోతే నేను ఏమి చేయాలి?
A: రోబోట్ ఆటోమేటిక్గా కనెక్ట్ చేయడంలో విఫలమైతే, నెట్వర్క్ కార్డ్ను అన్ప్లగ్ చేసి, రీప్లగ్ చేసి మళ్లీ కనెక్ట్ చేయడానికి ప్రయత్నించండి.
సారాంశం
ఈ పత్రం ప్రధానంగా wheeltec_multi అనే మల్టీ-రోబోట్ ఫార్మేషన్ ఫంక్షన్ ప్యాకేజీ వినియోగాన్ని వివరిస్తుంది.
ఈ పత్రం నాలుగు భాగాలుగా విభజించబడింది:
- మొదటి భాగం ప్రధానంగా మల్టీ-రోబోట్ ఫార్మేషన్ పద్ధతిని పరిచయం చేయడం;
- రెండవ భాగం ప్రధానంగా ROS బహుళ-మెషిన్ కమ్యూనికేషన్ సెట్టింగ్లను వివరిస్తుంది, ఇందులో ROS నిర్మాణ బహుళ-మెషిన్ కమ్యూనికేషన్ మరియు ROS కమ్యూనికేషన్ ప్రక్రియలో ఎదురయ్యే సమస్యలు ఉన్నాయి;
- మూడవ భాగం ప్రధానంగా మల్టీ-మెషిన్ టైమ్ సింక్రొనైజేషన్ యొక్క ఆపరేషన్ దశలను వివరిస్తుంది;
- నాల్గవ భాగం బహుళ-మెషిన్ ఫార్మేషన్ ఫంక్షన్ ప్యాకేజీ యొక్క నిర్దిష్ట ఉపయోగాన్ని వివరిస్తుంది.
ఈ పత్రం యొక్క ఉద్దేశ్యం బహుళ-ఏజెంట్ రోబోటిక్ సిస్టమ్లకు పరిచయం మరియు బహుళ-రోబోట్ నిర్మాణ ప్రాజెక్ట్ను త్వరగా ప్రారంభించేందుకు వినియోగదారులను అనుమతిస్తుంది.
మల్టీ-ఏజెంట్ అల్గారిథమ్లకు పరిచయం
బహుళ-ఏజెంట్ ఫార్మేషన్ అల్గోరిథంలు
ఈ ROS ప్యాకేజీ ఫార్మేషన్ డ్రైవ్ సమయంలో సహకార నియంత్రణలో బహుళ-ఏజెంట్ల యొక్క సాధారణ సమస్యను అందిస్తుంది. ఈ ట్యుటోరియల్ ఈ అంశంపై భవిష్యత్తు అభివృద్ధికి పునాది వేస్తుంది. ఫార్మేషన్ కంట్రోల్ అల్గోరిథం ఒక పనిని నిర్వహించడానికి ఒక నిర్దిష్ట నిర్మాణాన్ని రూపొందించడానికి బహుళ ఏజెంట్లను నియంత్రించే అల్గోరిథంను సూచిస్తుంది. సహకారం అనేది ఒక పనిని పూర్తి చేయడానికి నిర్దిష్ట నిర్బంధ సంబంధాన్ని ఉపయోగించి బహుళ ఏజెంట్ల మధ్య సహకారాన్ని సూచిస్తుంది. మల్టీ-రోబోట్ ఫార్మేషన్ డ్రైవ్ను మాజీగా తీసుకోండిample, సహకారం అంటే బహుళ రోబోట్లు కలిసి కావలసిన నిర్మాణాన్ని ఏర్పరుస్తాయి. దీని సారాంశం ఒక నిర్దిష్ట గణిత సంబంధం, ఇది ప్రతి రోబోట్ యొక్క స్థానాల మధ్య సంతృప్తి చెందుతుంది. నిర్మాణ పద్ధతులు ప్రధానంగా కేంద్రీకృత నిర్మాణ నియంత్రణ మరియు పంపిణీ చేయబడిన నిర్మాణ నియంత్రణగా విభజించబడ్డాయి. కేంద్రీకృత ఫార్మేషన్ కంట్రోల్ మెథడ్స్లో ప్రధానంగా వర్చువల్ స్ట్రక్చర్ మెథడ్, గ్రాఫికల్ థియరీ మెథడ్ మరియు మోడల్ ప్రిడిక్టివ్ మెథడ్ ఉన్నాయి. డిస్ట్రిబ్యూటెడ్ ఫార్మేషన్ కంట్రోల్ మెథడ్స్లో ప్రధానంగా లీడర్-ఫాలోయర్ మెథడ్, బిహేవియర్-బేస్డ్ మెథడ్ మరియు వర్చువల్ స్ట్రక్చర్ మెథడ్ ఉంటాయి.
ఈ ROS ప్యాకేజీ బహుళ-రోబోట్ ఫార్మేషన్ డ్రైవ్ను అమలు చేయడానికి పంపిణీ చేయబడిన ఫార్మేషన్ కంట్రోల్ పద్ధతిలో లీడర్-ఫాలోవర్ పద్ధతిని వర్తింపజేస్తుంది. నిర్మాణంలో ఒక రోబోట్ నాయకుడిగా నియమించబడింది మరియు ఇతర రోబోట్లు నాయకుడిని అనుసరించడానికి బానిసలుగా నియమించబడతాయి. కింది రోబోట్లు నిర్దిష్ట దిశ మరియు వేగంతో ట్రాక్ చేయడానికి కోఆర్డినేట్లను సెట్ చేయడానికి అల్గోరిథం ప్రముఖ రోబోట్ యొక్క కదలిక పథాన్ని ఉపయోగిస్తుంది. ట్రాకింగ్ కోఆర్డినేట్ల నుండి స్థాన విచలనాలను సరిచేయడం ద్వారా, ఫాలోవర్లు ఫార్మేషన్ డ్రైవ్ యొక్క లక్ష్యాలను సాధించడానికి ఫాలోయర్ మరియు ఆశించిన ట్రాకింగ్ కోఆర్డినేట్ల మధ్య విచలనాన్ని సున్నాకి తగ్గించారు. ఈ విధంగా, అల్గోరిథం సాపేక్షంగా తక్కువ సంక్లిష్టంగా ఉంటుంది.
అడ్డంకి ఎగవేత అల్గోరిథంలు
ఆర్టిఫిషియల్ పొటెన్షియల్ ఫీల్డ్ మెథడ్ అనేది ఒక సాధారణ అడ్డంకి ఎగవేత అల్గోరిథం. భౌతిక వాతావరణంలో రోబోట్ యొక్క కదలిక వర్చువల్ ఆర్టిఫిషియల్ ఫోర్స్ ఫీల్డ్లో కదలికగా పరిగణించబడుతుంది. సమీప అడ్డంకి LiDAR ద్వారా గుర్తించబడుతుంది. రోబోట్కు వికర్షణను ఉత్పత్తి చేయడానికి అడ్డంకి ఒక వికర్షక శక్తి క్షేత్రాన్ని అందిస్తుంది మరియు లక్ష్యం పాయింట్ రోబోట్కు గురుత్వాకర్షణ శక్తిని ఉత్పత్తి చేయడానికి గురుత్వాకర్షణ క్షేత్రాన్ని అందిస్తుంది. ఈ విధంగా, ఇది వికర్షణ మరియు ఆకర్షణ యొక్క మిశ్రమ చర్యలో రోబోట్ యొక్క కదలికను నియంత్రిస్తుంది.
ఈ ROS ప్యాకేజీ ఆర్టిఫిషియల్ పొటెన్షియల్ ఫీల్డ్ మెథడ్పై ఆధారపడిన మెరుగుదల. ముందుగా, ఫార్మేషన్ అల్గోరిథం స్లేవ్ ఫాలోయర్ యొక్క లీనియర్ మరియు కోణీయ వేగాన్ని గణిస్తుంది. అప్పుడు అది అడ్డంకి ఎగవేత అవసరాలకు అనుగుణంగా సరళ మరియు కోణీయ వేగాన్ని పెంచుతుంది లేదా తగ్గిస్తుంది. స్లేవ్ ఫాలోయర్ మరియు అడ్డంకి మధ్య దూరం దగ్గరగా ఉన్నప్పుడు, స్లేవ్ ఫాలోవర్కు అడ్డంకి యొక్క వికర్షణ శక్తి ఎక్కువగా ఉంటుంది. ఇంతలో, సరళ వేగం యొక్క మార్పు మరియు కోణీయ వేగం వైవిధ్యాలు ఎక్కువగా ఉంటాయి. అడ్డంకి స్లేవ్ ఫాలోయర్ యొక్క ముందు భాగానికి దగ్గరగా ఉన్నప్పుడు, స్లేవ్ ఫాలోయర్కు అడ్డంకి యొక్క వికర్షణ ఎక్కువ అవుతుంది (ముందు వికర్షణ అతిపెద్దది మరియు వైపు వికర్షణ చిన్నది). ఫలితంగా, సరళ వేగం మరియు కోణీయ వేగం యొక్క వైవిధ్యాలు ఎక్కువగా ఉంటాయి. ఆర్టిఫిషియల్ పొటెన్షియల్ ఫీల్డ్ పద్ధతి ద్వారా, రోబోట్ అడ్డంకి ముందు ప్రతిస్పందించడం ఆపివేసినప్పుడు ఇది పరిష్కారాన్ని మెరుగుపరుస్తుంది. ఇది మెరుగైన అడ్డంకి ఎగవేత ప్రయోజనాన్ని అందిస్తుంది.
మల్టీ-ఏజెంట్ కమ్యూనికేషన్ సెటప్
మల్టీ-రోబోట్ ఫార్మేషన్ను పూర్తి చేయడానికి మల్టీ-ఏజెంట్ కమ్యూనికేషన్ కీలక దశల్లో ఒకటి. బహుళ రోబోట్ల సాపేక్ష స్థానాలు తెలియనప్పుడు, కనెక్షన్ల స్థాపనను సులభతరం చేయడానికి రోబోట్లు కమ్యూనికేషన్ ద్వారా పరస్పరం సమాచారాన్ని పంచుకోవాలి. ROS-డిస్ట్రిబ్యూటెడ్ ఆర్కిటెక్చర్ మరియు నెట్వర్క్ కమ్యూనికేషన్లు చాలా శక్తివంతమైనవి. ఇది ఇంటర్-ప్రాసెస్ కమ్యూనికేషన్ కోసం మాత్రమే కాకుండా వివిధ పరికరాల మధ్య కమ్యూనికేషన్ కోసం కూడా సౌకర్యవంతంగా ఉంటుంది. నెట్వర్క్ కమ్యూనికేషన్ ద్వారా, అన్ని నోడ్లు ఏ కంప్యూటర్లోనైనా అమలు చేయగలవు. డేటా ప్రాసెసింగ్ వంటి ప్రధాన పనులు హోస్ట్ వైపు పూర్తి చేయబడతాయి. వివిధ సెన్సార్ల ద్వారా సేకరించబడిన పర్యావరణ డేటాను స్వీకరించడానికి బానిస యంత్రాలు బాధ్యత వహిస్తాయి. ROSలో మాస్టర్ నోడ్ను అమలు చేసే మేనేజర్ ఇక్కడ హోస్ట్. ప్రస్తుత మల్టీ-ఏజెంట్ కమ్యూనికేషన్ ఫ్రేమ్వర్క్ నోడ్ మేనేజర్ మరియు బహుళ రోబోట్ల మధ్య కమ్యూనికేషన్లను నిర్వహించడానికి పారామీటర్ మేనేజర్ ద్వారా ఉంటుంది.
బహుళ-ఏజెంట్ కమ్యూనికేషన్లను సెటప్ చేయడానికి దశలు
- అదే నెట్వర్క్లో ROS నియంత్రణలను సెటప్ చేయండి
- ఒకే నెట్వర్క్లో మాస్టర్/స్లేవ్ ROS నియంత్రణలను సెటప్ చేయడానికి 2 మార్గాలు ఉన్నాయి.
ఎంపిక 1:
మాస్టర్ నోడ్ మేనేజర్ని అమలు చేయడం ద్వారా మాస్టర్ హోస్ట్ స్థానిక వైఫైని సృష్టిస్తుంది. సాధారణంగా, మాస్టర్గా నియమించబడిన రోబోట్లలో ఒకరు ఈ వైఫై నెట్వర్క్ను సృష్టిస్తారు. ఇతర రోబోలు లేదా వర్చువల్ మెషీన్లు ఈ వైఫై నెట్వర్క్లో బానిసలుగా చేరతాయి.
ఎంపికలు 2:
స్థానిక వైఫై నెట్వర్క్ మూడవ పక్ష రూటర్ ద్వారా సమాచార రిలే కేంద్రంగా అందించబడుతుంది. అన్ని రోబోలు ఒకే రూటర్కు కనెక్ట్ చేయబడ్డాయి. ఇంటర్నెట్ కనెక్షన్ లేకుండా కూడా రూటర్ ఉపయోగించవచ్చు. రోబోట్లలో ఒకదానిని మాస్టర్గా ఎంచుకుని, మాస్టర్ నోడ్ మేనేజర్ని అమలు చేయండి. ఇతర రోబోట్లు స్లేవ్లుగా నియమించబడతాయి మరియు మాస్టర్ నోడ్ మేనేజర్ను మాస్టర్ నుండి అమలు చేస్తాయి.
ఏ ఎంపికను ఎంచుకోవాలో నిర్ణయం మీ ప్రాజెక్ట్ అవసరాలపై ఆధారపడి ఉంటుంది. కమ్యూనికేట్ చేయడానికి అవసరమైన రోబోట్ల సంఖ్య పెద్ద మొత్తంలో లేకుంటే, ఎంపిక 1 సిఫార్సు చేయబడింది ఎందుకంటే ఇది ఖర్చును ఆదా చేస్తుంది మరియు సెటప్ చేయడం సులభం. రోబోట్ల సంఖ్య పెద్ద పరిమాణంలో ఉన్నప్పుడు, ఎంపిక 2 సిఫార్సు చేయబడింది. ROS మాస్టర్ నియంత్రణ మరియు పరిమిత ఆన్బోర్డ్ వైఫై బ్యాండ్విడ్త్ యొక్క కంప్యూటింగ్ పవర్పై పరిమితి సులభంగా ఆలస్యం మరియు నెట్వర్క్ అంతరాయాలకు కారణమవుతుంది. రౌటర్ ఈ సమస్యలను సులభంగా పరిష్కరించగలదు. మల్టీ-ఏజెంట్ కమ్యూనికేషన్ను నిర్వహిస్తున్నప్పుడు, వర్చువల్ మెషీన్ను ROS స్లేవ్గా ఉపయోగించినట్లయితే, దాని నెట్వర్క్ మోడ్ను బ్రిడ్జ్ మోడ్కు సెట్ చేయాల్సి ఉంటుందని దయచేసి గమనించండి.
మాస్టర్/స్లేవ్ ఎన్విరాన్మెంట్ వేరియబుల్స్ కాన్ఫిగర్ చేయండి
అన్ని ROS మాస్టర్లు ఒకే నెట్వర్క్లో ఉన్న తర్వాత, మల్టీ-ఏజెంట్ కమ్యూనికేషన్ కోసం ఎన్విరాన్మెంట్ వేరియబుల్స్ సెట్ చేయాలి. ఈ ఎన్విరాన్మెంట్ వేరియబుల్ ప్రధాన డైరెక్టరీలోని .bashrc ఫైల్లో కాన్ఫిగర్ చేయబడింది. దీన్ని ప్రారంభించేందుకు gedit ~/.bashrc ఆదేశాన్ని అమలు చేయండి. మల్టీ-ఏజెంట్ కమ్యూనికేషన్లో మాస్టర్ మరియు స్లేవ్ యొక్క .bashrc ఫైల్లు రెండూ కాన్ఫిగర్ చేయబడాలని దయచేసి గమనించండి. మార్చవలసినది ఫైల్ చివరిలో ఉన్న IP చిరునామాలు. మూర్తి 2-1-4లో చూపిన విధంగా రెండు పంక్తులు ROS_MASTER_URI మరియు ROS_HOSTNAME. ROS హోస్ట్ యొక్క ROS_MASTER_URI మరియు ROS_HOSTNAME రెండూ స్థానిక IPలు. ROS స్లేవ్ .bashrc ఫైల్లోని ROS_MASTER_URIని హోస్ట్ యొక్క IP చిరునామాకు మార్చాలి, అయితే ROS_HOSTNAME స్థానిక IP చిరునామాగా ఉంటుంది.
ROS బహుళ-మెషిన్ కమ్యూనికేషన్ ROS విడుదల సంస్కరణ ద్వారా నిర్బంధించబడలేదు. బహుళ-యంత్ర కమ్యూనికేషన్ ప్రక్రియలో, కింది వాటి గురించి తెలుసుకోవాలి:
- ROS స్లేవ్ ప్రోగ్రామ్ యొక్క ఆపరేషన్ ROS మాస్టర్ పరికరం యొక్క ROS మాస్టర్ ప్రోగ్రామ్పై ఆధారపడి ఉంటుంది. స్లేవ్ పరికరంలో స్లేవ్ ప్రోగ్రామ్ను అమలు చేయడానికి ముందు ROS మాస్టర్ ప్రోగ్రామ్ తప్పనిసరిగా మాస్టర్ పరికరంలో తప్పనిసరిగా ప్రారంభించబడాలి.
- మల్టీ-మెషిన్ కమ్యూనికేషన్లో మాస్టర్ మరియు స్లేవ్ మెషీన్ల IP చిరునామాలు ఒకే నెట్వర్క్లో ఉండాలి. అంటే IP చిరునామా మరియు సబ్నెట్ మాస్క్ ఒకే నెట్వర్క్లో ఉన్నాయి.
- ఎన్విరాన్మెంట్ కాన్ఫిగరేషన్ ఫైల్ .bashrcలో ROS_HOSTNAME లోకల్ హోస్ట్ని ఉపయోగించడానికి సిఫారసు చేయబడలేదు. నిర్దిష్ట IP చిరునామాను ఉపయోగించమని సిఫార్సు చేయబడింది.
- స్లేవ్ IP చిరునామా సరిగ్గా సెట్ చేయని సందర్భంలో, స్లేవ్ పరికరం ఇప్పటికీ ROS మాస్టర్ను యాక్సెస్ చేయగలదు కానీ నియంత్రణ సమాచారాన్ని ఇన్పుట్ చేయదు.
- వర్చువల్ మెషీన్ బహుళ-ఏజెంట్ కమ్యూనికేషన్లో పాల్గొంటే, దాని నెట్వర్క్ మోడ్ను బ్రిడ్జ్ మోడ్కు సెట్ చేయాలి. నెట్వర్క్ కనెక్షన్ కోసం స్టాటిక్ IP ఎంచుకోబడదు.
- బహుళ-మెషిన్ కమ్యూనికేషన్ సాధ్యం కాదు view లేదా స్థానికంగా లేని సందేశ డేటా రకం అంశాలకు సభ్యత్వాన్ని పొందండి.
- రోబోట్ల మధ్య కమ్యూనికేషన్ విజయవంతమైందో లేదో ధృవీకరించడానికి మీరు లిటిల్ టర్టిల్ సిమ్యులేషన్ డెమోని ఉపయోగించవచ్చు:
- a. మాస్టర్ నుండి పరుగెత్తండి
- ROS సేవలను పునరుద్ధరించండి #ప్రారంభించండి
- rostrum turtles turtlesim_node #launch turtles ఇంటర్ఫేస్
- b. బానిస నుండి పారిపోండి
- తాబేళ్లను మళ్లీ అమలు చేయండి టర్టిల్_టెలియోప్_కీ #తాబేళ్ల కోసం కీబోర్డ్ నియంత్రణ నోడ్ను ప్రారంభించండి
- a. మాస్టర్ నుండి పరుగెత్తండి
మీరు స్లేవ్లోని కీబోర్డ్ నుండి తాబేలు కదలికలను మార్చగలిగితే, మాస్టర్/స్లేవ్ కమ్యూనికేషన్ విజయవంతంగా స్థాపించబడిందని అర్థం.
ROSలో స్వయంచాలక WiFi కనెక్షన్
హోస్ట్ నెట్వర్క్ లేదా రూటర్ నెట్వర్క్కి ఆటోమేటిక్గా కనెక్ట్ అయ్యేలా రోబోట్ను ఎలా కాన్ఫిగర్ చేయాలో క్రింది విధానాలు వివరిస్తాయి.
Jetson నానో కోసం స్వయంచాలక WiFi కనెక్షన్ సెటప్
- జెట్సన్ నానోను VNC రిమోట్ సాధనం ద్వారా లేదా నేరుగా కంప్యూటర్ స్క్రీన్కు కనెక్ట్ చేయండి. ఎగువ కుడి మూలలో ఉన్న వైఫై చిహ్నంపై క్లిక్ చేసి, ఆపై “కనెక్షన్లను సవరించు..” క్లిక్ చేయండి.
- నెట్వర్క్ కనెక్షన్లలో + బటన్ను క్లిక్ చేయండి:
- "కనెక్షన్ రకాన్ని ఎంచుకోండి" విండో క్రింద, డ్రాప్-డౌన్ మెనుని క్లిక్ చేసి, "సృష్టించు..." బటన్ క్లిక్ చేయండి:
- కంట్రోల్ ప్యానెల్లో, వైఫై ఎంపికను క్లిక్ చేయండి. "కనెక్షన్ పేరు" మరియు SSID ఫీల్డ్లలో కనెక్ట్ చేయడానికి WiFi పేరును నమోదు చేయండి. "మోడ్" డ్రాప్డౌన్ మెనులో "క్లయింట్"ని ఎంచుకుని, "డివైస్" డ్రాప్డౌన్ మెనులో "wlan0"ని ఎంచుకోండి.
- కంట్రోల్ ప్యానెల్లో, “జనరల్” ఎంపికను క్లిక్ చేసి, “ఈ నెట్వర్క్కు స్వయంచాలకంగా కనెక్ట్ అవ్వండి…”ని తనిఖీ చేయండి. “ఆటో-యాక్టివేషన్ కోసం కనెక్షన్ ప్రాధాన్యత” ఎంపికలో కనెక్షన్ ప్రాధాన్యతను 1కి సెట్ చేయండి. “వినియోగదారులందరూ ఈ నెట్వర్క్కి కనెక్ట్ కావచ్చు” ఎంపికను తనిఖీ చేయండి. ఇతర వైఫై కోసం “ఆటో-యాక్టివేషన్ కోసం కనెక్షన్ ప్రాధాన్యత”లో ఎంపికను 0కి సెట్ చేసినప్పుడు, ఇది గతంలో ప్రాధాన్యమైన వైఫై నెట్వర్క్ అని అర్థం.
- కంట్రోల్ ప్యానెల్లోని “Wi-Fi సెక్యూరిటీ” ఎంపికను క్లిక్ చేయండి. "సెక్యూరిటీ" ఫీల్డ్లో "WPA & WPA2 పర్సనల్" ఎంచుకోండి. ఆపై "పాస్వర్డ్" ఫీల్డ్లో వైఫై పాస్వర్డ్ను నమోదు చేయండి.
గమనిక: వైఫై ప్రాధాన్యత 0కి సెట్ చేయబడినప్పుడు బూట్ అయిన తర్వాత రోబోట్ స్వయంచాలకంగా వైఫై నెట్వర్క్కి కనెక్ట్ కాలేకపోతే, అది బలహీనమైన వైఫై సిగ్నల్ సమస్య వల్ల సంభవించవచ్చు. ఈ సమస్యను నివారించడానికి, మీరు గతంలో కనెక్ట్ చేయబడిన అన్ని వైఫై ఎంపికలను తొలగించడాన్ని ఎంచుకోవచ్చు. హోస్ట్ లేదా రూటర్ ద్వారా సృష్టించబడిన వైఫై నెట్వర్క్ను మాత్రమే ఉంచండి. నెట్వర్క్ సెట్టింగ్ల నియంత్రణ ప్యానెల్లోని “IPv4 సెట్టింగ్లు” ఎంపికను క్లిక్ చేయండి. "మెథడ్" ఫీల్డ్లో "మాన్యువల్" ఎంపికను ఎంచుకోండి. ఆపై "జోడించు" క్లిక్ చేసి, "చిరునామా" ఫీల్డ్లో స్లేవ్ మెషీన్ యొక్క IP చిరునామాను పూరించండి. "నెట్మాస్క్" ఫీల్డ్లో "24"ని పూరించండి. "గేట్వే"లో IP నెట్వర్క్ సెగ్మెంట్ను పూరించండి. IP నెట్వర్క్ విభాగంలోని చివరి మూడు అంకెలను “1”కి మార్చండి. ఈ దశ యొక్క ముఖ్య ఉద్దేశ్యం IP చిరునామాను పరిష్కరించడం. ఇది మొదటిసారి పూర్తయిన తర్వాత, అదే WIFIకి కనెక్ట్ చేసినప్పుడు IP చిరునామా మారదు.
అన్ని సెట్టింగ్లు కాన్ఫిగర్ చేయబడిన తర్వాత, సెట్టింగ్లను సేవ్ చేయడానికి "సేవ్" క్లిక్ చేయండి. సేవ్ చేయడం విజయవంతం అయిన తర్వాత, రోబోట్ పవర్ ఆన్ చేయబడినప్పుడు హోస్ట్ లేదా రూటర్ యొక్క నెట్వర్క్కి స్వయంచాలకంగా కనెక్ట్ అవుతుంది.
గమనిక:
- ఇక్కడ సెట్ చేయబడిన IP చిరునామా సెక్షన్ 2.1లోని .bashrc ఫైల్లో సెట్ చేయబడిన IP చిరునామా వలె ఉండాలి.
- మాస్టర్ మరియు ప్రతి బానిస యొక్క IP చిరునామా ప్రత్యేకంగా ఉండాలి.
- మాస్టర్ మరియు స్లేవ్ IP చిరునామాలు ఒకే నెట్వర్క్ విభాగంలో ఉండాలి.
- స్లేవ్ రోబోట్ పవర్ ఆన్ చేయబడి, స్వయంచాలకంగా WiFi నెట్వర్క్కి కనెక్ట్ కావడానికి ముందు మీరు హోస్ట్ లేదా రూటర్ WiFi సిగ్నల్ను పంపే వరకు వేచి ఉండాలి.
- సెట్టింగ్ని కాన్ఫిగర్ చేసిన తర్వాత, రోబోట్ WiFi ఆన్లో ఉన్నప్పుడు స్వయంచాలకంగా కనెక్ట్ కాలేకపోతే, దయచేసి నెట్వర్క్ కార్డ్ని ప్లగ్ చేసి అన్ప్లగ్ చేసి, మళ్లీ కనెక్ట్ చేయడానికి ప్రయత్నించండి.
రాస్ప్బెర్రీ పై కోసం స్వయంచాలక 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, స్లేవ్1 కోసం నం. 1 మరియు స్లేవ్2 కోసం నం. 2 మొదలైనవి. వివిధ పేర్లను సెట్ చేయడం యొక్క ఉద్దేశ్యం రన్నింగ్ నోడ్లను సమూహపరచడం మరియు వాటిని వేర్వేరు నేమ్స్పేస్ల ద్వారా వేరు చేయడం. ఉదాహరణకుample, స్లేవ్ 1 యొక్క రాడార్ అంశం/slave1/స్కాన్, మరియు స్లేవ్ 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 కంటే తక్కువ సెట్ చేయాలని సిఫార్సు చేయబడింది. అది యజమాని నుండి ఎంత దూరంలో ఉందో, యజమాని తిరుగుతున్నప్పుడు బానిస యొక్క సరళ వేగం అంత ఎక్కువగా ఉంటుంది. గరిష్ట వేగం యొక్క పరిమితి కారణంగా, అవసరాలకు అనుగుణంగా లేకపోతే బానిస యొక్క వేగం తప్పుతుంది. రోబో నిర్మాణం అస్తవ్యస్తంగా మారుతుంది.
బానిస స్థానం యొక్క ప్రారంభం
- స్లేవ్ యొక్క ప్రారంభ స్థానం డిఫాల్ట్గా ఆశించిన కోఆర్డినేట్ల వద్ద ఉంటుంది. ప్రోగ్రామ్ను అమలు చేయడానికి ముందు, ప్రారంభాన్ని పూర్తి చేయడానికి స్లేవ్ రోబోట్ను దాని అంచనా కోఆర్డినేట్లకు దగ్గరగా ఉంచండి. ఈ ఫంక్షన్ మూర్తి 4-1-3లో చూపిన విధంగా, wheeltec_multi ప్యాకేజీలో turn_on_wheeltec_robot.launch అనే ఫైల్లోని pose_setter నోడ్ ద్వారా అమలు చేయబడుతుంది.
వినియోగదారు స్లేవ్ యొక్క ప్రారంభ స్థానాన్ని అనుకూలీకరించాలనుకుంటే, అతను లేదా ఆమె 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 నోడ్ ద్వారా దాని వేగాన్ని గణిస్తుంది. slave_tf_listener నోడ్ నోడ్ లెక్కింపు ద్వారా అధిక వేగాన్ని నివారించడానికి స్లేవ్ వేగాన్ని పరిమితం చేస్తుంది, ఇది వరుస ప్రభావాలకు కారణమవుతుంది. నిర్దిష్ట విలువను wheeltec_slave.launchలో సవరించవచ్చు.
నిర్మాణ అల్గోరిథం యొక్క సంబంధిత పారామితులు క్రింది విధంగా ఉన్నాయి:
అడ్డంకి నివారణ సమాచారం
బహుళ-ఏజెంట్ నిర్మాణంలో, మాస్టర్ అడ్డంకి ఎగవేతను పూర్తి చేయడానికి move_base నోడ్ని ఉపయోగించవచ్చు. అయినప్పటికీ, స్లేవ్ యొక్క ప్రారంభీకరణ మూవ్_బేస్ నోడ్ను ఉపయోగించదు. ఈ సమయంలో, స్లేవ్ ప్రోగ్రామ్లో మల్టీ_ఎవైడెన్స్ నోడ్ని పిలవాలి. ప్యాకేజీలో డిఫాల్ట్గా అడ్డంకి ఎగవేత నోడ్ ప్రారంభించబడుతుంది. అవసరమైతే, అడ్డంకి ఎగవేత నోడ్ను నిలిపివేయడానికి ఎగవేతని "తప్పు"కి సెట్ చేయవచ్చు.
అడ్డంకి ఎగవేత నోడ్ యొక్క కొన్ని సంబంధిత పారామితులు దిగువ చిత్రంలో చూపబడ్డాయి, ఇక్కడ safe_distance అనేది అడ్డంకి సురక్షిత దూర పరిమితి మరియు ప్రమాదం_దూరం అనేది అడ్డంకి ప్రమాదకరమైన దూర పరిమితి. అడ్డంకి సురక్షితమైన దూరం మరియు ప్రమాద దూరం లో ఉన్నప్పుడు, బానిస అడ్డంకిని నివారించడానికి తన స్థానాన్ని సర్దుబాటు చేస్తాడు. అడ్డంకి ప్రమాదంలో ఉన్నప్పుడు, బానిస అడ్డంకి నుండి దూరంగా వెళ్లిపోతాడు.
ఆపరేషన్ విధానం
అమలు ఆదేశాన్ని నమోదు చేయండి
బహుళ-ఏజెంట్ ఏర్పాటును ప్రారంభించడానికి ముందు సన్నాహాలు:
- మాస్టర్ మరియు స్లేవ్ ఒకే నెట్వర్క్కి కనెక్ట్ అయ్యి, మల్టీ-ఏజెంట్ కమ్యూనికేషన్ని సరిగ్గా సెటప్ చేస్తారు
- మాస్టర్ ముందుగానే 2D మ్యాప్ను రూపొందించి దానిని సేవ్ చేస్తాడు
- మాస్టర్ను మ్యాప్ ప్రారంభ బిందువు వద్ద ఉంచారు మరియు బానిస ప్రారంభ స్థానం (డిఫాల్ట్ స్లేవ్ ఫార్మేషన్ పొజిషన్) దగ్గర ఉంచబడతారు.
- Jetson Nano/Raspberry Piకి రిమోట్గా లాగిన్ అయిన తర్వాత, టైమ్ సింక్రొనైజేషన్ చేయండి.
సుడో తేదీ -s “2022-04-01 15:15:00”
- దశ 1: మాస్టర్ నుండి 2D మ్యాప్ను తెరవండి.
roslaunch turn_on_wheeltec_robot navigation.launch
- దశ 2: అన్ని బానిసల నుండి ఏర్పాటు కార్యక్రమాన్ని అమలు చేయండి.
roslaunch wheeltec_multi wheeltec_slave.launch
- దశ 3: మాస్టర్ నుండి కీబోర్డ్ కంట్రోల్ నోడ్ను తెరవండి లేదా మాస్టర్ కదలికను రిమోట్ కంట్రోల్ చేయడానికి జాయ్స్టిక్ని ఉపయోగించండి.
wheeltec_robot_rc keyboard_teleop.launchని మళ్లీ ప్రారంభించండి
- దశ 4: (ఐచ్ఛికం) Rviz నుండి రోబోట్ కదలికలను గమనించండి.
rviz
గమనిక:
- ప్రోగ్రామ్ను అమలు చేయడానికి ముందు సమయ సమకాలీకరణ ఆపరేషన్ను పూర్తి చేయాలని నిర్ధారించుకోండి.
- బహుళ-ఏజెంట్ నిర్మాణం యొక్క మాస్టర్ను నియంత్రించేటప్పుడు, కోణీయ వేగం చాలా వేగంగా ఉండకూడదు. సిఫార్సు చేయబడిన సరళ వేగం 0.2m/s, కోణీయ వేగం డిగ్రీ 0.3rad/s కంటే తక్కువ. యజమాని మలుపు తిరుగుతున్నప్పుడు, బానిస యజమాని నుండి ఎంత దూరం ఉంటే, ఎక్కువ సరళ వేగం అవసరం. ప్యాకేజీలో సరళ వేగం మరియు కోణీయ వేగంపై పరిమితి కారణంగా, స్లేవ్ కారు అవసరమైన వేగాన్ని చేరుకోలేనప్పుడు, నిర్మాణం అస్తవ్యస్తంగా ఉంటుంది. మొత్తంమీద, అధిక సరళ వేగం రోబోట్ను సులభంగా దెబ్బతీస్తుంది.
- బానిసల సంఖ్య ఒకటి కంటే ఎక్కువ ఉన్నప్పుడు, ROS హోస్ట్ యొక్క పరిమిత ఆన్-బోర్డ్ వైఫై బ్యాండ్విడ్త్ కారణంగా, బహుళ-ఏజెంట్ కమ్యూనికేషన్ యొక్క ముఖ్యమైన జాప్యాలు మరియు డిస్కనెక్ట్ చేయడం సులభం. రూటర్ని ఉపయోగించడం ద్వారా ఈ సమస్యను చక్కగా పరిష్కరించవచ్చు.
- బహుళ-రోబోట్ నిర్మాణం (2 బానిసలు) యొక్క TF చెట్టు: rqt_tf_tree
- మల్టీ-రోబోట్ ఫార్మేషన్ (2 స్లేవ్స్) యొక్క నోడ్ రిలేషన్షిప్ రేఖాచిత్రం: rqt_graph
పత్రాలు / వనరులు
![]() |
ROBOWORKS రోబోఫ్లీట్ మల్టీ-ఏజెంట్ అల్గోరిథంలు [pdf] యూజర్ మాన్యువల్ రోబోఫ్లీట్ మల్టీ ఏజెంట్ అల్గారిథమ్లు, రోబోఫ్లీట్, మల్టీ ఏజెంట్ అల్గారిథమ్స్, ఏజెంట్ అల్గారిథమ్లు, అల్గారిథమ్లు |