![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS
文章平均质量分 59
龙性的腾飞
Just Do It!
展开
-
ros advertise 发布数据小技巧--latch配置
在ros发布数据的advertise函数形参最后一个为"latch",默认为false. 一般接收节点要在发布节点启动后才能接收到数据,但启动顺序有时无法控制,就会导致某些数据丢失,尤其像地图这种只发布一次的. 当发布数据端设置了latch = true,后起节点也可以接收到之前的最后一帧消息.另外一个特别有用的就是发布rviz可视化数据调试程序时,根据namesapce分析某些结果时,可以重复勾选显示某些条目,只需在rviz中重新勾选一下这个Display就可以, 不需要重新播放数据....原创 2022-06-21 13:23:12 · 1864 阅读 · 1 评论 -
vscode进行DebugROS工程的launch文件
0. 已经建立建立ros项目工程, 在功能包CMakeLists.txt目录下打开终端, 执行: code . 打开ros项目1. 点击F5, 启动debug(Start Debugging), 弹出对话框, 点击打开launch.json.2. 将configurations里面的东西删掉如下:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of e原创 2021-07-01 21:40:04 · 1519 阅读 · 0 评论 -
关于ROS日志ROS_INFO需要知道的一些东西
之前刚学ros没有太关注过ros的日志消息,感觉ROS_INFO ROS_INFO_STREAM等和printf cout没什么大的区别,还打印一大串时间戳,没什么用,也没有深究,真是年少无知啊!后来随着调试项目的复杂,发现调试中间输出好多信息,到了部署的时候没什么用处,还得注释掉,很麻烦,后来就用了glog.在ros相关的项目中,为了保持格式的一致,又关注了一下ros自身的消息打印,发现还是很好用的,下面简单分享一下比较常用的经验,还有好多没用到的慢慢探索.原创 2022-03-24 20:31:33 · 9223 阅读 · 0 评论 -
ros::Rate 设定的帧率循环进入一次就卡住
问题:ros::Rate 设定的循环进入一次就卡住解决方案:ros环境使用的仿真时间,时钟源(录的数据包)停止了,设置使用系统时间或者重新播放bag数据包,仿真时间更新即可.或者,中断rosore重新启动.参考:ROS时钟仿真的初探_qq_278667286的博客-CSDN博客ros时钟仿真的初探如果设置了ros时钟仿真参数,发布一个时间的clock话题,就可以控制ros系统的时间。但是当发布clock话题的节点没有运行,会出现什么反应?我得出的答案是当其他所有节点线程遇到延时,执行rospy.sl原创 2022-03-23 22:12:41 · 2344 阅读 · 3 评论 -
ubuntu20.04更新后安装ros2 foxy依赖问题
Ubuntu20.04.3刚装完系统, 然后推荐我更新软件, 然后我就将所有推荐的更新完, 之后进行ros2的安装, 在执行到sudo apt install ros-foxy-desktop时老是出现,E: Unable to correct problems, you have held broken packages.后参考https://www.cnblogs.com/aaron-agu/p/8862624.html 博客使用aptitude自动修复依赖,sudo aptitude .原创 2021-11-15 00:05:47 · 2046 阅读 · 0 评论 -
利用ros静态坐标变换在rviz显示不同frame_id数据
1. rviz中显示数据需要选定参考frame, 就是ros消息中的frame_id, 对于不同数据通常会有不同的frame_id, 若要同时显示需要通过坐标变换把不同frame关联到一块.2. 对于录制的bag回放需要设置use_sim_time为true, 然后播放bag包时添加--clock即可.rosbag play demo.bag --clock -l下面放个demo的launch<launch> <param name="/use_sim_time原创 2021-10-12 21:18:18 · 2124 阅读 · 0 评论 -
改变ros bag 中消息的frame_id 和话题名
1. 改变话题名 参考链接:https://blog.csdn.net/ethan_guo/article/details/80262650rosbag play file.bag /foo:=/bar #/foo是原topic,/bar是新topic2. 改变frame_id 参考链接:http://wiki.ros.org/bag_tools#change_frame_id.py(1) 参考说明下载包含bag_tools的srv_tools http://wiki.ros.org/.翻译 2021-05-16 21:08:56 · 5332 阅读 · 1 评论 -
解决Xavier编译ROS工程中cv_bridge找不到的问题
0. 背景:Jetson 系列Xavier 系统18.04, 刷机自带opencv4.1.1版本, 普通机器安装18.04系统后会自带opencv3.2版本, ROS自18.04 Melodic 不再自带opencv, 依赖系统opencv, 因此ros中cv_bridgeConfig.cmake默认指定opencv路径是 "/usr/include/opencv", 而在Xavier 中不存在这一路径, 只有 "/usr/include/opencv4", 因此当你在Xavier 下编译cv_bri.原创 2021-05-16 19:59:13 · 1489 阅读 · 0 评论 -
rosbag包回放报错Error reading from file: wanted 4 bytes, read 0 bytes修复
录制bag包后可能没有正确结束掉程序,回访出现错误:[ INFO] [1603677455.288200829]: Opening fuse_2020-10-24-18-01-07.bag[FATAL] [1603677455.288476478]: Error reading from file: wanted 4 bytes, read 0 bytes可使用如下命令修复:rosbag reindex xxx-xxx-xxx.bag...原创 2020-10-26 21:13:20 · 6499 阅读 · 3 评论 -
ROS 中CompressedImage消息的发布与订阅
背景:某些情况下需要录图像数据的包,非常占空间和带宽,尤其对于一些工业相机图像一张好几兆,每秒30帧的话一份钟好几个G,这时候可以选择的订阅压缩图像,下面直接来个demo。先订阅一个sensor::Image 消息,然后使用image_transport直接发布图像,会同时产生一个压缩image_compressed/compressed和不压缩的image_compressed图像话题,订阅时直接订阅压缩话题即可。#include "ros/ros.h"#include "sensor_msg原创 2020-07-12 17:31:07 · 13980 阅读 · 0 评论 -
FLIR相机ROS驱动
程序来源Autoware包,详细参考Autoware包中的spinnaker相机驱动,源程序获得图像颜色不正确,稍作修改先转成opencv格式再转为ros消息即可,直接上相关程序,另外CMakeLists.txt的配置可以参考Autoware的写法,积累一下。/* * Copyright 2015-2019 Autoware Foundation. All rights reserved. * * Licensed under the Apache License, Version 2.0 (原创 2020-06-30 21:57:14 · 2325 阅读 · 1 评论 -
Autoware标定激光雷达和相机记录
以Rfans-16为例,简单记录一下自己的学习标定之路。0. 连接相机和激光雷达,激光雷达X轴向前,Y轴向左,Z向上,相机默认正向前方。建立ROS工作空间$ mkdir -p catkin_lidar_camera/src$ catkin_make1. 首先下载相机驱动,可以在github上找usb_cam https://github.com/ros-drivers/usb_cam将usb_cam 包放到src下,同将激光雷达的包放到src下。2. 在catkin_lidar_came原创 2020-05-31 18:38:48 · 2127 阅读 · 11 评论 -
C++实现rviz 2D Pose Estimate 功能设置机器人初始坐标
1. 首先查看设置初始坐标的话题 为 /intialpose ,查看消息类型和格式从而决定怎么给它发数据(1)首先打开一个可以自动导航的项目文件,打开rviz,点击2D Pose Estimate 进行初始位姿矫正 ,查看/initialpose消息格式:sun@sun-pc:~$ rostopic info /initialpose Type: geometry_msgs/Pos...原创 2019-06-06 22:04:29 · 9086 阅读 · 9 评论 -
ROS发布Float32MultiArray消息C++/Python
在ros下发布一个字符串消息或整数消息,网上例程不少,ROSwiki上也有教程,有时就需要一次发送不止一个数据,这时候就得用到数组了,C++的也好找,不过python写的就比较少了,特此记录。1. 首先查看有哪些消息sun@sun-pc:~$ rosmsg show std_msgs/std_msgs/Bool std_msgs/Int64std_ms...原创 2019-04-01 10:50:32 · 16607 阅读 · 7 评论 -
ROS下单目相机标定过程
下面简单记录一下我利用ros标定相机参数的过程,Ubuntu 16.04 ,摄像头用的罗技C920ROSwiki有相机矫正的官方文档,有单目的也有立体相机的教程,建议直接看原文,原汁原味:链接1、相机标定第一步,准备一张标定板,打印出来下载标定板为8x6,我用A4纸打印出来为,用直尺量square边长为24.5mm(这个根据自己标定板的大小自己量,大点好),即0.0245m,作为标定输...原创 2018-05-21 14:47:22 · 17820 阅读 · 20 评论 -
Ubuntu16.04下opencv2与ROSkinetic中自带opencv3不兼容问题总结
1、背景:从ROSindigo换到ROSkinetic,ROSkinetic中自带的opencv3,与原来indigo中opencv2不一样,所以原来的涉及opencv的程序都出了问题,最近这两天就一直在改兼容性,清明节最后一天了,总结一下关于opencv的一些问题2、代码从indigo移到kinetic后,立马运行了一下,果真不行,然后百度,知道是opencv兼容问题,查到文章一篇: ...原创 2018-04-07 22:40:01 · 9227 阅读 · 9 评论 -
ROS下如何调用USB摄像头在rviz显示(核心:权限问题)?
概要: 如果你还在纠结在ROS调取摄像头时出现设备无法打开的问题或者有 webcam /dev/video0 Permission denied相关提示,提醒一句,有可能是权限不足,直接更改摄像头权限:sudo chmod 777 /dev/video0执行完后查看设备权限sunyuzhe@tegra-ubuntu:~$ sudo chmod 777 /dev/video0原创 2018-01-20 14:49:51 · 4682 阅读 · 2 评论