你的机器人安全吗? ROS1中的通信数据基本是开放的。只要我们知道机器的IP。然后使用下面的命令在自己的笔记本电脑里声明一下机器人系统中ROS_MASTER的地址。 export ROS_MASTER_URI="http://192.7.8.48:11311" 注意,这里的ip(192.7.8.48)需要设成实际机器的ip。 这样我们就可以获取机器人系统的所有通信数据。 并且很危险的
下面的一个例子演示了两个节点之间如何实现零拷贝通讯。 注意,下面测试例子的ROS2版本为Galactic。 #include <chrono> #include <cinttypes> #include <cstdio> #include <memory> #include <string> #include <uti
C++ 标准库中的三种时钟 std::chrono::system_clock using namespace std::chrono_literals; const auto start = std::chrono::system_clock::now(); #include <iostream> #include <iomanip> #inc
ROS2的构建系统ament_cmake是基于CMake改进而来的。本篇文章我们详细介绍一下ament_cmake常用的语句。 一个功能包的诞生 使用ros2 pkg create <package_name>可以生成一个功能包的框架。 一个功能包的构建信息将会包含在CMakeLists.txt和package.xml这两个文件中。package.xml文件中包含该功能包的依
下面介绍一下如何在ROS2节点中使用多线程。 使用多线程就涉及到回调组(CallbackGroup)了。 使用示例 创建回调组的函数如下: /// Create and return a callback group. RCLCPP_PUBLIC rclcpp::CallbackGroup::SharedPtr create_callback_group(
编译选项有很多,这里列出一些常用的编译选项设置,并说明作用。 指定使用的C++版本 set(CMAKE_CXX_STANDARD 17) 可以根据需求设置11, 14, 17, 20等等C++版本。 设置编译选项 add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter -g) 告警选项:
我们使用backward_ros功能包来快速实现用GDB调试ROS2程序。 backward_ros功能包介绍 backward_ros功能包是对backward-cpp包的ROS2封装,以便可以简单快速地使用GDB工具。 backward-cpp包的介绍可以查看其仓库: https://github.com/bombela/backward-cpp 使用backward_ros功能包实
编译完ros2程序后,我们会发现install目录下有两个脚本local_setup.bash 和 setup.bash。执行程序前,通常需要source一下install目录下的脚本,以便环境变量准备就绪。这样ros2 run和ros2 launch就能找到对应的执行文件和依赖。 下面的内容是从setup.bash中截取出来的一段。可以发现它会先source一下/opt/ros/galacti
BehaviorTree.CPP是一个开源的C++行为树库。在游戏领域,行为树已经比较流行了。主要用于维护游戏角色的各种动作和状态。但在机器人领域还很少使用的。Navigation2中引入了行为树来组织机器人的工作流程和动作执行。 行为树是树状的结构,它的逻辑流程是由xml文件描述的。我们可以用其配套的工具Groot来可视化行为树。如下图所示: 行为树本身并不具体实现机器人的执行内容,它只
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号的小路旁,临时搭建的一座帐篷中举办。 四年思考的三个问题: 第一:为什么人类需要机器人? 斯科特·哈森的答案是:机器人可以帮助
Plotjuggler简介 PlotJuggler是一个类似于rqt_plot的基于Qt的数据可视化工具。但PlotJuggler拥有更强大和好用的功能。你可以导入文本文件让它显示文本文件中的数据。你也可以导入ros的bag包,它能自动解析bag包中的数据。并可以回放bag包的数据,然后用Rviz来显示数据。PlotJuggler的功能有很多,这里只介绍几种我常用的功能。应该足以应付日常的机器人
ROS2的学习记录和填坑记录。另外在公众号《首飞》内回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2等机器人行业常用技术资料。
博客
泡泡
积分
勋章
你的机器人安全吗之SROS介绍
ROS2节点通信实现零拷贝
ROS2获取当前系统时间的方法
详细分析一个ROS2 CMakeLists.txt文件
ROS2多线程节点
ROS2中CMake编译选项的设置
使用GDB调试ROS2程序
是使用local_setup.bash 还是 setup.bash
ROS2中的行为树 BehaviorTree
[ROS2 基础] Navigation2 导航系统介绍
[ROS2 基础] 仿真系统和搭建方法
下载TurtleBot4源码来学习
[ROS2基础] TF2使用细节
我的ROS2开发环境
ROS2新版本有哪些改进
[ROS2基础]launch 文件和多节点进程
可以用哪些数据类型自定义ROS2消息
[ROS2基础]话题与服务
ROS2 发展历程和开发环境安装
[ROS2]数据回放伴侣Rviz+plotjuggler
ROS2 中代码的更新与维护方法
Rviz显示不出数据了!一文搞懂Qos
[ROS2]下载Navigation2源码来学习
[ROS2] 你应该知道Costmap_2d 的这些细节
costmap是什么?
[ROS2] 动手实践Costmap新特性
[ROS2] map_server加载地图文件的三种模式
[ROS2] 查看Action 信息的常用命令
ROS2开发环境搭建
[ROS2] 使用LifecycleNode管理节点起停等状态
[ROS2] LifecycleNode 命令行工具
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信