商品网站建设设计思路小说网站排名怎么做

news/2025/10/5 3:08:20/文章来源:
商品网站建设设计思路,小说网站排名怎么做,十大互联网装修平台排名,谷歌浏览器安卓下载目录 系列文章目录 前言 一、配置相关环境 二、创建工作空间 1.创建工作空间并初始化 2.进入 src 创建 ros 包并添加依赖 三、HelloWorld(C版) 1.进入 ros 包的 src 目录编辑源文件 2.编辑 ros 包下的 Cmakelist.txt文件 3.进入工作空间目录并编译 四 运行程序 五 … 目录 系列文章目录 前言 一、配置相关环境 二、创建工作空间 1.创建工作空间并初始化 2.进入 src 创建 ros 包并添加依赖 三、HelloWorld(C版) 1.进入 ros 包的 src 目录编辑源文件 2.编辑 ros 包下的 Cmakelist.txt文件 3.进入工作空间目录并编译 四 运行程序 五 总结问题 系列文章目录 第一章 Ros入门 创建工作空间和运行ros包 前言 当你开始学习ROS机器人操作系统时第一步通常是创建一个工作空间workspace它是你进行ROS开发的主要目录。在工作空间中你可以组织和管理ROS软件包构建和运行ROS节点以及进行ROS相关的开发工作。我们的大致流程为 先创建一个工作空间再创建一个功能包编辑源文件编辑配置文件编译并执行。 这篇教程会手把手带你进行一次简单的项目构建。先可以配合视频使用https://www.bilibili.com/video/BV14642137Hn/?share_sourcecopy_webvd_sourcedc09b5f7d6dca9fee62fb97cb8d83044那么现在让我们开始吧 一、配置相关环境 1. 确定是否安装ros和cmake打开终端输入 rosversion -d cmake --version 会显示类似于这样的界面 如果没有安装ros和ubanturos推荐鱼香ros一键安装 wget http://fishros.com/install -O fishros . fishros cmake安装 sudo apt update sudo apt install cmake 二、创建工作空间 1.创建工作空间并初始化 首先我们将创建一个ROS工作空间并在其中创建一个名为 src 的子目录。 在终端中执行以下命令 mkdir -p 自定义空间名/src cd 自定义空间名称 catkin_make这将在你的主目录下创建一个名为 catkin_ws 的ROS工作空间并在其中创建 src 目录。接着执行 catkin_make 命令来编译工作空间。我这里的工作空间命名为test_ws。 编译完成后将在工作空间中生成两个文件夹 build 目录该目录用于存放构建过程中生成的中间文件和最终生成的目标文件。这些文件包括编译器生成的目标二进制文件、库文件和其他构建过程中生成的临时文件。 devel 目录该目录用于存放配置文件其中包含构建系统需要的环境变量和路径信息。这些配置文件用于后续编译和运行ROS软件包。例如devel/setup.bash 文件包含了设置ROS环境变量的命令你可以在每次新打开的终端中执行该文件以设置正确的ROS环境。 2.进入 src 创建 ros 包并添加依赖 进入 src 目录并使用 catkin_create_pkg 命令创建一个ROS包。在终端中执行以下命令 cd src catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs这些命令将在工作空间下生成一个功能包该功能包依赖于 roscpp、rospy 和 std_msgs。其中roscpp 是使用C实现的库rospy 是使用Python实现的库std_msgs 是标准消息库。创建ROS功能包时一般都会依赖这三个库实现基本的功能。 三、HelloWorld(C版) 1.进入 ros 包的 src 目录编辑源文件 cd 自定义的包cpp原文件 #include ros/ros.h #include std_msgs/String.hint main(int argc, char **argv) {// 初始化ROS节点ros::init(argc, argv, hello_world_node);// 创建ROS节点句柄ros::NodeHandle nh;// 创建一个发布者发布类型为String的主题ros::Publisher pub nh.advertisestd_msgs::String(hello_world_topic, 10);// 设置循环的频率ros::Rate rate(1); // 发布频率为1Hzwhile (ros::ok()){// 创建一个String类型的消息std_msgs::String msg;msg.data Hello World;// 发布消息pub.publish(msg);// 输出消息到控制台ROS_INFO(Published: %s, msg.data.c_str());// 按照频率休眠rate.sleep();}return 0; } 2.编辑 ros 包下的 Cmakelist.txt文件 根据视频的讲解寻找到相关的cmake源代码 并且反注释 add_executable(步骤3的源文件名src/步骤3的源文件名.cpp ) target_link_libraries(步骤3的源文件名${catkin_LIBRARIES} )这里我们来详细的讨论下这两行代码的含义 add_executable(步骤3的源文件名 src/步骤3的源文件名.cpp) 这个命令的作用是告诉CMake要将一个可执行文件添加到构建过程中。add_executable 是一个CMake的函数它接受两个参数。第一个参数是可执行文件的名称这里使用了步骤3的源文件名作为示例。第二个参数是源文件的路径这里假设源文件位于src目录下并使用了步骤3的源文件名.cpp作为示例文件名。这个命令会将源文件编译成一个可执行文件并将其添加到构建过程中以便在构建时生成该可执行文件。 target_link_libraries(步骤3的源文件名 ${catkin_LIBRARIES}) 这个命令的作用是将目标文件与指定的库进行链接。target_link_libraries 是另一个CMake的函数它接受两个参数。第一个参数是目标文件的名称这里使用了步骤3的源文件名作为示例。第二个参数是要链接的库这里使用了${catkin_LIBRARIES}作为示例。${catkin_LIBRARIES}是一个变量它包含了构建过程中所需的ROS相关库。通过将目标文件与指定的库进行链接可以确保在运行可执行文件时所需的库能够正确加载和使用。 通俗的来说当我们编写ROS节点时需要将源代码编译成可执行文件并将所需的库与该可执行文件进行链接。这两行CMake代码就是用来完成这个任务的。 3.进入工作空间目录并编译 cd 自定义空间名称 catkin_make这会生成上面提到的 build devel .... 可执行文件就在build文件里面 四 运行程序 1. 打开一个新的终端 输入 roscore2. 在打开一个终端 cd到你对应的工作空间然后输入 source ./devel/setup.bash rosrun 包名 C节点 source后在我们输入rosrun后可以按tab键快速补充。这是为什么呢 source ./devel/setup.bash 的含义是在当前终端会话中加载ROS工作空间的环境设置。 具体来说这段代码的作用是 source 是一个Shell命令用于执行指定脚本文件中的命令使其在当前终端会话中生效。./devel/setup.bash 是一个脚本文件的路径它位于ROS工作空间的 devel 目录下。devel/setup.bash 是ROS构建系统生成的一个脚本文件其中包含了设置ROS环境变量的命令。 当你运行这段代码时它会执行 devel/setup.bash 脚本文件中的命令设置当前终端会话的环境变量以便正确地使用ROS工具和功能。 具体来说devel/setup.bash 脚本文件中的命令会完成以下操作 设置 ROS_PACKAGE_PATH 环境变量指定ROS工作空间的包路径。设置 ROS_MASTER_URI 环境变量指定ROS主节点的URI。设置 ROS_IP 或 ROS_HOSTNAME 环境变量指定当前主机的IP地址或主机名。将ROS工作空间的 bin 和 lib 目录添加到 PATH 和 LD_LIBRARY_PATH 环境变量中以确保能够正确找到和加载ROS工具和库文件。 通过运行 source ./devel/setup.bash你可以将ROS工作空间的环境设置加载到当前终端会话中使得你可以在该终端中使用ROS工具和运行ROS节点。 需要注意的是每次打开一个新的终端时都需要运行这段代码以确保每个终端会话都能正确地加载ROS工作空间的环境设置。 然后我们就可以在终端看到我们发布的 hellowrld了 五 总结问题 1.问题一工作空间与软件包的关系与区别   在ROS机器人操作系统中工作空间workspace是一个包含多个软件包packages的目录。工作空间是一个用于组织和构建ROS项目的容器它提供了一种管理和编译多个软件包的机制。每个软件包代表着一个独立的功能单元可以包含节点nodes、消息messages、服务services、动作actions以及其他相关文件。 工作空间可以包含多个软件包这些软件包可以是你自己编写的或者是从其他人或团队获取的。通过将这些软件包组织在一个工作空间中你可以方便地进行编译、构建和管理。 问题二成功编译所需的CMake指令   在ROS中CMake是用于构建和编译ROS软件包的工具。下面是一些常用的CMake指令 1. cmake_minimum_required(VERSION x.x.x)指定所需的最低CMake版本。 2. project(project_name)指定项目名称。 3. find_package(package_name)查找指定的依赖包。 4. add_executable(executable_name source_files)添加一个可执行文件。 5. add_library(library_name source_files)添加一个库文件。 6. target_link_libraries(target_name library_names)将目标文件与指定的库文件进行链接。 7. add_dependencies(target_name dependency_names)添加目标文件的依赖。 8. catkin_package()用于构建Catkin软件包时用于指定包的依赖关系和其他Catkin特定的配置。 这只是一些常用的CMake指令具体使用取决于你的项目需求。 问题三rosrun的实质和devel/lib下的可执行文件   rosrun是ROS中一个常用的命令行工具用于运行ROS软件包中的节点。它的基本语法是 rosrun package_name node_name 其中package_name是要运行的节点所在的软件包的名称node_name是要运行的节点的名称。 当你使用rosrun命令运行一个节点时ROS会在工作空间的devel/lib目录下查找对应的可执行文件。该目录是在你执行catkin_make或catkin build等构建命令后自动生成的其中包含了已编译的节点可执行文件。 问题四为什么有多个cmake文件 在ROS项目中通常会出现多个CMake文件这是因为ROS项目的结构和功能较复杂需要分别管理不同的部分和依赖项。以下是常见的几种CMake文件 CMakeLists.txt这是ROS项目中最常见的CMake文件位于ROS包的根目录。它用于定义整个ROS包的构建规则、依赖项和其他配置选项。该文件会告诉CMake如何构建该ROS包包括编译可执行文件、创建库、生成消息和服务文件等。 package.xml虽然不是CMake文件但它是ROS项目中必不可少的配置文件之一。package.xml 文件位于ROS包的根目录用于定义ROS包的元数据、依赖项和其他信息。它描述了ROS包的名称、版本、作者、许可证等重要信息同时也列出了ROS和其他软件包的依赖关系。 CMakeLists.txt子目录在ROS包中的子目录中可能会有额外的CMake文件。这些文件用于定义子目录中特定部分的构建规则和依赖项。例如如果ROS包有一个独立的节点或库在子目录中可以在该子目录中创建一个独立的CMake文件来管理该部分的构建过程。 Findpackage.cmake这些是用于查找和配置其他非ROS软件包的CMake模块文件。这些文件通常用于在ROS项目中使用外部库或工具它们提供了与这些库和工具的集成方法。 每个CMake文件都有其特定的作用和范围它们共同协同工作以构建和管理一个完整的ROS项目。这种分离的方式使得项目的组织和维护更加清晰并允许不同部分的独立管理和配置。

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

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

