@@ -35,13 +35,19 @@ description: 通过ROS2官方提供的Gazebo虚拟仿真,实现视觉运动算
3535::: warning
3636虚拟仿真需要一定的算力。本地使用前,首先确保你的电脑包含显卡。
3737
38+ - ✔推荐使用原生Ubuntu最大限度发挥硬件性能。非原生环境下可能出现消息异常、时间异常等问题。
39+
3840- 高算力的电脑可以使用wsl安装Ubuntu。
3941
4042- ❌使用VM虚拟机会产生较大的延迟。
43+ :::
44+
45+ ::: info
46+ 用机器学习中的概念来类比,Gazebo好比是Pytorch,ROS2好比是Python。
4147
42- - ✔普通电脑可以使用原生Ubuntu最大限度发挥硬件性能 。
48+ 你希望使用Pytorch开始深度学习,所以要查看最新版Pytorch适配的Python版本(3.10+),需要英伟达显卡才能加速,再查看Python支持的操作系统(Mac、Linux、Windows) 。
4349
44- - ❌非原生环境下可能出现消息异常、时间异常等问题 。
50+ 搞清楚之后,再从系统开始,安装Python,最后Pytorch和显卡驱动安装成功。谋定而后动 。
4551:::
4652
4753## ROS2框架
@@ -577,15 +583,15 @@ ros2 launch ros_gz_sim gz_sim.launch.py gz_args:=empty.sdf
577583
578584[ gazebosim] ( https://app.gazebosim.org/fuel/models ) 有大量下载好的模型(models)与场景(worlds)可以使用。
579585
580- 想简单点就选一个自带摄像头的机器人模型,如果有中意的机器人模型没摄像头的,可以自己加一个摄像头。
586+ 想简单点就选一个自带摄像头的机器人模型(model) ,如果有中意的机器人模型没摄像头的,可以自己加一个摄像头。
581587
582- 场景选赛道类的 ,有明显的车道线,可以较好的测试算法。如果场景过于简单可以适当的添加一些模型,例如:路灯、树木、箱子等。
588+ 场景(world)选赛道类的 ,有明显的车道线,可以较好的测试算法。如果场景过于简单可以适当的添加一些模型,例如:路灯、树木、箱子等。
583589
584590### URDF
585591
586592URDF(Unified Robot Description Format)是一种用于描述机器人模型的XML格式。
587593
588- 一个带摄像头的2轮机器人模型示例,推荐使用4轮具有自稳定性 :
594+ 一个带摄像头的2轮机器人模型示例,推荐 [ 系统的学习world的搭建 ] ( https://gazebosim.org/docs/latest/sdf_worlds/ ) :
589595
590596``` xml showLineNumbers title="my_robot.sdf"
591597<?xml version =" 1.0" ?>
@@ -867,12 +873,25 @@ gz sim -r my_robot.sdf
867873
868874数据流向:ROS消息` sensor_msgs/Image ` → cv_bridge → numpy数组 → cv2处理为控制结果 → 发布` geometry_msgs/Twist ` → Gazebo
869875
876+ #### 启动图像
877+
870878``` bash
871- ros2 run ros_gz_bridge parameter_bridge \
872- ' /camera1/image@sensor_msgs/msg/Image[gz.msgs.Image' \
873- ' /model/my_robot/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist'
879+ ros2 run ros_gz_bridge parameter_bridge /camera1@sensor_msgs/msg/
[email protected] 874880```
881+ 启动后可以通过` rviz2 ` 查看接收到的图片。
882+
883+ #### 速度指令
875884
885+ ``` bash
886+ # 速度
887+ ros2 run ros_gz_bridge parameter_bridge /model/my_robot/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist
888+
889+ # 发布一次前进指令
890+ ros2 topic pub -1 /model/my_robot/cmd_vel geometry_msgs/msg/Twist ' {linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
891+ # 发布一次停止指令
892+ ros2 topic pub -1 /model/my_robot/cmd_vel geometry_msgs/msg/Twist ' {linear: {x: 0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
893+
894+ ```
876895
877896### 调试命令
878897
@@ -884,12 +903,6 @@ ros2 topic list
884903ros2 topic echo /camera1/image
885904# 查看速度控制话题
886905ros2 topic echo /model/my_robot/cmd_vel
887-
888- # 手动发送前进控制指令测试
889- ros2 topic pub /model/my_robot/cmd_vel geometry_msgs/Twist " linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}"
890-
891- # 手动发送停止控制指令测试
892- ros2 topic pub /model/my_robot/cmd_vel geometry_msgs/Twist " linear: {x: 0.2, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}"
893906```
894907
895908
0 commit comments