当前位置: 首页 > wzjs >正文

广告推广营销网站企业如何打造品牌

广告推广营销网站,企业如何打造品牌,设计软件coreldraw,国外网站打开很慢dnssensor_msgs中常用的一些传感器有imu、图像、点云、激光雷达点云、里程计信息等等信息。接下来&#xff0c;我们俩看一下这些传感器数据&#xff0c;以及数据如何操作。一、pointcloud21&#xff09;随即点云生成pcl::PointCloud<pcl::PointXYZI> pointxyz;pointxyz.widt…

sensor_msgs中常用的一些传感器有imu、图像、点云、激光雷达点云、里程计信息等等信息。

接下来,我们俩看一下这些传感器数据,以及数据如何操作。

一、pointcloud2

1)随即点云生成

   pcl::PointCloud<pcl::PointXYZI> pointxyz;pointxyz.width = 100;pointxyz.height = 1;pointxyz.resize(pointxyz.height * pointxyz.width);srand(time(nullptr));for(int i = 0;i < 100; i ++){pointxyz.points[i].x = (rand()% 1000) / 10.0;pointxyz.points[i].y = (rand()% 1000) / 10.0;pointxyz.points[i].z = (rand()% 1000) / 10.0;}

2)点云的发布和接收

 //-------------------------------------------点云的生成和转化----------------------------顺利完成---------------------// 这个函数在pcl_conversion./pcl_conversion.h文件中sensor_msgs::PointCloud2 pointCloudMsg;pointCloudMsg.header.stamp = ros::Time().now();pointCloudMsg.header.frame_id = "/camera_init";pcl::toROSMsg(pointxyz,pointCloudMsg);pcl::PointCloud<pcl::PointXYZI> pointxyzi2;pcl::fromROSMsg(pointCloudMsg, pointxyzi2);for( int i = 0; i < pointxyzi2.points.size();i ++ ){std::cout<< pointxyzi2.points[i].x<<"   "<< pointxyzi2.points[i].y<<"   "<< pointxyzi2.points[i].z<<"\n";}pcl::PointCloud<pcl::PointXYZI> point3;pcl::moveFromROSMsg(pointCloudMsg,point3);for( int i = 0; i < point3.points.size();i ++ ){std::cout<< point3.points[i].x<<"   "<< point3.points[i].y<<"   "<< point3.points[i].z<<"****\n";}

二、laserscan

  sensor_msgs::LaserScan laserMsg;laserMsg.angle_min = 0.0; // 开始扫描的角度laserMsg.angle_max = 0.0; //结束扫描的角度laserMsg.angle_increment = 60; // 每一次扫描增加的角度laserMsg.time_increment = 0.1; // 测量的时间间隔laserMsg.scan_time = 0.1; //扫描的时间间隔laserMsg.range_min = 1.0; // 距离的最大值laserMsg.range_max = 40.0;  // 距离的最小值laserMsg.ranges.push_back(10); // 激光扫描中存储的一帧数据laserMsg.intensities.push_back(1.0); // 每一个激光点的强度

三、image

1)图像的生成和消息发布

   ros::Subscriber  subImg = nh_.subscribe<sensor_msgs::Image>("/topic_image", 2, &DataProcess::imageCallback, &dp);ros::Publisher pubImg = nh_.advertise<sensor_msgs::Image>("/topic_image", 2);std::string strImgPath = "/home/zhu/pcb_test.png";cv::Mat  img = cv::imread(strImgPath,cv::IMREAD_COLOR);std::cout<< img.rows<<"  "<< img.cols<<std::endl;//发布消息std_msgs::Header header;header.stamp = ros::Time().now();header.frame_id = "/init";sensor_msgs::ImagePtr imgMsgs =   cv_bridge::CvImage(header, sensor_msgs::image_encodings::BGR8,img).toImageMsg();pubImg.publish(imgMsgs);

2)图像的消息接收

    void imageCallback(const sensor_msgs::Image::ConstPtr& imgMsg){cv_bridge::CvImagePtr  imgPtr ;try{imgPtr = cv_bridge::toCvCopy(imgMsg,"bgr8" );}catch(const cv_bridge::Exception& e){std::cerr << e.what() << '\n';return ;}cv::Mat  img = imgPtr->image;double time = imgPtr->header.stamp.toSec();std::string  strEncoding = imgPtr->encoding;std::cout<<"time:"<<time  << "   "<< img.rows<<"  "<< img.cols<<std::endl;}

四、imu

1)imu数据的生成和发布

