在ROS上发布点云 PointClouds
来源:互联网 发布:java 启动参数 编辑:程序博客网 时间:2024/05/19 23:00
在ros中,对于3D点,可以直接给sensor_msgs/PointCloud 赋值并发布消息,比较方便。
1.创建工程
mkdir -p pointcloud/srccd srccatkin_create_pkg pointcloud roscpp rospy sensor_msgs std_msgs cd ..catkin_make
2.编辑主函数
pointcloud.cpp
#include <ros/ros.h>#include <sensor_msgs/PointCloud.h>int main(int argc, char** argv){ ros::init(argc, argv, "point_cloud_publisher"); ros::NodeHandle n; ros::Publisher cloud_pub = n.advertise<sensor_msgs::PointCloud>("cloud", 50); unsigned int num_points = 100; ros::Rate r(1.0); while(n.ok()){ sensor_msgs::PointCloud cloud; cloud.header.stamp = ros::Time::now(); cloud.header.frame_id = "sensor_frame"; cloud.points.resize(num_points); //we'll also add an intensity channel to the cloud cloud.channels.resize(1); cloud.channels[0].name = "rgb"; cloud.channels[0].values.resize(num_points); //generate some fake data for our point cloud for(unsigned int i = 0; i < num_points; ++i){ cloud.points[i].x = 0.1*i; cloud.points[i].y = 0.1*i; cloud.points[i].z = 5; cloud.channels[0].values[i] = 255; } cloud_pub.publish(cloud); r.sleep(); }}
此程序对wiki上http://wiki.ros.org/cn/navigation/Tutorials/RobotSetup/Sensors的例子进行了修改。
cloud.channels[0].name = “rgb”,将名字改为rgb。另外固定点云位置为一条直线。
3.编辑CMakeLists.txt
在最后加入
add_executable(pointcloud src/pointcloud.cpp)
target_link_libraries(pointcloud ${catkin_LIBRARIES})
4.rviz显示
在rviz 中fix frame 设置为sensor_frame
其他设置及运行效果如图
参考文献
http://wiki.ros.org/cn/navigation/Tutorials/RobotSetup/Sensors
http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud.html
阅读全文
0 0
- 在ROS上发布点云 PointClouds
- 在ROS上发布传感器流
- ROS中发布点云信息和里程计消息
- 在树莓派3的ROS平台上发布sensor_msgs/Imu消息
- ROS机器人Diego 1#制作(九)视觉系统之使用Xtion发布点云数据
- Ros kinect点云数据
- 【ROS总结】点激光扫描仪数据发布(驱动编写)
- ROS(二) 在多个电脑上运行ROS
- ROS在ARM上的编译
- ROS在ARM上的编译
- ROS在ARM上的编译
- ROS在Zedboard上的移植
- 在Raspberry Pi上安装ROS
- 在Raspberry Pi上安装ROS Package
- 4.ROS在Pcduino上的安装
- ROS在多机器人上的运行
- ROS在ARM上的编译
- 在FirePrime上编译安装ROS jade
- java 编程规范 数据类型 运算符 分支判断if switch等初识
- MySQL访问权限系统
- 基于html5 Canvas图表库 : ECharts
- C++解析字符串,调用函数
- 集群时间同步
- 在ROS上发布点云 PointClouds
- $$x^y+y^x>1$$
- House Robber II:打家劫舍 取非相邻元素求和最大,且认为第一个元素与最后一个元素相邻
- opencv学习笔记第四章 计算图像的直方图
- jquery对象的基本方法和属性--学习笔记
- leetcode--24. Swap Nodes in Pairs
- 抽象和接口
- Servlet细节——配置文件
- grails的成功配置