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

卡通类网站设计网站建设全网营销

卡通类网站设计,网站建设全网营销,凡客诚品下载,免费商标设计软件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.15wanjia.com/news/17239.html

相关文章:

  • 有哪些学做衣服的网站百度公司全称
  • 如何免费建设网站seo快速优化文章排名
  • 鸿运通网站建设怎么样首页关键词优化公司
  • 做爰全过程网站企业推广方式有哪些
  • 桐城市住宅和城乡建设局网站百度指数排名
  • 动画毕业设计代做网站东莞seo顾问
  • 网站怎么续费网站搭建费用
  • 深圳制作网站流程搜客
  • 汕头做网站的公司律师推广网站排名
  • 网站毕设代做长尾关键词搜索
  • 做赌博彩票网站吗十大互联网平台
  • 湖北联兴建设有限公司网站最基本的网站设计
  • 白城网站建设济南头条新闻热点
  • 潇朋友免费班级网站建设系统网站到首页排名
  • 做网站需要Excel表格吗制作网站要多少费用
  • 公司建立网站流程企业策划
  • 373网站怎么做这样的网站宁波正规seo快速排名公司
  • 织梦如何做英文网站吴江seo网站优化软件
  • hbuilder制作简单网页网络优化seo是什么工作
  • 海南网站建设介绍谷歌官网登录入口
  • 学网站设计培训电话小红书seo排名
  • php站点搭建百度推广官网
  • 做网站学什么语言网站关键词排名外包
  • 找人做软件去哪个网站找广州网站建设系统
  • 黄石网站制作公司网络推广一个月的收入
  • 郑州哪家做网站好百度一下首页登录入口
  • 做h5那个网站模板好如何做游戏推广
  • 大学生做网站类型短视频运营方案策划书
  • 众筹网站怎么做本地推荐本地推荐
  • 免费做电脑网站营销100个引流方案