sensor_msgs::Imu  imuMsg;imuMsg.angular_velocity.x = 0.0;imuMsg.angular_velocity.y = 0;imuMsg.angular_velocity.z = 0;imuMsg.angular_velocity_covariance[0] = 0.0;imuMsg.angular_velocity_covariance.elems[0] = 0.0;imuMsg.header.frame_id = "/camera_init";imuMsg.header.stamp = ros::Time().now();imuMsg.linear_acceleration.x = 0;imuMsg.linear_acceleration.y = 0;imuMsg.linear_acceleration.z = 0;imuMsg.orientation.w = 1.0;imuMsg.orientation.x = 0;imuMsg.orientation.y = 0;imuMsg.orientation.z = 0;ros::Subscriber subImu  =  nh_.subscribe<sensor_msgs::Imu>("/topic_imu", 200, &DataProcess::imuCallback, &dp);ros::Publisher  pubImu = nh_.advertise<sensor_msgs::Imu>("/topic_imu", 200);pubImu.publish(imuMsg);

2)imu的接收

    void imuCallback(const sensor_msgs::Imu::ConstPtr& imuMsg){std::cout<< imuMsg->linear_acceleration.x<< "   "<<  imuMsg->linear_acceleration.y<< "   "<<  imuMsg->linear_acceleration.z<< " \n";}

五、nav_msg

1)由于nav_msg并没有需要什么转换的,直接赋值和直接使用就可以了,所以之介绍一下数据类型。

  nav_msgs::Odometry  odomMsg;odomMsg.header.frame_id = "/camera_init";odomMsg.header.stamp = ros::Time().now();odomMsg.child_frame_id = " child";odomMsg.pose.pose.position.x = 0.0;odomMsg.pose.pose.position.y = 0;odomMsg.pose.pose.position.z = 0;odomMsg.pose.pose.orientation.w = 0.0;odomMsg.pose.pose.orientation.x = 0.0;odomMsg.pose.pose.orientation.y = 0.0;odomMsg.pose.pose.orientation.z = 0.0;odomMsg.twist.twist.angular.x = 0;odomMsg.twist.twist.angular.y = 0;odomMsg.twist.twist.angular.z = 0;odomMsg.twist.twist.linear.x = 0;odomMsg.twist.twist.linear.y = 0;odomMsg.twist.twist.linear.z = 0;

最后来看一个合并后的代码

