可以做网站吗网站建设销售业绩任务

news/2025/10/3 6:44:08/文章来源:
可以做网站吗,网站建设销售业绩任务,专业服务建设网站,wordpress消息系统引言#xff1a;在实际工程项目中#xff0c;为了提高系统的响应速度和稳定性#xff0c;往往需要采用一定的控制算法进行目标跟踪。这里抛砖引玉#xff0c;仅采用简单的PID算法进行目标的跟随控制#xff0c;目标的识别依然采用yolo。对系统要求更高的#xff0c;可以对…引言在实际工程项目中为了提高系统的响应速度和稳定性往往需要采用一定的控制算法进行目标跟踪。这里抛砖引玉仅采用简单的PID算法进行目标的跟随控制目标的识别依然采用yolo。对系统要求更高的可以对算法进行改进也欢迎读者与我们联系合作开发。 步骤一打开摄像头 注意为了获取目标物的三维位置信息我们采用了D435深度摄像头仅供参考可根据需要自行选择即可 roslaunch realsense2_camera rs_camera.launch查看话题需要/camera/color/image_raw和/camera/depth/image_rect_raw 步骤二打开yolo识别节点具体yolo版本可以根据需要选择 roslaunch darknet_ros darknet_ros.launch 没有报错的情况下会弹出识别效果图如下 ## 注我这里训练的是自己打印的H型地标具体可以根据需要选择合适的目标物 步骤三打开三维坐标转换节点 该节点可以直接一话题的形式输出目标物的名称和真实的位置信息 roslaunch darknet_real_position darknet_real_position.launchlaunch文件解析 此处的launch文件以参数的方式指定了识别目标。比如landing因此这个节点只会把指定的landing地标位置信息打印出来其他的目标通通忽略 查看话题数据/object_position 从上述图片可以看出系统非常准确的给出了目标物的名称和真实的位置信息单位是米。需要指出的是这里的位置是相对于D435摄像头的位置信息X表示横向位置Y表示纵向位置Z表示实际的距离信息 步骤四启动PID跟随节点。注意可以先不要启动mavros仅仅测试PID控制器发布出的速度是否正确。在确认了没问题后在启动mavros节点无人机就可以进行正常的跟随运动了 roslaunch follow_pid follow_pid.launch launch文件解析 这里仅仅进行偏航角度和距离的控制如果需要对高度方向控制。可以直接复制代码进行简单的修改即可。参数linear_x_p和linear_x_d是距离的PID控制同理yaw_rate_p和yaw_rate_d是角度的控制。参数target_x_angle是期望保持的角度通常设置为0即可。最后参数target_distance是期望保持的距离单位是毫米 代码如下 #include ros/ros.h #include std_msgs/Bool.h #include geometry_msgs/PoseStamped.h #include geometry_msgs/TwistStamped.h #include mavros_msgs/CommandBool.h #include mavros_msgs/SetMode.h #include mavros_msgs/State.h #include mavros_msgs/PositionTarget.h #include cmath #include tf/transform_listener.h #include nav_msgs/Odometry.h #include mavros_msgs/CommandLong.h #include string#define MAX_ERROR 0.20 #define VEL_SET 0.10 #define ALTITUDE 0.40using namespace std;float target_x_angle 0; float target_distance 2000; float linear_x_p 0.5; float linear_x_d 0.33; float yaw_rate_p 4.0; float yaw_rate_d 15;geometry_msgs::PointStamped object_pos; nav_msgs::Odometry local_pos; mavros_msgs::State current_state; mavros_msgs::PositionTarget setpoint_raw; //检测到的物体坐标值 string current_frame_id no_object; double current_position_x 0; double current_position_y 0; double current_distance 0;//1、订阅无人机状态话题 ros::Subscriber state_sub;//2、订阅无人机实时位置信息 ros::Subscriber local_pos_sub;//3、订阅实时位置信息 ros::Subscriber object_pos_sub;//4、发布无人机多维控制话题 ros::Publisher mavros_setpoint_pos_pub;//5、请求无人机解锁服务 ros::ServiceClient arming_client;//6、请求无人机设置飞行模式本代码请求进入offboard ros::ServiceClient set_mode_client;void pid_control() {static float last_error_x_angle 0;static float last_error_distance 0; float x_angle;float distance;if(current_position_x 0 current_position_y 0 current_distance 0){x_angle target_x_angle;distance target_distance;}else{x_angle current_position_x / current_distance;distance current_distance;}float error_x_angle x_angle - target_x_angle;float error_distance distance - target_distance;if(error_x_angle -0.01 error_x_angle 0.01) {error_x_angle 0;}if(error_distance -80 error_distance 80) {error_distance 0;}setpoint_raw.velocity.x error_distance*linear_x_p/1000 (error_distance - last_error_distance)*linear_x_d/1000;if(setpoint_raw.velocity.x -0.3) {setpoint_raw.velocity.x -0.3;}else if(setpoint_raw.velocity.x 0.3) {setpoint_raw.velocity.x 0.3; }setpoint_raw.yaw_rate error_x_angle*yaw_rate_p (error_x_angle - last_error_x_angle)*yaw_rate_d;if(setpoint_raw.yaw_rate -0.5) {setpoint_raw.yaw_rate -0.5;}else if(setpoint_raw.yaw_rate 0.5) {setpoint_raw.yaw_rate 0.5;}mavros_setpoint_pos_pub.publish(setpoint_raw);last_error_x_angle error_x_angle;last_error_distance error_distance; }void state_cb(const mavros_msgs::State::ConstPtr msg) {current_state *msg; }void local_pos_cb(const nav_msgs::Odometry::ConstPtr msg) {local_pos *msg; }void object_pos_cb(const geometry_msgs::PointStamped::ConstPtr msg) {object_pos *msg;current_position_x object_pos.point.x*(-1000);current_position_y object_pos.point.y*(-1000);//此处将距离由单位米改称毫米方便提高控制精度current_distance object_pos.point.z*1000;current_frame_id object_pos.header.frame_id; pid_control(); //ROS_INFO(current_position_x %f,current_position_x);//ROS_INFO(current_position_y %f,current_position_y);//ROS_INFO(current_distance %f ,current_distance); }int main(int argc, char *argv[]) {ros::init(argc, argv, follow_pid);ros::NodeHandle nh;state_sub nh.subscribemavros_msgs::State(mavros/state, 100, state_cb);local_pos_sub nh.subscribenav_msgs::Odometry(/mavros/local_position/odom, 100, local_pos_cb);object_pos_sub nh.subscribegeometry_msgs::PointStamped(object_position, 100, object_pos_cb);mavros_setpoint_pos_pub nh.advertisemavros_msgs::PositionTarget(/mavros/setpoint_raw/local, 100); arming_client nh.serviceClientmavros_msgs::CommandBool(mavros/cmd/arming);set_mode_client nh.serviceClientmavros_msgs::SetMode(mavros/set_mode);ros::Rate rate(20.0); ros::param::get(linear_x_p,linear_x_p);ros::param::get(linear_x_d,linear_x_d);ros::param::get(yaw_rate_p,yaw_rate_p);ros::param::get(yaw_rate_d,yaw_rate_d);ros::param::get(target_x_angle, target_x_angle);ros::param::get(target_distance,target_distance);//等待连接到PX4无人机/* while(ros::ok() current_state.connected){ros::spinOnce();rate.sleep();}*/setpoint_raw.type_mask /*1 2 4 8 16 32*/ 64 128 256 512 /* 1024 2048*/;setpoint_raw.coordinate_frame 1;setpoint_raw.position.x 0;setpoint_raw.position.y 0;setpoint_raw.position.z 0 ALTITUDE;mavros_setpoint_pos_pub.publish(setpoint_raw);for(int i 100; ros::ok() i 0; --i){mavros_setpoint_pos_pub.publish(setpoint_raw);ros::spinOnce();rate.sleep();}//请求offboard模式变量mavros_msgs::SetMode offb_set_mode;offb_set_mode.request.custom_mode OFFBOARD;//请求解锁变量mavros_msgs::CommandBool arm_cmd;arm_cmd.request.value true;ros::Time last_request ros::Time::now();//请求进入offboard模式并且解锁无人机15秒后退出防止重复请求 /*while(ros::ok()){//请求进入OFFBOARD模式if( current_state.mode ! OFFBOARD (ros::Time::now() - last_request ros::Duration(5.0))){if( set_mode_client.call(offb_set_mode) offb_set_mode.response.mode_sent){ROS_INFO(Offboard enabled);}last_request ros::Time::now();}else {//请求解锁if( !current_state.armed (ros::Time::now() - last_request ros::Duration(5.0))){if( arming_client.call(arm_cmd) arm_cmd.response.success){ROS_INFO(Vehicle armed);}last_request ros::Time::now();}}if(ros::Time::now() - last_request ros::Duration(15.0))break;mavros_setpoint_pos_pub.publish(setpoint_raw);ros::spinOnce();rate.sleep();}*/ while(ros::ok()){//ROS_INFO(11111);ros::spinOnce();rate.sleep();}}步骤五在上述基础上再打开mavros即可开始跟随控制。代码后续会在B站进行讲解。同时会提供相应的实机演示。链接会在后续给出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在哪个网站做问卷好网页布局的设计步骤

