ROS2机器人和Gazebo 9仿真实践


很久没有更新博客,学习任务比较繁重,时间过得很快,怎样每日一更,可是现在太忙了,借着交作业的机会,顺便更新一遍实践博客,具体原理有机会深究…

本博客参考张老师教程,博主为张博公选课学生,根据张博教程自主搭建机器人并仿真!

对原理理解并不深刻,如需学习只是还请参考张博的博客!

参考博客:

  • 使用机器人操作系统ROS 2和仿真软件Gazebo 9搭建机器人教程(一)
  • mobot_room.world-ROS2Gazebo9附1
  • mobot模型-ROS2Gazebo9附2
  • CMakeLists部分-ROS2Gazebo9附3
  • world.launch.py部分-ROS2Gazebo9附4

仿真视频展示

<iframex id="yV1yTV0w-1591019981390" frameborder="0" src="undefined" allowfullscreen="true" data-mediaembed="undefined"></iframex>

undefined

ROS环境配置

  • barch文件
    在这里插入图片描述
  • 环境选择
    在这里插入图片描述
  • 手动设置环境变量
1
2
3
alvin@ros:~$ source /opt/ros/dashing/setup.bash
alvin@ros:~$ echo $ROS_DISTRO
dashing

ROS环境搭建教程:Ubuntu18.04 安装ROS Melodic && Ros2 Dashing踩坑笔记

创建工作区

1
2
mkdir -p mobot/src
cd mobot/src/
  • 创建mobot包
1
ros2 pkg create --build-type ament_cmake mobot

室内环境 world

1
2
3
4
alvin@ros:~/mobot/src/mobot$ mkdir worlds
alvin@ros:~/mobot/src/mobot$ cd worlds/
alvin@ros:~/mobot/src/mobot/worlds$ touch mobot_room.world  
alvin@ros:~/mobot/src/mobot/worlds$ gedit mobot_room.world

打开后输入内容:

mobot_room.world-ROS2Gazebo9附1

搭建机器人

  • 安装相关的ROS2软件包:
1
sudo apt install ros-dashing-gazebo-*

在这里插入图片描述
可以通过运行以下命令进行检查:

1
ros2 pkg list

在这里插入图片描述

  • gazebo插件
1
2
3
4
5
$ cd ~/mobot/src/mobot
$ mkdir urdf
$ cd urdf
$ touch  mobot.gazebo
$ gedit mobot.gazebo

打开后输入内容:

mobot模型-ROS2Gazebo9附2(mobot.gazebo部分)

1
2
3
$ cd urdf
$ touch mobot.urdf.xacro
$ gedit mobot.urdf.xacro

打开后输入内容:

mobot模型-ROS2Gazebo9附2(mobot.urdf.xacro部分)

编写CMakeLists文件

1
2
3
$ source /opt/ros/dashing/setup.bash
$ cd ~/mobot
$ colcon build
1
2
alvin@ros:~$ cd mobot/src/mobot/
alvin@ros:~/mobot/src/mobot$ gedit CMakeLists.txt

打开后输入内容:

CMakeLists部分-ROS2Gazebo9附3

编译代码

在这里插入图片描述

-此时,在urdf文件夹下会生成 mobot.urdf
在这里插入图片描述

编写启动文件

1
2
3
4
5
$ cd mobot/src/mobot
$ mkdir launch
$ cd launch
$ touch world.launch.py
$ gedit world.launch.py

打开后输入内容:

world.launch.py部分-ROS2Gazebo9附4

整个项目的工作目录

在这里插入图片描述

启动仿真

1
2
$ source install/setup.bash
$ ros2 launch mobot world.launch.py

在这里插入图片描述
在这里插入图片描述

控制机器人运动

重新打开一个终端:

1
2
alvin@ros:~/mobot$ source /opt/ros/dashing/setup.bash
alvin@ros:~/mobot$ ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r __ns:=/mobot

在这里插入图片描述在这里插入图片描述