是时候放下ROS1,开启ROS2的旅程了。It’s time to put down ROS1 and start the journey of ROS2. ROS2官方在线文档链接 ROS2 official online documentation:https://index.ros.org/doc/ros2/ ROS2教程文档使用说明与为什么选择ROS2?ROS2 tutorial documentation instructions and why choose ROS2?https://blog.csdn.net/ZhangRelay/article/details/93601114 ROS2常规学习路径 ROS2 regular learning path:
demos、navigation2 and moveit2
ROS2进阶学习路径 ROS2 advanced learning path:
others
学习分享从安装配置开始,首先详细介绍教程,然后是两个专题:Navigation2和MoveIt!2。This article starts with ROS2 installation and configuration, first introduces the tutorial in detail, then two topics: Navigation2 and MoveIt!2. 安装详细过程 Installation detailed tutorial:ROS 2 Dashing Diademata安装和使用文档(含Linux、Windows和OS X)ROS 2 Dashing Diademata installation and documentation (including Linux, Windows and OS X) ROS教程 ROS 2 tutorials:https://github.com/zhangrelay/ros2_tutorials 配置教程包 Tutorial package configuration:
- 下载:git clone
- 编译:colcon build
- 使用:ros2 run
colcon build
导入编译的环境 Import the compiled environment: source install/setup.bash 输入ros2 run turtlesim,可以看到如下节点 Enter ros2 run turtlesim, you can see the following nodes: draw_square —prefix turtle_teleop_key mimic turtlesim_node 常用命令如下 Common commands are as follows:
- ros2 run turtlesim turtlesim_node
- ros2 topic list
- ros2 run turtlesim draw_square
- ros2 topic echo /turtle1/pose
- ……
更多内容参考下图 For more details, please refer to the following figure:
欢迎大家下载案例调试玩耍, 更多内容后续介绍。You are welcome to download the case, debug and play, more will be introduced in subsequent articles.
思考题 Thinking:
回顾roslaunch, 写一个ros2 launch,同时启动turtlesim_node和draw_spuare。Looking back at roslaunch, write a ros2 launch and start both the turtlesim_node and draw_spuare node.
扩展题 Extended:
对比ROS1和ROS2的turtlesim包,分析和思考两代ROS编程和使用中的差异。Compare the turbulsim package of ROS1 and ROS2, analyze and think about the difference between the two generations of ROS in programming and use.
draw_square.launch.py
from launch import LaunchDescription
import launch_ros.actions
def generate_launch_description():
return LaunchDescription([
launch_ros.actions.Node(
node_namespace= "ros2", package='turtlesim', node_executable='turtlesim_node', output='screen'),
launch_ros.actions.Node(
node_namespace= "ros2", package='turtlesim', node_executable='draw_square', output='screen'),
])