ubuntu 怎么查看版本编号:

需要用到语句:

lsb_release -a

对应的 ROS2 版本也要确认:Ubuntu 22.04 对应 ROS 2 Humble,可以用 printenv ROS_DISTROros2 --version 检查。ROS2 每个发行版只支持特定 Ubuntu 版本,装错版本是新手最常见的安装失败原因。

参考资料:ROS 2 Humble 官方安装文档TurtleBot3 官方仿真教程

目前遇到了 ROS2 无法安装的问题

经过排查,发现是虚拟机没有连接网络的问题

检查过程:

1. 先通过 ping 语句,检查一下网络

比如说ping 8.8.8.8

linux 终端会返回

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=187 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=186 ms

初步说明网络出口没问题,接下来我们进行双边通信的验证

2. 之后 ping 一个网站,例如百度网站,看看会不会有信号的回传

u@u-virtual-machine:~$ ping baidu.com
PING baidu.com (111.63.65.247) 56(84) bytes of data.
64 bytes from 111.63.65.247 (111.63.65.247): icmp_seq=1 ttl=128 time=64.5 ms
64 bytes from 111.63.65.247 (111.63.65.247): icmp_seq=2 ttl=128 time=98.6 ms
64 bytes from 111.63.65.247 (111.63.65.247): icmp_seq=3 ttl=128 time=87.9 ms
64 bytes from 111.63.65.247 (111.63.65.247): icmp_seq=4 ttl=128 time=90.4 ms

也没有问题,说明网络方面的问题已经被排查完毕

export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models

安装 ROS2 Gazebo 集成包

# 安装完整的Gazebo ROS集成包
sudo apt update
sudo apt install ros-humble-gazebo-ros-pkgs
sudo apt install ros-humble-gazebo-plugins
# 重新安装turtlebot3仿真包
sudo apt install --reinstall ros-humble-turtlebot3-gazebo

说明:这里的 gazebo_ros_pkgs 对应的是 Gazebo Classic(Gazebo 11),也就是 ROS 2 Humble 时期 TurtleBot3 教程使用的仿真环境。当前官方推荐的现代仿真工具是 Gazebo Sim(原 Ignition Gazebo),在 ROS 2 中通过 ros_gz 集成,两者不要混用。

参考资料:gazebo_ros_pkgs 官方文档ros_gz 官方文档


启动 Gazebo 仿真(服务端)

# 每个终端都需要先设置环境
source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models
# 启动Gazebo服务器(等待它完全启动)
gzserver --verbose

linux 终端返回

[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.159.128
[Msg] Loading world file [/usr/share/gazebo-11/worlds/empty.world]

启用 Gazebo 仿真(客户端)

gzclient

生成 TurtleBot3 机器人

# 生成TurtleBot3机器人
ros2 run gazebo_ros spawn_entity.py \
  -entity turtlebot3_waffle \
  -file /opt/ros/humble/share/turtlebot3_gazebo/models/turtlebot3_waffle/model.sdf \
  -x -2.0 -y -0.5 -z 0.01

以上的步骤,还未实现,总是卡在 Gazebo 服务端开始之后,调用 TurtleBot3 机器人,无法生成

后来排查发现,手工 gzserver + gzclient 的方式容易因为模型路径、环境变量不一致而卡住,官方教程更推荐直接用 ros2 launch 一条命令启动,可以自行对比

# 新开一个终端
source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models
# 启动Gazebo(包含图形界面)
ros2 launch turtlebot3_gazebo empty_world.launch.py

这个可以加载空的地图,就是只有一个机器人的地图,如果你想要加载带地图边缘的,可以使用语句

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

键盘控制

# 键盘控制
ros2 run turtlebot3_teleop teleop_keyboard
更新于 阅读次数 0

请我喝[茶]~( ̄▽ ̄)~*

bangdexuanyuan 微信支付

微信支付