【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践

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

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

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

参考博客:

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

仿真视频展示

ROS2机器人和Gazebo 9仿真实践

ROS环境配置

  • barch文件
    【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第1张图片
  • 环境选择
    在这里插入图片描述
  • 手动设置环境变量
alvin@ros:~$ source /opt/ros/dashing/setup.bash
alvin@ros:~$ echo $ROS_DISTRO
dashing

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

Gazebo 9仿真

创建工作区

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

室内环境 world

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软件包:
sudo apt install ros-dashing-gazebo-*

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第2张图片
可以通过运行以下命令进行检查:

ros2 pkg list

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第3张图片

  • gazebo插件
$ cd ~/mobot/src/mobot
$ mkdir urdf
$ cd urdf
$ touch  mobot.gazebo
$ gedit mobot.gazebo

打开后输入内容:

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

$ cd urdf
$ touch mobot.urdf.xacro
$ gedit mobot.urdf.xacro

打开后输入内容:

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

编写CMakeLists文件

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

打开后输入内容:

CMakeLists部分-ROS2Gazebo9附3

编译代码

在这里插入图片描述

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

编写启动文件

$ cd mobot/src/mobot
$ mkdir launch
$ cd launch
$ touch world.launch.py
$ gedit world.launch.py

打开后输入内容:

world.launch.py部分-ROS2Gazebo9附4

整个项目的工作目录

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第4张图片

启动仿真

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

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第5张图片

控制机器人运动

重新打开一个终端:

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

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第6张图片

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第7张图片

RViz三维可视化工具

 Rviz2三维可视化工具,主要用于数据可视化,不同于Gazebo三维机器人仿真工具。

  • 订阅主题并可视化消息内容;
  • 不同摄像头图像查看;
  • 用于发布用户信息的交互工具
  • 保存或加载Rviz配置文件;
  • 使用插件扩展功能;

运行指令

rviz2

背景

重新打开一个终端查看项目的所有话题:
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第8张图片

打印激光扫描仪数据:
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第9张图片
打印图像数据:
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第10张图片
很明显,这样的数据诗人头大,可视化并不强
因此我们用到一个可视化的工具:RViz
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第11张图片

界面概要

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第12张图片【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第13张图片

RViz的使用

【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第14张图片
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第15张图片
激光扫描仪的值显示的是error,报错信息是无法将家人的坐标转换到地图上来;
这时候我们需要调整它的固定坐标系
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第16张图片
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第17张图片
如图所示,激光传感器的数据就可以通过可视化的方式显示出来
我们在gazebo仿真环境里面加入一个额外的物体,RViz下的激光传感器的可视化图像是否会有改变呢?但暗示肯定的!
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第18张图片
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第19张图片
很明显,物块被激光扫描仪扫描出了起轮廓信息,但怎么确认一下呢?毕竟眼见为实!!!
我们可以将摄像头的图像信息传进来
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第20张图片
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第21张图片
同时选取不同轴,扫描出来会有不同的颜色:
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第22张图片
【Addicted TO ROS】ROS2机器人和Gazebo 9仿真、RViz三维可视化工具实践_第23张图片

你可能感兴趣的:(ROS,notes)