当前位置: 首页 > news >正文

ROS第四十三节——定位

https://download.csdn.net/download/qq_45685327/87725276

1.新建launch文件

关于launch文件的实现,在amcl功能包下的example目录已经给出了示例,可以作为参考,具体实现:

roscd amcl
ls examples
gedit amcl_diff.launch

该目录下会列出两个文件: amcl_diff.launch 和 amcl_omni.launch 文件,前者适用于差分移动机器人,后者适用于全向移动机器人,可以按需选择,此处参考前者,新建 launch 文件,复制 amcl_diff.launch 文件内容并修改如下:

nv04_amcl.launch

    <launch><node pkg="amcl" type="amcl" name="amcl" output="screen"><!-- Publish scans from best pose at a max of 10 Hz --><param name="odom_model_type" value="diff"/><!-- 里程计模式为差分 --><param name="odom_alpha5" value="0.1"/><param name="transform_tolerance" value="0.2" /><param name="gui_publish_rate" value="10.0"/><param name="laser_max_beams" value="30"/><param name="min_particles" value="500"/><param name="max_particles" value="5000"/><param name="kld_err" value="0.05"/><param name="kld_z" value="0.99"/><param name="odom_alpha1" value="0.2"/><param name="odom_alpha2" value="0.2"/><!-- translation std dev, m --><param name="odom_alpha3" value="0.8"/><param name="odom_alpha4" value="0.2"/><param name="laser_z_hit" value="0.5"/><param name="laser_z_short" value="0.05"/><param name="laser_z_max" value="0.05"/><param name="laser_z_rand" value="0.5"/><param name="laser_sigma_hit" value="0.2"/><param name="laser_lambda_short" value="0.1"/><param name="laser_lambda_short" value="0.1"/><param name="laser_model_type" value="likelihood_field"/><!-- <param name="laser_model_type" value="beam"/> --><param name="laser_likelihood_max_dist" value="2.0"/><param name="update_min_d" value="0.2"/><param name="update_min_a" value="0.5"/><param name="odom_frame_id" value="odom"/><!-- 里程计坐标系 --><param name="base_frame_id" value="base_footprint"/><!-- 添加机器人基坐标系 --><param name="global_frame_id" value="map"/><!-- 添加地图坐标系 --><param name="resample_interval" value="1"/><param name="transform_tolerance" value="0.1"/><param name="recovery_alpha_slow" value="0.0"/><param name="recovery_alpha_fast" value="0.0"/></node>
</launch>

2.编写测试launch文件

amcl节点是不可以单独运行的,运行 amcl 节点之前,需要先加载全局地图,然后启动 rviz 显示定位结果,上述节点可以集成进launch文件,内容示例如下:

<launch><!-- 设置地图的配置文件 --><arg name="map" default="nav.yaml" /><!-- 运行地图服务器,并且加载设置的地图--><node name="map_server" pkg="map_server" type="map_server" args="$(find mycar_nav)/map/$(arg map)"/><!-- 启动AMCL节点 --><include file="$(find mycar_nav)/launch/amcl.launch" /><!-- 运行rviz --><node pkg="rviz" type="rviz" name="rviz"/>
</launch>

3.执行

3.1先启动 Gazebo 仿真环境

roslaunch urdf02_gazebo deamo03_car_world.launch

3.2启动键盘控制节点:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

3.3启动test_amcl.launch

上一步中集成地图服务、amcl 与 rviz 的 launch 文件;

roslaunch nav_demo test_amcl.launch

3.4添加组件,显示效果

在启动的 rviz 中,添加RobotModel、Map组件,分别显示机器人模型与地图,添加 posearray 插件,设置topic为particlecloud来显示 amcl 预估的当前机器人的位姿,箭头越是密集,说明当前机器人处于此位置的概率越高;

通过键盘控制机器人运动,会发现 posearray 也随之而改变。

http://www.lryc.cn/news/63119.html

相关文章:

  • 2023年第二十届五一数学建模竞赛题目 C题详细思路
  • 模块化编程原理示意图--CommonJS 模块编程--ES6 模块编程思路分析/图解--三种导出形式--全部代码示例
  • Ansys Zemax | 如何模拟双折射偏振器件
  • Java关键字之:this
  • 嵌入式Linux驱动开发(九)Linux中断
  • 数据库系统-并发控制
  • Java8 教程_编程入门自学教程_菜鸟教程-免费教程分享
  • 从零开始学架构——高可用存储架构
  • 连ChatGPT都不懂的五一调休,到底怎么来的?
  • AES工作流程
  • C++11
  • ubuntu18.04 配置zlmediakit 支持ffmpeg转码记录
  • H68K配置路由功能
  • *2.5 迭代法的收敛阶与加速收敛方法
  • 仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏
  • 【c语言】五大内存区域 | 堆区详解
  • 【JavaScript】动态表格
  • Css如何优雅的实现抽奖转盘
  • 在Java的小问题
  • HashMap的扩容机制、初始化容量大小的选择、容量为什么是2的次幂
  • [jenkins自动化2]: linux自动化部署方式之流水线(下篇)
  • idea使用 ( 二 ) 创建java项目
  • RabbitMq-接收消息+redis消费者重复接收
  • Orangepi Zero2 全志H616简介
  • Golang每日一练(leetDay0047)
  • HCL Nomad Web 1.0.7发布和新功能验证
  • 春招网申简历填写三技巧
  • 计算机网络基础知识总结
  • (下)苹果有开源,但又怎样呢?
  • row_number 和 cte 使用实例:考场监考安排