ROS
yhwang-hub
还是什么也不写吧
展开
-
实现Ransac随机采样算法分割地面点云
如何利用RANSAC算法实现激光雷达的地面与非地面点云分割利用激光雷达做感知输出首先要分割出地面点云以减少对障碍物聚类的影响。本文首先介绍RANSAC的基本原理,并依据RANSAC在ROS中实现对地面点云的分割。接着,引入PCL点云库,PCL点云库中有标准的RANSAC算法接口,我们可以通过调用它实现更加快速,稳定地滤除地面点云。ransac是 random sample consensus的缩写,翻译过来是随机抽样一致的意思。它表示可以从一组包含“局外点”的数据集中,通过迭代的方式估计某个数学模型的参原创 2020-06-03 15:35:27 · 4650 阅读 · 9 评论 -
RANSAC方法滤除地面
项目git链接:https://gitee.com/long_xiao_wyh/ground_filter_pcl_RANSAC环境:Ubuntu16.04pcl运行:mkdir buildcd buildcmake ..makecd .../pcl_test通过命令行查看pcd文件需要用到pcl_viewer,pcl_viewer是在pcl-tools中,先安装pcl-tools:sudo apt-get install pcl-tools通过pcl_viewer查看原pc原创 2020-06-04 18:06:41 · 2080 阅读 · 1 评论 -
ROS、PCL点云滤波模块整理
前言点云滤波模块常见的模块包括:Pass Through直通滤波、VoxelGrid过滤、StatisticalOutlierRemoval过滤、点云投影、提取索引等;今天介绍前三种过滤模块:直通滤波、体素滤波、统计滤波。直通滤波:快速过滤掉用户自定义区间范围内的点云体素滤波:在分割、配准前,如果点云数量太多会影响后续时间。此时,需要对点云进行下采样处理,体素滤波为采用体素网格方法采样,减少点云数量。统计滤波:统计滤波往往去除离群点,利用统计分析技术删除噪声异常值等。下面对原始点云分别进行三种滤波原创 2020-06-04 18:18:37 · 2590 阅读 · 1 评论 -
使用C++向Rviz发送简单的形状
按照RVIZ的官方教材来一步步来,Markers: Sending Basic Shapes (C++),第一步先学习如何使用visualization_msgs/Marker 类型的消息发送简单的形状给RVIZ。在~/rviz_ws/src中运行catkin_create_pkg using_markers roscpp visualization_msgsgedit using_markers/src/basic_shapes.cppcpp的代码如下:#include <ros/ro.原创 2020-07-19 23:43:02 · 626 阅读 · 2 评论 -
如何在实际项目中应用ROS导航相关-使用代码启动launch与定点导航
引言我们知道启动ROS相关应用要么是roslaunch要么是rosrun,实际项目中不可能每次手动去运行这些命令,简单的就是写到脚本里去,但是涉及复杂的,就需要使用代码去处理在代码中启动roslaunch和rosrun直接贴出代码import subprocessimport rospyimport rosnodeclass launch_demo: def __init__(self, cmd=None): self.cmd = cmd def launc转载 2020-07-17 12:15:04 · 606 阅读 · 2 评论 -
ROS程序开机自启动
1.概述写了这么多ROS的launch脚本,怎么才能开机就启动呢,本文介绍1种方法,使用ROS的 robot_upstart包,下面以pibot_bringuppackage的·bringup.launch`演示2.robot_upstart包2.1 安装使用pibot_install_ros.sh一键安装工具即可安装所有pibot所需要的ROS包,如需单独安装sudo apt-get install ros-{ROS_DIST}-robot-upstartROS_DIST即为indigo或者ki转载 2020-07-17 12:08:11 · 845 阅读 · 0 评论 -
ROS-解析 roslaunch 文件
1.roslaunch 命令roslaunch 命令允许我们一次启动 launch 文件中定义的多个 ROS 节点,启动参数等在启动文件(launch 文件)中配置,并且如果系统之前没有启动 roscore,则 roslaunch 会自动启动它。roslaunch 的命令行用法如下:roslaunch [package] [filename.launch]例如:roslaunch beginner_tutorials turtlemimic.launch其中 beginner_tutoria原创 2020-07-14 23:27:31 · 758 阅读 · 0 评论 -
ROS-读取pcd点云数据进行滤波并在Rviz中显示
环境:Ubuntu16.04ROS KineticC++创建工作空间:cd Downloads/ROSmkdir -p PointCloudFilter_ws/srccd PointCloudFilter_ws/srccatkin_init_workspacecd ..catkin_make将该工作空间的setup文件路径放到Home路径下的.bashrc文件中:创建功能包 cd src catkin_create_pkg pointcloudfilter_pkg pcl_co原创 2020-05-29 00:58:41 · 2410 阅读 · 0 评论 -
ROS-PCL读取pcd点云数据并在rviz中进行显示
环境:Ubuntu16.04ROS kineticC++创建工作空间和功能包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>#inclu原创 2020-05-28 00:22:31 · 1959 阅读 · 0 评论 -
ROS-创建点云数据并在Rviz中显示
环境:Ubuntu16.04ROS kineticC++1.新建ROS工作空间mkdir -p PointCloundShow_ws/srccd PointCloundShow_ws/srccatkin_init_workspacecd ..catkin_make 将工作空间下的setup.bash文件路径添加到Home路径下的.bashrc文件中:这样就不用每次都source一下了.2.创建功能包cd srccatkin_create_pkg pointcloundshow原创 2020-05-27 22:53:17 · 2146 阅读 · 1 评论 -
PCL已有点类型介绍和增加自定义的点类型
本小节不仅解释如何增加你自己的PointT点类型,也介绍了PCL中的模板point类型,以及它们的用处和定义。PCL从开始就伴随着各种预定义的point类型,从用于XYZ数据到更复杂的n维直方图表示法,例如PFH(点特征直方图)。这些类型应该足够支持在PCL中应用的算法及方法,然而,也有情况下用户希望定义新的类型。注意:由于PCL的快速更新,本节内容仅仅对PCL 0.x和1.x版本兼容,撰写本文档的时候预期在PCL 2.X中会有新的改变,但大的架构不变,只是添加些新定义的描述子等点类型之类的。为什么用P原创 2020-05-26 10:58:54 · 1396 阅读 · 1 评论 -
点云视窗类CloudViewer
点云视窗类CloudViewer是简单显示点云的可视化工具类,可以让用户用尽可能少的代码查看点云。注意:点云视窗类不能应用于多线程应用程序中。简单点云可视化如果用户想用几行代码可视化程序中所对应的地物,可以使用下面的代码:#include <pcl/visualization/cloud_viewer.h>//...voidfoo () { pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud;//... 为cloud添加对应原创 2020-05-26 00:34:37 · 823 阅读 · 0 评论 -
PCLVisualizer可视化类
PCLVisualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer使用起来更为复杂,但该类具有更全面的功能,如显示法线、绘制多种形状和多个视口。本小节将通过示例代码演示PCLVisualizer可视化类的功能,从显示单个点云开始。大多数示例代码都是用于创建点云并可视化其某些特征。代码首先,在PCL(Point Cloud Learning)中国协助发行的书提供光盘的第7章例3文件夹中,打开名为pcl_visualizer_demo.cpp的代原创 2020-05-25 17:28:13 · 629 阅读 · 0 评论 -
Ubuntu16.04安装roboware以及遇到的问题解决方法
RoboWare官网:添加链接描述选择合适的版本下载,注意32位与64位之分。下载完以后先不要着急安装,为了更好地使用RoboWare Studio,我们需要事先安装两个比较常用的插件。1、为了支持Python调试功能,需要安装pylint:$ sudo apt-get install python-pip$ sudo python -m pip install pylint2、为了获得更好的代码阅读体验,自动格式化整理代码,需要安装clang-format:$ sudo apt-get in原创 2020-05-25 11:37:27 · 1471 阅读 · 1 评论 -
PCL使用过程中遇到的问题
在编译工作空间的时候碰到下面的错误:大体的意思是报错:对‘pcl::search::Searchpcl::PointXYZ::getNameabi:cxx11 const’未定义的引用…解决办法:在include文件夹下面的.h文件中添加下面的代码:#include <pcl/search/impl/search.hpp> #ifndef PCL_NO_PRECOMPILE#include <pcl/impl/instantiate.hpp>#include <原创 2020-05-19 21:52:56 · 1139 阅读 · 0 评论 -
PCL_ROS的数据格式
在ROS中点云的数据类型在ROS中表示点云的数据结构有: sensor_msgs::PointCloud sensor_msgs::PointCloud2 pcl::PointCloud<T>关于PCL在ros的数据的结构,具体的介绍可查 看 http://wiki.ros.org/pcl/Overview关于sensor_msgs::PointCloud2 和 pcl::PointCloud之间的转换使用pcl::fromROSMsg 和 pcl::toROSMsg原创 2020-05-17 12:58:42 · 345 阅读 · 0 评论 -
PCL_ROS的使用
1.数据格式在ROS中点云的数据类型在ROS中表示点云的数据结构有: sensor_msgs::PointCloud sensor_msgs::PointCloud2 pcl::PointCloud关于PCL在ros的数据的结构,具体的介绍可查 看 wiki.ros.org/pcl/Overview关于sensor_msgs::PointCloud2 和 pcl::PointCloud之间的转换使用pcl::fromROSMsg 和 pcl::toROS原创 2020-05-16 23:41:15 · 3136 阅读 · 0 评论 -
ROS中rqt_plot报错
问题描述在终端中使用rqt_plot进行数据绘图时,打不开绘图工具,提示错误:解决办法仔细看提示的错误全是Matplotlib的报错,这是由于没有安装Matplotlib或者版本过低,需要执行以下操作进行安装:python -m pip install -U matplotlib ...原创 2020-05-15 11:37:21 · 1120 阅读 · 0 评论 -
ROS-常用可视化工具的使用
1.运行小海龟仿真工具打开新的终端输入 rqt_,然后摁两下回车键即可看到Ubuntu基于qt的可视化工具1.ros_console展示一些系统中默认的日志信息,比如让小海龟运动起来撞墙后会显示报警信息2.rqt_plot绘制数据曲线比如订阅小海龟的位置信息3.rqt_image_view查看摄像头图像4.rqt里面继承了ROS中所有的可视化工具,是一个自动性的工具5.RvizRviz 是一款三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台。➢ 在rviz中,可以使用可原创 2020-05-15 11:35:22 · 853 阅读 · 0 评论 -
ROS-launch启动文件的使用方法
launch文件:通过XML文件实现多节点的配置和启动(可自启动ROS Mater)launch文件语法 launch文件中的根元素采用标签定义启动节点 • pkg:节点所在的功能包名称• type:节点的可执行文件名称• name:节点运行时的名称• output 、respawn 、required 、ns 、args参数设置 /设置ROS系统运行中的参数,存储在参数服务器中。 • name:参数名 • value:参数值加载参数文件中的多个参数:launch文件原创 2020-05-15 00:19:01 · 1496 阅读 · 0 评论 -
ROS-tf坐标系广播与监听的编程实现
创建功能包$ cd ~/catkin_ws/src$ catkin_create_pkg learning_tf roscpp rospy tf turtlesim创建tf广播器代码如何实现一个tf广播器• 定义TF广播器(TransformBroadcaster)• 创建坐标变换值;• 发布坐标变换(sendTransform)/** * 该例程产生tf数据,并计算、发布turtle2的速度指令 */#include <ros/ros.h>#include <原创 2020-05-14 20:52:27 · 426 阅读 · 0 评论 -
ROS-ROS中的坐标管理系统
机器人中的坐标变换TF功能包能干什么?•五秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样的?•机器人夹取的物体相对于机器人中心坐标系的位置在哪里?•机器人中心坐标系相对于全局坐标系的位置在哪里?TF坐标变换如何实现?• 广播TF变换• 监听TF变换以小海龟为例$ sudo apt-get install ros-melodic-turtle-tf$ roslaunch turtle_tf turtle_tf_demo.launch$ rosrun turtlesim turt原创 2020-05-14 15:40:48 · 313 阅读 · 0 评论 -
ROS-参数的使用与编程方法
参数模型创建功能包cd ~/catkin_ws/srccatkin_create_pkg learning_parameter roscpp rospy std_srvs参数命令行使用rosparam⚫ 列出当前多有参数$ rosparam listYAML参数文件⚫ 显示某个参数值$ rosparam get param_key⚫ 设置某个参数值$ rosparam set param_key param_value⚫ 保存参数到文件$ rosparam dump file_原创 2020-05-14 13:05:18 · 441 阅读 · 0 评论 -
ROS-服务数据的定义与使用
如何自定义服务数据类型string nameuint8 ageuint8 sexuint8 unknown =0uint8 male= 1uint8 female = 2---string result服务数据会被分成两个部分,三个横线以上是request数据,三个横线以下是response数据1.定义srv文件2.在package.xml中添加功能包依赖<build_depend>message_generation</build_depend>&l原创 2020-05-14 10:52:28 · 267 阅读 · 0 评论 -
ROS-服务端server的编程实现
在ROS Master的管理之下有client和server两个节点,下面要实现的是server端,server端用来给海龟发送速度的指令,通过topic来发,service功能是以client端发布request控制server是不是要给海龟发速度指令,client端是海龟运动和停止的开关,当client端发request请求之后海龟就运动,再发一个request之后海龟就停止,server端接受开关的指令,并且完成海龟运动指令的发送。创建服务器代码/** * 该例程将执行/turtle_comma原创 2020-05-12 15:45:08 · 407 阅读 · 0 评论 -
ROS-客户端client的编程实现
话题模型原创 2020-05-11 09:39:44 · 190 阅读 · 0 评论 -
ROS-话题消息的定义和使用
自定义话题消息原创 2020-05-10 13:37:01 · 1007 阅读 · 0 评论 -
ROS-发布者publisher的编程实现
以小海龟运动仿真为例:原创 2020-05-10 11:20:22 · 426 阅读 · 0 评论 -
ROS创建工作空间以及功能包
1.工作空间工作空间(workspace)是一个存放工程开发相关文件的文件夹src:代码空间(SOurce Space)build:编译空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install Space)2.创建工作空间创建工作空间mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspace编译工作空间cd ~/catkin_ws/catki原创 2020-05-09 13:02:23 · 3924 阅读 · 3 评论 -
ROS命令行工具
1.常用命令:rostopicrosservicerosnoderosparamrosmsgrossrv2.以小海龟为例启动ROS Master:roscore启动小海龟仿真器rosrun turtlesim turtlesim_node启动海龟控制节点rosrun turtlesim turtle_teleop_key使用rqt_graph可视化工具查看系统中运行的计算图查看话题列表rosnode list发布话题消息rostopic pub /turtle原创 2020-05-09 10:20:31 · 174 阅读 · 0 评论 -
sudo rosdep init报错
sudo rosdep init 出现 ERROR: cannot download default sources list from:针对目前安装ROS出现一下指令的错误sudo rosdep initERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdis...转载 2020-04-25 21:05:03 · 1452 阅读 · 0 评论 -
Ubuntu16.04 ROS环境配置
1. Ubuntu 安装 ROS Kinetic1.1Configure your Ubuntu repositories(配置您的Ubuntu存储库)在系统设置中,找到软件与更新,将如下几个都勾选,允许其从互联网下载。1.2 Setup your sources.list(设置你的计算机以接受packages.ros.org中的软件).sudo sh -c 'echo "deb htt...原创 2020-03-17 21:11:18 · 772 阅读 · 0 评论