当您使用代理时,您可能会遇到不同的代理错误代码显示代理IP连不通、访问失败、网速过慢等种种问题。 在本文中中,我们将讨论您在使用代理IP时可能遇到的常见错误、发生这些错误的原因以及解决方法。 一、常见代理服务器错误 当您尝试访问网站时&#…

天津网站设计公司价格wordpress.or

本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下项目环境:软件环境:OS:RedHat6.3Lib:PygtkLanguage:PythonSupport tool:Glade3项目简述:①Glade3设计用户的登录窗口,功能主窗口…

珠海市网站建设分站怎么样久久建筑网会员怎么样

ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用。 第二,一些常见的基础功能的实现。 AbpController:这是一个抽象基类…

商业网站开发选题的目的重庆建设局网站

前言再百度或google上一搜索dubbo服务暴露过程 相关的文章已经有很多了,但是文章基本都是基于老版本的dubbo,当你对着文章去看下载下来的代码时,会发现很多东西对不上;出于此目的,我便有了自己根据新版本(就…

建网站需多少钱wordpress使用php版本

一、查看版本号 在CentOS中,可以通过多种方法来查看版本号。以下是几种常用的方法: 使用cat命令查看/etc/centos-release文件: CentOS的版本信息存储在/etc/centos-release文件中。可以使用cat命令来显示该文件的内容,从而获得C…

炫酷网站代码天津自己制作网站

当使用JMeter进行性能测试或负载测试时,函数是一个非常有用的工具,可以帮助生成动态的测试数据或处理测试结果。 下面是一些常用的JMeter函数的详细讲解和并列示例: 1、__threadNum: 返回当前线程的编号。可以在测试过程中用于…

旅游网站开发设计报告书医疗ppt模板下载免费完整版

【7】测试【7.1】启动点击apply然后点击OK【7.2】登录过滤访问http://localhost:8080/platform/home的时候,会被【7.3】角色过滤使用“admin”用户登录,密码:123根据SecurityServiceImpl我们可以知道使用admin账号登录成功之后:此…

秦皇岛抚宁区建设局网站wordpress添加循环音乐

注解的理解和类型 java注解-最通俗易懂的讲解 廖雪峰java注解 对注解(Annotation)最直接的理解是,注解本身就相当于一个附加信息,这个附加信息并不会对原有的类,方法等进行处理,进行处理的应该是对附加信息…

2025 年运动木地板厂家:鸿源宝利,全产业链深耕打造专业运动空间解决方案

随着全民健身战略的深入推进,国内体育场馆建设迎来爆发式增长,对专业运动木地板的需求持续攀升。据行业数据显示,2024 年我国运动木地板市场规模已突破 80 亿元,预计 2025 年将保持 15% 以上的增速。在这样的背景下…

2025 钢丝绳品牌实力榜:10 大品牌特色与适用场景

在当前工业生产、工程建设等诸多领域,钢丝绳作为关键的承重与牵引部件,其质量与性能直接关系到作业安全和项目效率。然而,当下钢丝绳行业却面临着不少问题。一方面,市场上品牌数量众多,产品质量参差不齐,部分品牌…

wordpress固定链接中文沈阳网络seo公司

在Linux系统中配置和优化硬盘的RAID技术可以帮助提高数据存储性能和安全性。RAID(Redundant Array of Independent Disks)技术通过将多个硬盘组合起来,以增加性能、容量或冗余度,提高数据的可靠性和可用性。本文将介绍如何在Linux…

网站设计 网站建设口碑营销的产品有哪些

分析下面的代码&#xff0c;求运算结果。 #include <stdio.h>int main(void) {int a 6, b 4;printf("%d\n", a ^ b << 2);return 0; }分析&#xff1a; 主要是考的是“优先级”和按位“异或”&#xff0c; 左移运算符优先级高于按位异或运算符&#…

汕头拿家做网站固定ip做网站怎么备案

新年计划一&#xff1a;日更千字只差一个月就可以完成日更100字的任务了。日更百字对我来说已经不再是一种负担和任务&#xff0c;而是每天碎碎念的日记&#xff0c;解压的方式。但是我知道这些碎碎念的日记本质上是没有用的。既没有信息增量&#xff0c;也没有变现价值&#x…

家居网站建设哪家好wordpress链接在哪里

F. Paper Grading 大佬题解 一般关于前缀的问题基本都是Trie树。 首先将所给字符串建立一棵Trie树&#xff0c;Trie能够解决一个字符串在一个字符串集合中出现的次数&#xff0c;而查询前缀次数只需要找到Trie树中所给字符末尾的位置&#xff0c;那么其子树中打标记的次数即前…

网站上线前做环境部署seo网站优化培

1.sentine介绍 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案&#xff0c;当用Redis做Master-slave的高可用方案时&#xff0c;假如master宕机了&#xff0c;Redis本身(包括它的很多客户端)都没有实现自动进行主备切换&#xff0c;而Redis-sentinel本身也是一个独立运行…

返利网一类的网站怎么做做网站时网页中格式对不齐怎么办

专业课128分总分400南京理工大学818信号系统与数字电路南理工电光院考研经验分享&#xff0c;希望自己的经历对大家有借鉴。 我是在六月底确认自己保不上研然后专心备考的&#xff0c;时间确实比较紧张。虽然之前暑假看了一点高数&#xff0c;但因为抱有保研的期望&#xff0c…

昆山网站推广手机界面设计网站

树莓派配置双网卡分别为AD HOC和AP模式 需求说明&#xff1a;为了实现分级网络管理&#xff0c;将多个无人机分簇&#xff0c;簇间使用AD HOC进行无中心自组织的网络&#xff0c;簇内使用AP-AC模式进行中心化网络。因此&#xff0c;需要配置一台设备&#xff0c;同时完成AD HOC…

网站建设技术知识网站是广西住房和城乡建设厅

Shell脚本之if的用法 1、if语句的格式2、if语句的conditon介绍3、应用举例 1、if语句的格式 1&#xff09; if-elif-else语法格式 if [ condition1 ]; then # 执行条件1的代码块 elif [ condition2 ]; then # 执行条件2的代码块 else # 执行条件都不满足时的代码块 …

网站项目建设措施如何查看网站的空间

Selenium自动化入门 1、Selenium概述2、Selenium环境搭建3、Selenium基本操作4、网页元素定位5、操作Cookie6、标签页管理 1、Selenium概述 Selenium&#xff08;Web Browser Automation&#xff09;的初衷是Web应用自动化测试。Selenium广泛应用于爬虫&#xff0c;爬虫需要让浏…

国内外网站开发的现状微信开放平台怎么申请

1、受控组件在 React 中&#xff0c;可变状态(mutable state)通常保存在组件的 state 属性中&#xff0c;并且只能通过使用 setState()来更新。state&#xff1a;唯一数据源渲染表单的 React 组件还控制着用户输入过程中表单发生的操作。被 React 以这种方式控制取值的表单输入…