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

网站如何提交百度收录什么最便宜网站建设

网站如何提交百度收录,什么最便宜网站建设,百度一下免费下载,可以建微信网站的文章目录0、引言1、创建发布者#xff08;velocity发布者 →geometry话题消息→turtlesim订阅者#xff09;2、创建订阅者#xff08;turtlesim发布者→turtlesim话题消息→pose订阅者#xff09;3、自定义话题消息4、使用自定义话题消息#xff08;person发布者→自定义话… 文章目录0、引言1、创建发布者velocity发布者 →geometry话题消息→turtlesim订阅者2、创建订阅者turtlesim发布者→turtlesim话题消息→pose订阅者3、自定义话题消息4、使用自定义话题消息person发布者→自定义话题消息→person订阅者0、引言 font笔者因研究课题涉及ROS开发学习了古月居出品的ROS入门21讲为巩固话题通信用于不断更新、少逻辑处理的数据处理场景知识本文将ROS的发布者、订阅者和话题消息三讲内容进行总结。 1、创建发布者velocity发布者 →geometry话题消息→turtlesim订阅者 1创建功能包 cd ~/catkin_ws/srccatkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim2创建发布者cpp文件   在新建的功能包下src中打开新终端并键入gedit velocity_publisher.cpp输入以下代码并保存。 /*** 该例程将发布turtle1/cmd_vel话题消息类型geometry_msgs::Twist*/ #include ros/ros.h #include geometry_msgs/Twist.h int main(int argc, char **argv) {// ROS节点初始化ros::init(argc, argv, velocity_publisher);// 创建节点句柄ros::NodeHandle n;// 创建一个Publisher发布名为/turtle1/cmd_vel的topic消息类型为geometry_msgs::Twist队列长度10ros::Publisher turtle_vel_pub n.advertisegeometry_msgs::Twist(/turtle1/cmd_vel, 10);// 设置循环的频率ros::Rate loop_rate(10);int count 0;while (ros::ok()){// 初始化geometry_msgs::Twist类型的消息geometry_msgs::Twist vel_msg;vel_msg.linear.x 0.5;vel_msg.angular.z 0.2;// 发布消息turtle_vel_pub.publish(vel_msg);ROS_INFO(Publish turtle velocity command[%0.2f m/s, %0.2f rad/s],vel_msg.linear.x, vel_msg.angular.z);// 按照循环频率延时loop_rate.sleep();}return 0; }3在CMakeLists.txt添加编译规则; add_executable(velocity_publisher src/velocity_publisher.cpp) target_link_libraries(velocity_publisher ${catkin_LIBRARIES})4编译并运行发布者。   ①编译并启动roscore cd ~/catkin_wscatkin_make 或 catkin_make_isolatedsource devel/setup.bash 或 source devel_isolated/setup.bashroscore②新建终端运行海龟结点 rosrun turtlesim turtlesim_node③新建终端运行发布者 //每新打开一个终端需要重新定义源 source devel/setup.bash 或 source devel_isolated/setup.bashrosrun learning_topic velocity_publisher2、创建订阅者turtlesim发布者→turtlesim话题消息→pose订阅者 1在发布者功能包下创建订阅者cpp文件   在新建的功能包下src中终端键入gedit pose_subscriber.cpp输入以下代码并保存。 /*********************************************************************** Copyright 2020 GuYueHome (www.guyuehome.com). ***********************************************************************//*** 该例程将订阅/turtle1/pose话题消息类型turtlesim::Pose*/#include ros/ros.h #include turtlesim/Pose.h// 接收到订阅的消息后会进入消息回调函数 void poseCallback(const turtlesim::Pose::ConstPtr msg) {// 将接收到的消息打印出来ROS_INFO(Turtle pose: x:%0.6f, y:%0.6f, msg-x, msg-y); }int main(int argc, char **argv) {// 初始化ROS节点ros::init(argc, argv, pose_subscriber);// 创建节点句柄ros::NodeHandle n;// 创建一个Subscriber订阅名为/turtle1/pose的topic注册回调函数poseCallbackros::Subscriber pose_sub n.subscribe(/turtle1/pose, 10, poseCallback);// 循环等待回调函数ros::spin();return 0; }2在CMakeLists.txt添加编译规则 add_executable(pose_subscriber src/pose_subscriber.cpp) target_link_libraries(pose_subscriber ${catkin_LIBRARIES})3编译并运行订阅者。   ①编译并启动roscore cd ~/catkin_wscatkin_make 或 catkin_make_isolatedsource devel/setup.bash 或 source devel_isolated/setup.bashroscore②新建终端运行海龟结点 rosrun turtlesim turtlesim_node启动发布者后海龟将进行匀速圆周运动。   ③新建终端运行订阅者 //每新打开一个终端需要重新定义源 source devel/setup.bash 或 source devel_isolated/setup.bashrosrun learning_topic pose_subscriber④新建终端运行海龟键盘动态结点。 rosrun turtlesim turtle_teleop_key在该终端下可通过键盘方向键手动控制海龟移动。 3、自定义话题消息 1创建.msg文件   在~/catkin_ws/src/learning_topic目录下新建msg目录并进入该目录在该目录下打开终端键入gedit Person.msg输入以下内容并保存。 string name uint8 sex uint8 age string x string yuint8 unkonwn 0 uint8 male 1 uint8 female 22在package.xml中添加功能包依赖 build_dependmessage_generation/build_depend exec_dependmessage_runtime/exec_depend3在CMakeLists.txt添加编译规则。 //在find_package下添加message_generation//在合适位置添加以下内容 add_message_files(FILES Person.msg) generate_messages(DEPENDENCIES std_msgs)//在catkin_package添加message_runtime4、使用自定义话题消息person发布者→自定义话题消息→person订阅者 1创建测试消息的发布者   在~/catkin_ws/src/learning_topic/src目录下打开终端键入gedit person_publisher.cpp输入以下代码并保存。 /*********************************************************************** Copyright 2020 GuYueHome (www.guyuehome.com). ***********************************************************************//*** 该例程将发布/person_info话题自定义消息类型learning_topic::Person*/#include ros/ros.h #include learning_topic/Person.hint main(int argc, char **argv) {// ROS节点初始化ros::init(argc, argv, person_publisher);// 创建节点句柄ros::NodeHandle n;// 创建一个Publisher发布名为/person_info的topic消息类型为learning_topic::Person队列长度10ros::Publisher person_info_pub n.advertiselearning_topic::Person(/person_info, 10);// 设置循环的频率ros::Rate loop_rate(1);int count 0;while (ros::ok()){// 初始化learning_topic::Person类型的消息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; }2创建测试消息的订阅者   在~/catkin_ws/src/learning_topic/src目录下打开终端键入gedit person_subscriber.cpp输入以下代码并保存。 /*********************************************************************** Copyright 2020 GuYueHome (www.guyuehome.com). ***********************************************************************//*** 该例程将订阅/person_info话题自定义消息类型learning_topic::Person*/#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节点ros::init(argc, argv, person_subscriber);// 创建节点句柄ros::NodeHandle n;// 创建一个Subscriber订阅名为/person_info的topic注册回调函数personInfoCallbackros::Subscriber person_info_sub n.subscribe(/person_info, 10, personInfoCallback);// 循环等待回调函数ros::spin();return 0; }3在CMakeLists.txt添加编译规则 add_executable(person_publisher src/person_publisher.cpp) target_link_libraries(person_publisher ${catkin_LIBRARIES}) add_dependencies(person_publisher ${PROJECT_NAME}_generate_messages_cpp)add_executable(person_subscriber src/person_subscriber.cpp) target_link_libraries(person_subscriber ${catkin_LIBRARIES}) add_dependencies(person_subscriber ${PROJECT_NAME}_generate_messages_cpp)4编译运行。 cd ~/catkin_wscatkin_make 或 catkin_make_isolatedsource devel/setup.bash 或 source devel_isolated/setup.bashroscore//新建终端然后再执行以下代码 cd ~/catkin_ws source devel/setup.bash 或 source devel_isolated/setup.bash rosrun learning_topic person_publisher//新建终端然后再执行以下代码 cd ~/catkin_ws source devel/setup.bash 或 source devel_isolated/setup.bash rosrun learning_topic person_subscriber参考资料 [1] 古月居GYH. 【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程; 2019-07-16 [accessed 2023-04-09]. [2] ~Old. ROS——话题通信; 2022-03-18 [accessed 2023-04-09]. [3] Maccy37. OS查询话题具体内容常用指令; 2020-09-04 [accessed 2023-04-10]. [4] 李徕徕. ROS(4)--------------------ros::Rate loop_rate( ) loop_rate.sleep()ros_spin()ros_spinOnce(); 2020-07-29 [accessed 2023-04-10]. [5] 小萌虫. ROS21讲; 2021-08-13 [accessed 2023-04-10].
http://www.w-s-a.com/news/481656/

