![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ROS基础学习笔记
文章平均质量分 81
B站奥特学园学习视频笔记
学无止境的菜狗
这个作者很懒,什么都没留下…
展开
-
11机器人系统仿真
机器人系统仿真相关组件1.URDFURDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种 XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度…,该文件可以被 C++ 内置的解释器转换成可视化的机器人模型,是 ROS 中实现机器人仿真的重要组件2.rvizRViz 是 ROS Visualization Tool 的首字母缩写,直译为ROS的三维可视化工具。它的主要目的是以三维原创 2022-04-12 09:52:15 · 5006 阅读 · 1 评论 -
09ROS分布式通信
ROS分布式通信ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信。因此,ROS对网络配置有某些要求:所有端口上的所有机器之间必须有完整的双向连接。每台计算机必须通过所有其他计算机都可以解析的名称来公告自己。实现准备先要保证不同计算机处于同一网络中,最好分别设置固定IP,如果为虚拟机,需要将网络适配器改为桥接模式;配置文件修改分别修改不同计算机的 /etc/hosts 文件,在该文件中加原创 2022-04-12 09:50:34 · 183 阅读 · 0 评论 -
07ROS重名问题
ROS重名问题ROS工作空间覆盖所谓工作空间覆盖,是指不同工作空间中,存在重名的功能包的情形。ROS 开发中,会自定义工作空间且自定义工作空间可以同时存在多个,可能会出现一种情况: 虽然特定工作空间内的功能包不能重名,但是自定义工作空间的功能包与内置的功能包可以重名或者不同的自定义的工作空间中也可以出现重名的功能包,那么调用该名称功能包时,会调用哪一个呢?比如:自定义工作空间A存在功能包 turtlesim,自定义工作空间B也存在功能包 turtlesim,当然系统内置空间也存在turtlesi原创 2022-04-12 09:46:55 · 507 阅读 · 0 评论 -
06Launch文件
launch文件关于 launch 文件的使用我们已经不陌生了,在第一章内容中,就曾经介绍到:一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘控制节点。如果每次都调用 rosrun 逐一启动,显然效率低下,如何优化?采用的优化策略便是使用roslaunch 命令集合 launch 文件启动管理节点,并且在后续教程中,也多次使用到了 launch 文件。概念launch 文件是一个 XML 格式的文件原创 2022-04-12 09:45:56 · 1278 阅读 · 1 评论 -
05ROS运行管理
ROS运行管理ROS是多进程(节点)的分布式框架,一个完整的ROS系统实现:可能包含多台主机;每台主机上又有多个工作空间(workspace);每个的工作空间中又包含多个功能包(package);每个功能包又包含多个节点(Node),不同的节点都有自己的节点名称;每个节点可能还会设置一个或多个话题(topic)…在多级层深的ROS系统中,其实现与维护可能会出现一些问题,比如,如何关联不同的功能包,繁多的ROS节点应该如何启动?功能包、节点、话题、参数重名时应该如何处理?不同主机上的节点如原创 2022-04-12 09:36:48 · 114 阅读 · 0 评论 -
04ROS中的头文件与源文件
ROS中的头文件与源文件本节主要介绍ROS的C++实现中,如何使用头文件与源文件的方式封装代码,具体内容如下:设置头文件,可执行文件作为源文件;分别设置头文件,源文件与可执行文件。在ROS中关于头文件的使用,核心内容在于CMakeLists.txt文件的配置,不同的封装方式,配置上也有差异。自定义头文件调用**需求:**设计头文件,可执行文件本身作为源文件。流程:编写头文件;编写可执行文件(同时也是源文件);编辑配置文件并执行。头文件在功能包下的 include/功能包名 目原创 2022-04-12 09:35:48 · 396 阅读 · 0 评论 -
04Python常用API-cnblog
Python常用API初始化def init_node(name, argv=None, anonymous=False, log_level=None, disable_rostime=False, disable_rosout=False, disable_signals=False, xmlrpc_port=0, tcpros_port=0): """ 在ROS msater中注册节点 @param name: 节点名称,必须保证节点名称唯一,节点名称中不能使用命名空间(原创 2022-04-12 09:34:05 · 170 阅读 · 0 评论 -
04C++常用API
C++常用API初始化/** @brief ROS初始化函数。 * * 该函数可以解析并使用节点启动时传入的参数(通过参数设置节点名称、命名空间...) * * 该函数有多个重载版本,如果使用NodeHandle建议调用该版本。 * * \param argc 参数个数(n+1) * \param argv 封装参数的数组 * \param name 节点名称,需要保证其唯一性,不允许包含命名空间 * \param options 节点启动选项,被封装进了ros::init_opt原创 2022-04-12 09:29:16 · 524 阅读 · 0 评论 -
03常用命令
常用命令机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:rosnode : 操作节点rostopic : 操作话题rosservice : 操作服务rosmsg : 操作msg消息rossrv : 操作srv消息ros原创 2022-04-12 09:26:37 · 121 阅读 · 0 评论 -
02参数服务器
参数服务器参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关于参数服务器的典型应用场景如下:导航实现时,会进行路径规划,比如: 全局路径规划,设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成时时的行进路径上述场景中,全局路径规划和本地路径规划时,就会使用到参数服务器:路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全原创 2022-04-11 22:18:56 · 244 阅读 · 0 评论 -
01ROS通信
ROS通信话题通信话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。话题通信的应用场景也极其广泛,比如下面一个常见场景:机器人在执行导航功能,使用的传感器是激光雷达,机器人会采集激光雷达感知到的信息并计算,然后生成运动控制信息驱动机器人底盘运动。在上述场景中,就不止一次使用到了话题通信。以激光雷达信息的采集处理为例,在 ROS 中有一个节点需要实时的发布当前雷达采集到的数据,导航模块中也有节点会订阅并解析雷达数据。再以原创 2022-04-11 22:08:16 · 527 阅读 · 0 评论