Ros

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。

CeresScanMatcher2D

ancientcc发表了文章 0 人赞同 0 评论 2022-02-11 10:09:52

参考文章:基于Ceres库的扫描匹配器[1] 。Ceres扫描匹配器优化包含了三个残差项:点云与grid的匹配残差、位置(平移)残差、角度(旋转)残差。位置、角度两残差顶多就是对匹配位姿的约束,防止点云匹配的结果和初值差太多,真正的扫描......查看全部

RealTimeCorrelativeScanMatcher2D

ancientcc发表了文章 0 人赞同 0 评论 2022-02-10 21:22:47

cartographer估算出一个初始位姿(initial_pose_estimate)后,真正位姿往往并不是它,而是在它附近,实时相关扫描匹配器(RealTimeCorrelativeScanMatcher2D)就用于找到这个真正位姿。它根据初......查看全部

costmap_2d概述

ancientcc发表了文章 0 人赞同 0 评论 2022-02-05 20:34:42

参考:ROS基础教程--CostMap_2D包的一些理解[1] 一、基本概念体素(Voxel)顾名思义是体积的像素。用来在三维空间中表示一个显示基本点的单位。类似于二维平面下的pixel(像素)。voxel是三维空间中定义一个点的图象信......查看全部

静态层StaticLayer

ancientcc发表了文章 0 人赞同 0 评论 2022-01-30 20:03:54

参考:【ROS-Navigation】Costmap2D代价地图源码解读-静态层StaticLayer[1] 静态地图部分的主要内容是开启地图的订阅,以及bound和cost的更新。静态地图默认只更新一次,地图的边界也只更新一次,对于r......查看全部

障碍层ObstacleLayer

ancientcc发表了文章 0 人赞同 0 评论 2022-01-28 15:20:52

参考:【ROS-Navigation】Costmap2D代价地图源码解读-障碍层ObstacleLayer[1] 要没意外,全局代价地图和局部代价地图都会包含障碍层,在不同地图,表示全局坐标系标识的参数global_frame_往往不一......查看全部

停止:LatchedStopRotateController

ancientcc发表了文章 0 人赞同 0 评论 2022-01-25 20:51:00

只有位置、角度、当前速度,三个条件都满足的情况下,导航才算到达了目标goal。在次序上,是先让满足位置,然后角度和当前速度。rose_ros当前速度总是满足的,因而只要考虑位置、角度。满足位置后,机器人为满足角度需要继续移动,这些移动可能导致机器......查看全部

膨胀层InflationLayer

ancientcc发表了文章 0 人赞同 0 评论 2022-01-23 20:58:56

参考:【ROS-Navigation】Costmap2D代价地图源码解读-膨胀层InflationLayer[1] inflation_radius_。膨胀半径,单位米,示例:0.55。值来自动态配置参数inflation_radius......查看全部

MapGridCostFunction

ancientcc发表了文章 0 人赞同 0 评论 2022-01-19 11:03:30

当目标是global_plan中goal点时(is_local_goal_function_=true)。要计算点A到零线点goal的距离,就是从零线点开始,依次画两条直线。第一条垂直,到达A所在的y行,假设那个点是b;第二条水平,由b到A,这两......查看全部

findBestPath之base_local_planner

ancientcc发表了文章 0 人赞同 0 评论 2022-01-16 21:36:49

