ROS
文章平均质量分 84
ROS1、ROS2从入门到放弃
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
郭老二
没有人不爱惜他的生命,但很少有人珍视他的时间!
展开
-
【ROS】RViz2源码分析(三):核心类VisualizerApp
RosClientAbstractionIface是一个接口类,即纯虚类;RViz2中通过RosClientAbstraction实例化该接口。并在main函数中,创建了RosClientAbstraction,如果要定制这部分代码,只需重新实现RosClientAbstractionIface接口类,然后在main中使用即可。RosClientAbstraction的init函数中做了ROS初始化:rclcpp::init(argc, argv);原创 2023-11-20 21:48:13 · 281 阅读 · 0 评论 -
【ROS】RViz2源码分析(二):main函数及编译配置详解
ROS2的构建系统叫做ament_cmake,它是基于CMake改进而来的。package.xml文件的主要内容如下,包含功能包的版权描述 和 各种依赖的声明。ROS2 C++版本使用cmake来编译。原创 2023-11-16 23:06:29 · 968 阅读 · 0 评论 -
【ROS】RViz2源码分析(一):介绍
RViz2源码分析,源码目录结构、功能块的介绍原创 2023-11-15 23:06:11 · 524 阅读 · 0 评论 -
【ROS】Nav2源码下载、编译、运行
ROS 2 python包安装时,使用了python的一个旧的安装方法“python setup.py install”,python工具setuptools的V58.2.0及之前的版本支持这种安装方法, setuptools较新的版本不支持,因此报错。安装58.2.0版本的setuptools,本人的环境是Ubuntu 22.04.2 LTS,Python版本是3.10.12,尝试后有效。原创 2023-11-14 22:20:20 · 524 阅读 · 0 评论 -
【ROS】RViz2源码下载、编译、运行
ROS1对应的RViz源码:https://github.com/ros-visualization/rvizROS2对应的RViz2源码:https://github.com/ros2/rviz注意:在搜索RViz2源码时,使用傻度搜索的结果是对应ROS1的RViz,使用谷歌的搜索结果是正确的,RViz和RViz2的源码链接上面已列出,注意下载地址。原创 2023-11-11 19:39:11 · 798 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_smoother(平滑器)详解
nav2_smoother::SmootherServer和nav2_controller::ControllerServer相似,都是从 node_interfaces::LifecycleNodeInterface继承而来,都是通过状态机来实现生命周期管理。nav2_smoother在Nav2导航中的定义了平滑器接口的,nav2_smoother加载了一组平滑器插件,可以根据用户的定义,实现不同的平滑路径。就是使规划的路径更平滑、平稳,可以运行的更优雅,并且减少硬件的磨损。原创 2023-11-09 21:33:08 · 343 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_collision_monitor(碰撞监测)详解
nav2_collision_monitor碰撞监视器是一个节点,为机器人提供了一个额外的安全级别。它使用来自传感器的数据,执行若干与避免碰撞相关的任务,绕过成本图和轨迹规划器,监测是否需要紧急停止或者减速。原创 2023-11-07 22:24:26 · 365 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_bt_navigator(行为树导航)详解
BtNavigator主要函数都是重载状态机相关的函数:on_configure、on_activate、on_deactivate、on_cleanup、on_shutdown。其中重点关注on_configure函数,其它重载函数都是使用循环调用子节点的on_activate、on_deactivate、on_cleanup函数。功能的实现流程,大致是:将行为树节点通过BehaviorTreeEngine类添加到行为树中,这个节点是由XML描述的行为树节点;继承自NavigatorBase。原创 2023-11-05 20:25:35 · 326 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_behavior_tree(行为树)详解
行为树,即Behavior Tree,简称BT,是Nav2中新引入的流程控制机制,该机制的加入使其在上层业务流程控制上更加灵活。行为树的决策方式基于他的树形数据结构,在需要进行决策时,从树的根节点出发,按照一定顺序遍历子节点,遍历的过程中进行一系列的条件判断,决策得到最后的行为节点并执行。行为树是树:执行时从根节点开始按照指定的顺序遍历,直到到达终结状态。叶子节点都是可执行的行为:叶子节点会进行具体的操作,可以是一个简单的检测操作,也可以是一个更复杂的操作,节点会返回状态信息(成功,失败,运行中)。原创 2023-11-02 21:26:37 · 596 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_costmap_2d(代价地图)详解
Costmap2DROS是 2D Costmap 的ROS封装,可以订阅以PointCloud或LaserScan为消息形式的主题,用以观察障碍物。Costmap2DROS也是从 node_interfaces::LifecycleNodeInterface继承而来,都是通过状态机来实现生命周期管理。原创 2023-11-01 20:08:15 · 628 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_planner(路径规划)详解
nav2_planner是路径规划器,把起始位置、姿势的信息输入nav2_planner模块,将会生成可行路径。nav2_planner路径规划器和nav2_controller控制器相似,也使用插件的形式加载不同的路径规划器。常用的路径规划器插件有:1)NavFn Planner(使用 A* 或 Dijkstras 展开式的导航函数)原创 2023-10-15 11:45:35 · 726 阅读 · 0 评论 -
【ROS】Nav2源码之nav2_controller(控制器)详解
nav2_controller(Nav2控制器)是Nav2中的任务服务器。根据 nav2_planner 模块计算出路径规划(全局路径或局部路径),生成速度、方向控制的命令(说白了就是控制机器人沿着找到的路走)。nav2_controller生成速度、方向控制的命令的方法可以有多种,因此它设计成插件形式,可以使用现有的插件,比如“DWB Controller”“TEB Controller”“MPPI Controller”等,也可以自己来实现。原创 2023-10-12 18:19:21 · 547 阅读 · 0 评论 -
【ROS】使用vscode浏览navigation2源码时,提示:没有那个文件或目录
使用vscode浏览navigation2源码时,头文件下面有波浪线,并提示:没有那个文件或目录。比如没有:geometry_msgs/msg/polygon.h错误信息:无法打开源文件 “geometry_msgs/msg/polygon.h” (dependency of “nav2_controller/controller_server.hpp”)C/C++(1696)无法打开 源 文件 "rclcpp/rclcpp.hpp"C/C++(1696)原创 2023-10-12 09:32:03 · 1241 阅读 · 0 评论 -
【ROS】Nav2源码navigation2(框架)详解
ROS2的导航框架项目是Nav2,源码是navigation2,地址:https://github.com/ros-planning/navigation21)根目录列表2)代码统计navigation2项目由C++来实现,头文件和源码共约八万行(截止到2023-09-20)原创 2023-09-21 19:00:00 · 940 阅读 · 0 评论 -
【ROS】RViz、Gazebo和Navigation的关系
RViz(Robot Visualization,机器人可视化)是一个用于可视化机器人系统的开源工具,用于显示和调试机器人的传感器数据、状态信息和运动规划等。它是ROS(Robot Operating System)的一部分,是ROS中最常用的可视化工具之一。RViz提供了丰富的功能和可定制的界面,使用户能够以三维方式查看机器人模型、传感器数据和环境地图等。它支持多种类型的可视化对象,包括点云、网格模型、标记、路径、激光扫描和相机图像等。原创 2023-09-19 17:19:31 · 664 阅读 · 0 评论 -
【ROS】ROS2人机界面开发:第一个最简ROS+QtGui程序(按钮启动发布者)
在QtCreator中安装ROS插件;总结在QtCreator中创建工程、功能包、编辑、编译、运行、测试详细过程原创 2023-07-20 13:35:17 · 1293 阅读 · 0 评论 -
【ROS】ROS1人机界面开发:第一个最简ROS+QtGui程序(按钮启动发布者)
学习将QtGui界面文件添加到ROS工程中,通过界面按钮启动ROS,在Qt线程中发布ROS消息原创 2023-07-19 20:30:00 · 1579 阅读 · 0 评论 -
【ROS】ROS1人机界面开发:在QtCreator中创建ROS1功能包
搭建人机界面开发环境,在QtCreator中创建、编辑、编译、运行ROS1程序原创 2023-07-18 19:20:27 · 680 阅读 · 2 评论 -
【ROS】URDF:统一机器人描述格式(XML)
统一机器人描述格式(URDF)是描述机器人模型的 XML 文件,支持Xacro(XML宏),使用Xacro来引用已经存在的XML块,创建更短且可读的XML文件。原创 2023-06-16 19:04:49 · 1083 阅读 · 0 评论 -
【ROS】ROS2导航Nav2:简介、安装、测试效果、错误处理
在ROS2中自动导航使用Nav2来实现。Nav2 使用几个独立的模块化服务,通过 ROS 2接口(例如动作服务器或服务)与行为树 (BT) 通信。Nav2 输入包括:TF转换、一个地图源、一个行为树 (BT) XML 文件和相关的传感器数据源;Nav2 输出速度命令;Nav2 支持多种机器人,比如:四足机器人、履带机器人、轮式机器人等。原创 2023-06-16 11:43:45 · 2678 阅读 · 0 评论 -
【ROS】ROS1导航(了解)
1)sensor transforms:坐标转换,机器人使用tf发布有关坐标系之间的关系2)sensor sources:依靠传感器信息来避开障碍物,通过 ROS发布sensor_msgs/LaserScan或sensor_msgs/PointCloud消息来获取3)odometry source:通过里程计来计算所处的位置4)base controller:发送控制电机的速度命令,相关话题“cmd_vel”的结构为5)map_server:地图服务,没有地图也能运行,机器人可以边走边建图。原创 2023-06-15 18:20:43 · 764 阅读 · 0 评论 -
【ROS】仿真软件Gazebo详解
下面只介绍Gazebo和Ubuntu22.04、Ubuntu20.04对应的ROS的兼容性;其中ROS2 Rollng表示滚动版本,即最新版本;原创 2023-06-14 19:59:52 · 1163 阅读 · 0 评论 -
【ROS】RViz、RViz2安装、使用详解
RViz安装(ROS1、ROS2)、使用、编程详解原创 2023-06-14 19:45:00 · 3826 阅读 · 0 评论 -
【ROS】ROS+Gazebo强化学习:训练
ROS+TD3强化学习:环境搭建、训练原创 2023-06-14 00:04:46 · 2400 阅读 · 5 评论 -
【ROS】Ubuntu20.04安装ROS1
ROS1在Ubuntu20.04上的安装步骤原创 2023-06-13 20:00:00 · 1723 阅读 · 0 评论 -
【ROS】ROS2-launch:多节点的启动和配置脚本
在ROS2中,launch文件由python脚本实现;在ROS1中,launch文件由XML描述文档实现。原创 2023-06-10 22:03:07 · 1014 阅读 · 0 评论 -
【ROS】郭老二博文之:ROS目录
ROS学习汇总目录,内容包括:从ROS1到ROS2、从安装、配置、编辑、编译、运行、代码详解等原创 2023-06-10 15:37:52 · 1378 阅读 · 0 评论 -
【ROS2】使用摄像头功能包 usb_cam
因为本人使用VirtualBox虚拟机运行的ROS2,所以首先要让摄像头可以在虚拟机中运行。原创 2023-06-09 17:16:53 · 2896 阅读 · 0 评论 -
【ROS2】开发环境搭建——安装VSCode及插件
ubuntu22.04下安装VSCode用来编辑ROS原创 2023-06-06 19:28:39 · 1315 阅读 · 0 评论 -
【ROS】ROS2编程示例:动作-C++版
ROS2 动作通信方式的C++编程示例原创 2023-06-06 20:00:00 · 912 阅读 · 0 评论 -
【ROS】ROS2编程示例:服务和客户端-C++版
ROS2入门C++示例:服务端和客户端;包括安装、配置、编辑、编译、运行原创 2023-06-03 08:00:00 · 606 阅读 · 0 评论 -
【ROS】ROS2编程示例:话题订阅-发布-C++版
超详细完整示例:安装ROS2、创建功能包、编辑、配置、编译、运行、错误处理、代码逐行注释原创 2023-06-01 10:02:33 · 1104 阅读 · 0 评论 -
【ROS】ROS2中的概念和名词解释
ROS2入门的第一脚:总结了基本概念、名词解释、基础命令、基本编程(python)原创 2023-05-30 23:00:00 · 928 阅读 · 0 评论 -
【ROS】ROS2命令行工具详解
详细解释ROS2命令的使用方法,并附加演示示例原创 2023-05-27 10:00:00 · 1253 阅读 · 0 评论 -
【ROS】Ubuntu22.04安装ROS2(Humble Hawksbill)
Ubuntu22.04对应的ROS2的版本为Humble Hawksbill(ros-humble)如果不是在Ubuntu22.04中安装ROS,请参考下面Ubuntu和ROS的版本对应关系。原创 2023-05-19 19:45:00 · 4981 阅读 · 0 评论 -
【ROS】ROS1编程速览
为了快速了解ROS1,在这篇博客中包含了ROS编程入门示例详细步骤和说明;介绍常见的rqt工具等原创 2023-05-18 20:06:37 · 681 阅读 · 0 评论 -
【ROS】ROS1工具详解
ROS常用命令梳理原创 2023-05-17 17:43:16 · 582 阅读 · 0 评论 -
【ROS】ROS1创建工作空间与功能包
每个ROS项目都有固定的、相同的目录结构,即ROS工程以目录结构来构建。将这种有固定结构的文件夹作为工作空间,工作空间中有四个重要的子目录:build、devel、install、src,其中只有src需要手动创建,其它三个三通过构建命令自动生成,下面会详细说明这四个子目录的作用。原创 2023-04-26 19:00:00 · 882 阅读 · 0 评论 -
【ROS】ubuntu18.04安装ROS(ROS1 Melodic)
这个命令将安装完整的ROS软件,包括ROS,rqt,rviz,机器人通用库,2D / 3D模拟器,导航和2D / 3D感知等等的全套基础组件。注:系统中缺少文件 /etc/ros/rosdep/sources.list.d/20-default.list,内容如下。修改文件:/etc/resolv.conf ,添加google的DNS。注意:更新时,不要使用root权限,即不要使用sudo,否则会有提示。万一使用sudo,可以使用提示的命令清除下,然后再使用。ROS著名的测试程序就是:键盘控制小乌龟运动;原创 2023-04-25 20:12:21 · 1335 阅读 · 0 评论