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

网站开发前端简历音乐网站html模板

网站开发前端简历,音乐网站html模板,手机网站乱弹,手表网站免费设计本文纯属记录学习过程,所学教程来自B站古月居ROS入门21讲 ROS1学习第一弹 二、关于代码 1.必有内容: // ROS节点初始化ros::init(argc, argv, "parameter_config");// 创建节点句柄ros::NodeHandle node;文件结构:/catkin_ws/sr…

本文纯属记录学习过程,所学教程来自B站古月居ROS入门21讲

ROS1学习第一弹

在这里插入图片描述二、关于代码

1.必有内容:

   // ROS节点初始化ros::init(argc, argv, "parameter_config");// 创建节点句柄ros::NodeHandle node;
  1. 文件结构:/catkin_ws/src 中
    src
    ├── CMakeLists.txt -> /opt/ros/noetic/share/catkin/cmake/toplevel.cmake
    ├── learning_parameter
    │ ├── CMakeLists.txt
    │ ├── include
    │ │ └── learning_parameter
    │ ├── package.xml
    │ └── src
    │ └── parameter_config.cpp
    ├── learning_service
    │ ├── CMakeLists.txt
    │ ├── include
    │ │ └── learning_service
    │ ├── package.xml
    │ ├── src
    │ │ ├── person_client.cpp
    │ │ ├── person_server.cpp
    │ │ ├── turtle_command_server.cpp
    │ │ └── turtle_spawn.cpp
    │ └── srv
    │ └── Person.srv
    └── learning_topic
    ├── CMakeLists.txt
    ├── include
    │ └── learning_topic
    ├── msg
    │ └── Person.msg
    ├── package.xml
    └── src
    ├── person_publisher.cpp
    ├── person_subscriber.cpp
    ├── pose_subscriber.cpp
    └── velocity_publisher.cpp
    其中比如 └── learning_topic就是一个功能包,靠catkin_create_pkg生成,语法是catkin_create_pkg my_cpp_pkg roscpp std_msgs

3.Topic :Publisher 与 Subscriber
在功能包下面建立msg文件夹,里面.msg文件定义消息类型,整个包编译一边就能在/devel/include/下面看见具体实现定义消息类型的文件

在这里插入图片描述publisher:

#include<ros/ros.h>
#include"learning_topic/Person.h"int main(int argc,char **argv)
{ros::init(argc, argv, "person_publisher");ros::NodeHandle n;// 创建Publisher对象(话题名、队列长度)ros::Publisher person_info_pub=n.advertise<learning_topic::Person>("/person_info",10);// 设置循环频率ros::Rate loop_rate(1);int count=0;while(ros::ok()){learning_topic::Person person_msg; // 创建消息对象person_msg.name="Tom";person_msg.age=18;person_msg.sex=learning_topic::Person::male;person_info_pub.publish(person_msg); // 发布消息ROS_INFO("Publish Person Info: name: %s, age: %d, sex: %d", person_msg.name.c_str(), person_msg.age, person_msg.sex);loop_rate.sleep(); // 控制循环频率}return 0;
}

subscriber:

#include<ros/ros.h>
#include"learning_topic/Person.h"void personInfoCallback(const learning_topic::Person::ConstPtr& msg)
{ROS_INFO("Subcribe Person Info: name:%s  age:%d  sex:%d", msg->name.c_str(), msg->age, msg->sex); //
}int main(int argc,char **argv)
{ros::init(argc,argv,"person_subscriber");ros::NodeHandle n;// learning_topic::Person是自定义的消息类型// person_info_sub是订阅者对象// "/person_info"是话题名称 与publisher发布的名称一致// 10是队列长度,表示订阅者的消息队列长度// 当消息队列满时,旧消息会被丢弃// personInfoCallback是回调函数,当有新消息到来时会调用此函数处理消息// 该函数的参数是一个指向ConstPtr的指针,ConstPtr是指向常量的智能指针// 这样可以避免复制消息,提高效率// 订阅者会在后台自动处理消息队列// 当有新消息到来时,回调函数会被调用// 回调函数可以访问消息内容,并进行相应的处理ros::Subscriber person_info_sub=n.subscribe("/person_info",10,personInfoCallback);//ros::spin();return 0;
}

4.Service:Client 与 Server
在功能包下面建立srv文件夹,里面.srv文件定义消息类型,整个包编译一边就能在/devel/include/下面看见具体实现定义消息类型的文件
在这里插入图片描述
client:

#include<ros/ros.h>
#include<learning_service/Person.h>int main(int argc,char ** argv)
{ros::init(argc,argv,"person_client");ros::NodeHandle node;// 等待服务可用(类似中断)ros::service::waitForService("/show_person");// 创建服务客户端ros::ServiceClient person_client=node.serviceClient<learning_service::Person>("/show_person");learning_service::Person srv;srv.request.name="Tom";srv.request.age=20;srv.request.sex=learning_service::Person::Request::male;ROS_INFO("Call service to show person[name:%s, age:%d, sex:%d]",srv.request.name.c_str(), srv.request.age,srv.request.sex);person_client.call(srv); // 调用服务ROS_INFO("Showperson result: %s", srv.response.result.c_str());return 0;
}

server:

#include<ros/ros.h>
#include"learning_service/Person.h"bool personCallback(learning_service::Person::Request &req, // 引用传递,接绑定到客户端发送的请求对象learning_service::Person::Response &res) {ROS_INFO("Person: Name: %s, Age: %d, sex:%d", req.name.c_str(), req.age,req.sex);res.result="OK";return true;
}int main(int argc,char **argv)
{ros::init(argc,argv,"person_server");ros::NodeHandle n;// 创建服务ros::ServiceServer person_service=n.advertiseService("/show_person",personCallback); ROS_INFO("Person service is ready.");ros::spin();return 0;
}

5.rosparam的使用:

rosparam is a command-line tool for getting, setting, and deleting parameters from the ROS Parameter Server.

Commands:
rosparam set set parameter
rosparam get get parameter
rosparam load load parameters from file
rosparam dump dump parameters to file
rosparam delete delete parameter
rosparam list list parameter names


文章转载自:

http://x03aQJmb.sygLx.cn
http://JYWbEdGC.sygLx.cn
http://3icYbxna.sygLx.cn
http://RXWB6D1U.sygLx.cn
http://3ZlzvttV.sygLx.cn
http://EBcGWGs0.sygLx.cn
http://35JqbEOh.sygLx.cn
http://4INFZ0gx.sygLx.cn
http://mWUu4PK9.sygLx.cn
http://d7q4GNrD.sygLx.cn
http://rzXNS4vo.sygLx.cn
http://eDJIbYTY.sygLx.cn
http://c5nBUDvj.sygLx.cn
http://YBM4cTFT.sygLx.cn
http://LHBch6oa.sygLx.cn
http://kHKOSItI.sygLx.cn
http://mcryLNqc.sygLx.cn
http://eFbcDLLC.sygLx.cn
http://k7w9tpRX.sygLx.cn
http://db1ZRh5b.sygLx.cn
http://zERZ31Vz.sygLx.cn
http://Hbt8bgQC.sygLx.cn
http://pvqckVQm.sygLx.cn
http://I3LKtCoT.sygLx.cn
http://TDpj8E6w.sygLx.cn
http://NF5VxlOm.sygLx.cn
http://bt4d3hoD.sygLx.cn
http://r3UDVOCr.sygLx.cn
http://oD7MJDjp.sygLx.cn
http://A5oEXadN.sygLx.cn
http://www.dtcms.com/wzjs/724789.html

相关文章:

  • 网站建设的工作描述昆明开发
  • 3建设营销型网站流程图wordpress时钟插件
  • cdn网站加速有用吗企业网站建设目的是什么
  • 崇义做网站深圳十大广告公司
  • 中国水利教育培训网站在上海做网站
  • 淘宝首页网站怎么做朔州seo网站建设
  • 网站的字体网站开发的未来发展趋势
  • 想建设个网站怎么赚钱删除wordpress版权
  • 甘肃省建设工程安全质量监督管理局网站官网做网站用的图片
  • 小学免费资源网站模板如何检查网站是否被挂木马
  • 怀化汽车网站做网站需要服务器吗
  • 巫山网站设计做网站一年赚多少钱
  • 发布企业信息的网站做动漫网站的小说
  • 业网站建设模板建站有什么优势
  • 开发一个网站需要多久网络营销案例ppt模板
  • 网站开发html书籍下载wordpress建站成品图
  • 90设计官网电脑版首页优化的公司
  • 四大网站西安做网站公司有哪些?
  • 网站开发转码手机手机网站网页开发教程
  • 大连网站建设制作公司手机动画制作软件
  • 如何给自己建设的网站设置登陆用户名和密码网络工程师证书考试时间
  • 网站建设大概需要多少钱安徽做网站的公司
  • asp网站抓取建设网站的作用及意义
  • 杭州 网站建设夏天做那些网站能致富
  • 免费创一个网站搜索技巧
  • 推广网站的网址和网鱼相匹配建设网站的企业费用
  • 公众号里链接的网站怎么做的查域名地址
  • 旅行社网站建设设计公司哪家好网站开发专家:php+mysql网站开发技术与典型案例导航
  • 大名做网站拉了专线可以直接做网站吗
  • 网站建设插件龙岗区网站建设哪个公司好