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

怎样在美国做网站网络科技公司网站建设

怎样在美国做网站,网络科技公司网站建设,17素材网站,广州网站开发 商城开发ROS2系列文章目录 ROS2中nav_msgs/msg/Path 数据含义及使用 ROS2中std_msgs/msg/Header 数据含义及使用 ROS中TF变换详解 文章目录 ROS2系列文章目录ROS2中launch编写及参数含义(xml、python)一、ROS官方介绍二、实现案例1.编写主函数、CMakeLists.tx…

ROS2系列文章目录

ROS2中nav_msgs/msg/Path 数据含义及使用

ROS2中std_msgs/msg/Header 数据含义及使用

ROS中TF变换详解


文章目录

  • ROS2系列文章目录
  • ROS2中launch编写及参数含义(xml、python)
  • 一、ROS官方介绍
  • 二、实现案例
    • 1.编写主函数、CMakeLists.txt及package.xml
    • 2.编写启动节点的launch文件
    • 3.编译并运行


ROS2中launch编写及参数含义(xml、python)


一、ROS官方介绍

ROS 2中的启动系统负责帮助用户描述其系统的配置,然后按描述执行。系统的配置包括运行什么程序,在哪里运行,传递什么参数,以及ROS特定的约定,这些约定通过为每个组件提供不同的配置,使其易于在整个系统中重用组件。它还负责监测启动过程的状态,并报告和/或对这些过程的状态变化作出反应。
ROS2官方说明:http://docs.ros.org/en/humble/Tutorials/Intermediate/Launch/Creating-Launch-Files.html#write-the-launch-file

二、实现案例

1.编写主函数、CMakeLists.txt及package.xml

此处创建learn_ros2功能包,在learn_ros2/src目录下建立main.cpp,该函数具体实现功能参照博文:ROS2中nav_msgs/msg/Path 数据含义及使用

#include <nav_msgs/msg/path.hpp>
#include <rclcpp/rclcpp.hpp>
#include <string>
#include <unistd.h>
using namespace std;
class My_node:public rclcpp::Node{
public:My_node(std::string node_name):Node(node_name){}
};
int main(int argc, char**argv){rclcpp::init(argc,argv);//节点初始化std::shared_ptr<My_node> node_ptr = std::make_shared<My_node>("test_node");rclcpp::Publisher<nav_msgs::msg::Path>::SharedPtr nav_pub = node_ptr->create_publisher<nav_msgs::msg::Path>("/global_path",1);nav_msgs::msg::Path path;geometry_msgs::msg::PoseStamped pose;path.header.frame_id = "world";while (rclcpp::ok()){path.header.stamp = node_ptr->now();path.poses.clear();for (int i = 0; i < 10; i++){pose.header.frame_id = "world";pose.header.stamp = node_ptr->now();pose.pose.position.set__x(i);pose.pose.position.set__y(0.2*i*i+2);pose.pose.position.set__z(0);pose.pose.orientation.set__x(0);pose.pose.orientation.set__y(0);pose.pose.orientation.z = 0;pose.pose.orientation.w = 1;path.poses.push_back(pose);}nav_pub->publish(path);sleep(1);std::cout<<"已发送path"<<std::endl;}    std::cout<<"退出程序"<<std::endl;
}

指定功能包learn_ros2的CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.8)
project(learn_ros2)if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclpy REQUIRED)
find_package(std_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
if(BUILD_TESTING)find_package(ament_lint_auto REQUIRED)# the following line skips the linter which checks for copyrights# comment the line when a copyright and license is added to all source filesset(ament_cmake_copyright_FOUND TRUE)# the following line skips cpplint (only works in a git repo)# comment the line when this package is in a git repo and when# a copyright and license is added to all source filesset(ament_cmake_cpplint_FOUND TRUE)ament_lint_auto_find_test_dependencies()
endif()
#添加可执行文件名
add_executable(test_node src/main.cpp)
#给可执行文件链接ros2的标准库及其他依赖
ament_target_dependencies(test_node rclcpp std_msgs nav_msgs)
#将可执行文件安装在指定目录下
install(TARGETS test_node
DESTINATION lib/${PROJECT_NAME})
#将launch目录下的文件安装在指定目录下
install(DIRECTORY launchDESTINATION share/${PROJECT_NAME})
ament_package()

2.编写启动节点的launch文件

在learn_ros2目录下建立launch文件夹,并在文件目录中新建python及xml文件如下:
test_launch.launch.py,test_xml_launch.xml

首先使用python实现test_launch.launch.py文件,具体含义参考注释

from launch import LaunchDescription
from launch_ros.actions import Nodedef generate_launch_description():parameters_basic1 = Node(package="learn_ros2",executable="test_node",)# 创建LaunchDescription对象launch_description,用于描述launch文件launch_description = LaunchDescription([parameters_basic1])# 返回让ROS2根据launch描述执行节点return launch_description

该处使用的url网络请求的数据。

使用XML实现test_xml_launch.xml文件,具体含义参考注释

<launch><!-- 启动节点,命名为/name1/test_node --><node pkg="learn_ros2" exec="test_node" name="test_node" namespace="name_1"/><!-- 启动节点,命名为/name2/test_node --><node pkg="learn_ros2" exec="test_node" name="test_node" namespace="name_2"/><!-- 启动节点,命名为/name3/test_node,同时将话题/global_path,映射为/test_node3/global_path--><node pkg="learn_ros2" exec="test_node" name="test_node" namespace="name_3"><remap from="/global_path" to="/test_node3/global_path"/></node> </launch>

3.编译并运行

注意:编写完成launch文件后,要使用ros2编译命令对功能包的可执行文件进行生成

使用test_xml_launch.xml启动各个程序

source install/setup.bash
ros2 launch learn_ros2 test_xml_launch.xml

请添加图片描述

使用test_launch.launch.py启动各个程序如下:

请添加图片描述

http://www.khdw.cn/news/11366.html

相关文章:

  • wordpress 仪表盘网址海东地区谷歌seo网络优化
  • frontpage可以做网站吗宁波seo关键词排名
  • 医院网站优化策划网络营销有哪些
  • 长春网站建设公司十佳搜索引擎排名
  • 宁波网站建设接单百度推广自己怎么做
  • 重庆品质网站建设销售上海seo顾问推推蛙
  • 网站模板 html2024政治时政热点
  • 源码哥网站的模板上海百度搜索排名优化
  • 自己怎样制作网站好用的种子搜索引擎
  • 哈尔滨论坛建站模板电商网站seo
  • 什么是seo文章seo外包 杭州
  • 最专业的网站建设团队查询网站流量的网址
  • 企业网站硬件方面建设企业网络组建方案
  • 如何做花店网站内容营销策略
  • 网站选项卡如何做自适应值得收藏的五个搜索引擎
  • 做威客的网站上海做推广的引流公司
  • iis如何发布php网站seo关键词优化培训班
  • 一个营业执照可以做几个网站互联网营销方案策划
  • 张家港做外贸网站网站seo优化方案项目策划书
  • 香港特区政府网站 建设网站优化和网站推广
  • wordpress积分内容seo系统培训
  • 电子商务是干什么的就业方向青海seo关键词排名优化工具
  • 有虚拟主机wordpress百度seo怎么优化
  • 医药网站备案广告公司营销策划方案
  • 北京网站建设怎么样郑州网站推广公司
  • 网站怎么做微博认证百度股市行情上证指数
  • 龙华专业做网站百度seo优化软件
  • 屏山县建设招标网站新冠疫情最新消息
  • 网站建设买服务器价格厦门人才网官网登录
  • 做sgs认证的公司网站大庆黄页查询电话