为了后续能够完整的加载我们gazebo创建的仿真模型,我们最好将gazebo的模型下载到本地,不要通过网络进行模型创建,因为访问的是国外网站,所以速度很慢的!
1)、进入gazebo隐藏文件夹
cd ~/.gazebo/
2)、在该文件目录下创建我们的models文件夹
mkdir -p models
3)、进入该文件夹
cd ~/.gazebo/models/
4)、进行模型文件的下载
wget http://file.ncnynl.com/ros/gazebo_models.txt
wget -i gazebo_models.txt
5)、解压文件到我们的模型文件夹目录下
ls model.tar.g* | xargs -n1 tar xzvf
以上就是对我们模型进行下载的整个过程,温馨提示,该过程真的很慢,慢慢等待吧,才100多M而已,就是网速很慢,因为访问的国外的网站
如果有需要的,可以私信林君学长,我的下载好了的,可以发给你们的哦!资源过大,博客上我上传不了资源,我只有200M的上传权限啦!
注意:该步骤只需要ubuntu16.04版本的小伙伴进行参与,ubuntu18版本的不用进行该步骤,因为不会出现不兼容的情况!
之所以升级我们的gazebo版本,是因为ubuntu16.01自动安装ROS的时候自动下载的gazebo7.0.0版本的,这会导致后面我们做摄像头传感器的时候回出现错误,当我们运行摄像头传感器然后进入RVIZ配置image显示的时候,会出现如下错误:
查阅了很多资料,都没有结果,最后在升级之后,发现可以很好的解决这个问题!当然,这只针对ubuntu16.04版本的用户哦,ubuntu18版本的ROS版本和16的不一样,可以完美进行接下来的操作!
1)、安装aptitude下载器,该下载器的功能强大,推荐使用该下载器,而不用apt-get
sudo apt-get install aptitude
2)、进行gazebo版本的升级
sudo aptitude install gazebo7
同样的,该过程有点长,大概50几M,等待一下吧,如下所示会升级到7.16版本:
以上就是搭建模拟环境前的准备步骤啦,现在我们进入到gazeno环境模型的搭建
cd ~/ros/src/mbot_gazebo/
mkdir -p worlds
cd worlds
1)、文件创建
touch playground.world
2)、打开文件,并写入如下代码:
gedit playground.world
代码内容过于长,这里不方便展示,大家可以去我上次的ROS学习博客下载我们所需要的gazebo工程包,那里面有我们需要的文件,拷贝过去就行:如下所示:
部分内容如下所示:
1)、文件创建
touch room.world
2)、打开文件,并写入如下代码:
gedit room.world
同样的,代码内容过于长,大家可以去我上次的ROS学习博客下载我们所需要的gazebo工程包,进行拷贝,如下所示:
部分内容如下所示:
1)、进入工程包mbot_gazebo目录下的launch文件夹
cd ~/ros/src/mbot_gazebo/launch
2)、创建传感器camera的launch文件
touch view_mbot_with_camera_gazebo.launch
3)、打开该文件
gedit view_mbot_with_camera_gazebo.launch
4)、写入传感器camera的模型配置语句
<launch>
<!-- 设置launch文件的参数 -->
<arg name="world_name" value="$(find mbot_gazebo)/worlds/playground.world"/>
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<!-- 运行gazebo仿真环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(arg world_name)" />
<arg name="debug" value="$(arg debug)" />
<arg name="gui" value="$(arg gui)" />
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="headless" value="$(arg headless)"/>
</include>
<!-- 加载机器人模型描述参数 -->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/gazebo/mbot_with_camera_gazebo.xacro'" />
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
<!-- 运行robot_state_publisher节点,发布tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" >
<param name="publish_frequency" type="double" value="50.0" />
</node>
<!-- 在gazebo中加载机器人模型-->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
args="-urdf -model mrobot -param robot_description"/>
</launch>
1)、进入ROS工作空间
cd ~/ros
2)、运行camera进行仿真
roslaunch mbot_gazebo view_mbot_with_camera_gazebo.launch
1)、新建终端,进入ROS工作空间
cd ros
2)、运行Rviz
rosrun rviz rviz
3)、点击add->By display type->image->OK
4)、配置image相关参数
如图配置就好:
下拉选择该名称
image配置如下所示:
5)、显示结果如下所示:
1)、进入工程包mbot_gazebo目录下的launch文件夹
cd ~/ros/src/mbot_gazebo/launch
2)、创建传感器kinect的launch文件
touch view_mbot_with_kinect_gazebo.launch
3)、打开该文件
gedit view_mbot_with_kinect_gazebo.launch
4)、写入传感器kinect的模型配置语句
<launch>
<!-- 设置launch文件的参数 -->
<arg name="world_name" value="$(find mbot_gazebo)/worlds/playground.world"/>
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<!-- 运行gazebo仿真环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(arg world_name)" />
<arg name="debug" value="$(arg debug)" />
<arg name="gui" value="$(arg gui)" />
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="headless" value="$(arg headless)"/>
</include>
<!-- 加载机器人模型描述参数 -->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/gazebo/mbot_with_kinect_gazebo.xacro'" />
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
<!-- 运行robot_state_publisher节点,发布tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" >
<param name="publish_frequency" type="double" value="50.0" />
</node>
<!-- 在gazebo中加载机器人模型-->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
args="-urdf -model mrobot -param robot_description"/>
</launch>
1)、进入ROS工作空间
cd ~/ros
2)、运行kinect进行仿真
roslaunch mbot_gazebo view_mbot_with_kinect_gazebo.launch
1)、新建终端,进入ROS工作空间
cd ros
2)、运行Rviz
rosrun rviz rviz
3)、点击add->By display type->image->OK
4)、配置image相关参数
如图配置就好:
下拉选择该名称
image配置如下所示,下拉选择该处:
5)、显示结果如下所示:
1)、进入工程包mbot_gazebo目录下的launch文件夹
cd ~/ros/src/mbot_gazebo/launch
2)、创建传感器Lidar的launch文件
touch view_mbot_with_laser_gazebo.launch
3)、打开该文件
gedit view_mbot_with_laser_gazebo.launch
4)、写入传感器laser的模型配置语句
<launch>
<!-- 设置launch文件的参数 -->
<arg name="world_name" value="$(find mbot_gazebo)/worlds/playground.world"/>
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<!-- 运行gazebo仿真环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(arg world_name)" />
<arg name="debug" value="$(arg debug)" />
<arg name="gui" value="$(arg gui)" />
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="headless" value="$(arg headless)"/>
</include>
<!-- 加载机器人模型描述参数 -->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/gazebo/mbot_with_laser_gazebo.xacro'" />
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
<!-- 运行robot_state_publisher节点,发布tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" >
<param name="publish_frequency" type="double" value="50.0" />
</node>
<!-- 在gazebo中加载机器人模型-->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
args="-urdf -model mrobot -param robot_description"/>
</launch>
1)、进入ROS工作空间
cd ~/ros
2)、运行Lidar进行仿真
roslaunch mbot_gazebo view_mbot_with_laser_gazebo.launch
1)、新建终端,进入ROS工作空间
cd ros
2)、运行Rviz
rosrun rviz rviz
3)、点击add->By display type->image->OK
4)、配置LaserScan的相关参数
如图配置就好:
下拉选择odom:
LaserScan配置如下所示,下拉选择该处:
5)、显示结果如下所示:
以上就是本次博客的全部内容啦,希望通过对本次博客的阅读,可以帮助小伙伴更好的学习ROS中的机器人仿真哦!遇到问题的小伙伴,欢迎评论区留言,林君学长看到会给大家解答的,这个学长不太冷!
陈一月的又一天编程岁月^ _ ^