二维移动机器人仿真器STDR

234 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

STDR是Simple Two Dimentional Robot Simulator的缩写,它可以非常容易的对在二维平面移动的机器人进行仿真,STDR的设计目的不是为了像Gazebo那样的大型逼真的机器人仿真或者一个功能最全面、功能强大的仿真器,这款软件的目的是为了尽可能的简单的去模拟单个移动机器人的运动或者多个机器人的协同仿真。

STDR可以完美的与ROS兼容配套,机器人上的传感器数据都是通过ros话题的形式发布。跟ROS运行一样,STDR的运行也可以将图形用户接口和服务器分开在不同的电脑上运行,而且STDR也可以和Rviz一起工作,在Rviz中将STDR中的机器人数据可视化显示。

实验仿真环境:

  • ubuntu18.04
  • ROS-melodic

搭建仿真系统

创建一个catkin_ws/src,然后...

git clone https://gitee.com/zhankun3280/stdr_simulator
cd ..
catkin_make
​
source devel/setup.bash
# GUI界面  
roslaunch stdr_launchers server_with_map_and_gui_plus_robot.launch 
# RIVZ界面  
roslaunch stdr_launchers rviz.launch

此时,可以看到仿真界面。

启动后在地图的左下角会自动的生成一个机器人,其中红色的线是雷达的扫描输出,绿色的部分是超声波的输出。

如果使用键盘控制Robot的运动,这可以使用下面命令:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py /cmd_vel:=/robot0/cmd_vel

在控制机器人移动我们可以直接往控制其移动的/robot0/cmd_vel话题中发送消息即可,或者也可以使用teleop_twist_keyboard软件包来键盘遥控仿真机器人四处移动,这种控制方式跟我们在现实中控制真实的小车是一样的,这样就起到了仿真的作用,首先来使用向话题中直接的发布消息控制仿真机器人移动:

rostopic pub -r 2 /robot0/cmd_vel geometry_msgs/Twist '{linear: {x: 0, y: 0, z: 0}, angular: {x: 0, y: 0, z: -0.5}}'

超声波避障应用案例: [[基于STDR的ROS小车超声波避障策略仿真实验]]

参考链接: [1] 在ROS-melodic中安装stdr-simulator
[2] 1.初识简单的二维移动机器人群仿真器STDR
[3] 2.使用STDR进行ROS小车超声波避障策略仿真实验