参考文章:[无处不在的小土]base_local_planner[1] 计算速度分三个步骤,括号内是该步骤主要函数。(SimpleTrajectoryGenerator::initialise)枚举出所有候选速度。(SimpleTraj......查看全部

dwa_local_planner

ancientcc发表了文章 0 人赞同 0 评论 2022-01-16 11:00:26

参考文章:[无处不在的小土]dwa_local_planner[1]  一、DWAPlannerROS::computeVelocityCommandsmove_bae通过接口computeVelocityCommands进行......查看全部

sensor_msgs::PointCloud2

ancientcc发表了文章 0 人赞同 0 评论 2022-01-15 20:18:15

Ros用PointCloud2封装点云,点云中表示坐标的格式是直角坐标。C:\Windows\System32>rosmsg show sensor_msgs/PointCloud2 std_msgs/Header&nb......查看全部

world/map坐标系、updateOrigin、footprintCost

ancientcc发表了文章 0 人赞同 0 评论 2022-01-10 10:53:14

/map坐标系。建图、导航时,相应node发布的tf基坐标系(rviz中Fixed Frame)。加上前缀“/”,是为区分这里要说的map坐标系。rolling_window。代价地图的一个参数,表示该代价地图的world坐标系原点(origin......查看全部

Launcher+kdesktop

ancientcc发表了文章 0 人赞同 6 评论 2021-01-31 19:59:56

下载源码:launcher-fullsrc-0.1.7-20240418.rar、百度盘网(提取码: 1234)kDesktop:Android: kdesktop-release-0.1.7-20240418.apk iOS: App Stor......查看全部

开始机器人开发

ancientcc发表了文章 0 人赞同 2 评论 2022-01-02 11:29:01

特色使用众多开源包。除机器人较相关的Ros、Cartographer,还有Chromuim、Webrtc、FreeRDP,OpenCV,等。具体有哪些参考“Rose开源包”。涉及到的开源包都已下载到本地,不再须要那些安装过程。Ros已移植到And......查看全部

定时器

ancientcc发表了文章 0 人赞同 0 评论 2021-12-23 09:00:13

遗留问题Timer、WallTimer、SteadyTime,有什么区别。若在ros::shutdown时调用shutdownTimerManagers,会使得下一次ros::init后,cartographer栅格图像都收不到了,为什么。线程使......查看全部

rplider(思岚雷达)

ancientcc发表了文章 0 人赞同 6 评论 2021-12-12 20:17:37

硬件:思岚RPLIDAR A1M8一、接收雷达数据接收数据用的是一个新线程。根据不同扫描模式会用不同线程函数,针对RPLIDAR A1M8是RPlidarDriverImplCommon::_cacheUltraCapsule......查看全部

action机制:SimpleActionClient

ancientcc发表了文章 0 人赞同 0 评论 2021-12-11 20:53:55

为方便同步action机制的三个cb回调,建议使用三个参数的SimpleActionClient构造版本,并且spin_thread = false。这样还可以少创建一个线程。SimpleActionClient任一时刻最多设置一个目标。gh_.......查看全部

使用Eigen实现四元数、欧拉角、旋转矩阵、旋转向量之间的转换

ancientcc发表了文章 0 人赞同 0 评论 2021-10-29 20:47:26

原文:使用Eigen实现四元数、欧拉角、旋转矩阵、旋转向量之间的转换Vector3.normalized的特点是当前向量是不改变的并且返回一个新的规范化的向量;Vector3.Normalize的特点是改变当前向量,也就是当前向量长度是1&nbs......查看全部

NodeHandle、Subscriber和Subscriber::Impl

ancientcc发表了文章 0 人赞同 0 评论 2021-10-07 21:36:32

调用NodeHandle::subscribe()可得到Subscriber对象,同时会在Ros系统创建一个订阅连接,这里将描述NodeHandle、Subscriber、Subscriber::Impl如何管理这个连接。对Subscriber的......查看全部

显示地图(类似rviz)(源码注释)

ancientcc发表了文章 0 人赞同 0 评论 2021-10-04 21:38:26

rose地图、ros地图。“rose地图”专门指场景编程中的地图,“ros地图”则指Ros订阅到的地图。raw-rose地图。指栅格尺寸等于1/resolution时的rose地图。举个例子,resolution是0.05时,raw-rose地图......查看全部

显示地图(类似rviz)

ancientcc发表了文章 0 人赞同 0 评论 2021-09-24 09:47:37

在很多时候,像建图,导航,放置物品,都需要显示地图。Ros实现这功能用的是rviz,但移植到Rose后,技术上不再包含qt、ogre,就要改用自有技术。rviz功能非常强大,移植过程会持续很长时间,可说是要用到什么功能了再加什么功能。目前首要任务......查看全部

移植Ros(noetic)

ancientcc发表了文章 1 人赞同 17 评论 2021-09-10 20:19:01

要求至少能在Android、Windows上运行。Android上用NDK编译,Windows上用Visual Studio编译。在Android,只支持进程内不复制(nocopy-intra)。Windows则需要支持nocopy-i......查看全部

ServiceClient::call流程

ancientcc发表了文章 0 人赞同 0 评论 2021-09-02 16:25:11

如果server没在运行,client的call立即失败,没有等待时间。本文重点在ServiceClient::call,如果要想了解其它细节,像ServiceServer创建及初始化,可参考“ros源码分析(四)service的实时反馈机制”。......查看全部

Publisher::publish源码分析

ancientcc发表了文章 0 人赞同 4 评论 2021-08-28 21:32:46

Ros规则:相同话题名必须相同消息类型。如何判断advertiese和subscribe是进程内关系?——同一进程共享内存空间,单例对象TopicManager记载着每次advertiese、subscribe。通过它们是否拥有相同的话题名称,并......查看全部

TF坐标变换

ancientcc发表了文章 0 人赞同 0 评论 2021-08-22 11:05:53

Ros先后提供了两个和tf相关的功能包:tf、tf2。开发者应该使用tf2,放弃用tf。tf使用了ros的topic机制。要发布tf的node,发布名叫“/tf”或“/static_tf”的话题。对“/static_tf”,为确保接收者能够收到,......查看全部

编译设置如何影响cartographer性能

ancientcc发表了文章 0 人赞同 0 评论 2021-08-18 10:01:07

Optimization设置会严重影响cartographer性能。从/Od到/O2可能是50倍的性能提升。Program Database中的/Zi、None,对性能基本没影响。在windows、ubuntu(x86架构),是否使用SuiteS......查看全部

用rviz理解旋转,及三维坐标系旋转的顺时针、逆时针问题

ancientcc发表了文章 0 人赞同 0 评论 2021-08-11 10:29:54

数学课学过,按逆时针方向旋转出的角度是正,反之,顺时针是负。那如何理解三维坐标系旋转的顺时针、逆时针:用右手坐标系,抽出(固定)旋转轴,按“x->y->z->x->y->...”前进的就是顺时针方向,反之是逆时针。举......查看全部

roscore/roslaunch源码分析

ancientcc发表了文章 0 人赞同 0 评论 2021-08-01 16:48:11

为更直观,叙述时会涉及到一些路径,像roslaunch功能包路径,对不同操作系统、不同安装方式,即使同是rosluanch功能包也会是不同路径。这里示例环境是ubuntu下以源码方式安装ros,catkin工作空间路径:~/ros_catkin_......查看全部

ros的CallbackQueue机制

ancientcc发表了文章 0 人赞同 0 评论 2021-07-30 21:29:35

术语cb。表示app注册向ros的回调函数。消息。(topic机制)publisher发布的topic,(server机制)client发出的请求。往往作为cb的一个参数。CallbackQueue设计了么这一套消息处理框架,可以让不同线程,甚至......查看全部

XML-RPC(2/2):Ros中的XML-RPC

ancientcc发表了文章 0 人赞同 0 评论 2021-07-25 19:43:10

一、Client发送bool execute(const std::string& method, const XmlRpc::XmlRpcValue& request,......查看全部

XML-RPC(1/2):概述

ancientcc发表了文章 1 人赞同 0 评论 2021-07-25 11:09:10

Ros用XML-RPC实现进程间通信。本文说下什么是XML-RPC,以及XML-RPC中的数据类型。想了解更多XM_RPC细节参考网上其它文章,像“XML-RPC远程方法调用”。一、XML-RPCXML-RPC的全称是XML Remot......查看全部

sensor_msgs::LaserScan

ancientcc发表了文章 0 人赞同 0 评论 2021-07-20 20:34:56

Ros用LaserScan封装环境深度信息。激达雷达、深度摄像头用它定义发出的topic。$ rosmsg show sensor_msgs/LaserScan std_msgs/Header header......查看全部

安装官方Ros

ancientcc发表了文章 0 人赞同 0 评论 2021-07-16 09:14:43

ROS官方安装wiki(国内能访问):ROS Installation 一、ubuntuubuntu分x86、arm两种架构。不论哪种,ubuntu版本和可安装的ros版本有着严格的一一对应关系。ubuntuRos20.04Noeitc......查看全部
ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。