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

河南自助建站seo公司搜索引擎优化的简称是

河南自助建站seo公司,搜索引擎优化的简称是,可以做空股票的网站,做电影网站会不会侵权目录 一、概念 二、设置 ROS 分布式网络 1. 环境要求 2. 主机(Master)设置 3. 从机(节点设备)设置 4. 测试是否正常通信 三、进阶启动多从机节点(launch)。 一、概念 ROS 分布式通信用于在多台计算机…

   

目录

   

一、概念

二、设置 ROS 分布式网络

1. 环境要求

2. 主机(Master)设置 

3. 从机(节点设备)设置

4. 测试是否正常通信

三、进阶启动多从机节点(launch)。


一、概念

        ROS 分布式通信用于在多台计算机之间共享 ROS 话题(topics)、服务(services)和参数(parameters)。这在机器人系统中非常常见,例如:一台主控电脑(主机) 运行计算任务,多个机器人或设备(从机) 负责执行任务。        

        ROS 使用 ROS Master(roscore) 作为中央协调节点,所有 ROS 进程(节点) 需要与 Master 通信:ROS Master 运行在一台主机上,其他设备 通过 ROS_MASTER_URI 连接到 Master,节点之间直接 P2P点对点通信(数据流不经过 Master)

        适用场景:假设我们有一台PC虚拟机和一台树莓派,它们都运行相同的操作系统,并处于同一局域网中。在这种配置下,我们可以将树莓派连接到小车,利用树莓派来控制小车的运动。由于ROS采用基于节点的通信机制,我们可以将主节点运行在PC虚拟机上,而将树莓派上运行小车底盘控制节点。树莓派的主要职责是控制小车的运动,而其他计算任务和算法则由PC虚拟机上的节点来完成。这样,PC虚拟机作为控制中心,负责协调和处理其他任务,树莓派只需专注于执行小车的控制功能,无需承担其他计算任务。这种方式能够高效地分配任务,确保系统的协同工作,从而实现智能控制。

        解决问题:当从机数量增加时,这种分布式架构的优势更加明显。每个从机只需要专注于执行自己的基本任务,例如控制硬件或处理低层任务,而其他复杂的计算任务、算法处理等则由主机来完成。这样,不仅可以减轻从机的负担,还能够将计算密集型的任务集中在主机上,提升整个系统的效率和可扩展性。随着从机数量的增加,主机作为控制中心,能够协调更多的从机,确保系统的高效运行,而不需要为每个从机单独处理算法和计算任务。

        当我们使用第三方插件来进行地图建模或视频采集时,如果这些任务都在树莓派上运行,由于树莓派的硬件资源有限,可能会导致性能下降,甚至无法满足某些任务的需求。为了解决这个问题,我们可以采用分布式架构,将这些资源消耗较大的插件迁移到PC端运行,这样可以避免树莓派的性能瓶颈,确保系统的流畅运行。具体来说,树莓派可以专注于进行传感器数据采集和控制任务,而计算密集型的任务,如地图建模和视频处理,可以交给PC端处理,从而提高整个系统的效率,避免因树莓派资源不足导致的性能问题。

二、设置 ROS 分布式网络

1. 环境要求

确保所有计算机:

(1)都在同一局域网内。

(2)可以通过 ping 互相访问

(3)安装相同版本的 ROS(推荐 Ubuntu + ROS Noetic)

2. 主机(Master)设置 

        选定一台机器作为主机,在主机(假设 IP 为 192.168.1.100)上,使用命令:vi ~/.bashrc,修改文件夹中以下的内容。注意ROS_MASTER_URI填写的谁的ip,谁就是主机(来运行roscore)。

# 指定 ROS Master(roscore 运行的机器)的 IP 地址和端口号(默认 11311)
export ROS_MASTER_URI=http://192.168.1.100:11311  
# 指定当前设备的 IP 地址,让其他设备可以找到它
export ROS_IP=192.168.1.100    
# 设置当前设备的主机名(可选,通常与 ROS_IP 相同)                
export ROS_HOSTNAME=192.168.1.100               

使用命令:source ~/.bashrc刷新,然后在主机上启动 roscore

3. 从机(节点设备)设置

在从机(假设 IP 为 192.168.1.101)上,使用命令:vi ~/.bashrc修改文件夹中以下的内容。

export ROS_MASTER_URI=http://192.168.1.100:11311 #主机的ip地址
export ROS_IP=192.168.1.101  #自身的ip地址
export ROS_HOSTNAME=192.168.1.101 #自定义

        使用命令:source ~/.bashrc刷新,然后使用命令rostopic list进行测试连接,如果能看到 roscore 发布的 /rosout 话题,说明连接成功。

4. 测试是否正常通信

 注意:这里使用话题来测试通信,无论是主机发布话题还是从机发布话题都是可以的,这里我们使用主机来发布话题。

在主机上运行roscore后,在 主机(192.168.1.100)上运行:

rostopic pub /test_topic std_msgs/String "Hello from Master" -r 1
/*
rostopic pub —— 发布(publish)一个 ROS 话题。
/test_topic —— 话题名称,这里是 /test_topic,可以自定义。
std_msgs/String —— 消息类型,这里是 std_msgs 包中的 String 类型(即字符串消息)。
"Hello from Master" —— 要发布的消息内容,这里是 "Hello from Master"。
-r 1 —— 设置发布频率,-r 1 表示每秒发布 1 次消息。*/

从机(192.168.1.101)上运行:

rostopic echo /test_topic

如果从机能收到 "Hello from Master",说明分布式通信成功!

三、进阶启动多从机节点(launch)。

        适用场景:多个机器人在不同的物理或虚拟环境中协作完成任务。每个机器人可能有不同的传感器、执行器,并需要与其他机器人共享信息。在这种场景中,你可以使用 launch 文件来配置每个机器人的节点和它们在不同机器上的位置,确保每个机器人能够通过 ROS_MASTER_URI 连接到同一个 ROS Master,实现跨机器的节点通信。注意:确保从机已经被登录或者为SSH 免密登录,否则 roslaunch 不能远程启动。

(1)选定一台机器作为 Master(比如 192.168.1.100),在主机上编写launch文件,如下所示,在主机上运行roscore

<launch><!-- 定义两个机器人,每个机器人通过其地址连接 --><machine name="robot1" address="192.168.1.101" env-loader="/home/user/.bashrc"/><machine name="robot2" address="192.168.1.102" env-loader="/home/user/.bashrc"/><!-- 在 robot1 上运行节点 --><node machine="robot1" pkg="my_package" type="robot_node" name="robot1_node"/><!-- 在 robot2 上运行节点 --><node machine="robot2" pkg="my_package" type="robot_node" name="robot2_node"/>
</launch><!-- 
name="robot1" 和 name="robot2" —— 定义两台远程机器人,分别命名为 robot1 和 robot2。
address="192.168.1.101" 和 address="192.168.1.102" —— 指定 IP 地址,表明 robot1 运行在 192.168.1.101,robot2 运行在 192.168.1.102。
env-loader="/home/user/.bashrc" —— 加载环境变量,ROS 需要依赖 ~/.bashrc 里的 ROS_MASTER_URI 和 ROS_IP 等环境变量,确保远程机器能正确找到 ROS Master。<node> 表示在 ROS 中启动一个 节点。
machine="robot1" 和 machine="robot2" —— 指定在哪台机器上运行该节点。
pkg="my_package" —— ROS 包名,表示这个节点属于 my_package 包。
type="robot_node" —— 可执行文件名,即 my_package 包中的 robot_node 这个可执行程序。
name="robot1_node" 和 name="robot2_node" —— 指定 ROS 节点名称
-->

(2)确保 Master 机器的 .bashrc 里有正确的环境变量。

export ROS_MASTER_URI=http://192.168.1.100:11311
export ROS_IP=192.168.1.100

(3)在远程机器 (robot1robot2) 上配置环境变量.bashrc

robot1(192.168.1.101):

export ROS_MASTER_URI=http://192.168.1.100:11311
export ROS_IP=192.168.1.101  # robot1 的 IP

robot2(192.168.1.102):

export ROS_MASTER_URI=http://192.168.1.100:11311
export ROS_IP=192.168.1.102  # robot2 的 IP

(4)在 Master 机器上运行 launch 文件。

cd ~/catkin_ws
source devel/setup.bash
roslaunch my_package my_launch_file.launch

(5)查看是否成功。

robot1robot2 上分别运行rosnode list命令,检查节点是否正确启动,出现下面节点,说明节点已成功运行!

http://www.dtcms.com/wzjs/69544.html

相关文章:

  • 郑州市惠济区城乡建设局网站好口碑关键词优化
  • 阿里云企业网站怎么收费seo职位具体做什么
  • 门户网站建设招投标北京网站推广服务
  • win10系统做网站厦门seo关键词优化代运营
  • 权威网站优化价格搜索引擎seo推广
  • 网站开发售后服务协议策划营销
  • 途牛的旅游网站是谁做的盐城seo推广
  • 建e网站官网案例北京网站建设公司
  • 网站建设哪家信誉好seo教程视频
  • 雄安网站建设需要多少钱福州网站seo优化公司
  • 做任务换流量的网站自己有网站怎么推广
  • 无锡建设网站制作网址seo查询
  • 深圳罗湖企业网站推广友链出售
  • 微信小程序怎么做商城网站seo招聘
  • 百度怎样做网站并宣传网站网站外链购买
  • 免费人物素材网站昆山网站建设公司
  • wap自助建论坛网站推广网站的方法有哪些
  • cms企业网站源码成都seo经理
  • 服务行业网站建设google浏览器网页版
  • 成都网站建设赢展seo网站快速排名
  • 案例网站有哪些江苏疫情最新消息
  • 做网站后台的电子文库百度热线电话
  • 企业网站建设公司排名定制网站开发公司
  • 护肤品网站建设的意义鹤壁网络推广哪家好
  • wordpress去标题版权搜索优化师
  • 医院网站建设预算站长工具百科
  • 网站广告连接如何做济南做网站公司
  • 武汉优联网站建设浙江seo推广
  • 孝感 商务 网站建设线上招生引流推广方法
  • onethink做的企业网站seo网站推广专员招聘