😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍ros2环境安装与基础入门。
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞
文章目录
- :smirk:1. ros2介绍
- :blush:2. ros2安装
- :satisfied:3. ros2基础使用
😏1. ros2介绍
ROS 2 (Robot Operating System 2)是一个开源的机器人操作系统,它是ROS(Robot Operating System)的下一代版本。它提供了一系列工具、库和约定,用于构建机器人应用程序。与ROS 1相比,ROS 2具有更强大的功能,更好的性能和更好的可靠性。
ROS 2采用分布式消息传递机制,可以在不同的计算机上进行通信,并支持多种编程语言,包括C++、Python、Java等。ROS 2还提供了更好的安全性和实时性,使其适用于更广泛的机器人应用场景。
ROS 2的核心组件包括:
rclcpp:ROS客户端库,在C++中使用。 rclpy:ROS客户端库,在Python中使用。
rosidl:服务接口定义语言,用于描述ROS消息和服务。 rmw:ROS中间件,用于管理节点之间的通信。
ros2cli:命令行界面工具,用于管理ROS 2系统。
ROS2的一大特点是集成了DDS,支持的DDS有:
Fast RTPS:该实现基于eProsima的Fast RTPS库,是ROS 2默认的DDS实现。Fast RTPS是一个高性能、可靠的DDS实现,采用了快速序列化机制(Fast Buffers)和动态类型支持(DynamicTypes),支持多种平台和编程语言。
Cyclone DDS:该实现由ADLINK开发,是另一个高性能、开源的DDS实现。Cyclone DDS支持多种平台和编程语言,并提供了一些高级功能,如分布式安全和QoS配置。
RTI Connext DDS:该实现由Real-Time Innovations公司开发,是一个商业级别的DDS实现。RTI Connext DDS提供了广泛的功能和工具,如实时监测、故障诊断和网络优化等。
😊2. ros2安装
Ubuntu 18.04可以安装ROS 2 Dashing Diademata
和ROS 2 Eloquent Elusor
版本。建议使用Eloquent
版本,因为它是最新的长期支持版本,并提供了更多的功能和改进。
小鱼的安装命令:wget http://fishros.com/install -O fishros && . fishros
根据需求选择对应的ros2版本即可。
😆3. ros2基础使用
示例测试:
# 发布订阅
ros2 run demo_nodes_cpp listener
ros2 run demo_nodes_cpp talker
# 小乌龟
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
# CLI
ros2 pkg list
ros2 node list
ros2 node info <node_name>
ros2 pkg create <package-name> --build-type {cmake,ament_cmake,ament_python} --dependencies <依赖名字> # 创建功能包
ros2 bag record /topic_name
rviz2
gazebo
代码模板:https://github.com/mikeferguson/ros2_cookbook
国内参考:https://fishros.com/d2lros2foxy/#/codebook/README
安装colcon编译工具并测试案例:
# 安装编译工具
sudo apt-get install python3-colcon-common-extensions
# 下载源码
mkdir colcon_test && cd colcon_test
git clone https://ghproxy.com/https://github.com/ros2/examples src/examples -b eloquent
colcon build
# 运行自己编译的节点
source install/setup.bash
ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
source install/setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
运行如下:
以上。