Navigation2整体架构 注意:下面的解释说明是以Navigation2 v1.0.12来进行的。其对应的ROS2版本为Galactic。 Nav2具有下列工具: ● 加载、提供和存储地图的工具(地图服务器Map Server) ● 在地图上定位机器人的工具 (AMCL) ● 避开障碍物从A点移动到B点的路径规划工具(Nav2 Planner) ● 跟随路径过程中控制机
仿真系统简介 机器人的开发需要很多的测试。而测试就需要搭建场地。测试项目一多,需要的场地的形式也会更多。搭建这样的场地不仅成本高,耗费的人力和物力都相当可观。有些场景在真实环境中不容易出现,但却可以在仿真环境中制造出来。 通过对静态环境的模拟和动态环境的模拟,仿真系统可以帮助开发人员和测试人员触及到很多长尾的情况。而做到这些的代价要比在真实环境中的测试低很多,效率也更高。不管是服务机器人领域还
新一代的turtlebot终于来了。[撒花撒花] turtlebot是开源的低成本移动机器人平台,希望以低成本的方式帮助更多的开发者学习实践机器人技术。 这次发布的TurtleBot 4共有两个版本:TurtleBot 4 Standard和TurtleBot 4 Lite。 它们是以iRobot Create3作为移动底盘,配备了OAK-D摄像头和2D激光雷达。计算平台是Raspber
运行一个示例 安装依赖 sudo apt-get install ros-galactic-turtle-tf2-py ros-galactic-tf2-tools ros-galactic-tf-transformations pip3 install transforms3d 运行示例 在不同的命令窗口中运行下面的命令 启动小乌龟窗口 ros2 launch turtle
不知道阅读本篇文章的你有没有被环境配置搞的焦头烂额过? 想要验证一个功能包,但却需要安装各种依赖。装就装吧!但是安装的依赖可能更新本机中的一些配置或软件版本,导致过去可以运行的软件这么折腾一下后就不能再运行了。 这时可能又后悔又懊恼。严重的可能要重新安装电脑系统。 本文描述了一种在Docker环境中开发和调试ROS程序的方法。旨在解决环境配置和软件依赖给我们带来的困扰。 我们使用Docke
ROS2最新的5年长期支持版ROS 2 Humble Hawksbill 发布了。它是第一个运行在Ubuntu 22.04 (Jammy Jellyfish)上的版本。 介绍文章: https://discourse.ros.org/t/ros-2-humble-hawksbill-released/25729 ROS2 Humble Hawksbill版本新特性: https://
launch 文件 launch文件可以同时配置和启动多个ros节点。ROS2中的launch文件可以用Python、xml、yaml来写。 但ROS2中的Python launch文件更为灵活,功能也更加强大。可以用它执行一些其他的任务(比如新建目录,配置环境变量)。所以官方推荐的是使用python来写。而launch文件一般会放在功能包中的launch文件夹下面。如果想感受一下各种方式写l
这篇文章着重介绍自定义ROS2类型数据时,我们可以使用哪些基础类型。这也是我之前困惑的一个问题。所以这里简单汇总说明一下。关于消息、服务和动作接口的使用说明,请查看本次推送的第一篇推文。 自定义msg示例 定义msg数据和在C++中定义一个结构体是一样的。只是类型名称有些区别。然后不需要加分号。 Header header float64 circle_x float64 circle_
本文介绍ROS2中话题和服务的内容。并配合示例代码来实践以便加深理解。 安装依赖 安装相应的工具: colcon 编译工具安装 sudo apt install python3-colcon-common-extensions git 设置colcon_cd,方便用colcon_cd 包名 快速打开到包的目录。需要在工作空间目录下使用,其他路径下使用会出现卡住的情况。 echo "
ROS2养成计划(一)发展历程和开发环境安装 ROS发展历程介绍 2006 年,无比好奇的一群人走在一起,组建了一个机器人研究实验室:柳树车库(Willow Garage) 2010年5月26日,人类历史上第一个机器人毕业典礼在硅谷这条蜿蜒的柳树街68号的小路旁,临时搭建的一座帐篷中举办。 四年思考的三个问题: 第一:为什么人类需要机器人? 斯科特·哈森的答案是:机器人可以帮助
在安装和配置ROS的过程中,经常会遇到类似这样的报错: curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 16 ms: Connection refused 解决办法如下: 1. 登录网站:https://www.ipaddress.com 2. 在打开的网站中将“raw.githubus
Plotjuggler简介 PlotJuggler是一个类似于rqt_plot的基于Qt的数据可视化工具。但PlotJuggler拥有更强大和好用的功能。你可以导入文本文件让它显示文本文件中的数据。你也可以导入ros的bag包,它能自动解析bag包中的数据。并可以回放bag包的数据,然后用Rviz来显示数据。PlotJuggler的功能有很多,这里只介绍几种我常用的功能。应该足以应付日常的机器人
ROS2 中代码的更新与维护方法 安装vcs sudo apt-get install python3-vcstool 下载代码 #在ros2_ws目录下运行,代码会存在src目录下(以ros2仓库作为示例) mkdir -p ros2_ws/src cd ros2_ws vcs import src < ros2.repos 更新已经下载的代码 #在ros2_ws
ROS2的通信中间件换成了DDS。这让我们可以精准地控制节点间的通信质量。通信效率也迎来了一次大的提升。 但是… 但是… 一个不小心,看到了类似这样的报错信息: [WARN] [1644578813.965216245] [subscriber_qos_obj]: New publisher discovered on topic '/qos_test', offering incompa
下面的操作是基于galactic 代码下载 #安装git和编译工具 sudo apt-get install git python3-vcstool build-essential python3-colcon-common-extensions mkdir -p turtlebot3_ws/src cd turtlebot3_ws/ #下载turtlebot3代码 git cl
Costmap_2d 的插件 Costmap_2d 的插件都是继承于CostmapLayer。具体的关系如下图所示: StaticLayer StaticLayer内主要是通过接收map_server发布的地图话题来加载静态地图的。所以StaticLayer内是可以在线更改静态地图的。 ObstacleLayer ObservationBuffer ObservationBuffer
costmap是什么? costmap翻译过来是代价地图的意思。由SLAM算法生成栅格地图。我们为栅格地图中的每一个栅格分配一个代价值,这样就形成了costmap。路径规划算法则可以在具有代价的栅格地图上生成路径。规划路径的生成则是强依赖于代价值。为了生成合适的路径,我们需要为每个栅格分配合适的代价值。最开始想到的是在单层的costmap中更新每个栅格的代价,然后直接给路径规划算法。但这样会引起
废话不多说,我们直接开始。 搭建测试环境 为了避免花太多时间折腾环境问题。这里使用Docker来跑测试的示例。 安装Docker # step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-co
map的数据类型 map话题的类型是nav_msgs::msg::OccupancyGrid。使用下面的命令可以查询该类型的数据结构。 ros2 interface show nav_msgs/msg/OccupancyGrid nav_msgs::msg::OccupancyGrid的数据结构: # This represents a 2-D grid map std_msgs/H
查看Action 信息的常用命令Action主要用于长时间运行的任务。它们由三部分组成:目标、反馈和结果。 查看action列表 ros2 action list 查看action列表和类型 ros2 action list -t 查看action信息 ros2 action info <action_name> 显示action ros2 interfac
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信