文章目录

前言

7 构建软件包

8 开始制图

9 配置 ArduPilot

10 测试

11 视频


前言

本页展示了如何使用 RPLidarA2 激光雷达(RPLidarA2 lidar)设置 ROS 和 Google Cartographer SLAM,为 ArduPilot 提供本地位置估计,使其可以在没有 GPS 的情况下运行。

这些说明在使用 APSync 更新的 NVidia TX2 上进行了测试,然后按照此处所述安装(installed as described here)了 ROS 和 MAVROS。

Note

这些页面正在制作中。


7 构建软件包

cd $HOME/catkin_ws

catkin build

source devel/setup.bash

8 开始制图

RPLidarA2 插头插入配套电脑,然后打开四个端子,并在每个端子类型中打开:

cd catkin_ws

source devel/setup.bash

然后在终端1:

roscore

在终端2:

roslaunch rplidar_ros rplidar.launch

在终端3:

roslaunch cartographer_ros cartographer.launch

在终端4:

按照“连接 ROS”页面( Connecting with ROS page)上的说明启动 mavros,其中包括运行类似下面的命令:

roslaunch mavros apm.launch fcu_url:=udp://:14855@

9 配置 ArduPilot

用地面站(即 Mission Planner)连接飞行控制器,并检查以下参数是否设置如下:

  • AHRS_EKF_TYPE = 3,用于使用 EKF3;
  • EK2_ENABLE = 0,禁用 EKF2;
  • EK3_ENABLE = 1,启用 EKF3;
  • EK3_SRC1_POSXY = 6,将位置水平源设置为 ExternalNAV;
  • EK3_SRC1_POSZ  = 1,将位置垂直源设置为 Baro;
  • EK3_SRC1_VELXY = 6,将速度水平源设置为 ExternalNAV;
  • EK3_SRC1_VELZ = 6,将垂直速度源设置为 ExternalNAV;
  • EK3_SRC1_YAW = 6,用于将偏航源设置为 ExternalNAV;
  • GPS1_TYPE  = 0,禁用 GPS;
  • VISO_TYPE = 1,用于启用目视里程计;
  • ARMING_CHECK = 388598(可选,用于禁用 GPS 检查)。

更改上述任何数值后,重新启动飞行控制器。

如果一切正常,视觉位置估计值应开始从 ROS 传输到 ArduPilot。使用任务计划器(或类似工具)连接到飞行控制器,检查飞行数据屏幕的 “信息 ”选项卡(左下角)是否有来自 EKF 的信息,如下图所示,即可确认这一点:

EKF2 IMU1 initial pos NED = 0.0,0.0,0.0 (m)

EKF2 IMU1 is using external nav data

EKF2 IMU0 initial pos NED = 0.0,0.0,0.0 (m)

EKF2 IMU0 is using external nav data

使用任务计划器(或类似工具)进入“飞行数据”屏幕,然后用鼠标右键单击地图,选择 “在此设置原点”>>“设置 EKF 原点”。飞行器应立即出现在你点击的地图上。

10 测试

要确认 ROS 端工作正常,请键入以下命令,制图师提供的位置估计实时更新信息就会显示出来:

rostopic echo /robot_pose

任务规划器的 MAVLink 检查器(按 Ctrl-F,然后按“MAVLink 检查器”按钮)可用于检查 VISION_POSITION_ESTIMATE 信息是否成功发送至飞行控制器。

11 视频

Note

我们非常希望改进 ArduPilot 对 ROS 的支持,因此如果您发现问题(例如似乎不支持的命令),请在 ArduPilot 问题列表(ArduPilot issues list)中报告,并在标题中注明“ROS”,我们将尝试尽快解决这些问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95853.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95853.shtml
英文地址,请注明出处:http://en.pswp.cn/web/95853.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.5、机器学习-回归算法

1、线性回归模型 线性回归模型(Liner Regression),是利用线性拟合的方式来探寻数据背后的规律。通过搭建线性回归模型,可以寻找这些散点(也称样本点)背后的趋势线(也称回归曲线)。 借助回归曲线,我们可以进行一些简单…

eclipse 安装 lombok

好久没有用eclipse,新装eclipse 发现lombok 没有生效,如下安装最省事,无需安装plugin等。 进入maven 本地目录,如:org\projectlombok\lombok\1.18.38,点击lombok jar文件指定eclipse 目录,安装完…

linux离线安装elasticsearch8.19.3

下载: 官网多版本下载: Past Releases of Elastic Stack Software | Elastic github多版本下载: https://github.com/elastic/elasticsearch/releases 上传后解压到当前目录 tar -zxvf elasticsearch-8.19.3-linux-x86_64.tar.gz 或指定解压目录 tar -xzf elasticsearch-8…

Uniapp中进行微信小程序头像和昵称的更改

一、官方文档: 1、wx.getUserInfo(uni.getUserInfo):基础库版本低于2.27.1可用 ① 文档链接: https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.htmlhttps://uniapp.dclou…

交换机详细

交换机(Sritch):一种用于电(光)信号转发的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路。解决什么问题?多台设备之间的数据交换的问题。因此根据它的功能,它通…

功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景

工具介绍 PortScanner - 多线程端口扫描工具,一款功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景。🌟 功能特性 🔍 灵活的扫描目标&#xff1…

【OpenHarmony文件管理子系统】文件访问接口mod_fileio解析

