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

保定网站排名哪家公司好html上传wordpress

保定网站排名哪家公司好,html上传wordpress,招聘类网站该怎么做,分类信息网发布大全ros2可以和lidar、imu、相机、超声波雷达和小车控制等硬件相互通讯。通讯的过程中是按照一定的消息格式来通讯的,但是数据处理的时候则是直接对消息中的数据进行处理,因此消息和数据之间是需要进行转换的。那么怎么转换呢? 一.ros2和PointCl…

ros2可以和lidar、imu、相机、超声波雷达和小车控制等硬件相互通讯。通讯的过程中是按照一定的消息格式来通讯的,但是数据处理的时候则是直接对消息中的数据进行处理,因此消息和数据之间是需要进行转换的。那么怎么转换呢?

一.ros2和PointCloud2之间的转换

   假设所要包含的头文件和数据是:

#include <pcl_conversions/pcl_conversions.h>
#include <pcl/PCLPointCloud2.h>
#include <sensor_msgs/PointCloud2.h>
#include <pcl/conversions.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>pcl::PointCloud<>  pcl_pc;
pcl::Pointcloud2 pcl_pc2;
sensor_msgs::PointCloud2  ros_pc;
sensor_msgs::PointCloud2  ros_pc2;

    1、pcl::Pointcloud2 和  sensor_msgs::PointCloud2 之间的转换   

          1)把pcl::Pointcloud2 转换成 pointClouds_msg

                第一种方法:pcl::toRosMsg(pcl_pc2, ros_pc2); 

                第二种方法:pcl::fromPcl(pcl_pc2, ros_pc2); 

          2)把 pointClouds_msg转换成  pcl::Pointcloud2

               第一种方法:pcl::fromRosMsg( ros_pc2, pcl_pc2)

               第二种方法:pcl::toPcl( ros_pc2,pcl_pc2); 

    2. pcl::Pointcloud2 和 pcl::Pointcloud之间的转换

         1)把pcl::Pointcloud2转换成 pcl::Pointcloud

                pcl::fromPclPointCloud2(pcl_pc2,pcl_pc);

               

          2)把pcl::Pointcloud转换成 pcl::Pointcloud2

              pcl::toPclPointCloud2(pcl_pc,pcl_pc2);

               convertPointCloudToPointCloud2(pcl_pc,pcl_pc2);

    3.sensor_msg::pointcloud2 和sensor_msg::pointcloud之间的转换

          1)把sensor_msg::pointcloud2转换成 sensor_msg::pointcloud

                convertPointCloud2ToPointCloud( ros_pc2, ros_pc);

           2)把sensor_msg::pointcloud转换成 sensor_msg::pointcloud2

                convertPointCloud2ToPointCloud( ros_pc, ros_pc2);

    4.为了数据转换更加高效,可以使用move

            pcl_conversions::moveFromPCL(pcl_pc2, ros_pc2);

   点云、消息之间相互转换,参考的博客是 ROS与PCL环境中进行四种不同点云数据类型转换_pcl::torosmsg-CSDN博客

二、 ros2和图像之间的转换

         简单的转换关系就是 opencv cv::Mat  <-----------CvBridge-----------> Ros image message

