ROS2机器人个人教程博客汇总(2021共6套)

从Dashing开始正式开课,到现在用Foxy进行教学。博客零散,现在汇总一下,今后不再以ROS2为主进行博客更新(适用于应用型本科的课程建设理论和实践部分已经全部完成)改为具体应用领域为主(服务机器人主题/自动驾驶主题/人工智能主体/多机器人主题等)。

最新版课程总结(博客教程与学校课程并不一致,差异化更新):


2017年开启ROS1和ROS2混合教学(零突破):


大量更新自Dashing版本发布后:

2019年(第1套): 

依据官方文档的基础内容博客就不列举了,都在ROS2课程专栏中:


2020年(第2套):


2021年(第3套):


2021年(第4套):


长期更新2016-2021,ROS1-ROS2-indigo-kinetic-melodic-noetic-dashing-foxy6版(第5套):


 2021年趣味编程系列,只更新了前20篇(第6套):


  • 27
    点赞
  • 187
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
ROS2编程基础课程文档 ROS 2(机器人操作系统2)是用于机器人应用的开源开发件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。
ROS2是一款开源机器人操作系统,用于构建机器人应用程序。下面是一些ROS2机器人个人教程: 1. 安装ROS2:首先,你需要安装ROS2。ROS2有多种安装方式,最常见的是使用二进制文件进行安装。在Ubuntu上,你可以从ROS2官网下载适合你的版本,然后按照官方文档中的指示进行安装。 2. 创建ROS2工作空间:在你开始构建ROS2应用程序之前,需要创建一个ROS2工作空间。可以通过运行以下命令来创建: ``` mkdir -p ~/ros2_ws/src cd ~/ros2_ws/ colcon build ``` 这将创建一个名为`ros2_ws`的文件夹,并在其中创建一个名为`src`的文件夹。`colcon build`命令将使用ROS2构建系统来创建构建目录和构建你的代码。 3. 创建ROS2包:ROS2包是ROS2应用程序的基本组成部分。要创建一个ROS2包,可以使用以下命令: ``` cd ~/ros2_ws/src ros2 pkg create <package_name> ``` 这将在`src`文件夹中创建一个名为`<package_name>`的文件夹,其中包含用于构建ROS2包的基本文件。 4. 编写ROS2节点:ROS2节点是ROS2应用程序的核心组件,它们是一个执行特定任务的代码块。要编写ROS2节点,可以使用ROS2提供的各种编程语言,例如C++、Python等。以下是一个简单的ROS2 Python节点示例: ``` #!/usr/bin/env python3 import rclpy from rclpy.node import Node class MyNode(Node): def __init__(self): super().__init__("my_node") self.get_logger().info("Hello, ROS2!") def main(args=None): rclpy.init(args=args) node = MyNode() rclpy.spin(node) rclpy.shutdown() if __name__ == '__main__': main() ``` 这个节点仅仅打印出一条消息,但是可以根据你的需求编写更加复杂的节点。 5. 运行ROS2节点:要运行ROS2节点,可以使用以下命令: ``` ros2 run <package_name> <node_name> ``` 其中`<package_name>`是你的ROS2包的名称,`<node_name>`是你的ROS2节点的名称。 6. ROS2话题通信:ROS2节点之间通过话题进行通信。话题是一个节点可以发布和接收消息的主题。要发布数据,节点将数据发布到话题上;要接收数据,节点将数据订阅到话题上。以下是一个ROS2 Python话题发布器示例: ``` #!/usr/bin/env python3 import rclpy from rclpy.node import Node from std_msgs.msg import String class MyNode(Node): def __init__(self): super().__init__("my_node") self.publisher_ = self.create_publisher(String, "my_topic", 10) timer_period = 0.5 self.timer_ = self.create_timer(timer_period, self.timer_callback) def timer_callback(self): msg = String() msg.data = "Hello, ROS2!" self.publisher_.publish(msg) def main(args=None): rclpy.init(args=args) node = MyNode() rclpy.spin(node) rclpy.shutdown() if __name__ == '__main__': main() ``` 这个节点将一个名为`my_topic`的话题发布到ROS2网络上,并且每隔0.5秒钟发布一条消息。 7. ROS2服务通信:除了话题通信外,ROS2还支持服务通信,服务是一个节点可以向另一个节点请求数据的机制。以下是一个ROS2 Python服务节点示例: ``` #!/usr/bin/env python3 import rclpy from rclpy.node import Node from example_interfaces.srv import AddTwoInts class MyNode(Node): def __init__(self): super().__init__("my_node") self.server_ = self.create_service(AddTwoInts, "add_two_ints", self.add_two_ints_callback) def add_two_ints_callback(self, request, response): response.sum = request.a + request.b return response def main(args=None): rclpy.init(args=args) node = MyNode() rclpy.spin(node) rclpy.shutdown() if __name__ == '__main__': main() ``` 这个服务节点将一个名为`add_two_ints`的服务发布到ROS2网络上,并且当有节点请求数据时,它将计算请求中的两个整数并将结果返回。 这些是ROS2机器人的基本操作,你可以根据你的需求进行更加复杂的开发。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangrelay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值