相关文章

enthalpy/entropy

Алексей Экимов — единственный россиянин, получивший Нобелевскую премию по химии в 2023 году за технологии нанок…

Day26自定义异常

package Demo2; //自定义异常类 public class Myexception extends Exception {//传递数字>10private int detail;public Myexception(int a) {this.detail = a;}//重写toString打印异常信息@Overridepublic String…

重庆潼南网站建设公司wordpress浏览次数插件

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL中TEXT数据类型的最大长度 在MySQL中,TEXT数据类型用于存储较大…

科技公司手机端网站定制网站建设功能报价表模板

iMazing是一款功能强大的iPhone和iPad管理工具,确实可以作为iTunes的替代品进行数据备份。以下是一些关于iMazing的主要特点和功能: 设备备份:iMazing可以备份iOS设备上的所有数据,包括照片、视频、音乐、应用程序等。与iTunes相比…

谈谈redis的热key问题如何解决

引言 讲了几天的数据库系列的文章,大家一定看烦了,其实还没讲完。。。(以下省略一万字)。 今天我们换换口味,来写redis方面的内容,谈谈热key问题如何解决。 其实热key问题说来也很简单,就是瞬间有几十万的请求去访…

Microsoft Agent Framework (预览) 入门:让所有的开发者轻松创建 AI Agents

