二、ROS2基本操作

ROS2节点

ROS2的节点讲究分工合作,每个节点负责一个单独的模块化功能。
举一个激光雷达的例子,一个节点负责获取激光雷达的扫描数据,一个节点负责处理激光雷达数据,还有一个节点负责控制车轮转动,一个节点负责定位等等。如何实现这么多节点的通信呢?
实际上,ROS2早已为你准备好四种通信方式:
1、话题-topics
2、服务-servicces
3、动作-Action
4、参数-parameters

ROS2节点基本操作

启动节点的指令 ros2 run <package_name> <executable_name>
其意义为启动包下的中的节点,据个例子 ros2 run turtlesim turtlesim_node,这就是启动乌龟模拟器的那条指令。
查看节点列表

ros2 node list

查看节点信息

ros2 node info <node_name>

重新映射节点名称(给节点换一个名字,因为不能同时运行两个同名的节点,所以需要用到换名,例如下面这行代码就是把turtlesim换名字为my_turtle)

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

ROS2工作空间与功能包

一个工作空间下可以有多个功能包,一个功能包可以有多个节点存在。
可以浅显的理解为一个文件夹,该文件夹下有src以及若干个功能包,所以一般新建一个工作空间的操作如下:

mkdir -p turtle_ws/src

再切换到工作空间

cd turtle_ws/src

而功能包可以理解为存放节点的地方,ROS2的功能包根据编译方式不同可以分为三种类型
1、ament_python,适用于python程序
2、cmake,适用于C++
3、ament_cmake,适用于C++程序,是cmake的增强版

安装获取功能包指令

sudo apt install ros-<version>-package_name
例如 sudo apt install ros-galactic-turtlesim

创建功能包

ros2 pkg create <package-name> --build-type {cmake,ament_cmake,ament_python} --dependencies<依赖名字>

列出可执行文件

ros2 pkg executables

列出某个功能包的可执行文件

ros2 pkg executables turtlesim

列出所有包

ros2 pkg list

输出某个包所在路径的前缀

ros2 pkg prefix <package-name>
例如找出乌龟模拟器的前缀 ros2 pkg prefix turtlesim

列出功能包的清单描述文件

ros2 pkg xml turtlesim

ROS2构建工具Colcon

colcon是一个功能包构建工具,就是用来编译代码的。
ROS2默认没有安装colcon,需要手动安装,安装指令如下:

sudo apt-get install python3-colcon-common-extensions

输入colcon指令,如果弹出usage提示则证明安装成功
下面开始实际动手编一个东西测试一下
1、创建一个工作区colcon_test

mkdir colcon_test && cd colcon_test

2、下载一个ROS2示例源码测试一下
需注意的是,-b后面对应的是你使用的ROS2版本,这里我使用的是galactic

git clone https://github.com/ros2/examples src/examples -b galactic

3、编译工程

colcon build

以上三步完成后,可以运行一个自己编的节点了,方法如下:
1、打开终端进入到我们刚才创建的工作空间里面,先source一下资源

source install/setup.bash

2、运行一个订阅节点,用以接受其他发布者的消息

ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function

3、ctrl+alt+T再打开一个新的终端,先source,再运行一个发布者节点,就可以在刚才运行的订阅节点收到消息啦

source install/setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
ROS 2启动 WPR Simulation(Webots Robot Programming Contest - Webots机器人仿真环境),通常涉及以下几个步骤。请注意,WPR Simulation 取决于是否已正确安装并配置了 Webots 和相关的 ROS 2 插件。 --- ### 步骤 1:检查依赖项 首先确认您的系统已经成功安装了以下组件: - **ROS 2 分发版** (如 Foxy、Humble 或 Iron) - **Cyberbotics Webots** (推荐使用官方最新稳定版本) 可以通过终端命令验证它们的存在与否及路径情况: ```bash webot --version # 查看 webots 安装状态 ros2 run demo_nodes_cpp talker # 验证 ros2 核心功能正常工作 ``` --- ### 步骤 2:克隆 wpr_simulation 资源库到本地 获取包含所有必要文件的资源库,并将其放置进您正在使用的 ROS 2 Workspace 内部。 ```bash git clone https://github.com/cyberbotics/wpr_simulations.git ~/ros2_ws/src/ ``` 然后更新索引并尝试编译整个工程。 ```bash cd ~/ros2_ws && colcon build --symlink-install source install/setup.bash # 添加新生成的内容至当前会话上下文中去应用修改后的设置值们 ``` --- ### 步骤 3:运行仿真实验 现在可以进入实际操作环节啦!打开两个单独的 shell 终端窗口分别执行如下指令开始交互体验吧! *Terminal A:* 初始化 Gazebo 或者其他的模拟器服务节点实例化过程... 这里我们直接调用预先打包好的 launch script 即可满足需求。 ```bash ros2 launch wpr_simulation bringup.launch.py gui:=true world_file:=<指定的地图>.wbt ``` *Terminal B:* 在这里你可以测试发布消息给小车控制话题从而观察反馈效果怎样等等哦~ 比如发送简单的 Twist 类型运动数据过去看看反应咯: ```python from geometry_msgs.msg import Twist def move_forward(): cmd_vel_pub = Node('cmd_publisher') msg = Twist() while True: msg.linear.x = 0.5 pub.publish(msg) # Assuming 'pub' is properly defined as publisher instance move_forward() # Keep robot moving straight ahead indefinitely. ``` 以上就是关于如何通过 ROS 2 启动 WPR Simulation 的简要指导信息总结分享啦~ ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值