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

南宁营销型网站建设seo推广和百度推广的区别

南宁营销型网站建设,seo推广和百度推广的区别,网站后缀 .cgi,wordpress填写信息插件目录 说明: 1. 话题模型 图示 说明 2. 实现过程(C) 创建功能包 创建发布者代码(C) 配置发布者代码编译规则 编译并运行 编译 运行 3. 实现过程(Python) 创建发布者代码(…

目录

说明:

1. 话题模型

图示

说明

2. 实现过程(C++)

创建功能包

创建发布者代码(C++)

配置发布者代码编译规则

编译并运行

编译

运行

3. 实现过程(Python)

创建发布者代码(Python版本)

运行velocity_publisher.py文件

运行效果


说明:

1. 本系列学习笔记基于B站:古月居《ROS入门21讲》课程,且使用的Ubuntu与ROS系统版本与课程完全一致;

虚拟机版本Linux系统版本ROS系统版本
VMware WorkStation Pro 16Ubuntu18.04Melodic

2. 课程中的所有示例代码均已跑通,且对Pyhon版本的代码也都做了运行验证,并附带验证过程(错误均已修正);

3. 本节是整个笔记的第8节,对应视频课程的第10节,请自行对应学习;

4. 整个系列笔记基本已经完结,但部分章节仍需润色修改 ,后面会陆续发布,请大家持续关注,      创作不易,感谢支持!

1. 话题模型

图示

image-20230523133716960

说明

ROS Master:管理所有节点

主要节点:

Publisher(Turtle Velocity): 消息的发布者,后面会通过程序(c++,py)实现发布者发布一个速度消息数据;

Message(geometry_msgs::Twist): 发布者发布的消息数据,Twist会分为线速度和角速度;

Topic(/turtle1/cmd_vel): 消息传输管道,将发布者发布的消息数据传输给订阅者,

让Subscriber(turtlesim)订阅者得到这个消息数据;

Subscriber(turtlesim): 消息的订阅者(海龟仿真器),Subscriber(turtlesim)接收到通过

Topic(/turtle1/cmd_vel)传输来的消息数据Message(geometry_msgs::Twist),

控制海龟的运动。

2. 实现过程(C++)

创建功能包

cd ~/catkin_ws/src
catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim

image-20230522155047806

创建发布者代码(C++)

cd ~/catkin_ws/src/learning_topic/src   
touch velocity_publisher.cpp

  • 初始化ROS节点;

  • 向ROS Master注册节点信息,包括发布消息的话题名,话题中的消息类型;

  • 创建消息数据;

  • 按照一定频率循环发布消息,

/*** 该例程将发布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;
​// 定义一个名为turtle_vel_pub的发布者,发布的消息类型为geometry_msgs::Twist,订阅名为/turtle1/cmd_vel的话题,// 队列长度10ros::Publisher turtle_vel_pub = n.advertise<geometry_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("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]", vel_msg.linear.x, vel_msg.angular.z);
​// 按照循环频率延时loop_rate.sleep();}
​return 0;
}
​

  • 切换工作路径到~/catkin_ws/src/learning_topic/src目录下;

  • 创建代码文件velocity_publisher.cpp;

  • 复制代码到文件中并保存

image-20230523145339517

配置发布者代码编译规则

将下面两行代码复制到CMakeLists.txt文件中,

add_executable(velocity_publisher src/velocity_publisher.cpp) 
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})

上面两行代码的作用:

add_executable: 将src/velocity_publisher.cpp代码文件编译成velocity_publisher可执行文件;

target_link_libraries:把编译生成的可执行文件velocity_publisher跟ROS相关的一些库做连接的,比如调用的C++的接口。

代码要复制到CMakeLists.txt文件中的位置如下:

image-20230523154744467

编译并运行

编译
cd ~/catkin_ws
catkin_make
source devel/setup.bash

  • 先把工作路径切换到catkin_ws工作空间目录下;

  • 在catkin_ws工作空间目录下catkin_make编译代码文件;

  • source devel/setup.bash 设置环境变量(此步骤很重要,不设置找不到工作空间下功能包的路径);

如果不想每次运行程序时都要执行setup.bash文件或怕忘记此步骤,可以把source devel/setup.bash添加到 .bashrc文件中,

.bashrc文件是一个隐藏文件,回到home目录下,ctrl + h,会显示所有的隐藏文件,

注意修改路径,修改路径后具体添加的内容:source /home/自己的用户名/catkin_ws/devel/setup.bash,

添加位置在 .bashrc文件最下面,添加后记得保存,再ctrl + h,恢复隐藏文件,最后要重新启动终端,修改才能生效。

image-20230524090852062

image-20230524104903343

运行
roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic velocity_publisher

经过上述对.bashrc文件的修改,我们可以在任意的路径下运行我们编译出来的结果文件:过程如下:

  • 打开任意终端输入:roscore;

  • 运行海龟仿真器,再打开一个新终端输入:rosrun turtlesim turtlesim_node;

  • 运行我们编译好的可执行文件,再打开一个新终端输入:rosrun learning_topic velocity_publisher,

这个程序会发布速度指令(包括线速度0.5m/s 和 角速度0.2m/s),使海龟按圆周运动转起来。

image-20230524111932663

我们上面运行的可执行文件的位置在 home/catkin_ws/devel/lib/learning_topic 目录下

image-20230524112734939

3. 实现过程(Python)

创建发布者代码(Python版本)

cd ~/catkin_ws/src/learning_topic
mkdir scripts
cd ~/catkin_ws/src/learning_topic/scripts
touch velocity_publisher.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 该例程将发布turtle1/cmd_vel话题,消息类型geometry_msgs::Twistimport rospy
from geometry_msgs.msg import Twistdef velocity_publisher():# ROS节点初始化rospy.init_node('velocity_publisher', anonymous=True)# 创建一个Publisher,发布名为/turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度10turtle_vel_pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)#设置循环的频率rate = rospy.Rate(10) while not rospy.is_shutdown():# 初始化geometry_msgs::Twist类型的消息vel_msg = Twist()vel_msg.linear.x = 0.5vel_msg.angular.z = 0.2# 发布消息turtle_vel_pub.publish(vel_msg)rospy.loginfo("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]", vel_msg.linear.x, vel_msg.angular.z)# 按照循环频率延时rate.sleep()if __name__ == '__main__':try:velocity_publisher()except rospy.ROSInterruptException:pass

  • 先把工作路径切换到~/catkin_ws/src/learning_topic目录下;

  • 创建放置Python代码版本发布者的代码文件的文件夹scripts;

image-20230524125421990

  • 进入scripts文件夹下并创建velocity_publisher.py文件;

  • 双击打开velocity_publisher.py文件,复制代码到里面并保存

image-20230524125514700

注意:在ROS中运行python文件,要使其有作为程序文件执行的权限,

点击velocity_publisher.py文件,右键,属性,权限,勾选(允许作为程序文件执行),

python文件不需要编译,直接运行即可。

image-20230524125621567

运行velocity_publisher.py文件

roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic velocity_publisher.py

运行流程和上面c++一样, 只不过把第三步的命令velocity_publisher文件名加上.py后缀

rosrun learning_topic velocity_publisher.py

运行效果

image-20230524130005724


http://www.dinnco.com/news/56929.html

相关文章:

  • 如何优化网站到首页优化互联网营销方式有哪些
  • wordpress vip付费深圳专业seo外包
  • 网站建设加入购买按钮香港服务器
  • 代刷网站搭建教程北京网站优化常识
  • 肺炎最新分布情况seo优化一般包括哪些内容()
  • 企业网站建设要求标准说明线上推广平台有哪些
  • wordpress查看图片插件seo哪家公司好
  • 交互式网站开发技术包括网络营销有哪几种方式
  • 珠海做网站的网站流量分析工具
  • 长沙口碑好的做网站公司哪家好少儿编程
  • 做单网站百度客服在线咨询
  • 免费推广网站怎么做推广关键词排名查询
  • 湖北省住房建设部官方网站推广下载app拿佣金
  • 自己做网站seo优化百度推广如何获取精准的客户
  • 网站开发毕业论文选题什么是长尾关键词举例
  • 网站ui升级怎么做社交网络推广方法
  • wordpress网站检测公司做网络推广哪个网站好
  • 为什么有的公司做很多个网站真正免费建站网站
  • 基础做网站关键词查询网站的工具
  • 个人网站这么做百度营业执照怎么办理
  • c2c网址seo用什么工具
  • 京挑客网站建设seo分析工具
  • 个人网站首页设计百度店铺注册
  • 泰安网络推广联系昔年下拉班级优化大师怎么用
  • 网页设计html代码大全空格安卓系统优化app
  • 怎么自己做淘宝网站吗百度广告搜索推广
  • 武汉市江汉区建设局网站独立站推广
  • 徐州网站建设 和信网络营销的实现方式
  • 动态网站建设包括哪些方面免费的推广软件下载
  • 数据库工程师北京seo百度推广