OpenHarmony文件访问接口mod_fileio解析 概述 mod_fileio模块是OpenHarmony文件管理API中的核心模块之一,提供了完整的文件I/O操作功能。该模块基于Node.js N-API构建,为JavaScript应用提供了丰富的文件系统操作接口,包括文件读写、目录操作、…

js逆向Webpack模块加载机制解析:从数组到JSONP

1. 概述 Webpack作为现代前端开发中最流行的模块打包工具,其模块加载机制值得深入理解。本文将解析Webpack的几种模块加载方式,包括数组形式、键值对形式和JSONP动态加载。只有理解了它的相关加载机制,我们才可以进行逆向工作。 2. 数组形式的…

Joplin-解决 Node.js 中 “digital envelope routines::unsupported“ 错误

解决 Node.js 中 “digital envelope routines::unsupported” 错误 在使用 Webpack 构建 Joplin 插件时,你可能会遇到 error:0308010C:digital envelope routines::unsupported 错误。这个错误看起来很复杂,但实际上有明确的原因和解决方案。 错误原因…

UE5 UAT

通过UAT 打包的流程&#xff0c;先整理这么点入口// Engine\Source\Programs\AutomationTool\Program.cs /// <summary> /// Main entry point /// </summary> public partial class Program {public static async Task<int> Main(string[] Arguments){Logge…

Python带状态生成器完全指南:从基础到高并发系统设计

引言&#xff1a;状态化生成器的核心价值在复杂系统开发中&#xff0c;带状态的生成器是处理复杂逻辑的核心工具。根据2024年Python开发者调查报告&#xff1a;78%的状态机实现使用带状态生成器85%的数据管道依赖状态化生成器92%的并发系统需要状态管理65%的算法优化通过状态化…

Python元组:不可变但灵活的数据容器

Python元组&#xff1a;不可变但灵活的数据容器 元组(tuple)是Python中一种不可变(immutable)但功能灵活的有序集合数据类型&#xff0c;具有以下核心特性&#xff1a;一、基本特性 不可变性‌&#xff1a;创建后不能修改元素&#xff08;增删改操作均不允许&#xff09; 有序存…

FastGPT源码解析 Agent 大模型对接接口和使用详解

FastGPT 大模型对接核心代码分析 核心架构概览 FastGPT 采用统一模型抽象层设计&#xff0c;通过标准化接口对接多种大模型&#xff0c;支持 LLM、Embedding、ReRank、TTS、STT 等多种 AI 能力。 支持各种大模型能力的配置&#xff0c;包括本地ollama、各个AI云厂商的API接入配…

AI Compass前沿速览:Kimi K2、InfinityHuman-AI数字人、3D-AI桌面伴侣、叠叠社–AI虚拟陪伴

AI Compass前沿速览&#xff1a;Kimi K2、InfinityHuman-AI数字人、3D-AI桌面伴侣、叠叠社–AI虚拟陪伴 AI-Compass 致力于构建最全面、最实用、最前沿的AI技术学习和实践生态&#xff0c;通过六大核心模块的系统化组织&#xff0c;为不同层次的学习者和开发者提供从完整学习路…

如何下载B站视频,去水印,翻译字幕

首先先来看下如何下载B站视频及音频工具&#xff1a;手机下载视频打开文件管理器&#xff0c;找到video.m4s和audio.m4s两个文件更改文件后缀名第一步到此为止然后我们再来看一下如何去水印&#xff0c;去字幕工具&#xff1a;剪映导入视频选择蒙版 > 镜面点击反转点击基础&…

用 Cursor AI 快速开发你的第一个编程小程序

Cursor AI 作为新一代 AI 编程助手&#xff0c;集成了代码补全、智能调试、自动生成等强大功能&#xff0c;非常适合用来开发小型应用或小程序。本文我将手把手带你用 Cursor AI 开发一个简单的天气查询小程序&#xff0c;并在文中推荐一门实用的商业变现课程&#xff0c;助你走…

MacOS 使用 luarocks+wrk+luajit

MacOS 使用 luarockswrkluajit luarocks 默认使用的是 lua 5.4 版本&#xff0c;一些工具&#xff0c;例如 wrk 使用的 lua 5.1&#xff0c;那么 luarocks 在安装依赖的时候就需要指定 lua 5.1。 luarocks config 配置 lua 5.1 请确保已经安装了 lua5.1 或者 luajit&#xff0c…

PostgreSQL18-FDW连接的 SCRAM 直通身份验证

PostgreSQL18-FDW连接的 SCRAM 直通身份验证 PostgreSQL 18 为使用 postgres_fdw 或 dblink_fdw 的人带来了很好的改进&#xff1a;SCRAM 直通身份验证。设置外部服务器连接时&#xff0c;您不再需要在“用户映射”选项中存储纯文本密码。 这是实现它的提交&#xff1a; commit…

“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门

在分布式系统中&#xff0c;有效应对节点故障、网络分区延迟和数据一致性等挑战至关重要。本文将剖析保障分布式系统可靠性的核心机制&#xff1a;数据分片实现水平扩展&#xff0c;冗余副本保障数据高可用&#xff0c;租约&#xff08;Lease&#xff09;机制优化节点状态共识与…

【代码随想录算法训练营——Day4】链表——24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表II

LeetCode题目链接 https://leetcode.cn/problems/swap-nodes-in-pairs/ https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/description/ https://leetcode.cn/problems/linked-list-cycle…