一、Gazebo仿真软件是一个能够在三维环境中对机器人的运动功能和传感器数据等一系列功能进行仿真的软件,它提供了高保真度的物理引擎,能够准确高效地模拟机器人在复杂工况下的运行。Gazebo仿真软件通常和ROS共同使用,在ROS中就集成了此软件,因此当安装Full版本的ROS时,Gazebo仿真软件也会被同步安装。
wpr_simulation 是一个用于机器人仿真的软件包,通常用于 轮式机器人(Wheeled Robot) 的导航、SLAM 和运动控制仿真。该工具包由北京六部工坊维护并开源,兼容ROS 1(如Noetic)和ROS 2(如Humble/Foxy)版本,提供 Gazebo 仿真环境与 ROS 导航栈集成。
多模态仿真能力。
导航与SLAM:支持 Gmapping、Hector SLAM 等算法,适用于自主导航测试。
传感器模拟:集成激光雷达(LiDAR)数据生成与避障逻辑,可验证传感器算法。
交互控制:通过键盘指令或ROS节点实现机器人运动控制。
(1)下载源码。
cd ~/catkin_ws/src
git clone https://github.com/6-robot/wpr_simulation.git
(2)安装所需依赖项。
~/catkin_ws/src/wpr_simulation/scripts/install_for_noetic.sh
(3)进行编译。
cd ~/catkin_ws
catkin_make
通过开源项目“wpr_simulation”中的一个简单仿真场景介绍,在终端中运行如下启动指令。
roslaunch wpr_simulation wpb_simple.launch
运行启动指令会启动Gazebo仿真软件,界面可以大致分为场景、面板和工具栏三个区域
二、Rviz(Robot Visualization)是ROS中的三维可视化软件,它自身具有非常多的功能,可以订阅主题并将其可视化,还可以使用可拓展语言对机器人及周边一切物体进行描述。相对于Gazebo这个仿真软件,用Rviz创建一个虚拟的三维环境,就要利用已有数据,Rviz是数据的使用者,即将已有的数据可视化显示。
使用到一个名为“wpb_home”的开源项目,这里对其进行获取。
(1)在终端中输入如下指令。
cd ~/catkin_ws/src
git clone https://github.com/6-robot/wpb_home.git
获取“wpb_home”开源项目
首先在终端内启动Gazebo仿真环境。
roslaunch wpr_simulation wpb_simple.launch
然后打开一个新终端运行如下指令启动Rviz。
roslaunch wpr_simulation wpb_rviz.launch
该条指令运行后系统会打开Rviz
三、对机器人的速度控制是通过向机器人的核心节点发布速度消息——Twist消息来实现的,Twist消息的主题(Topic)是/cmd_vel,base controler订阅Twist消息来控制电机,进而控制机器人运动。这个消息的类型在ROS里已经有了定义,那就是geometry_msgs::Twist。
这个消息类型包含了两部分速度值,第一部分是linear,包含x、y、z三个值,分别表示指向机器人在前方、左方、垂直三个方向上均满足右手定则,具体表示平移速度,单位是“米/秒”。第二部分是angular,也包含了x、y、z三个值,表示机器人在水平前后轴向、水平左右轴向、竖直上下轴向三个轴向上的旋转速度值,旋转方向的定义遵循右手定则。
编写节点代码
首先,需要创建一个ROS源码包。在Ubuntu里打开一个终端程序,输入如下指令进入ROS工作空间
其次,输入如下指令创建ROS源码包。
catkin_create_pkg vel_pkg rospy geometry_msgs
最后,按下“Enter”键创建vel_pkg源码包,创建完成之后系统会提示ROS源码包创建成功,这时我们可以看到“catkin_ws/src”目录下出现了“vel_pkg”子目录。
catkin_create_pkg vel_pkg rospy geometry_msgs
选中“scripts”文件夹并对其右击,选择“新建文件”。将这个Python节点文件命名为“vel_ctrl_node.py”。
编写好后,添加执行权限:其默认不带有可执行属性,所以需要为其添加一个可执行属性才能让它运行起来。
cd ~/catkin_ws/src/vel_pkg/scripts/
再执行如下指令为代码文件添加可执行属性。
chmod +x vel_ctrl_node.py
编译软件包
现在节点文件可以运行了,但是这个软件包还没有加入ROS的包管理系统,无法通过ROS指令运行其中的节点,所以还需要对这个软件包进行编译。在终端程序中输入如下指令进入ROS工作空间。
cd ~/catkin_ws/
再执行如下指令对软件包进行编译。
catkin_make
编译完成,这时就可以测试此节点了。
启动仿真环境
启动开源项目“wpr_simulation”中的仿真场景,打开终端程序,输入如下指令。
roslaunch wpr_simulation wpb_simple.launch
接下来启动Rviz,打开一个新的终端程序,输入如下指令。
roslaunch wpr_simulation wpb_rviz.launch
来源: 部分来自网络