Ikhithi yenzwa ye-DFRobot LiDAR LD19 Laser
INCAZELO YOMKHIQIZO
I-LD19 yakhiwe ikakhulukazi i-laser esukela core, iyunithi ye-telex engenawaya, iyunithi yokuxhumana engenantambo, iyunithi yokulinganisa i-engeli, iyunithi yokushayela imoto kanye ne-mechanical casing.
I-LD19 esukela core isebenzisa ubuchwepheshe be-DTOF, obukwazi ukukala izikhathi ezingu-4,500 ngomzuzwana. Ngaso sonke isikhathi uma kulinganiswa ibanga, i-LD19 ikhipha i-laser ye-infrared iye phambili, futhi i-laser iboniswa kuyunithi yokwamukela yesithombe esisodwa ngemva kokuhlangana nento eqondiwe. Kulokhu, sithole isikhathi lapho i-laser ikhishwa khona kanye nesikhathi lapho iyunithi yokwamukela i-single-photon ithole i-laser. Umehluko wesikhathi phakathi kwakho kokubili isikhathi sokundiza kokukhanya. Isikhathi sokundiza singahlanganiswa nesivinini sokukhanya ukubala ibanga.
Ngemva kokuthola idatha yebanga, i-LD19 izohlanganisa amanani e-engeli akalwa iyunithi yokulinganisa i-engeli ukuze yakhe idatha yephoyinti yamafu, bese ithumela idatha yefu lephoyinti kusixhumi esibonakalayo sangaphandle ngokuxhumana okungenantambo. I-LD19 isekela ukulawula kwejubane kwangaphakathi, isivinini singazinza sibe ngu-10±0.1Hz phakathi kwamasekhondi angu-3 ngemva kokukhanyisa. Ngesikhathi esifanayo, i-interface yokufaka yangaphandle ye-PWM inikezwa ukusekela ukulawula isivinini sangaphandle. Ngemuva kokuthi iyunithi yokulawula yangaphandle ithole isivinini, ilawulwa yi-PID algorithm evaliwe, futhi isignali ye-PWM iyafakwa ukwenza iLD19 ifinyelele isivinini esishiwo.
Umdwebo wokuskena kwemvelo owenziwe idatha yefu yephoyinti le-LD19 uboniswa ngezansi:
INTERFACE YOKUXHUMANA
I-LD19 isebenzisa i-ZH1.5T-4P 1.5mm isixhumi ukuze ixhume nesistimu yangaphandle ukuze ibone ukunikezwa kwamandla nokwamukela idatha. Incazelo ethile yesixhumi esibonakalayo kanye nezidingo zepharamitha kuboniswa esithombeni/ithebula elilandelayo:
itheku inombolo | isignali igama | uhlobo | incazelo ion | mini umama | ejwayelekile | maxi umama |
1 | Tx | okukhiphayo | I-LiDAR okukhipha idatha | ov | 3.3V | 3.5V |
2 | I-PWM | okokufaka | ukulawula imoto | ov | – | 3.3V |
3 | GND | ukunikezwa kwamandla kagesi | negative | – | ov | – |
4 | I-P5V | ukunikezwa kwamandla kagesi | positive | 4.5V | 5V | 5.5V |
I-LD19 inomshayeli wemoto onesinyathelo esincane sokulawula isivinini, esisekela ukulawulwa kwesivinini sangaphakathi nokulawula isivinini sangaphandle. Uma iphinikhodi ye-PWM isekelwe phansi, okuzenzakalelayo ukulawula isivinini sangaphakathi, futhi isivinini esimisiwe ngu-10±0.1Hz. Ukulawula isivinini sangaphandle, isignali yegagasi yesikwele idinga ukuxhunywa kuphinikhodi ye-PWM, futhi ukuqala, ukuma kanye nesivinini semoto kungalawulwa ngomjikelezo womsebenzi wesignali ye-PWM. Imibandela yokucupha isilawuli sesivinini sangaphandle: a. Okokufaka kwe-PWM imvamisa 20-50K, okunconyiwe okungu-30K; b. Umjikelezo womsebenzi ungaphakathi (45%, 55%) wesikhawu (ngaphandle kwama-45% nama-55%), futhi okungenani u-100ms wesikhathi sokufaka esiqhubekayo. Ngemva kokuba isilawuli sejubane sangaphandle siqalisiwe, sihlala sisesimweni sokulawula isivinini sangaphandle, futhi isilawuli sejubane sangaphakathi sizobuyiselwa ngaphandle uma amandla avalwa futhi aqalwe kabusha; ngesikhathi esifanayo, ukulawula isivinini kungenziwa ngokulungisa umjikelezo we-PWM womsebenzi. Ngenxa yomehluko ngamunye wenjini yomkhiqizo ngamunye, isivinini sangempela singase sihluke lapho umjikelezo wemisebenzi usethelwe kunani elijwayelekile. Ukuze ulawule ngokunembile isivinini semoto, kuyadingeka ukwenza ukulawulwa kwe-loop evaliwe ngokusho kolwazi lwejubane kudatha etholiwe. Qaphela: Uma ungasebenzisi isilawuli sesivinini sangaphandle, iphinikhodi ye-PWM kufanele ibekwe phansi.
Ukuxhumana kwedatha kwe-LD19 kusebenzisa i-universal asynchronous serial port (UART) indlela eyodwa yokudlulisa, futhi imingcele yayo yokudlulisela ikhonjiswe kuthebula elilandelayo:
isilinganiso se-baud | ubude bedatha | yima kancane | i-parity kancane | isilawuli sokugeleza | |||
230400bit/s | 8 amabhithi | I | 1 | I | akukho | I | akukho |
IPROTOCOL YEDATHA
Ifomethi yephakethe ledatha
I-LD19 yamukela ukuxhumana kwendlela eyodwa. Ngemva kokusebenza okuzinzile, iqala ukuthumela amaphakethe edatha yokulinganisa ngaphandle kokuthumela noma yimiphi imiyalo. Ifomethi yephakethe lesilinganiso ikhonjiswe emfanekisweni ongezansi.
Unhlokweni | VerLen | Isivinini | I-engeli yokuqala | Idatha | I-engeli yokugcina | Isikhathiamp | Ukuhlola i-CRC | ||||
54H | I Byte | I-LSB | MSB | I-LSB | MSB | …… | I-LSB | MSB | I-LSB | MSB | I Byte |
- Unhlokweni: Ubude bungu-1 Byte, futhi inani limiswe kokuthi 0x54, okubonisa ukuqala kwephakethe ledatha;
- I-Verlen: Ubude buyi-1 Byte, izingcezu ezintathu eziphezulu zibonisa uhlobo lwephakethe, okwamanje elimiswe ku-1, futhi izingcezu ezinhlanu ezingezansi zibonisa inani lamaphoyinti okulinganisa ephaketheni, okwamanje elimiswe ku-12, ngakho-ke inani le-byte lilinganiselwe. ngo 0x2C;
- Isivinini: Ubude buyi-2 Byte, iyunithi ngamadigri ngomzuzwana, okubonisa isivinini se-lidar;
- I-engeli yokuqala: Ubude bungamabhayithi angu-2, kanti iyunithi ingamadigri angu-0.01, okubonisa i-engeli yokuqala yephoyinti lephakethe ledatha;
- Idatha: Ibonisa idatha yokulinganisa, ubude bedatha yokulinganisa ingamabhayithi angu-3, sicela ubheke isigaba esilandelayo ukuze uthole ukuhlaziya okuningiliziwe;
- I-engeli yokugcina: Ubude bungamabhayithi angu-2, futhi iyunithi ingamadigri angu-0.01, okubonisa i-engeli yokugcina yephoyinti lephakethe ledatha;
- Isikhathiamp : Ubude bungamabhayithi angu-2, iyunithi ingama-millisecond, futhi ubukhulu bungu-30000. Uma ifinyelela ku-30000, izobalwa futhi, okubonisa isikhathiamp inani lephakethe ledatha;
- Ukuhlola kwe-CRC: Ubude buyi-1 Byte, etholwe ekuqinisekisweni kwayo yonke idatha yangaphambilini ngaphandle kwayo. Ukuze uthole indlela yokuqinisekisa ye-CRC, bona okuqukethwe okulandelayo ukuze uthole imininingwane;
Ireferensi yesakhiwo sedatha imi kanje:
#chaza i-PO/NT_PER_PACK 12
#chaza HEADER 0x54
typedef struct _attribute_((igcwele)
{uint16_t ibanga;
uint8_t ubukhulu; } LidarPointStructDef;
typedef struct _attribute_((igcwele)) {
i-uint8_t: unhlokweni;
uint8 t: ver_len;
i-uint16_t: isivinini;
uint16 t: i-angle_ yokuqala;
Iphoyinti le-LidarPointStructDef[POINT_PER_PACK};
uint16 t: i-engeli_yokugcina;
i-uint16_t: izikhathiamp;
uint8 t: crc8;
}LiDARFrameTypeDef;
Indlela yokubala yokuhlola i-CRC imi kanje:
static canst uint8_t CrcTable{256]={ 0x00, 0x4d, 0x9a, 0xdl, 0x79, 0x34, 0xe3, 0xae, 0xf2, 0xbf, 0x68, 0x25, 0x8b, 0xc6, 0x11, 0x5c, 0xa9, 0x4, 0x33, 0xle, 0xd0, 0x9d, 0x4a, 0x0l, 0x5b, 0x16, 0xcl, 0x8c, 0x22, 0x6f, 0xb8, 0xf5, 0xlf, 0x52, 0x85, 0xc8, 0x66, 0x2b, 0xfc, 0xbl, 0xed, 0xa0, 0xll, 0x3a, 0x94, 0xd9, 0x0e, 0x43, 0xb6, 0xfb, 0x2c, 0x61, 0xcf, 0x82, 0x55, Ox18, Ox44, Ox09, Oxde, Ox93, Ox3d, OxlO, Oxal, Oxea, Ox3e, Ox73, Oxa4, Oxe9, Ox47, OxOa, Oxdd, Ox90, Oxee, Ox81, Ox56, Oxlb, Oxb5, Oxf8, Ox2f, Ox62, Ox97, Oxda, OxOd, Ox40, Oxee, Oxa3, Ox74, Ox39, Ox65, Ox28, Oxff, Oxb2, Oxle, Ox51, Ox86, Oxeb, Ox21, Ox6e, Oxbb, Oxf6, Ox58, Ox15, Oxe2, Ox8f, Oxd3, Ox9e, Ox49, Ox04, Oxaa, Oxel, Ox30, Oxld, Ox88, Oxe5, Ox12, Ox5f, Oxfl, Oxbe, Ox6b, Ox26, Oxla, Ox37, OxeO, Oxad, Ox03, Ox4e, Ox99, Oxd4, Oxle, Ox31, Oxe6, Oxab, Ox05, Ox48, Ox9f, Oxd2, Ox8e, Oxe3, Ox14, Ox59, Oxfl, Oxba, Ox6d, Ox20, Oxd5, Ox98, Ox4f, Ox02, Oxae, Oxel, Ox36, Oxlb, Ox27, Ox6a, Oxbd, OxfO, Ox5e, Ox13, Oxe4, Ox89, Ox63, Ox2e, Oxf9, Oxb4, Oxla, Ox57, Ox80, Oxed, Ox91, Oxde, OxOb, Ox46, Oxe8, Oxa5, Ox72, Ox3f, Oxca, Ox87, Ox50, Oxld, Oxb3, Oxfe, Ox29, Ox64, Ox38, Ox75, Oxa2, Oxef, Ox41, OxOe, Oxdb, Ox96, Ox42, OxOf, Oxd8, Ox95, Ox3b, Ox76, Oxal, I-Oxee, i-OxbO, i-Oxfd, i-Ox2a, i-Ox67, i-Oxe9, i-Ox84, i-Ox53, i-Oxle, i-Oxeb, i-Oxa6, i-Ox71, Ox3e, Ox92, Oxdf, Ox08, Ox45, Ox19, Ox54, Ox83, Oxee, Ox60, Ox2d, Oxfa, Oxbl, Ox5d, Ox10, Oxel, Ox8a, Ox24, Ox69, Oxbe, Oxf3, Oxaf, Oxe2, Ox35, Ox 78, Oxd6, Ox9b, Ox4e, Ox01, Oxf4, Oxb9, Ox6e, Ox23, Ox8d, OxeO, Oxl 7, Ox5a, Ox06, Ox4b, Ox9e, Oxdl, Oxlf, Ox32, Oxe5, Oxa8 }; uint8_t CaJCRC8{uint8_t *p, uint8_t Jen){ uint8_t ere= O; uint16_t i; ngoba (i = O; i <Jen; i++){ ere= CreTabJe[(ere J\ *p++) & Oxff]; } buyela emuva; |
Ukuhlaziywa kwedatha yokulinganisa
Iphoyinti ngalinye ledatha yokulinganisa liqukethe inani lebanga elingu-2-byte kanye nevelu yokuzethemba engu-1-byte, njengoba kuboniswe esithombeni esingezansi.
Unhlokweni | VerLen | Isivinini | I-engeli yokuqala | Idatha | I-engeli yokugcina | Isikhathiamp | Ukuhlola i-CRC | ||||
54H | 2cH | I-LSB | MSB | I-LSB | MSB | …… | I-LSB | MSB | I-LSB | MSB | lByte |
Iphuzu lokulinganisa 1 | Iphuzu lokulinganisa 2 | … | Iphuzu lokulinganisa n | ||||||
ibanga | umfutho | ibanga | umfutho | ibanga | umfutho | ||||
I-LSB | MSB | 1 Byte | I-LSB | MSB | 1 Byte | … | I-LSB | MSB | 1 Byte |
Iyunithi yenani lebanga ngu-mm. Inani lokushuba kwesignali libonisa amandla okubonisa ukukhanya. Ukuphakama kokuqina, inani lokuqina kwesignali likhulu; ukwehla kokuqina, kuba ncane inani lokuqina kwesignali. Entweni emhlophe engaphakathi kuka-6m, inani elivamile levelu yamandla esignali licishe libe ngu-200. Inani le-engeli lephoyinti ngalinye litholwa ngokuhumusha ngomugqa kwe-engeli yokuqala kanye ne-engeli yokugcina. Indlela yokubala ye-engeli imi kanje:
isinyathelo= (i-engeli_yokuphela -i-angle_yokuqala)/(Jen -1);
i-angle=i-engeli_yokuqala + isinyathelo*i;
lapho i-Jen iyinani lamaphoyinti okulinganisa kuphakethe ledatha, futhi ububanzi benani buka-i ngu-[O, Jen).
Example
Ake sithi sithola ucezu lwedatha njengoba kukhonjisiwe ngezansi.
54 2C 68 08 AB 7E EO 00 E4 DC 00 E2 D9 00 ES DS 00 E3 D3 00 E4 DO 00 E9 CD 00 E4 CA 00 E2 C7 00 E9 CS 00 ES C2 00 ES CO 00A82 ES 3A 50A BE
Siyihlaziya kanje:
Unhlokweni | VerLen | Isivinini | I-engeli yokuqala | Idatha | I-engeli yokugcina | Isikhathiamp | Ukuhlola i-CRC | ||||
54H | 2CH | 68H | 08H | ABH | 7EH | …… | BEH | 82H | 3AH | lAH | 50H |
Iphuzu lokulinganisa 1 | Iphuzu lokulinganisa 2 | ••• | Iphuzu lokulinganisa 12 | ||||||
ibanga | umfutho | ibanga | umfutho | ibanga | umfutho | ||||
EOH | OOH | E4H | I-DCH | OOH | E2H | … | BOH | OOH | EAH |
Ulwazi lwenkundla | Inqubo yokuhlaziya |
Isivinini | 0868H = 2152 degrees ngomzuzwana; |
I-engeli yokuqala | 7EABH = 32427, noma 324.27 degrees; |
I-engeli yokugcina | 82BEH = 33470, noma 334.7 degrees; |
Iphuzu lokulinganisa Ibanga | OOEOH = 224mm |
Iphoyinti lokulinganisa amandla angu-1 | E4H = 228 |
Iphoyinti lokulinganisa ibanga elingu-2 | OODCH = 200mm |
Iphoyinti lokulinganisa amandla angu-2 | OOE2H= 226 |
… | … |
Iphoyinti lokulinganisa ibanga elingu-12 | OOBOH = 176mm |
Iphoyinti lokulinganisa amandla angu-12 | EAH=234 |
UHLELO LOKUHLANGANISA
I-LD19 isebenzisa isistimu yokuxhumanisa yesandla sokunxele, isikhungo sokuzungeza siwumsuka wokuxhumanisa, ingaphambili lenzwa lichazwa ngokuthi isiqondiso se-zero-degree, futhi i-engeli yokujikeleza ikhula ngokwewashi, njengoba kuboniswe esithombeni esingezansi.
IMIYALELO YEKHITHI YOKUTHUTHUKISA
Isetshenziswa kanjani ithuluzi lokuhlola
Ukuxhumeka kwekhebula lezingxenyekazi zekhompuyutha nencazelo
- I-LiDAR, intambo, ibhodi ye-adaptha ye-USB, njengoba kukhonjisiwe esithombeni esilandelayo:
- Umdwebo wokuxhumana, njengoba kukhonjisiwe esithombeni esingezansi:
Ukufakwa komshayeli ngaphansi kweWindows
Lapho uhlola imikhiqizo yenkampani ngaphansi kweWindows, kuyadingeka ukufaka umshayeli we-serial port webhodi le-adaptha ye-USB. Isizathu ukuthi ibhodi ye-adaptha ye-USB kukhithi yokuthuthukiswa ehlinzekwe yinkampani ithatha i-CP2102 USB kuya ku-serial port adapter chip, futhi umshayeli wayo angatholakala ku-Silicon Download ku-Labs' official. webindawo:
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
Noma, Ngemva kokunciphisa iphakheji yomshayeli we-CP210x_Universal_Windows_Driver, sebenzisa i-exe file kusiqondisi sephakheji yokufaka umshayeli, bese ukhetha i-X86 (32-bit) noma i-X64 (64-bit) ngokwenguqulo yesistimu ye-Windows.
Qhafaza kabili i-exe file bese ulandela imiyalo yokuyifaka.
Ngemva kokufaka, xhuma ibhodi le-adaptha ye-USB kukhithi yokuthuthukisa kukhompuyutha, chofoza kwesokudla okuthi [Ikhompyutha Yami], khetha okuthi [Properties], bese kusixhumi esibonakalayo [Sesistimu] esivuliwe, khetha [Isiphathi Sedivayisi] kumenyu engakwesokunxele. ukungena Yiya kumphathi wedivayisi, nweba [Amachweba], ungabona inombolo yembobo ye-serial ehambelana ne-adaptha ye-USB eyaziwayo ye-CP2102, okungukuthi, umshayeli ufakwe ngempumelelo, futhi isibalo esingezansi sithi COM4.
Ukusebenzisa i-LdsPointCloudViewer isoftware ngaphansi kweWindows
Isofthiwe yokubona ngefu yephuzu LdsPointCloudViewUngabonisa idatha eskeniwe yalo mkhiqizo ngesikhathi sangempela, futhi onjiniyela bangasebenzisa le softhiwe ukuze babone ukuskena ukunikezwa kwalo mkhiqizo. Ngaphambi kokusebenzisa le software, kubalulekile ukuhlukanisa ukuthi umshayeli webhodi le-adaptha ye-USB yalo mkhiqizo ufakwe ngempumelelo, futhi umkhiqizo uxhumeke nembobo ye-USB ye-Windows system PC, bese uchofoza kabili i-LdsPointCloud.Viewer.exe, bese ukhetha imodeli yomkhiqizo ehambisanayo nenombolo yembobo, chofoza inkinobho yokuvuselela ifu lephoyinti Lokuqala, njengoba kukhonjisiwe esithombeni esilandelayo.
Kulo mfanekiso ongenhla,
'Isivinini' simelela imvamisa yokuskena isivalo, iyunithi: Hz;
'Isilinganiso' simele isilinganiso sokulungiswa kwephakethe ledatha ye-lidar;
'Okuvumelekile' umele iphoyinti elivumelekile ukuze isivalo sikale indingilizi.
Imodeli yomkhiqizo we-3D file
Vula i-LiDAR_LD19_3D_stp_Vl.0 file ukuthola imodeli ye-3D file ngefomethi ye-STP.
Ukusebenza okusekelwe ku-ROS ngaphansi kwe-Linux
I-ROS imvelo isingeniso kanye nokufakwa
I-ROS (I-Robot Operating System) iwumthombo ovulekile we-meta-operating system wamarobhothi ne-middleware eyakhelwe ku-Linux. Ihlinzeka ngamasevisi alindeleke kusistimu yokusebenza, okuhlanganisa ukufinyezwa kwezingxenyekazi zekhompiyutha, ukulawula idivayisi yezinga eliphansi, ukuqaliswa kwemisebenzi evame ukusetshenziswa, ukudlula komlayezo phakathi kwezinqubo, nokuphathwa kwephakheji. Iphinde inikeze amathuluzi nemisebenzi yomtapo wolwazi edingekayo ukuze uthole, uhlanganise, ubhale, futhi usebenzise ikhodi kuwo wonke amakhompyutha. Ukuze uthole izinyathelo zokufaka zenguqulo ngayinye ye-ROS, sicela ubheke i-ROS esemthethweni webindawo: http://wiki.ros.org/ROS/lnstallation
Iphakheji yokusebenza ye-ROS yalo mkhiqizo isekela izinguqulo nezimo ezilandelayo:
- I-ROS Kinetic(Ubuntu16.04);
- I-ROS Melodic(Ubuntu18.04);
- ROS Noetic(Ubuntu20.04).
Thola ikhodi yomthombo yePhakheji ye-ROS
Ikhodi yomthombo yephakheji yomsebenzi we-ROS yalo mkhiqizo isingathwe endaweni yokugcina ye-Github. Ungalanda ikhodi yomthombo ye-master noma yegatsha eliyinhloko ngokufinyelela isixhumanisi senethiwekhi yenqolobane, noma uyilande ngethuluzi le-git.Abasebenzisi bangakhipha ngokuqondile i-SDK LD19 > ldlidar stl ros.zi baye endleleni elandelayo ukuze bayisebenzise.
- Inqolobane webikheli lesizinda
► https://github.com/DFRobotdl/ldlidarstlros - git ithuluzi lokulanda ukusebenza
# Okokuqala vula isixhumi esibonakalayo setheminali, ungasebenzisa ukhiye wesinqamuleli ka-ctrl+alt+t # Uma uhlelo lwe-Ubuntu olisebenzisayo lingenalo ithuluzi le-git elifakiwe, ungalifaka njenge kuyalandela: $ sudo apt-get ukufaka git # Landa ikhodi yomthombo yephakheji yomsebenzi we-ROS: $ cd ~ $ mkdir -p ldlidar_ros_ws/src $ cd ~/ldlidar_ros_ws/src $git clone https://github.com/DFRobotdl/ldlidar_stl_ros.git #noma $ unzip ldlidar_stl_ros.zip |
Setha izimvume zedivayisi
Okokuqala, xhuma isivalo kumojula ye-adaptha yethu (i-adaptha ye-CP2102), bese uxhuma imojula kukhompyutha. Bese, vula itheminali ngaphansi kwesistimu ye-ubuntu bese ufaka Is /dev/ttyUSB*
ukuhlola ukuthi idivayisi ye-serial ixhunyiwe yini. Uma idivayisi ye-serial port itholwa, sebenzisa i sudo ch mod 777 /dev/ttyUSB*
umyalo wokuwunika igunya eliphakeme kunawo wonke, okungukuthi, ukunikeza file umnikazi, iqembu, nabanye abasebenzisi bafunde, babhale futhi basebenzise izimvume, njengoba kuboniswe esithombeni esilandelayo.
Ekugcineni, shintsha ifayela port_name
value ku ld19.launch
file kwe ~/ldldiar_ros_ws/src/ldlidar_stl_ros/launch/
umkhombandlela. Thatha isivalo esifakwe ohlelweni njenge/dev/ttyUSB0 njenge-example, njengoba kuboniswe ngezansi.
$ nano ~/Jdlidar _ros_ ws/src/ldldiar _stl_ros/launch/ld19.launch |
Umhleli we-Linux nano: I-Ctrl + 0 igcina okuhleliwe file; U-Ctrl + X uphuma kusixhumi esibonakalayo sokuhlela.
Izilungiselelo zokwakha nezemvelo
- Sebenzisa isistimu yokuhlanganisa i-catkin ukuze uhlanganise futhi wakhe iphakheji yomsebenzi womkhiqizo:
$ cd ~/fdlidauos~ws
. $ catkin_make - Izilungiselelo eziguquguqukayo zephakheji yomsebenzi:
Ngemuva kokuthi ukuhlanganiswa kuqediwe, udinga ukwengeza okuhambisanayo files ezikhiqizwe ukuhlanganiswa kokuguquguquka kwemvelo, ukuze imvelo ye-ROS ikwazi ukuzibona. Umyalo wokwenza umi kanje. Lo myalo uwukwengeza okwesikhashana okuguquguqukayo kwemvelo kutheminali, okusho ukuthi uma uphinde uvule itheminali entsha, udinga ukuphinda uyisebenzise. Umyalo olandelayo.
$ cd ~/tdlidar_ros_ws $ source devel/setup.bash |
Ukuze ungalokothi udinge ukwenza umyalo ongenhla wokwengeza okuguquguqukayo kwemvelo ngemva kokuphinda uvule itheminali, ungenza okulandelayo.
Umthombo we-echo we-$ ~//dlidar_ros_ws/devel/setup.bash » ~/bashrc $ umthombo ~/bashrc |
Qalisa inodi futhi i-Rviz ibonise ifu lephoyinti le-LiDAR
Qala i-lidar node bese ukhipha umyalo olandelayo.
$ roslaunch ldlidar_stl_ros ld19.launch |
Qala i-lidar node futhi ubonise idatha yefu ye-lidar point ku-Rviz, yenza umyalo olandelayo.
# uma i-ROS_DISTRO iku-'kinetic' noma 'melodic' $ ros/unch ldlidar_st/_ros viewer_ld19_kinetic_me/odic.launch # uma i-ROS_DISTRO ku-'noetic' $ ros/unch ldlidar_st/_ros viewer_ld19_noetic.launch |
Ukusebenza okusekelwe ku-ROS2 ngaphansi kwe-Linux
I-ROS2 isingeniso nokufakwa kwemvelo
I-ROS (I-Robot Operating System) iwumthombo ovulekile we-meta-operating system wamarobhothi ne-middleware eyakhelwe ku-Linux. Ihlinzeka ngamasevisi alindeleke kusistimu yokusebenza, okuhlanganisa ukufinyezwa kwezingxenyekazi zekhompiyutha, ukulawula idivayisi yezinga eliphansi, ukuqaliswa kwemisebenzi evame ukusetshenziswa, ukudlula komlayezo phakathi kwezinqubo, nokuphathwa kwephakheji. Iphinde inikeze amathuluzi nemisebenzi yomtapo wolwazi edingekayo ukuze uthole, uhlanganise, ubhale, futhi usebenzise ikhodi kuwo wonke amakhompyutha. I-robotics kanye nomphakathi we-ROS ushintshe kakhulu kusukela i-ROS yethulwa ngo-2007. Umgomo wephrojekthi ye-ROS2 ukuzivumelanisa nalezi zinguquko, ukusebenzisa amandla e-ROSl nokuthuthukisa ubuthakathaka. Ukuze uthole izinyathelo zokufaka i-ROS2, sicela ubheke isikhulu webIsizinda se-ROS2: https://docs.ros.org/en/foxy/lnstallation.html
Iphakheji yokusebenza ye-ROS2 yalo mkhiqizo isekela ukusetshenziswa kwenguqulo ye-ROS2 foxy nangaphezulu.
Thola ikhodi yomthombo yephakheji ye-ROS2
Ikhodi yomthombo yephakheji yokusebenza ye-ROS2 yalo mkhiqizo isingathwe kumakhosombe e-Github. Ungalanda ikhodi yomthombo ye-master noma yegatsha eliyinhloko ngokufinyelela isixhumanisi senethiwekhi yendawo yokugcina, noma uyilande ngethuluzi le-git.Abasebenzisi bangakhipha ngokuqondile SDK LD19 > ldlidar_stl_ros2.ziR
endleleni elandelayo ukuze isetshenziswe.
- Inqolobane webikheli lesizinda
► https://github.com/DFRobotdl/ldlidarstlros2 - git ithuluzi lokulanda ukusebenza
# Okokuqala vula isixhumi esibonakalayo, ungasebenzisa ukhiye wesinqamuleli we-ctrl+alt+t # Uma uhlelo lwe-Ubuntu olisebenzisayo lingenalo ithuluzi le-git elifakiwe, ungalufaka njenge kuyalandela: $ sudo apt-get ukufaka git # Landa ikhodi yomthombo yephakheji yomsebenzi we-ROS2: $ cd ~ $ mkdir -p ldlidar_ros2_ ws/src $ cd ~/ldlidar_ros2_ws/src $ git clone https://github.com/DFRobotdl/ldlidar_st/_ros2.git #noma $ unzip ldlidar_st/_ros2.zip |
Setha izimvume zedivayisi
Okokuqala, xhuma isivalo kumojula ye-adaptha yethu (i-adaptha ye-CP2102), bese uxhuma imojula kukhompyutha. Bese, vula itheminali ngaphansi kwesistimu ye-ubuntu bese ufaka Is /dev/ttyUSB*
ukuhlola ukuthi idivayisi ye-serial ixhunyiwe yini. Uma idivayisi ye-serial port itholwa, sebenzisa i sudo chmod 777 /dev/ttyUSB*
umyalo wokuwunika igunya eliphakeme kunawo wonke, okungukuthi, ukunikeza file umnikazi, iqembu, nabanye abasebenzisi bafunde, babhale futhi basebenzise izimvume, njengoba kuboniswe esithombeni esilandelayo.
Ekugcineni, shintsha ifayela port_name
value ku ld19.launch.py
file kwe ~/ldldiar_ros2_ws/src/ldlidar_stl_ros2/launch/
umkhombandlela. Thatha isivalo esifakwe ohlelweni njenge /dev/ttyUSBO
njenge example, njengoba kuboniswe ngezansi.
$ nano ~ /ldlidar _ros2_ ws/src/ldldiar_stl_ros2/launch/ld19.launch.py |
Umhleli we-Linux nano: I-Ctrl + 0 igcina okuhleliwe file; U-Ctrl + X uphuma kusixhumi esibonakalayo sokuhlela.
Izilungiselelo zokwakha nezemvelo
- Sebenzisa isistimu yokuhlanganisa i-colcon ukuze uhlanganise futhi wakhe iphakheji yomsebenzi womkhiqizo:
$ cd ~/fdlidauos2~ws
. $ co/con ukwakha - Izilungiselelo eziguquguqukayo zephakheji yomsebenzi:
Ngemuva kokuthi ukuhlanganiswa kuqediwe, udinga ukwengeza okuhambisanayo files ekhiqizwe ukuhlanganiswa kokuguquguquka kwemvelo, ukuze imvelo ye-ROS2 ibonakale. Umyalo wokwenza umi kanje. Lo myalo uwukwengeza okwesikhashana okuguquguqukayo kwemvelo kutheminali, okusho ukuthi uma uphinde uvule itheminali entsha, udinga ukuphinda uyisebenzise. Umyalo olandelayo.
$ cd ~/Jdlidar_ros2_ws $ umthombo install/setup.bash |
Ukuze ungalokothi udinge ukwenza umyalo ongenhla wokwengeza okuguquguqukayo kwemvelo ngemva kokuphinda uvule itheminali, ungenza okulandelayo.
Umthombo we-echo we-$ ~/Jdlidar_ros2_ws/install/setup.bash » ~j.bashrc |
$ umthombo ~j.bashrc |
Run node kanye ne-Rviz2 ibonisa ifu lephoyinti le-LiDAR
Qala i-lidar node bese ukhipha umyalo olandelayo.
$ ros2 yethula i-ldlidar_stl_ros2 ld19.launch.py |
Qala i-lidar node bese ubonisa ifu le-lidar point ku-Rviz2, khipha umyalo olandelayo.
$ ros2 yethula i-ldlidar_stl_ros2 viewer_ld19.launch.py |
Imiyalo yokusebenzisa i-SDK ngaphansi kwe-Linux
Thola ikhodi yomthombo ye-SDK
Ikhodi yomthombo ye-Linux SOK yalo mkhiqizo isingathwe kumakhosombe e-Github. Ungalanda ikhodi yomthombo ye-master noma yegatsha eliyinhloko ngokufinyelela isixhumanisi senethiwekhi yendawo yokugcina, noma uyilande nge-gittool. Abasebenzisi bangakwazi futhi ukukhipha ngokuqondile SOK L019 > ldlidar stl sdk.zip
endleleni elandelayo ukuze isetshenziswe.
- Inqolobane webikheli lesizinda
► https://github.com/OFRobotdl/ldlidarstlsdk - git ithuluzi lokulanda ukusebenza
# Okokuqala vula isixhumi esibonakalayo, ungasebenzisa ukhiye wesinqamuleli we-ctrl+alt+t # Uma uhlelo lwe-Ubuntu olisebenzisayo lingenalo ithuluzi le-git elifakiwe, ungalufaka njenge kuyalandela: $ sudo apt-get ukufaka git # Landa ikhodi yomthombo: $ cd ~ $ mkdir ldlidar_ws $ cd ~/ldlidar_ws $ git clone https://github.com/DFRobotdl/ldlidar_stl_sdk.git #noma $ unzip ldlidar_stl_sdk.zip |
Setha izimvume zedivayisi
Okokuqala, xhuma i-lidar kumojula ye-adaptha yethu (i-adaptha ye-CP2102}, bese uxhuma imojuli kukhompyutha. Bese, uvule itheminali ngaphansi kwesistimu ye-ubuntu bese ufaka Is /dev/ttyUSB*
ukuhlola ukuthi idivayisi ye-serial ixhunyiwe yini. Uma idivayisi ye-serial port itholwa, sebenzisa i sudo chmod 777 /dev/ttyUSB*
umyalo wokuwunika igunya eliphakeme kunawo wonke, okungukuthi, ukunikeza file umnikazi, iqembu, nabanye abasebenzisi bafunde, babhale futhi basebenzise izimvume, njengoba kuboniswe esithombeni esilandelayo.
Yakha
Ikhodi yomthombo ifakwe ikhodi ngolimi olujwayelekile lwe-C++11 nolimi olujwayelekile lwe-C99 C. Sebenzisa i-CMake, i-GNU-make, i-GCC namanye amathuluzi ukuze uhlanganise futhi wakhe ikhodi yomthombo. Uma usebenzisa uhlelo lwe-Ubuntu ngaphandle kwamathuluzi angenhla afakiwe, ungenza umyalo olandelayo ukuze uqedele ukufaka.
$ sudo apt-get install build-essential cmake |
Uma amathuluzi aboniswe ngenhla esevele ekhona ohlelweni, yenza lokhu okulandelayo.
$ cd ~/ldlidar_ ws/ldlidar_stl_sdk # Uma ifolda yokwakha ingekho kumkhombandlela we-ldlidar_st/_sdk, idinga ukudalwa $ mkdir ukwakha $ cd ukwakha $ cmake .. / $yenza |
Qalisa uhlelo kanambambili
$ cd ~/ldlidar_ ws/ldlidar_st/_sdk/build $ ./ldlidar_stl #isib: ./ldlidar_stl /dev/ttyUSBO |
Imiyalo yokusebenzisa i-ROS esekelwe ku-Raspberry Pi SBC
Sicela ubheke imanuwali ethi «LD19 Raspberry Pi Raspbian User manual_ V2.9.pdf)) ukuze uthole imininingwane.
Ngaphezu kwalokho, sinikeze isithombe sangokwezifiso se-Raspberry Pi salo mkhiqizo, futhi isifundo sokusebenzisa simi kanje:
Isingeniso sokwenza isibuko
- Ukwakhiwa kwesibuko:
• inguqulo ye-raspberrypi raspbian OS: 2020-08-20-raspios-buster-armhf
• Inguqulo ye-ROS yemvelo: I-ROS melodic
• Iphakheji ye-LiDAR LD19 ROS - Usekelo lwezingxenyekazi zekhompuyutha:
• i-raspberrypi 3B+ SBC , i-raspberrypi 4B SBC
• Ikhadi le-SD elinomthamo omkhulu noma olingana no-16GB
Ukusetshenziswa kwesibuko
- Landa isithombe file:
• Landa isixhumanisi 1: https://pan.baidu.com/s/lfvTfXBbWC9ESXNNUY5aJhw 1Jt:&:7ky8a
• Landa isixhumanisi 2:
https://drive.google.com/file/d/lylMTFGRZ9cRcy3Njvf10cxDo4Wy3tfCB/view?usp=sharing
• Isithombe file igama ngu 2022-03-24-raspios-buster-armhf-ldrobot-customization.img.xz - Bhala isithombe file ekhadini le-SD futhi usebenzise uhlelo:
Bhala ngethuluzi le-Win32Disklmager, ulifake ku-slot yekhadi le-Raspberry Pi ngemva kokubhala ngempumelelo, namandla ohlelweni.- Ulwazi oluhlobene nokungena kwesistimu
• Igama lomsebenzisi:pi
• Igama lomethuleli:raspberrypi
• Iwadi yokudlulapi
- Ukugijima i-lidar node
- Ulwazi oluhlobene nokungena kwesistimu
#stepl: Qiniseka ukuthi idivayisi ye-lidar ixhunywe ku-raspberrypi SBC, futhi uvule itheminali nge- isinqamuleli Ctrl+Alt+ T. #step2: Buyisa idivayisi yembobo file elihambisana nedivayisi ye-radar ngokusebenzisa Is-I/dv1i , nikeza okusebenzisekayoimvume, bese uguqula i-inunch file imingcele. Thatha itheku file elihambisana nedivayisi ye-lidar njenge/dev/ttyUSB0 njenge-example. $ sudo chmod 777 /dev/ttyUSB0 # Qaphela: Kunconywa ukuthi ubuyekeze iphakheji yomshayeli we-Lldar ROS esibukweni okokuqala $ cd ~ && cd ~/ldlidar_ros_ws/src/ $ rm -rf ldlidar_stl_ros/ $ git clone https://github.com/DFRobotdl/ldlidar_stl_ros.git |
Ekugcineni, shintsha ifayela port_name
inani ekuqalisweni kwe-ld19 file kwe ~/ldldiar_ros_ws/src/ldlidar_stl_ros/launch/
umkhombandlela. Thatha isivalo esifakwe ohlelweni njenge /dev/ttyUSBO
njenge example, njengoba kuboniswe ngezansi.
$ nano ~/ldlidar _ros_ ws/src/ldldiar _stl_ros/launch/ld19.launch |
Qala i-lidar node bese ukhipha umyalo olandelayo.
$ roslaunch ldlidar_stl_ros ld19.launch |
Qala i-lidar node futhi ubonise idatha yefu ye-lidar point ku-Rviz, yenza umyalo olandelayo.
$ ros/unch ldlidar_st/_ros viewer_ld19_kinetic_me/odic./aunch |
UKUBUYEKEZWA UMLANDO
inguqulo | idethi yokubuyekeza | guqula i okuqukethwe |
1.0 | 2020-09-01 | Indalo yokuqala |
1.1 | 2021-01-15 | Susa umsebenzi we-Transform() |
2.0 | 2022-02-27 | Kwengezwe okuqukethwe kwekhithi yokufundisa ye-ions |
2.1 | 2022-03-06 | Khulisa ukwakheka kwesithombe sombhalo futhi ubuyekeze ifomethi yokuqukethwe |
2.2 | 2022-03-09 | Shintsha isihloko sekhava yedokhumenti kanye nengxenye yokuqukethwe |
2.3 | 2022-03-15 | Buyekeza izitatimende eziyinkinga kumadokhumenti |
2.4 | 2022-04-02 |
|
2.5 | 2022-06-25 |
|
Amadokhumenti / Izinsiza
![]() | Ikhithi yenzwa ye-DFRobot LiDAR LD19 Laser [pdf] Incwadi Yeziqondiso I-LiDAR LD19 Laser Sensor Kit, i-LiDAR LD19, ikhithi yenzwa ye-Laser, ikhithi yezinzwa |