安装
sudo apt update
sudo apt install lsb-release
sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt-get update
sudo apt-get install gz-ionic
sudo apt update
sudo apt install gz-harmonic
sudo apt install ros-${ROS_DISTRO}-ros-gz
启动 gazebo
gz sim
也可以直接指定 sdf(指定场景)
gz sim sdf shapes.sdf
机器人仿真示例
ros2 launch ros_gz_sim_demos diff_drive.launch.py
# 然后使用ros2 topic list查看当前topic
ros2 topic list | grep cmd_vel
# 得到
#/model/vehicle_blue/cmd_vel
#/model/vehicle_green/cmd_vel
# 控制蓝色小车
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r \
cmd_vel:=/model/vehicle_blue/cmd_vel
# 控制绿色小车
ros2 run teleop_twist_keyboard teleop_twist_keyborad --ros-args -r \
cmd_vel:=/model/vehicle_green/cmd_vel
传感器仿真实例
ros2 launch ros_gz_sim_demos rgbd_camera_bridge.launch.py
安装和测试 TurtleBot3
安装 TurtleBot3 相关包
sudo apt update
# TurtleBot3核心包
sudo apt install ros-jazzy-turtlebot3*
# 安装导航相关包
sudo apt install ros-jazzy-navigation2 ros-jazzy-nav2-bringup
# 安装SLAM相关包
sudo apt install ros-jazzy-slam-toolbox
# 安装Dynamixel SDK (TurtleBot3电机控制)
sudo apt install ros-jazzy-dynamixel-sdk
设置环境变量
设置 TurtleBot3 模型
# 设置TurtleBot3模型
echo 'export TURTLEBOT3_MODEL=waffle' >> ~/.bashrc
echo 'export ROS_DOMAIN_ID=30 #TURTULEBOT3' >> ~/.bashrc
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/jazzy/share/turtlebot3_gazebo/models' >> ~/.bashrc
source ~/.bashrc
echo $TURTLEBOT3_MODEL
可选的 TurtleBot3 模型:
- burger:最小型号
- waffle:标准型号
- waffle_pi:带激光雷达的型号
测试基础仿真
启动 Gazebo 仿真
# 启动
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
启动遥控节点
# 新开终端,启动键盘控制
ros2 run turtlebot3_teleop teleop_keyboard
SLAM 建图演示
启动 SLAM
# 启动Gazebo仿真
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
# 启动SLAM 启动Rviz可视化
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
# 键盘控制机器人移动
ros2 run turtlebot3_teleop teleop_keyboard
保存地图
ros2 run nav2_map_server map_saver_cli -f ~/my_map
导航演示
使用保存的地图进行导航
# 启动Gazebo仿真
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
# 启动导航
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True\
map:=$HOME/my_map.yaml
故障排除
检查安装状态
# 检查TurtleBot3包
ros2 pkg list | grep turtlebot3
# 检查环境变量
echo $TURTLEBOT3_MODEL
echo $GAZEBO_MODEL_PATH
# 检查话题
ros2 topic list
# 检查节点
ros2 node list
常见问题解决
Gazebo 启动失败
# 检查Gazebo版本
gazebo --version
# 重置Gazebo
killall gzserver gzclient
模型加载失败
# 手动设置模型路径
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/jazzy/share/turtlebot3_gazebo/models
# 或者重新安装模型
sudo apt reinstall ros-jazzy-turtlebot3-gazebo
找不到 launch 文件
# 查找launch文件位置
find /opt/ros/jazzy -name "*.launch.py" | grep turtlebot3
# 或者使用ros2命令查找
ros2 pkg prefix turtlebot3_gazebo
评论