#include <ros/ros.h>
#include <sensor_msgs/Image.h>
#include <cv_bridge/cv_bridge.h>
#include <opencv2/opencv.hpp>class ImageProcessor
{
public:ImageProcessor(){// 初始化订阅者和发布者image_sub = nh.subscribe("/camera/image_raw", 1, &ImageProcessor::imageCallback, this);image_pub = nh.advertise<sensor_msgs::Image>("/camera/image_processed", 1);}void imageCallback(const sensor_msgs::ImageConstPtr& msg){try{// 将ROS图像消息转换为OpenCV格式cv_bridge::CvImagePtr cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);// 进行灰度转换cv::Mat gray_image;cv::cvtColor(cv_ptr->image, gray_image, cv::COLOR_BGR2GRAY);// 将灰度图转换回ROS图像消息cv_bridge::CvImage out_msg;out_msg.header = msg->header;out_msg.encoding = sensor_msgs::image_encodings::MONO8;out_msg.image = gray_image;// 发布处理后的图像image_pub.publish(out_msg.toImageMsg());}catch (cv_bridge::Exception& e){ROS_ERROR("cv_bridge exception: %s", e.what());return;}}private:ros::NodeHandle nh;ros::Subscriber image_sub;ros::Publisher image_pub;
};int main(int argc, char** argv)
{ros::init(argc, argv, "image_processor");ImageProcessor ip;ros::spin();return 0;
}

       可以看出,

1)将ros2图像转成opencv图像

      cv_bridge::CvImagePtr cv_ptr = cv_bridge::toCvCopy(msg,sensor_msgs::image_encodings::BGR8);
            // 进行灰度转换
            cv::Mat gray_image;
            cv::cvtColor(cv_ptr->image, gray_image, cv::COLOR_BGR2GRAY);

2)将opencv图像转成ros2图像的方法

           // 将灰度图转换回ROS图像消息
            cv_bridge::CvImage out_msg;
            out_msg.header = msg->header;
            out_msg.encoding = sensor_msgs::image_encodings::MONO8;
            out_msg.image = gray_image;
            
            // 发布处理后的图像
            image_pub.publish(out_msg.toImageMsg());

参考的博客是:深入解析Ubuntu 20.04中ROS与OpenCV的图像格式及其相互转换_cv::mat image 转换为ros msg-CSDN博客

三、ros2和arduino通讯

这个还没搞明白,后续还需要更新博客。看这篇博客的代码,竟然是ros2消息发布也烧录到了arduino板子上,,那么消息是通过串口发布的吗?

ROS2与Arduino发布订阅_micro-xrce-dds 最小内存-CSDN博客

【如何将Arduino与机器人操作系统(ROS)一起使用】_arduino ros-CSDN博客

四、ros2和 imu之间

imu刚买过来,还没有具体研究,等跑通了再来更新。

五、ros2和串口之间的

ROS机器人制作(三)—— ROS上位机与stm32进行串口通信_ros与stm32通信-CSDN博客

六、ros2与pixhawk数据通讯

这个标题也先列在这里,后续逐步补充

http://www.yayakq.cn/news/784118/

相关文章:

  • 如何注册海外域名长春seo代理
  • dw网页设计制作网站的成品大连城建设计研究院网站
  • seo网站关键词优化方法阳明拍卖公司网站
  • 网站建设内部风险分析如何做营销型单页网站
  • 郑州网站建设公司电话免费行情软件网站大全
  • 网络优化首先要有网站品牌建设规划制定及实施情况
  • 做外汇网站代理商网站平台报价模板下载
  • 营销网站建设制作专门做网站搜索优化的公司
  • 网站建站案大学网站建设管理制度
  • 上海市做网站的公司潍坊网站建设方案咨询
  • 沈阳网站的建设宁夏建设职业技术学院官方网站
  • 个人做网站用什么技术31省本土新增今天
  • 北京做招聘网站的公司wordpress 增加接口
  • 学做网站和推广要多久查询网站空间商
  • 线上编程课哪个好南昌seo服务
  • 网站建设运营有限公司乐陵seo优化信德
  • 深圳松岗 网站建设在深圳如何注册公司
  • 饲料网站源码全国建设项目竣工验收公示网站
  • 苏州优化网站哪家好连云港东海县做网站
  • 个人简历制作网站网页版微信会在电脑上留下记录吗
  • 影楼微网站建设方案网上商城图片
  • 有没有做废品的网站新乡市网站建设公司
  • 网站是什么外协机械加工订单
  • 黑龙江省城乡和建设厅网站衡水微网站制作怎么做
  • 网站备案需要提供网站建设方案书开发小程序需要哪些技术
  • 微商如何做网站引流微信小程序开发需要多少钱?
  • 赤峰专业网站建设谷歌账号
  • 网上设计平台有哪些广东企业网站seo点击软件
  • 合肥seo建站公司网页设计内容方案
  • 西安昆奇网站建设万先生网站