Microsoft Agent Framework (预览) 入门:让所有的开发者轻松创建 AI Agents翻译:https://devblogs.microsoft.com/dotnet/introducing-microsoft-agent-framework-preview/ 构建 AI 代理并非难事。然而,许多开发者却…

公益网站怎么做网站诊断方法

前言 一般情况下,多数移动开发者使用的是数据线连接电脑,进行各种移动设备的调试,更有胜者,非常迷恋模拟器,模拟器它好不好,答案是好,因为直接运行在电脑上,直接操作,调试…

免费送的广告怎么在网站上做wordpress 数据调用api接口

Redis 发布订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。 Redis 有两种发布订阅模式 基于频道(Channel)的发布订阅基于模式&#xff…

个人建设视频网站制作wordpress 邮件文本

源代码加密对于很多研发性单位来说是至关重要的,当然每家企业的业务需求不同所用的开发环境及开发语言也不尽相同,今天主要来讲一下c及git开发环境的源代码防泄密保护方案。 企业源代码泄密场景一、 在很多嵌入式开发企业中使用的c/c开发语言&#xff…

Stimulsoft 引入无代码脚本编程 —— Blockly 让报表与仪表盘更智能

Stimulsoft 是一款功能强大的数据可视化与报表平台,广泛应用于各类企业的数据分析与展示场景。其核心优势之一在于支持为报表和仪表盘添加自定义逻辑,以实现数据处理、可视化控制和用户交互等高级功能。 Stimulsoft …