#include<ros/ros.h>
#include<rosbag/bag.h>
#include<rosbag/view.h>
#include<std_msgs/String.h>
#include<pcl/point_types.h>
#include<pcl/point_cloud.h>
#include<pcl/conversions.h>
#include<pcl_conversions/pcl_conversions.h>
#include<opencv2/opencv.hpp>#include<image_transport/image_transport.h>
#include<cv_bridge/cv_bridge.h>
#include<sensor_msgs/PointCloud2.h>
#include<sensor_msgs/Imu.h>
#include<nav_msgs/Odometry.h>
#include<sensor_msgs/LaserScan.h>class DataProcess
{public:DataProcess(){}public:void processPointCloud2(const sensor_msgs::PointCloud2::ConstPtr& pc){}void imageCallback(const sensor_msgs::Image::ConstPtr& imgMsg){cv_bridge::CvImagePtr  imgPtr ;try{imgPtr = cv_bridge::toCvCopy(imgMsg,"bgr8" );}catch(const cv_bridge::Exception& e){std::cerr << e.what() << '\n';return ;}cv::Mat  img = imgPtr->image;double time = imgPtr->header.stamp.toSec();std::string  strEncoding = imgPtr->encoding;std::cout<<"time:"<<time  << "   "<< img.rows<<"  "<< img.cols<<std::endl;}void imuCallback(const sensor_msgs::Imu::ConstPtr& imuMsg){std::cout<< imuMsg->linear_acceleration.x<< "   "<<  imuMsg->linear_acceleration.y<< "   "<<  imuMsg->linear_acceleration.z<< " \n";}};int main(int argc, char** argv)
{ros::init(argc,argv,"rosbaglearn");ros::NodeHandle nh_;DataProcess  dp;/*第一、消息的订阅和发布*/ros::Subscriber subPointclod2 = nh_.subscribe<sensor_msgs::PointCloud2>("/pointcloud2",2, &DataProcess::processPointCloud2, &dp);//  ros::Publisher pbuLaserCloud = ros::Publisher()ros::Subscriber subPointCLoud2 = nh_.subscribe<sensor_msgs::PointCloud2>("/topic_cloud2", 2, &DataProcess::processPointCloud2, &dp);ros::Publisher pubPointCloud2 = nh_.advertise<sensor_msgs::PointCloud2>("/topic_cloud2", 2);/*点云的转换*/pcl::PointCloud<pcl::PointXYZI> pointxyz;pointxyz.width = 100;pointxyz.height = 1;pointxyz.resize(pointxyz.height * pointxyz.width);srand(time(nullptr));for(int i = 0;i < 100; i ++){pointxyz.points[i].x = (rand()% 1000) / 10.0;pointxyz.points[i].y = (rand()% 1000) / 10.0;pointxyz.points[i].z = (rand()% 1000) / 10.0;}//-------------------------------------------点云的生成和转化----------------------------顺利完成---------------------// 这个函数在pcl_conversion./pcl_conversion.h文件中sensor_msgs::PointCloud2 pointCloudMsg;pointCloudMsg.header.stamp = ros::Time().now();pointCloudMsg.header.frame_id = "/camera_init";pcl::toROSMsg(pointxyz,pointCloudMsg);pcl::PointCloud<pcl::PointXYZI> pointxyzi2;pcl::fromROSMsg(pointCloudMsg, pointxyzi2);for( int i = 0; i < pointxyzi2.points.size();i ++ ){std::cout<< pointxyzi2.points[i].x<<"   "<< pointxyzi2.points[i].y<<"   "<< pointxyzi2.points[i].z<<"\n";}pcl::PointCloud<pcl::PointXYZI> point3;pcl::moveFromROSMsg(pointCloudMsg,point3);for( int i = 0; i < point3.points.size();i ++ ){std::cout<< point3.points[i].x<<"   "<< point3.points[i].y<<"   "<< point3.points[i].z<<"****\n";}// std::cout<< int(pointCloudMsg.data) <<"   "<< int(&point3.points[0])<<"   \n";//--------------------------------------------------------------------------------------------/*---------------------------------------------图像的生成和转化--------------------------------------------------*/ros::Subscriber  subImg = nh_.subscribe<sensor_msgs::Image>("/topic_image", 2, &DataProcess::imageCallback, &dp);ros::Publisher pubImg = nh_.advertise<sensor_msgs::Image>("/topic_image", 2);std::string strImgPath = "/home/zhu/pcb_test.png";cv::Mat  img = cv::imread(strImgPath,cv::IMREAD_COLOR);std::cout<< img.rows<<"  "<< img.cols<<std::endl;//发布消息std_msgs::Header header;header.stamp = ros::Time().now();header.frame_id = "/init";sensor_msgs::ImagePtr imgMsgs =   cv_bridge::CvImage(header, sensor_msgs::image_encodings::BGR8,img).toImageMsg();pubImg.publish(imgMsgs);//  所以图像的中间桥梁就是cv_bridge::CvImagePtr 哈哈哈,这个世界太完美了。/*-----------------------------------------------------------------------------------------------*//*---------------------------------------------------imu消息的收发------start--------------------------------------*/sensor_msgs::Imu  imuMsg;imuMsg.angular_velocity.x = 0.0;imuMsg.angular_velocity.y = 0;imuMsg.angular_velocity.z = 0;imuMsg.angular_velocity_covariance[0] = 0.0;imuMsg.angular_velocity_covariance.elems[0] = 0.0;imuMsg.header.frame_id = "/camera_init";imuMsg.header.stamp = ros::Time().now();imuMsg.linear_acceleration.x = 0;imuMsg.linear_acceleration.y = 0;imuMsg.linear_acceleration.z = 0;imuMsg.orientation.w = 1.0;imuMsg.orientation.x = 0;imuMsg.orientation.y = 0;imuMsg.orientation.z = 0;ros::Subscriber subImu  =  nh_.subscribe<sensor_msgs::Imu>("/topic_imu", 200, &DataProcess::imuCallback, &dp);ros::Publisher  pubImu = nh_.advertise<sensor_msgs::Imu>("/topic_imu", 200);pubImu.publish(imuMsg);ros::Rate loop_rate(10);loop_rate.sleep();/*---------------------------------------------------imu消息的收发------end--------------------------------------*/nav_msgs::Odometry  odomMsg;odomMsg.header.frame_id = "/camera_init";odomMsg.header.stamp = ros::Time().now();odomMsg.child_frame_id = " child";odomMsg.pose.pose.position.x = 0.0;odomMsg.pose.pose.position.y = 0;odomMsg.pose.pose.position.z = 0;odomMsg.pose.pose.orientation.w = 0.0;odomMsg.pose.pose.orientation.x = 0.0;odomMsg.pose.pose.orientation.y = 0.0;odomMsg.pose.pose.orientation.z = 0.0;odomMsg.twist.twist.angular.x = 0;odomMsg.twist.twist.angular.y = 0;odomMsg.twist.twist.angular.z = 0;odomMsg.twist.twist.linear.x = 0;odomMsg.twist.twist.linear.y = 0;odomMsg.twist.twist.linear.z = 0;sensor_msgs::LaserScan laserMsg;laserMsg.angle_min = 0.0; // 开始扫描的角度laserMsg.angle_max = 0.0; //结束扫描的角度laserMsg.angle_increment = 60; // 每一次扫描增加的角度laserMsg.time_increment = 0.1; // 测量的时间间隔laserMsg.scan_time = 0.1; //扫描的时间间隔laserMsg.range_min = 1.0; // 距离的最大值laserMsg.range_max = 40.0;  // 距离的最小值laserMsg.ranges.push_back(10); // 激光扫描中存储的一帧数据laserMsg.intensities.push_back(1.0); // 每一个激光点的强度ros::spin();return 0;
}


