使用gazebo在ROS中仿真

@TOC参考链接

一、准备
本文是基于《Learning_ROS_for_Robotics_Programming_2nd_edition》中chapter7_tutorials功能包学习gazebo仿真,因此需要首先下载代码包到已经建立的ROS工作空间ros_ws/src文件夹下

二、在gazebo中添加机器人模型

$ cd chapter7_tutorials/robot1_description/urdf
$ check_urdf robot1.urdf   		#检查urdf语法

在这里插入图片描述

$ urdf_to_graphiz robot1.urdf 

在这里插入图片描述

$ evince origins.pdf 

在这里插入图片描述
在gazebo中使用urdf模型:
重新打开一个终端窗口,启动ros

$ roscore

打开一个新的终端窗口,运行launch文件,model指向display.launch文件路径,可将文件直接拖入终端,即可自动显示文件路径

$  roslaunch robot1_description display.launch model:="../ros_ws/src/learning_gazebo/chapter7_tutorials/robot1_description/urdf/robot1.urdf"

可以看到已经打开了rviz,但是场景中并没有任何东西
在这里插入图片描述
点击左下角Add按钮,在 by display type中添加RobotModel,点击OK;然后左上Fixed Frame中map改为base_link:
在这里插入图片描述
可以看到rviz中已经成功显示机器人模型
在这里插入图片描述
这里可能会报一个关于“joint_state_publisher”的错误,是因为没有joint_state_publisher包,重新打开一个终端下载:

$ sudo apt-get install ros-melodic-joint-state-publisher-gui

然后把launch文件中的“joint_state_publisher”全部改为“joint_state_publisher_gui”,如图:
在这里插入图片描述
重新运行display.launch文件,可以看到rviz打开了一个“joint_state_publisher_gui"小插件:
在这里插入图片描述
滑动“joint_state_publisher_gui”插件上的滑动条可以控制机器人对应关节的旋转:
在这里插入图片描述

三、添加传感器

$ roslaunch robot1_gazebo gazebo.launch model:="../ros_ws/src/learning_gazebo/chapter7_tutorials/robot1_description/urdf/robot1_base_04.xacro"

在这里插入图片描述

$ rostopic list
$ rostopic echo /robot/laser/scan

在这里插入图片描述

$ rosrun image_view image_view image:=robot/camera1/image_raw

在这里插入图片描述
四、添加地图

$ roslaunch gazebo_ros willowgarage_world.launch 

gazebo显示一个空的办公室:
在这里插入图片描述
代码包中已经创建了加载机器人和地图的文件,运行launch文件:

$ roslaunch robot1_gazebo gazebo_wg.launch 

机器人已经出现在办公室场景中:
在这里插入图片描述
五、控制机器人移动

$ sudo apt-get install ros-melodic-teleop-twist-keyboard
$ rosstack profile
$ rospack profile
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

在这里插入图片描述
u-加速 j-左转 k-减速/停止 l-右转 i-前进 ,-后退
打开rviz

$ rviz

在rviz中订阅传感器topic即可看到模拟传感器发送的数据
在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值