![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS
文章平均质量分 70
selfDisciplineSun
自律更自由
展开
-
ROS 搞懂多话题回调机制以及消息队列
ROS 消息队列的运行机制下面只是自己的理解,如果有误望大家指正! 大部分内容参考于 https://blog.csdn.net/qq_42700518/article/details/104453752ROS中,publisher和subscriber都有一个消息队列用于数据收发时候的缓存,那么它们有什么异同呢?ROS话题的通信是异步的,也就是publisher只管不停的发但不管是否被接收,publisher的消息队列就是publisher发布信息的地方,publisher向消息队列发布信息然后通知原创 2022-03-12 23:43:55 · 1186 阅读 · 0 评论 -
ROS CMakeLists 写法
SET(CMAKE_BUILD_TYPE "Debug")SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")cmake_minimum_required(VERSION 2.8.3)project(cam_lidar_calibration)#set(OpenCV_DIR /opt/libs-x64/opencv.原创 2021-05-19 14:31:43 · 279 阅读 · 0 评论 -
ros 相机标定
单目相机的标定cameracalibrator.py subscribes to ROS raw image topics, and presents a calibration window. It can run in both monocular and stereo modes. The calibration window shows the current images from the cameras, highlighting the checkerboard. When the use原创 2021-05-12 15:34:34 · 728 阅读 · 0 评论 -
ROS Nodelet使用
1.创建包cd srccatkin_create_pkg nodelet_tutorials roscpp nodelet std_msgs这需要依赖nodelet包,这个包提供了编写ROS Nodelet的api。2. 写插件类class feature_extraction : public nodelet::Nodelet 需要继承 nodelet::Nodeletnodelet 本身即是基于plugin,所以其写法与plugin非常类似,只是这里的基类变成Node原创 2021-05-11 09:18:12 · 462 阅读 · 0 评论 -
激光雷达点云聚类
代码来源:https://github.com/danielTobon43/DBScan-PCL-Optimized博客园的一篇DBSCAN算法:比较简陋,运行起来非常慢https://www.cnblogs.com/zlian2016/p/5617527.html激光雷达点云地面分割(附带有测试的激光电云bag包)https://blog.csdn.net/yuxuan20062007/article/details/82926783pcl形态学滤波器实现地面点分割http转载 2021-05-10 14:42:59 · 1447 阅读 · 0 评论 -
激光雷达和相机联合标定
准备工作需要一个标定板,尺寸可以自己定,但是需要雷达和相机都能捕捉到的,当然,雷达捕捉到的数据越多越好。然后把标定板悬空放置,如下图所示。为什么要这么做呢?其实就是方便后序在激光雷达捕获的点云中,分离出这个标定板。好了,现在调整好雷达和相机,转到合适位置,在相同位置上进行拍照和点云捕捉。捕捉完成后,需要找到至少三个对应点对,也就是二维点和三维点对,然后利用这三个点对进行PNP求解,计算出相机坐标系和雷达坐标系之间的变换关系。这个就是变换公式了。找寻对应点下面是捕获的图像和点云:...原创 2021-04-30 19:16:08 · 625 阅读 · 1 评论 -
ROS-ROS中的坐标管理系统 TF
TF功能包能干什么?•五秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样的?•机器人夹取的物体相对于机器人中心坐标系的位置在哪里?•机器人中心坐标系相对于全局坐标系的位置在哪里?TF坐标变换如何实现?• 广播TF变换• 监听TF变换小海龟TF 例程$ sudo apt-get install ros-melodic-turtle-tf$ roslaunch turtle_tf turtle_tf_demo.launch$ rosrun turtlesim turt..原创 2021-04-11 22:59:22 · 179 阅读 · 0 评论 -
C++使用boost::bind 订阅消息中的返回函数传入多个参数
最近读别人的代码,看到了一个有意思的东西。主要是当我们订阅一个消息时候,会调用一个返回函数。例如:ros::Subscriber scan_sub=n.subscribe<std_msgs::Int8>("/test", 10, multiprint); 这样multiprint函数应该包含一个参数,即void multiprint(const std_msgs::Int8::ConstPtr& msg){}但是,如果我们想要多参数传入的话,就需要使用转载 2021-03-21 16:42:25 · 862 阅读 · 0 评论 -
Ros中Remap(话题重映射)的两种使用方法
最近在remap机器人发布的joint_states的时候遇到了一些问题,在此以几个例子记录一下launch文件的配置。先敲黑板!!!:remap在node之外的作用域是他之后的所有节点,在node中的作用域是当前节点,此外要注意想要remap的话题是这个节点要接收的还是要发布的。 如果是要remap一个该节点发布的source_topic到target_topic,应该是<remap from="/source_topic" to="/target_topic" /> 如果是要rem转载 2021-03-20 15:54:28 · 5257 阅读 · 0 评论 -
VS Code 调试ROS节点
前提:安装VS Code安装插件,C/C++, ROS安装插件Txt Syntax, 作用:CMakeLists.txt语法高亮。 参考链接:https://blog.csdn.net/u012254599/article/details/106143540/<br> 安装插件Msg Language Support, 作用:msg,srv,action语法高亮首先手动建立catkin workspace1. mkdir ~/catkin_ws2. cd ~/catki.转载 2021-03-19 23:26:00 · 716 阅读 · 0 评论 -
Vscode ROS 环境搭建
1、插件准备:C++Cmake toolsROSpython2、具体步骤:mkdir -p demo/srccd democatkin_make # 编译code . # 打开vscodectrl + shift + b # 打开配置文件配置文件如下:{ "version": "2.0.0", "tasks": [ { "type": "catkin_make", "problemMatcher": [转载 2021-03-19 22:38:04 · 595 阅读 · 0 评论 -
ros::spin() 和 ros::spinOnce() 区别及详解
1 函数意义首先要知道,这俩兄弟学名叫ROS消息回调处理函数。它俩通常会出现在ROS的主循环中,程序需要不断调用ros::spin()或 ros::spinOnce(),两者区别在于前者调用后不会再返回,也就是你的主程序到这儿就不往下执行了,而后者在调用后还可以继续执行之后的程序。其实消息回调处理函数的原理非常简单。我们都知道,ROS存在消息发布订阅机制,什么?不知道?不知道还不快去:http://wiki.ros.org/ROS/Tutorials(ROS官方基础教程)瞅瞅。好,我们继续...转载 2021-03-16 22:50:23 · 582 阅读 · 0 评论 -
Ubuntu18.04安装ROS Melodic(解决网络原因,先将所需压缩包下载到本地,然后rosdep update)
Ubuntu18.04安装ROS Melodic(解决网络原因,先将所需压缩包下载到本地,然后rosdep update)一、ROS介绍机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。 因此自ROS诞生以来,受到了学术界和工业界的欢迎,如今已经广泛应用于机械臂、移动底盘、无人机、无人车等许多种类的机器人上。具体探索请参考:ROS探索总结(一)——ROS简介二、版本转载 2021-03-16 17:00:25 · 3251 阅读 · 16 评论 -
ROSBAG 解析
ros自带将bag包中点云文件解析为pcd文件rosrun pcl_ros bag_to_pcd 3.bag /velodyne_points pcd上述命令中,三个参数分别为bag包名,需要解析的节点名称和解析后存储的位置。解析完成后,我们可以在pcd文件夹中看到我们所需的每一帧点云文件。通过创建view类将数据逐帧读取出来#include <rosbag/bag.h>#include <rosbag/view.h>// 此处为include相关消息类的头文件原创 2021-03-15 16:24:17 · 3578 阅读 · 3 评论 -
Rosbag详细操作
在 ROS 系统中,可以使用 bag 文件来保存和恢复系统的运行状态,比如录制雷达和相机话题的 bag 包,然后回放用来进行联合外参标定。这里记录下我学习官方的 rosbag 教程的笔记:ROS rosbag我常用的几个操作虽然命令很多,但是我目前在工作中常用的命令就如下几个:1. 录包录制所有话题:rosbag record -a录制指定话题,设置 bag 包名:rosbag record -O bag_name.bag /topic1_name /topic2_na转载 2021-03-13 23:04:57 · 9045 阅读 · 0 评论 -
kittito_rosbag入坑教程
kittito_rosbag入坑教程github链接:https://github.com/ethz-asl/kitti_to_rosbag 准备ubuntu 16.04 ros 在root下操作执行# 使用tmux分屏# 开一个terminalroscore#再开一个terminal rosrun kittito_rosbag kitti_rosbag_converter calibration_path dataset_path output_path#cd..转载 2021-03-13 08:46:58 · 706 阅读 · 0 评论 -
ROS 多机通讯
在我看来,ROS最牛逼的地方就是它的通信机制了,不仅仅是进程间通信方便,就连不同设备间通信也很方便,只需添加几行代码,你就可以实现多电脑间的 Topi c共享, 远程控制等功能。下面就让我们一起来实现吧!这里假设我们有两个电脑:电脑 A 为主机端,电脑 B 为控制端。最终要实现在 A 电脑上运行roscore,并且运行 Turtlesim 程序,然后在 B 电脑上运行键盘控制程序,控制 Turtlesim 小乌龟移动。1. 查看电脑A和电脑B的 IP 和 Hostname查看IP,在控制台输入:转载 2021-03-10 14:13:09 · 294 阅读 · 0 评论 -
ROS常用操作
ROS shell 命令ROS shell命令又被称为rosbash,这使我们可以在ROS开发环境中使用Linux中常用的bash shell命令。roscd:移动ROS目录roscd [功能包名称]这是一个移动到保存有功能包的目录的命令rosls:ROS文件列表rosls [功能包名称]该命令查看指定的ROS功能包的文件列表一般使用roscd命令移动到功能包,然后使用正常的ls命令执行相同的功能。rosed:ROS编辑命令rosed [功能包名..转载 2021-03-05 06:49:18 · 443 阅读 · 1 评论 -
ROS-PCL读取pcd点云数据并在rviz中进行显示
环境:Ubuntu18.04ROS melodicC++创建工作空间和功能包cd Downloads/ROSmkdir -p pcdreadshow_ws/srccd srccatkin_init_workspacecatkin_create_pkg read_pcd pcl_conversions pcl_ros roscpp sensor_msgs进入到功能包的src文件夹下面新建.cpp文件read_pcd.cpp#include<ros/ros.h>#转载 2021-03-04 22:43:57 · 2081 阅读 · 1 评论