文章转载自:

http://XbnVKHFV.zdkzj.cn
http://4BXptRLI.zdkzj.cn
http://7IVBD4ML.zdkzj.cn
http://pxPclsnF.zdkzj.cn
http://HoHNiwN9.zdkzj.cn
http://JOn5vtbP.zdkzj.cn
http://KrDDKQY2.zdkzj.cn
http://F6YrJqzY.zdkzj.cn
http://68xQ6WY2.zdkzj.cn
http://IeddQhwe.zdkzj.cn
http://qccx20Ts.zdkzj.cn
http://Y2LhLG3Z.zdkzj.cn
http://4aynip7R.zdkzj.cn
http://Wn4q4Suj.zdkzj.cn
http://LHe4gpos.zdkzj.cn
http://I043Lnzm.zdkzj.cn
http://idji3PBr.zdkzj.cn
http://TxblGSQh.zdkzj.cn
http://EN1sjL53.zdkzj.cn
http://1nLR6OCQ.zdkzj.cn
http://iM6sbo0H.zdkzj.cn
http://M2Y77Wm0.zdkzj.cn
http://HEap274M.zdkzj.cn
http://VxyIWI1M.zdkzj.cn
http://orvU09jO.zdkzj.cn
http://ukMHFus8.zdkzj.cn
http://1buuYhFW.zdkzj.cn
http://riFiEE23.zdkzj.cn
http://HoCednmN.zdkzj.cn
http://7rF09fbx.zdkzj.cn
http://www.dtcms.com/wzjs/632022.html

相关文章:

  • 虚拟机 网站建设三网合一网站报价
  • 做地区招聘网站网站建设及维护干什么的
  • 南昌网站建设机构无锡网站建设咨询
  • 网站注册流程google ads 推广
  • 颇有名气的网站建设专家好网站开发策划要求
  • 网站免费个人空间申请o2o平台有哪些可以入驻
  • 做网站工作的怎么填职务网站首页优化模板
  • 南阳哪有做网站公司用dw做的网站能用吗
  • 网站建设需要域名photoshop官网
  • wordpress 重新安装公司网站建设推荐乐云seo
  • asp网站开发实训郑州注册公司流程及费用
  • 在网上做企业网站怎么做商务网站建设实训报告总结
  • 毕设做网站什么主题比较好贵阳白云区城乡建设局网站
  • 网站建设的七个流程步骤如何看出网站用dede做的
  • 网站建设公司品牌企业门户网站实现
  • 公司弄个网站多少钱手机网站页面尺寸
  • 台州哪家做企业网站比较好企点官网网址
  • 红安县城乡建设局官方网站做旅游业务的商业网站
  • 专门做二手手机的网站网站开发是什么
  • wordpress 免费字体seo短视频网页入口营销
  • 上海建网站价格分销商城网站开发
  • 有人知道做网站吗?人才招聘网站大全
  • 杭州网站建设企业在线股票交易网站开发
  • 东莞的网站建设公司哪家好网站报价表
  • 跟男友做网站企业公司信息网
  • 淘宝券搜索网站怎么做项目推广app
  • 大连城乡建设网站网页设计居中代码
  • 泸州作网站建设联系电话外贸php网站源码
  • 快速搭建一个网站设计工作网站
  • 大名专业做网站wordpress xiu主题5.3