当前位置: 首页 > 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.dinnco.com/news/82067.html

相关文章:

  • 做铝锭的网站推广任务发布平台app
  • 有哪些网站做的很好济南竞价托管
  • 长沙点梦网站建设网站百度收录突然消失了
  • 晨光文具店网站建设网上国网推广
  • 昆明做网站排名做一个网站的步骤
  • 产品网站免费模板百度快速收录软件
  • 做视频编辑哪个网站素材比较好怎么做神马搜索排名seo
  • 嘟嘟嘟在线观看日本seo页面内容优化
  • 做自己独特的表白网站爱上链外链购买交易
  • 南京外贸网站建设案例网络营销的成功案例有哪些
  • 做网站可以赚钱么怎么制作网页页面
  • 公司手机网站制作公司seo营销
  • 用dw建设网站志鸿优化设计
  • 江苏政府网站建设对比评估朝阳seo搜索引擎
  • 金坛网站建设百度搜题在线使用
  • 廊坊建设网站的公司品牌整合营销
  • 研究生做网站开发郑州网络营销公司
  • 源码网站免费常见的网站推广方法有哪些
  • 手机网站开发一个多少钱qq营销软件
  • wordpress如何手动升级seo实战培训费用
  • 网站开发与应用 论文aso优化服务平台
  • 公司网站 英文一站式营销平台
  • 如何给网站做二维码seo网站建设
  • 苏州做公司邮箱企业网站短视频推广平台有哪些
  • 网站都有什么费用怎样推广自己的网站
  • 全椒县建设局网站新闻联播今日新闻
  • 华云电力建设监理公司网站产品免费推广网站有哪些
  • 赣州那里有做网站的公司宁波seo教程推广平台
  • 营销网站的功能百度广告点击一次多少钱
  • 招聘网站如何做薪酬报告seo软件代理