摘要:1、下载源码 https://github.com/lukasvst/dm-vio https://github.com/lukasvst/dm-vio-ros 2、编译 编译主要有两点需要注意: 1)pangolin的版本需要是0.6; 由于我系统里面的版本不是0.6,为了避免冲突,我编译到指定目
阅读全文
摘要:摘要: 准确的状态估计是各种智能应用的基本模块,例如机器人导航、自动驾驶、虚拟和增强现实。近年来,视觉和惯性融合是一种流行的技术,用于6自由度状态估计。不同传感器测量记录的时间点对于系统的鲁棒性和准确性非常重要。实际上,每个传感器的时间戳通常会受到触发和传输延迟的影响,导致不同传感器之间存在时间错位
阅读全文
摘要:摘要:本文介绍了一种单目视觉惯性系统(VINS),用于在各种环境中进行状态估计。单目相机和低成本惯性测量单元(IMU)构成了六自由度状态估计的最小传感器套件。我们的算法通过有界滑动窗口迭代地优化视觉和惯性测量,以实现精确的状态估计。视觉结构是通过滑动窗口中的关键帧来维护的,而惯性度量则是通过关键帧之
阅读全文
摘要:将占据栅格地图转换为基于姿态图的地图:基于BIM的2D LiDAR定位在变化和动态环境中实现终身室内导航的鲁棒性。 摘要: 许多研究都依赖于事实上的标准自适应蒙特卡罗定位(AMCL)方法,以在从建筑信息模型(BIM模型)提取的占用栅格地图(OGM)中定位机器人。然而,大多数这些研究都假设BIM模型准
阅读全文
摘要:摘要:我们首次将视觉惯性初始化表述为最优估计问题,即最大后验(MAP)估计的意义上。这使我们能够正确考虑IMU测量不确定性,而以前的方法忽略了这一点,这些方法要么解决代数方程组,要么使用最小二乘法最小化特定的代价函数。我们在EuRoC数据集上进行了详尽的初始化测试,结果显示我们的方法在很大程度上优于
阅读全文
摘要:目标:学习怎样广播一个静态坐标系到tf2 背景发布静态tf对定义机器人底盘和它上面不动的传感器之间的transform是很有用的。 任务1.创建一个包本包名字为learning_tf2_cpp依赖包geometry_msgs, rclcpp, tf2, tf2_ros以及turtlesim。 ros
阅读全文
摘要:目标:运行一个turtlesim演示,并在一个使用turtlesim的多机器人示例中看到tf2的一些功能。 安装demo 从源码安装 # Clone and build the geometry_tutorials repo using the branch that matches your in
阅读全文
摘要:目标:使用rosdep来管理外部的依赖 什么是rosdep? rosdep是ROS的依赖管理实用程序,可以与ROS包和外部库一起使用。rosdep是一个命令行实用程序,用于识别和安装依赖项以构建或安装包。在以下情况下可以调用或被调用: 1)构建一个工作区,并需要适当的依赖项来构建内的包。 2)安装软
阅读全文
摘要:目标:学习创建和加载一个简单的插件使用pluginlib 背景 本教程来自于 http://wiki.ros.org/pluginlib and Writing and Using a Simple Plugin Tutorial.pluginlib是一个c++库,用于从ROS包中加载和卸载插件。插
阅读全文
摘要:目标:在ros2系统中通过ros2doctor工具来识别问题。 背景 当ros2系统没有按预期运行,可以通过ros2doctor来检查设置。 ros2doctor检查ros2的所有方面,包括平台,版本,网络,环境,运行系统等等,警告你可能的错误和问题的原因。 ros2doctor是ros2cli的一
阅读全文
摘要:目标:创建和运行一个具有ROS参数的类 背景 当实现自己节点的时候,可能需要从launch文件中添加参数。本教程的目的是告诉你怎样在c++类中创建这些参数,以及怎样在launch文件中设置。 任务 1、创建一个包 ros2 pkg create --build-type ament_cmake cp
阅读全文
摘要:目标:在ROS2中学习更多的实现自定义接口 背景 在指定的接口包中声明接口,有时在一个包中声明、创建、使用所有接口很方便。 本教程关注msg接口类型,但是步骤对于其他所有接口类型适用。 任务 1、创建一个包 ros2 pkg create --build-type ament_cmake more_
阅读全文
摘要:目标:定义自定义接口文件(.msg和.srv),在c++节点和Python中使用他们。 背景 有时候需要定义自己的消息和服务。之前教程都是已经定义好的系统的消息类型,本教程介绍最简单的自定义接口定义的方法。 任务 1、创建一个包 ros2 pkg create --build-type ament_
阅读全文
摘要:目标:创建和运行服务和客户端节点使用C++. 背景 当一个节点使用服务通信时,客户端节点发送请求数据,服务节点响应请求。请求和响应的结构文件为.srv。 下面的例子是:一个节点请求两个整数求和,另外一个节点响应这个结果。 任务 1、创建一个包 ros2 pkg create --build-type
阅读全文
摘要:目标:创建并运行一个使用C++编写的发布者和订阅者节点 背景 节点是通过ROS图进行通信的可执行进程。在本教程中,节点通过字符串消息的形式与其他节点进行通信。例子使用简单的"talker"和"listener";一个节点发布数据,其他订阅该话题来接收数据。 任务 1、创建一个包 ros2 pkg c
阅读全文
摘要:目标:使用CMake或者Python来创建一个新的包,运行可执行程序; 背景 1、ROS2的包是什么 一个包是作为ROS2代码的组织单元。如果你想安装你的代码或与他人共享,那么你需要将其组织在一个包中。有了软件包,您可以发布您的ROS 2作品,并允许其他人轻松构建和使用它。 在ROS2中包的创建使用
阅读全文
摘要:目标:创建一个工作空间,学习如何设置开发和测试覆盖层(overlay)。 背景 工作空间是一个包含了ROS2的包的路径,在使用ros2之前首先需要source相应的ROS2工作空间来使用对应的包。 overlay是一个可以添加新的包而不影响现有ROS2工作区,即underlay的工作空间; unde
阅读全文
摘要:目标:用colcon编译一个ROS2工作空间。 这是一个关于如何使用colcon创建和构建ROS2工作区的简短教程。 背景 colcon是ROS编译工具catkin_make, catkin_make_isolated, catkin_tools and ament_tools的替代。 安装colc
阅读全文
摘要:目标:记录发布到话题上的数据,可以任何时候回放和检查。 背景 ros2-bag是一个命令行工具,用于记录系统中主题发布的数据。它累积在任意数量的主题上传递的数据,并将其保存在数据库中。然后,您可以回放数据以重现测试和实验的结果。录制主题也是分享你的作品并允许他人重新创作的好方法。 任务 1、运行如下
阅读全文
摘要:目标:使用命令行工具来启动多个节点 背景 在大多数入门教程中,您一直在为运行的每个新节点打开新的终端。当您创建越来越多节点同时运行的更复杂的系统时,打开终端和重新输入配置细节会变得乏味。 launch文件允许您同时启动和配置包含ROS 2节点的许多可执行文件。 使用ros2-launch命令运行一个
阅读全文
摘要:目标:了解rqt_console,用于查看日志消息的工具。 背景 rqt_console是一个图形化工具用于查看ROS2中的日志消息。通常,日志消息在你个终端显示。用rqt_console,可以统一浏览这些日志,过滤、保存以及从文件中加载。 任务 1、启动rqt_console ros2 run r
阅读全文
摘要:背景 行为ROS2中的一种通信类型,用于长时间的运行任务。由三个部分组成:目标,反馈以及结果。 行为建立在话题和服务之上的。他们的功能类似于服务,但可以取消操作。他们还提供了稳定的反馈,而不是返回单一的响应的服务。 行为使用了一个客户端-服务器模型,类似于发布者和订阅者。一个行为客户端节点发送一个目
阅读全文
摘要:目标:学习怎样获得,设置,保存以及加载参数。 背景 参数是节点的配置值。可以将参数视为节点设置。节点可以将参数存储为整数、浮点值、布尔值、字符串和列表。在ROS 2中,每个节点都维护自己的参数。对于更多的背景参数,please see the concept document。 任务 1、运行tur
阅读全文
摘要:背景 服务是ros graph中另一种通信方法。服务是基于调用和响应相比话题是发布者和订阅者模式。话题允许节点来订阅数据流并获得连续的更新。服务只当被具体客户端调用时才提供数据。 任务 1、打开turtlesim仿真器 ros2 run turtlesim turtlesim_node ros2 r
阅读全文
摘要:目标:使用rqt_graph以及命令行工具来查看ros2 topic。 背景 ROS2将复杂的系统分解为许多模块化节点。话题是ROS图的一个重要元素,它充当节点交换消息的总线。 一个节点可以发布数据到任意数量的话题,同时可以订阅任意数量的话题。 话题是在节点之间以及系统的不同部分之间移动数据的主要方
阅读全文
摘要:目标:学习ROS2中节点的功能,以及与他们交互的工具 背景 1、ROS2graph ROS图是ROS2元素同时一起处理数据的网络。它包含了所有可执行文件以及它们之间的连接,如果您要将它们全部映射出来并可视化的话。 2、在ROS2中的节点 在ROS中的每一个节点都应该负责单一的模块化目的,例如控制车轮
阅读全文
摘要:目标:安装和使用turtlesim包以及rqt工具用于后续的教程; 背景:Turtlesim是一个轻量级的用于学习ROS2的仿真器。其说明了ROS2在最基本的层面上所做的事情,让你知道以后你将如何处理真实的机器人或机器人模拟。 ROS2工具是用户如何管理、调试以及与ROS系统交互的。它支持针对系统及
阅读全文