理解、学习与使用 Java 中的 Optional

从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。 本质上,这是一个包含有可选值的包装类,这…

做网站的时候用的什么框架百度双站和响应式网站的区别

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)在 Java 中,跳转的实现方式有两种:请求转发和请求重定向,但二者是完全不同的&…

211 粉了整个小 QA 吧

可以发现我 \(211\) 粉了,既然是 \(211\) 这个这么有纪念意义的数字那就开一个小 Q&A:

建设网站需要申请报告网站开发费计入什么科目合适

通过上节课的学习,我们已经可以正常播放本地rtmp流及mp4文件,这节课,我们将在上节课的基础上实现一个常用的转推功能:读取rtmp流或mp4文件并转推到rtmp服务器上实现直播转发功能。 一、FFmpeg API 转码推流的一般过程 1.引入ffm…

p2p网站如何建设采集wordpress整站数据

文章目录 1.创建 Spring 项目步骤1.1 创建 Maven 项目1.2添加 Spring 框架支持1.3 添加启动项2.如何使用 Spring2.1 存储 Bean 对象2.1.1 创建 Bean对象2.1.2 将 Bean对象注册到容器中 2.2 获取并使用 Bean对象2.2.1 使用 ApplicationContext 获取对象2.2.2 使用 BeanFactory 获…

做网站搜索如何显示官网国内Wordpress博客平台

近日,华为终端BG CEO、智能汽车解决方案BU董事长余承东在2024年新年信中提出,开启华为终端未来大发展的新十年。 他特别提到,未来要构建强大的鸿蒙生态,2024年是原生鸿蒙的关键一年,将加快推进各类鸿蒙原生应用的开发…

deal 网站要怎么做如何在电商上购物网站

在vue学习中遇到给router-link 标签添加事件click 、mouseover等无效的情况 我想要做的是v-for遍历出来的选项卡&#xff0c; 鼠标移上去出现删除标签&#xff0c;移除标签消失的效果 原代码&#xff1a; <router-link v-for"(item, index) in pageMenuList"…

自己怎么制作企业网站动感网站模板

想写这篇文章好久了.但一直不敢写,一怕自己技术有限误导了园子里的各位朋友.二怕自己文笔有限不能很好的表达自己的意图,但既然是抱着交流的态度来的,我还是愿意写一写这方面的文章与大家一起交流和分享,欢迎大家拍砖.做SEO没有什么高深技术可言,靠的是经验的不断累积,各位SEO高…

北京建设厅网站首页手机网站和网站一体

有些编码套路是公认的&#xff0c;大家都参照其编写符合可观赏性的代码&#xff0c;那就是设计模式现在.NETcore 默认提供了DI功能&#xff0c;那我想设计一个全局的引擎类&#xff0c;进行注入服务、解析服务、配置中间件。并且要求该引擎类全局唯一&#xff0c;其他地方不能进…

网站建设与管理课程标准wordpress文章迁移到dz论坛

The Rise and Potential of Large Language Model Based Agents: A Surve - 基于 LLMs 的代理的兴起和潜力&#xff1a;一项调查 论文信息摘要1. 介绍2. 背景2.1 AI 代理的起源2.2 代理研究的技术趋势2.3 为什么大语言模型适合作为代理大脑的主要组件 3. 代理的诞生&#xff1a…