相关文章:

  • 商丘网站建设想象力网络做公司网站需要准备什么
  • 滁州新手跨境电商建站哪家好网站推广运作怎么做
  • 烟台有没有做网站大连建设工程信息网专家库
  • 网站建设明确细节商贸有限公司的经营范围
  • 南宁微网站开发做的好的有哪些网站
  • 好的素材下载网站读书网网站建设策划书
  • 东莞南城网站建设wordpress用户投稿插件
  • 开个网站做代理赚钱吗沽源网站建设
  • 做卖车网站需要什么手续wordpress 主题 demo
  • 上海外贸网站开发公司建设内容
  • 网站制作品牌公司网站的字体颜色
  • 外贸wordpress模板常德seo快速排名
  • 网站后台认证码专门做网页的网站
  • 宁波企业品牌网站建设物流公司招聘
  • 北京机建网站做网站用angular
  • 攀枝花市网站建设outlook企业邮箱注册申请
  • 企业网站建设报价单免费劳务网站建设
  • 天津平台网站建设方案国际新闻最新消息今天乌克兰与俄罗斯
  • 食用油 网站 模板网页游戏网站在线玩
  • 做网站用的书新能源东莞网站建设技术支持
  • 漯河网站超市建设软件开发的五个阶段
  • 制作深圳网站建设阿里OSS做网站图库费用
  • 网页设计与网站建设 入门必练宜都网站seo
  • 网站设计沟通阆中网站网站建设
  • 缩短网址做钓鱼网站如何确保网站安全
  • 网店网站开发怎样用ps做企业网站
  • 南京门户网站建设做网站一般注册哪几类商标
  • 企业咨询管理服务wordpress seo tdk
  • 做网站前期创建文件夹flash 开发的网站
  • 天津网站制作培训搭建网站的工具