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

全屏网站设计网站建设是基础服务吗

全屏网站设计,网站建设是基础服务吗,广东平台网站建设制作,河南建筑信息一体在 ROS 中,节点的启动通常有两种方式: 直接通过 rosrun 启动单个节点通过 roslaunch 启动多个节点及其参数 下面以一个完整的示例,展示如何在 ROS 包内启动节点,包括 rosrun 和 roslaunch 的使用方法。 示例背景 假设我们有一个…

在 ROS 中,节点的启动通常有两种方式:

  1. 直接通过 rosrun 启动单个节点
  2. 通过 roslaunch 启动多个节点及其参数

下面以一个完整的示例,展示如何在 ROS 包内启动节点,包括 rosrunroslaunch 的使用方法。


示例背景

假设我们有一个工作包名为 my_cpp_package,其中包含两个节点:

  • talker.cpp(发布者)
  • listener.cpp(订阅者)

参考前面创建的 ROS 包模板,ROS1/ROS2中工作空间和工作包创建详解


方法 1:使用 rosrun 启动单个节点

# 启动 roscore(必须的)
roscore

新终端:启动 talker

rosrun my_cpp_package talker

再开一个终端:启动 listener

rosrun my_cpp_package listener

方法 2:使用 roslaunch 启动节点(推荐方式)

创建 launch 目录并添加启动文件

cd ~/catkin_ws/src/my_cpp_package
mkdir launch
touch launch/start_nodes.launch

start_nodes.launch 内容如下:

<launch><!-- 启动发布者 --><node pkg="my_cpp_package" type="talker" name="talker_node" output="screen" /><!-- 启动订阅者 --><node pkg="my_cpp_package" type="listener" name="listener_node" output="screen" />
</launch>

启动方法

cd ~/catkin_ws
catkin_make
source devel/setup.bashroslaunch my_cpp_package start_nodes.launch

你会看到两个节点都启动了,输出类似:

[INFO] [talker_node]: hello world 1
[INFO] [listener_node]: I heard: [hello world 1]

注意事项

项目说明
<node pkg=...>指定节点所在的包名
type="xxx"可执行文件名称,位于 devel/lib/your_package/xxx
name="xxx"ROS 中节点的名称,可用于参数命名空间等
output="screen"输出日志到终端,便于调试

完整示例

下面是一个完整的 C++ ROS 工作包模板,包含以下内容:


功能概览

  • 包名:my_cpp_package

  • 节点:

    • talker: 发布字符串消息并读取参数
    • listener: 订阅字符串消息
  • 启动文件:

    • start_nodes.launch:同时启动两个节点并传参

项目结构

my_cpp_package/
├── CMakeLists.txt
├── package.xml
├── launch/
│   └── start_nodes.launch
├── src/
│   ├── talker.cpp
│   └── listener.cpp

CMakeLists.txt

cmake_minimum_required(VERSION 3.0.2)
project(my_cpp_package)find_package(catkin REQUIRED COMPONENTSroscppstd_msgs
)catkin_package()include_directories(${catkin_INCLUDE_DIRS}
)add_executable(talker src/talker.cpp)
add_executable(listener src/listener.cpp)target_link_libraries(talker ${catkin_LIBRARIES})
target_link_libraries(listener ${catkin_LIBRARIES})

package.xml

<?xml version="1.0"?>
<package format="2"><name>my_cpp_package</name><version>0.0.1</version><description>A simple ROS C++ demo package</description><maintainer email="your_email@example.com">Your Name</maintainer><license>MIT</license><buildtool_depend>catkin</buildtool_depend><depend>roscpp</depend><depend>std_msgs</depend></package>

src/talker.cpp

#include "ros/ros.h"
#include "std_msgs/String.h"int main(int argc, char **argv)
{ros::init(argc, argv, "talker_node");ros::NodeHandle nh("~");  // 私有命名空间ros::Publisher pub = nh.advertise<std_msgs::String>("/chatter", 10);ros::Rate rate(1);std::string base_msg;nh.param<std::string>("message", base_msg, "Hello from talker!");int count = 0;while (ros::ok()){std_msgs::String msg;msg.data = base_msg + " [" + std::to_string(count++) + "]";ROS_INFO_STREAM("[talker] Publishing: " << msg.data);pub.publish(msg);rate.sleep();}return 0;
}

src/listener.cpp

#include "ros/ros.h"
#include "std_msgs/String.h"void callback(const std_msgs::String::ConstPtr& msg)
{ROS_INFO_STREAM("[listener] Heard: " << msg->data);
}int main(int argc, char **argv)
{ros::init(argc, argv, "listener_node");ros::NodeHandle nh;ros::Subscriber sub = nh.subscribe("/chatter", 10, callback);ros::spin();return 0;
}

launch/start_nodes.launch

<launch><!-- 启动 talker --><node pkg="my_cpp_package" type="talker" name="talker_node" output="screen"><param name="message" value="Custom Hello ROS!" /></node><!-- 启动 listener --><node pkg="my_cpp_package" type="listener" name="listener_node" output="screen" />
</launch>

构建与运行步骤

cd ~/catkin_ws/src
git clone <your_repo> my_cpp_package
cd ~/catkin_ws
catkin_make
source devel/setup.bashroslaunch my_cpp_package start_nodes.launch

输出示例

[talker] Publishing: Custom Hello ROS! [0]
[listener] Heard: Custom Hello ROS! [0]
...
http://www.dtcms.com/wzjs/591354.html

相关文章:

  • 网站开发付款分几步程序开发过程的四个步骤
  • 有哪些做统计销量的网站广州白云区防疫工作
  • 计算机类十大含金量证书成都高薪seo
  • 社交网站模板mip网站怎么做匹配
  • 百度站长工具后台seo指的是搜索引擎
  • 做好对外门户网站建设杭州网站建设怎么样
  • 旅游网站手机模板深圳公司排名前50
  • 百度网站链接农庄网站
  • 做贵网站多少钱大学网站建设评比考核办法
  • 网站建设技术人员工作总结找人做网站服务器不是自己的怎么办
  • 重庆广告网站推广品牌宣传海报设计制作
  • 网站特色栏目重要性阿里云服务器安装宝塔和wordpress
  • 连云港网站优化方案专业做化学招聘的网站有哪些
  • 深圳建网站人们常说的蓝领是从事什么工作的
  • 网站建设的数字化和互联网化重庆网站运营公司
  • 小说网站做公众号好还是网站好哪家公司做网站正规
  • 免费申请网站首选百度app网站建设手机APP软件开发
  • 网站建设凭证网页做网站的尺寸
  • 重庆特种作业证查询哪里做网站优化
  • 购物网站建设目标概述竞价代运营
  • 表白网站制作系统源码重庆seo1
  • 深圳网站建设制作哪家好百度分公司 网站外包
  • 南宁网站推广手段济南网站建设和维护
  • 网站建设新手教程视频教程三星网上商城怎么查物流
  • 淘宝店有给网站做优化am网上商城推广
  • 网站设计网页首页介绍wordpress地图在哪
  • 天津网站优化公司推荐哪家项城网站制作多少钱
  • 甘肃省建设工程安全质量监督管理局网站建设网站方案公司
  • 网站logoico怎么做苏州网站建设公司科技城
  • 做外贸的有哪些网站wordpress七牛图床插件