本文主要是介绍ROS2网络多机通信DDS和安全加密SROS(多机器人系统),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ROS1多机通信配置较为繁琐,但是ROS2非常简单,直接通过DDS实现。
如果是局域网,只需确保ROS_DOMAIN_ID一致即可。
例如设置ID为5:export ROS_DOMAIN_ID=5。
所有网络中设置一致,即可通信。()
PC1:
PC2:
可以查看开启前后主题多了一个/topic。
在PC2开启发布器:
PC1:
思考题:尝试通过网络控制turtlesim和turtlebot3。
ROS1和ROS2都支持消息加密以提高安全性。
ROS1:http://wiki.ros.org/SROS
SROS是ROS的一组安全性增强功能,例如对ROS中所有套接字传输的本机TLS支持,使用x.509证书(允许信任链),可定义的名称空间(针对ROS节点限制和允许的角色)以及契约用户-space工具自动生成节点密钥对,审核ROS网络以及构造/训练访问控制策略。此外,还提供了AppArmor配置文件库模板,允许用户强化或隔离在Linux内核上运行的基于ROS的进程。
网络安全正迅速成为机器人技术的普遍问题,尤其是随着机器人在社会中的普及越来越普遍。随着工业自动化,自动驾驶汽车,商业监控平台,家庭服务机器人以及许多其他机器人领域的出现,这些子系统的安全性应被视为至关重要,因为它们都为网络威胁提供了载体,可将其表现为现实世界中的风险。即使没有工业强度的机器人手臂或高速无人驾驶半卡车带来的危害,与智能手机和PC一样,承诺与物联网集成的个人机器人也可能成为侵犯隐私和身份盗窃来源的目标。
1. 安装 2. 教程 3. 概念 4. 命令行工具 5. 环境变量
ROS2:https://github.com/ros2/sros2/blob/master/SROS2_Linux.md
软件包提供了在DDS-Security之上使用ROS2的工具和说明。支持跨平台(Linux,macOS和Windows)以及跨不同语言(C++和Python),并都测试安全功能。
尽管正在设计SROS2支持任何一款安全的中间件,但目前正在仅支持RTI Connext Secure 5.3.1和eProsima的Fast-RTPS 1.6.0,并进行测试。如果要使用RTI Connext Secure运行演示,则需要许可证并需要安装。
- 在Linux上使用SROS2
- 在MacOS上使用SROS2
- 在Windows上使用SROS2
这里,以ROS2网络中使用SROS2为例简要说明,网络消息安全性对多机器人系统非常重要。
dashing可以直接用功能包安装:
sudo apt install ros-dashing-sros2
创建秘钥仓库:
ros2 security create_keystore xxx_keys
创建节点:
ros2 security create_key xxx_keys /talker
ros2 security create_key xxx_keys /listener
We use minimal_publisher and minimal_subscriber here.
配置环境变量:
export ROS_SECURITY_ROOT_DIRECTORY=xxx_keys
export ROS_SECURITY_ENABLE=true
export ROS_SECURITY_STRATEGY=Enforce
网络使用需要将秘钥复制到对应网络设备中。
scp -r talker USERNAME@xxx:~/xxx_keys
否则无法收到加密消息,虽然能看到节点和主题,但是没有任何更新和显示。
这篇关于ROS2网络多机通信DDS和安全加密SROS(多机器人系统)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!