当前位置:网站首页>Slam Laser 2D (en utilisant Laser Scan matcher)
Slam Laser 2D (en utilisant Laser Scan matcher)
2022-06-23 11:59:00 【M. anhydre.】
Un.、Laser Scan MatcherConfiguration de l'installation
ROSAutoportantelaser_scan_matcherBibliothèque,UtiliséCSM(Canonical Scan Matcher),C'est un purCMise en œuvre linguistiquePLICPAlgorithmes.En outre,laser_scan_matcherEt intégrégmapping,Pour que nous n'ayons pas besoin d'un compteur kilométrique,Ça marche.gmappingFaire des dessins.
Si vous utilisezKineticEditionROS,Ça pourrait être directaptTélécharger
Tout d'abord,, Vous devez déterminer si laser_scan_matcher
apt search laser-scan-matcherSi l'affichage est installé ,Peut être utilisé directement; Si ce n'est pas le cas ,Oui.apt installInstallation
sudo apt install ros-noetic-laser-scan-matcherConfigurationlaunchDocuments etrvizDocumentation, Fais attention à ce que tu fais. rosVersion
sudo cp ~/XTDrone/sensing/slam/laser_slam/laser_scan_matcher/launch/* /opt/ros/kinetic/share/laser_scan_matcher/demo/
sudo cp ~/XTDrone/sensing/slam/laser_slam/laser_scan_matcher/rviz/* /opt/ros/kinetic/share/laser_scan_matcher/demo/Si vous utilisezMelodicEditionROS, Besoin de compiler à partir du code source ,Voir
Can't build laser_scan_matcher for melodic · Issue #63 · CCNYRoboticsLab/scan_tools · GitHub
Et mettre~/XTDrone/sensing/slam/laser_slam/laser_scan_matcher/DanslaunchDocuments etrviz Le fichier correspondant est copié à catkin_ws/src/scan_tools/laser_scan_matcher/demo/Moyenne.
En plus,Il faut aussi installermap_serverPack de fonctions
sudo apt install ros-kinetic-map-server #melodic La modification correspondante est suffisante 2.、 Positionnement laser bidimensionnel
indoor3.world Composé de murs , Pour les lasers 2D SLAM.Il faut d'abord le modifier.launchDocumentation, Premièrement, la relation de transformation entre le système de coordonnées lidar et le système de coordonnées du corps , Au lieu de cela, choisissez un modèle avec un radar laser . Voici un schéma (Attention à la3、4、18D'accord)
gedit ~/PX4_Firmware/launch/indoor3.launch<?xml version="1.0"?>
<launch>
<node pkg="tf" type="static_transform_publisher" name="iris_0_base_link_to_laser"
args="0.0 0.0 0.06 0.0 0.0 0.0 /base_link /iris_0/laser_2d 40" />
<!-- MAVROS posix SITL environment launch script -->
<!-- launches MAVROS, PX4 SITL, Gazebo environment, and spawns vehicle -->
<!-- vehicle pose -->
<arg name="x" default="0"/>
<arg name="y" default="0"/>
<arg name="z" default="0"/>
<arg name="R" default="0"/>
<arg name="P" default="0"/>
<arg name="Y" default="0"/>
<!-- vehicle model and world -->
<arg name="est" default="ekf2"/>
<arg name="vehicle" default="iris"/>
<arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/indoor3.world"/>
<arg name="sdf" default="$(find mavlink_sitl_gazebo)/models/iris_2d_lidar/iris_2d_lidar.sdf"/>DémarragePX4Simulation,
cd ~/PX4_Firmware
roslaunch px4 indoor3.launch Démarrage à un autre terminalPLICP
roslaunch laser_scan_matcher matcher.launch Le laser et gitee Il y a des différences dans l'animation sur la page d'accueil , Parce que l'angle et la distance de balayage laser ont changé , Ceux - ci peuvent être modifiés à votre demande ,Voir détails2d Modèle lidar .

Et le laser SLAM Des sujets de positionnement 2D seront publiés
rostopic echo /iris_0/pose2Dx: 0.0
y: 2.22044604925e-16
theta: 0.0
---
x: 0.0
y: 6.66133814775e-16
theta: 1.11022302463e-16
---
x: -1.66533453694e-16
y: -2.22044604925e-16
theta: 1.66533453694e-16
---Et ensuite établir la communication
cd ~/XTDrone/communication
python multirotor_communication.py iris 0
Grâce au Laser 2D SLAM L'information sur la position au niveau du drone ne peut être obtenue que ,Donc,, La localisation de l'UAV nécessite également des informations d'altitude , Ici, l'information de hauteur utilise Gazebo La vraie hauteur des cheveux . Comme ce système de coordonnées est différent de celui du drone , Il est donc nécessaire de transformer les coordonnées correspondantes et de les convertir en mavrosSujet (s).
cd ~/XTDrone/sensing/slam/laser_slam/script/
python laser_transfer_old.py iris 0 2d
De cette façon, l'information de localisation passe par mavrosC'est parti.PX4,Ça pourrait être dansPX4 Le terminal de simulation voit
INFO [ecl/EKF] 19804000: reset position to ev position
INFO [ecl/EKF] 19804000: commencing external vision position fusion
INFO [ecl/EKF] 19804000: commencing external vision yaw fusionContrôle du décollage du drone
cd ~/XTDrone/control/keyboard
python multirotor_keyboard_control.py iris 1 vel
Et voilà., Vous avez réalisé l'utilisation de PLICPRéaliser le positionnement, L'étape suivante consiste à établir une carte bidimensionnelle de la grille d'occupation (Occupancy Grid Map), Préparation à la planification des mouvements 2D .
Dessin laser bidimensionnel
Chargez d'abord.gmapping.
sudo apt-get install ros-kinetic-slam-gmapping Comme le processus ci - dessus , Mais démarrer en même temps PLICP+gmapping, Et contrôler le mouvement de l'avion à l'aide d'un clavier , En parcourant toute la carte , Réaliser l'établissement d'une carte complète . Attention à ne pas voler trop vite , Sinon, la carte ne sera pas cohérente .
roslaunch laser_scan_matcher matcher_gmapping.launchrviz Tous les frame, C'est un peu désordonné , On a juste besoin d'observer base_linkEtmapC'est bon,Vous pouvezrviz Mets autre chose. frameFermer.rvizSystème de coordonnées dans,x L'axe correspond au rouge (red),y L'axe correspond au vert (green),z L'axe correspond au bleu (blue),xyzÇa correspond.rgb, C'est plus facile de se souvenir .

Quand les cartes seront construites ,Adoptionmap_server La carte peut être sauvegardée ,Je l'ai.indoor3.pgmEtindoor3.yaml, Pour l'exemple suivant Planification des mouvements 2D Fournir des cartes.
rosrun map_server map_saver -f ~/XTDrone/motion_planning/2d/map/indoor3
Dans cet exemple,, Il s'agit de la transformation du système de coordonnées et de la désignation des sujets ,XTDrone Ces problèmes ont été résolus à l'avance , Mais si les développeurs veulent ajouter un lidar à d'autres modèles , Faire des lasers SLAM, Il est nécessaire d'étudier plus avant . Voici un exemple de TF Tree Et Node Graph,Pour les développeurs.


Ici, Laser 2D SLAMSimulation terminée! Félicitations pour une autre Simulation !
边栏推荐
- 蓝桥杯单片机(一)——关闭外设及熄灭LED
- 详解PyQt5信号与槽的关系
- 16路HD-SDI光端机多路HD-SDI高清视频光端机16路3G-SDI高清音视频光端机
- “梦想童行” 2022年广汽本田儿童道路安全公益行走进东北
- "Dream of children's travel" in 2022, GAC Honda children's road safety charity travel entered the Northeast
- 【综合笔试题】30. 串联所有单词的子串
- 我在佛山,到哪里开户比较好?手机开户安全么?
- go-zero微服务实战系列(六、缓存一致性保证)
- Leetcode 1209. 删除字符串中的所有相邻重复项 II(初版本没过)
- Shell process control - 39. Special process control statements
猜你喜欢

ROS2知识(2):网络设施

Use monotone stack to solve problems

PPT制作3D旋转动画从入门到进阶

HMS core video editing service has the ability to open templates, helping users get the same cool video with one click

Learning notes sweep crawler framework

Mysql, how to calculate the maximum value using stored procedures

halcon原理:相关性匹配

『忘了再学』Shell流程控制 — 39、特殊流程控制语句

"Dream of children's travel" in 2022, GAC Honda children's road safety charity travel entered the Northeast

ROS2知识(1):开始实践机器人
随机推荐
Proof and application of Chebyshev inequality
浅谈标注平台架构
如何在 FlowUs、Notion 等笔记软件中使用间隔重复记忆系统?
某问答社区App x-zse-96签名分析
2光2电级联型光纤收发器千兆2光2电光纤收发器迷你嵌入式工业矿用本安型光纤收发器
一张图解码 OpenCloudOS 社区开放日
ESP32-C3入门教程 问题篇⑦—— fatal error: esp_bt.h: No such file or directory 找不到esp_bt.h
HMS core video editing service has the ability to open templates, helping users get the same cool video with one click
Shell process control - 39. Special process control statements
Ppt makes 3D rotation animation from beginner to advanced
EasyGBS如何解决对讲功能使用异常?
4K-HDMI光端机1路[email protected] HDMI2.0光端机 HDMI高清视频光端机
年薪中位数超30万,南大AI专业首届毕业生薪资曝光
[cloud resident co creation] in the code free era, how does software development go to everyone?
ROS知识:librviz库的调用实践
Open classes are short videos! Tonight, I will teach you how to realize accurately!
64路电话+2路千兆以太网64路PCM电话光端机语音电话转光纤
语音数据标注工具与平台
汉源高科1路千兆光口转4路千兆以太网电口千兆1光4电光纤收发器
Redis 入门-第三篇-数据结构与对象-字典