
ROS系统学习
文章平均质量分 77
Ros细节出的学习,使用
他人是一面镜子,保持谦虚的态度
别低头,王冠会掉;别流泪,坏人会笑
展开
-
rosbag 详细使用
rosbag 详细使用原创 2022-10-27 10:47:21 · 4159 阅读 · 0 评论 -
ros::spin() 和 ros::spinOnce() 区别及详解
1、函数意义首先要知道,这俩兄弟学名叫ROS消息回调处理函数。它俩通常会出现在ROS的主循环中,程序需要不断调用ros::spin()或 ros::spinOnce(),两者区别在于前者调用后不会再返回,也就是你的主程序到这儿就不往下执行了,而后者在调用后还可以继续执行之后的程序。其实消息回调处理函数的原理非常简单。我们都知道,ROS存在消息发布订阅机制,什么?不知道?不知道还不快去:ROS/Tutorials - ROS Wiki(ROS官方基础教程)瞅瞅。好,我们继续,如果你的程序写...转载 2022-03-03 09:23:24 · 428 阅读 · 0 评论 -
Linux环境下传感器时间同步处理方法—— 比较法 + ROS自带多传感器时间同步机制
感谢:ros多传感器时间同步(message_filters)_hongge_smile的博客-优快云博客_ros多传感器时间同步一、解决的问题多传感器数据融合的时候,由于各个传感器采集数据的频率的不同,例如odom 50Hz、Imu 100Hz、camera 25Hz,需要将传感器数据进行时间同步后才能进行融合。融合的原理:分别订阅不同的需要融合的传感器的主题,通过TimeSynchronizer 统一接收多个主题,并产生一个同步结果的回调函数,在回调函数里处理同步时间后的数据。转载 2022-02-22 14:37:55 · 8364 阅读 · 3 评论 -
ROS roslaunch启动节点 - 报错找不到节点
一、问题描述进入文件夹,编译包roscorecd my_c++/VINS_test/BUAA_robot/src/Sensorscatkin_make -DCATKIN_WHITELIST_PACKAGES=""source devel/setup.bashroslaunch hardware_trigger_cam camera.launch报错:二、问题解决方法1:修改权限cd hardware_trigger_cam ...原创 2020-10-22 09:26:49 · 2518 阅读 · 0 评论 -
多传感器数据融合
本人先收藏一波别人的资料,供大家参考;后期会亲自做一下这方面的实验1、自动驾驶常用数据集KITTI使用指南之一——图像雷达数据融合https://blog.youkuaiyun.com/BIT20091643/article/details/81177299?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param&depth_1-utm_source=distribu原创 2020-10-19 11:09:13 · 1734 阅读 · 0 评论 -
ROS C++ IMU、视觉传感器 消息同时订阅及图片的保存
文件放在了如下目录:一、buaa_imucd my_c++/VINS_test/BUAA_robot/src/Sensors/srccatkin_create_pkg buaa_imu roscpp sensor_msgs tfbuss_imu 是我们建立的包,主要的功能是用于IMU信息的读取和主题的发布;IMU传感器与电脑通过串口USB连接;<launch> <node name="imu_read_node" pkg="buaa_imu" ty...原创 2020-10-12 18:51:05 · 3010 阅读 · 1 评论 -
ROS python 订阅 图像 topic ,窗口显示 并保存 图片
#!/usr/bin/env python#!coding=utf-8 #right code !#write by leo at 2018.04.26#function: #display the frame from another node. import rospyimport numpy as npfrom sensor_msgs.msg import Imagefrom cv_bridge import CvBridge, CvBridgeErrorimport cv2.原创 2020-10-12 16:53:08 · 7902 阅读 · 2 评论 -
catkin_make 编译多个包
问题:我的src文件下面有很多建立的包,但是发现用编译命令:catkin_make 会出现问题,完成不了编译的功能;不知道为啥,按理说 catkin_make 就是为了解决多包的,不然就用 camke 了解决的办法:方法一catkin_make -DCATKIN_WHITELIST_PACKAGES=""方法二编译特定的包catkin_make -DCATKIN_WHITELIST_PACKAGES="package1;package2"...原创 2020-10-12 16:19:41 · 1077 阅读 · 0 评论 -
python 版本错误导致的 roscore 问题
这几天快疯了,ROS好多坑;提醒一下python的版本不要随意切换哈;我的python 从自带的python-2.7变成 python-3.6后出现很多的问题,其中一个就是 roscore问题; 问题如下:Traceback (most recent call last):File “/opt/ros/kinetic/bin/roscore”, line 36, infrom rosmaster.master_api import NUM_WORKERSFile “/opt/ros/kineti原创 2020-10-10 11:04:28 · 3002 阅读 · 2 评论 -
ROS 中 bag、txt、csv 格式文件的详细转换 和 图片的提取
一、包(.bag)是怎么得到的 ?rosbag record 命令是用于在ros系统中录取系统中其他ros节点发出来的 topic 的message。录取的的包可以使用 rosbag play 命令来回放,订阅这些消息的node节点就可以收到这些消息,进而执行对应的程序。1.1录制所有话题的包rosbag record -a1.2 录制指定话题,设置 bag 包名为:bag_namerosbag record -O bag_name.bag /topic1_name ...原创 2020-10-08 20:20:45 · 17941 阅读 · 3 评论 -
ROS的常用命令
#最常用roscore #启动rosmasterrosrun pkg_name node_name #启动ros节点roslaunch pkg_name launch_files_name #启动launch文件catkin_make #编译工作空间rospack profile #刷新功能包路径#话题rostopic list #输出当前运行的topic列表rostopi...原创 2020-10-07 19:20:42 · 977 阅读 · 0 评论 -
用urdf给自己的ROS小车编写模型
注:本人大部分为转载别人的内容,但注明了出处,且程序自己跑过一遍,进行相关的验证;也有自己添加的 miiboo 机器人的信息;转载是为了分享,更是为了学习使用urdf编写自己的ROS小车模型常见的ROS小车结构有哪些?下面就是常见的ROS小车,相信在大家的脑海里已经有了自己小车的样子,下面我和大家一起使用urdf对ros小车建模。这里只对urdf进行简单介绍,然后就带大家使用urdf最基础的标签,建立机器人的urdf机器人模型。关于更多细节,请参看官网:http://wiki.ro.转载 2020-10-07 16:45:57 · 2347 阅读 · 3 评论 -
ROS系列:九、rosbag使用
转载于:https://blog.youkuaiyun.com/weixin_42905141/article/details/100057323rosbag的命令rosbag简介rosbag 既可以指命令行中数据包相关命令,也可以指 c++/python 的 rosbag 库。这里的 rosbag 是指前者。rosbag 主要用于记录、回放、分析 rostopic 中的数据。它可以将指定 rostopic 中的数据记录到 .bag 后缀的数据包中,便于对其中的数据进行离线分析和处理。对于.转载 2020-07-29 07:52:41 · 3586 阅读 · 0 评论 -
ROS系列:八、图像消息和OpenCV图像之间进行转换-cv_bridge
cv_bridge是在ROS图像消息和OpenCV图像之间进行转换的一个功能包。(一)在ROS图像和OpenCV图像之间转换(C ++)1.Concepts(概念)ROS以自己的sensor_msgs / Image消息格式传递图像,但许多用户希望将图像与OpenCV结合使用。 CvBridge是一个ROS库,提供ROS和OpenCV之间的接口。 可以在vision_opencv stack的cv_bridge包中找到CvBridge。在本教程中,您将学习如何编写使用CvBridge将RO转载 2020-07-28 22:22:21 · 4758 阅读 · 0 评论 -
SLAM入门+典型SLAM应用及解决方案
本人初入SLAM小白,目前没有能力发表自己的独到见解,但乐于发现一些好的文章供大家参考,希望对大家有帮助。随着AR/VR行业的兴起,以及智能移动机器人、无人驾驶的发展,行业对SLAM技术的需求出现了井喷。另一方面,随着传感器技术的发展,计算资源的丰富以及算法的进步,SLAM技术本身也进入了一个从算法到产品过渡的阶段。行业中已经出现了一些以SLAM技术为主的产品,但离进入千家万户还有一定的距离。本文将从SLAM的基本技术,典型SLAM的应用以及目前行业中使用的解决方案来介绍。SLAM技术入门SLA转载 2020-07-28 12:42:54 · 4523 阅读 · 0 评论 -
ROS系列:七、熟练使用rviz
7.熟练使用rviz(1)rviz整体界面rviz是ROS自带的图形化工具,可以很方便的让用户通过图形界面开发调试ROS。操作界面也十分简洁,如图29,界面主要分为上侧菜单区、左侧显示内容设置区、中间显示区、右侧显示视角设置区、下侧ROS状态区。(2)添加显示内容如图30,启动rviz界面后,首先要对Global Options进行设置,Global Options里面的参数是一些全局显示相关的参数。其中的Fixed Frame参数是全局显示区域依托的坐标系,我们知道机器人中有很多坐转载 2020-07-28 12:27:27 · 13080 阅读 · 1 评论 -
ROS系列:六、理解roslaunch在大型项目中的作用
6.理解roslaunch在大型项目中的作用(1)roslaunch的作用在一个大型的机器人项目中,经常涉及到多个node协同工作,并且每个node都有很多可设置的parameter。比如我们的机器人miiboo_nav导航项目,涉及到地图服务节点、定位算法节点、运动控制节点、底盘控制节点、激光雷达数据获取节点等众多节点,和几百个影响着这些node行为模式的parameter。如果全部手动rosrun逐个启动node并传入parameter,工程的复杂程度将难以想象。所以这个时候就需要用roslau原创 2020-07-28 12:22:41 · 470 阅读 · 0 评论 -
ROS系列:五、编写简单的service和client
6.编写简单的service和client上一节介绍了两个ros节点通过发布与订阅消息的通信方式,现在就介绍ros节点间通信的另外一种方式服务。我们将学到:如何自定义服务类型、server端节点编写、client端节点编写等。我就以实现两个整数求和为例,client端节点向server端节点发送a、b的请求,server端节点返回响应sum=a+b给client端节点,通信网络结构如图20。(1)功能包的创建在catkin_ws/src/目录下新建功能包service_example,并在创转载 2020-07-28 12:18:53 · 2468 阅读 · 2 评论 -
ROS系列:四、编写简单的消息发布器和订阅器
5.编写简单的消息发布器和订阅器通过上一节编写ROS的第一个程序hello_world,我们对ROS的整个编程开发过程有了基本的了解,现在我们就来编写真正意义上的使用ROS进行节点间通信的程序。由于之前已经建好了catkin_ws这样一个工作空间,以后开发的功能包都将放在这里面,这里给新建的功能包取名为topic_example,在这个功能包中分别编写两个节点程序publish_node.cpp和subscribe_node.cpp,发布节点(publish_node)向话题(chatter)发布std原创 2020-07-28 12:14:44 · 1316 阅读 · 0 评论 -
ROS系列:三、如何编写ROS的第一个程序hello_world
4.如何编写ROS的第一个程序hello_world既然ROS已经成功安装好了,大家一定很想亲自动动手编一个通过起手式例程hello_world,可以学到工作空间的创建、功能包的创建、功能包的源代码编写、功能包的编译配置、功能包的编译、功能包的启动运行等知识。ROS的小程序试试手,没错,这一节就隆重请出程序界的起手式例程hello_world。通过起手式例程hello_world,可以学到工作空间的创建、功能包的创建、功能包的源代码编写、功能包的编译配置、功能包的编译、功能包的启动运行等知识。(原创 2020-07-28 11:37:13 · 772 阅读 · 0 评论 -
ROS系列:二、ROS系统整体架构
2.ROS系统整体架构由于ROS系统的组织架构比较复杂,简单从一个方面来说明很难说清楚。按照ROS官方的说法,我们可以从3个方面来理解ROS系统整体架构,这3个方面分别是文件系统级、计算图级、开源社区级。2.1.从文件系统级理解ROS架构如果你是刚刚接手ROS方面的开发或项目,你肯定会觉得ROS中的各种概念非常奇怪,但是当你对ROS的使用熟练之后,你就觉得这些概念很好理解了。与其他操作系统相似,一个ROS程序的不同组件要被放在不同的文件夹下,这些文件夹是根据不同的功能来对文件进行组织的,如图3。转载 2020-07-28 11:24:04 · 1696 阅读 · 0 评论 -
ROS系列:一、ROS是什么
1.ROS是什么ROS是一个适用于机器人的开源的元操作系统。其实它并不是一个真正的操作系统,其底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是说ROS实际上是运行在Linux上的次级操作系统。但是ROS提供了操作系统应用的各种服务(如:硬件抽象、底层设备控制、常用函数实现、进程间消息传递、软件包管理等),也提供了用于获取、编译、跨平台运行代码的工具和函数。ROS主要采用松耦合点对点进程网络通信,目前主要还是支持Ubuntu系统,windows和Mac OS目前支持的还不好,所以推荐.转载 2020-07-28 10:17:46 · 7269 阅读 · 0 评论 -
ROS 简单理解
https://blog.youkuaiyun.com/dcrmg/article/details/53912941原创 2020-07-25 22:26:37 · 2062 阅读 · 1 评论