机器人开发笔记之ros-pcl学习(1)

ROS-PCL学习(1)


前言

本文主要记录ROS-PCL的学习过程,尽可能详细的记录以便日后回顾,大家也可以参考学习学习。

一、创建一个ROS软件包

1.创建一个工作空间并完成环境配置

2.创建一个ROS软件包

下面是一个典型的创建软件包的命令。
catkin_creat_pkg 包名 依赖1依赖2…

catkin_creat_pkg chapter10_tutorials pcl_conversions pcl_ros pcl_msgs sensor_msgs

3.创建一个源文件目录

rospack profile
roscd chapter10_tutorials
mkdir src

4.在源文件目录下创建新的cpp文件

创建后输入以下代码

#include <ros/ros.h>
#include <pcl/point_cloud.h>
#include <pcl_conversions/pcl_conversions.h>
#include <sensor_msgs/PointCloud2.h>
 
int main (int argc, char **argv)
{
    ros::init (argc, argv, "pcl_create");
 
    ros::NodeHandle nh;
    ros::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2> ("pcl_output", 1);
    pcl::PointCloud<pcl::PointXYZ> cloud;
    sensor_msgs::PointCloud2 output;
 
    // Fill in the cloud data
    cloud.width  = 100;
    cloud.height = 1;
    cloud.points.resize(cloud.width * cloud.height);
 
    for (size_t i = 0; i < cloud.points.size (); ++i)
    {
        cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
        cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
        cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
    }
 
    //Convert the cloud to ROS message
    pcl::toROSMsg(cloud, output);
    output.header.frame_id = "odom";
 
    ros::Rate loop_rate(1);
    while (ros::ok())
    {
        pcl_pub.publish(output);
        ros::spinOnce();
        loop_rate.sleep();
    }
 
    return 0;
}

这个是用于创建一个ROS节点并发布带有100个点的点云。
(推荐大家试试ROBOWARE,用来编辑ros十分方便)
在这里插入图片描述

5.修改CMakeLists.txt

基本做所有功能包都需要这部,就不多废话了,大家都老ROS人了。

find_package(catkin REQUIRED COMPONENTS
  roscpp
  pcl_conversions
  pcl_msgs
  pcl_ros
  sensor_msgs
  rospy
)
find_package(PCL REQUIRED)
include_directories(
  include ${catkin_INCLUDE_DIRS}
  ${catkin_INCLUDE_DIRS}
  ${PCL_INCLUDE_DIRS}
)

link_directories(${PCL_LIBRARY_DIRS})
add_executable(pcl_create
  src/pcl_create.cpp
)
add_dependencies(pcl_create ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(pcl_create
  ${catkin_LIBRARIES}
)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

二、程序运行

1.启动功能包

注意每次新开终端要source一次。
也可以通过配置环境文件一劳永逸,这个有很多教程大家自行搜索。

开终端启动ros

roscore

新开一个终端启动创建点云的节点

rosrun chapter10_tutorials pcl_create

再新开一个终端启动rviz

rosrun rviz rviz

2.设置Rviz

1.将坐标系设置为odom
在这里插入图片描述2.add添加一个PointCloud2并设置topic为pcl_create在这里插入图片描述

3.最后效果
在这里插入图片描述

总结

以上就是一个简单例子,方便大家入门感受一下。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值