3D SLAM Gazebo仿真

一、创建机器人仿真模型

1. 新建文件夹:thd_robot_description

# 功能包依赖urdf xacro
catkin_create_pkg thd_robot_description urdf xacro

打开上面的文件夹,新建文件夹【config、launch、meshes、rviz、urdf】

2.  创建启动文件 launch  :robot_urdf.launch

启动文件用于打开rviz 可视化界面,显示绘制的机器人模型。。

<launch>
  <param name="robot_description" textfile="$(find thd_robot_description)/urdf/neor_mini_gazebo_VLP16.urdf" />
  <arg name = "gui" value = "true" />
  
  <param name="use_gui" value="$(arg gui)"/>
  <node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
  
  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find thd_robot_description)/rviz/thd_gazebo_sensors_rviz_VLP16.rviz"  required="true"/>
</launch>


 

3. rviz 文件:thd_gazebo_sensors_rviz_VLP16.rviz

4.  建立小车模型: neor_mini_gazebo_VLP16.urdf

在这个文件里面需要修改自己的文件名字和路径,还有需要  官方写的velodyne_simulator仿真的文件。

5. 效果展示

到现在这一步 就可以运行查看小车的效果,展示:

roslaunch thd_robot_description robot_urdf.launch

二、创建Gazebo 仿真环境

1. 新建文件夹:thd_robot_gazebo

catkin_create_pkg thd_robot_gazebo

打开上面的文件夹,新建文件夹【launch 、worlds】

2.  创建启动仿真环境的 launch 文件 :thd_gazebo.launch 

<launch>

    <!-- 设置launch文件的参数 -->
    <arg name="world_name" value="$(find thd_robot_gazebo)/worlds/iscas_museum.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>

    <!-- 加载机器人模型描述参数 -->
    <!-- Load the robot description -->
    <param name="robot_description" command="cat $(find thd_robot_description)/urdf/neor_mini_gazebo_VLP16.urdf"/>

    <!-- 运行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>

 引入一个自己创建的world

引入一个空 world

加载机器人的仿真模型 urdf 文件

3.  创建仿真环境world :

 4. 加载仿真环境

roslaunch thd_robot_gazebo thd_gazebo.launch

5. 加载键盘控制节点

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Waiting for subscriber to connect to /cmd_vel

查看rostopic list  发现没有 /cmd_vel

解决办法,校对joint_name的关节名是否一致,,要在urdf 中添加cmd_vel  




自己尝试这个方法还是不太行, 会的东西太少了,还是直接上别人的代码吧

新建一个catkin_thd 工作空间 ,,把 neor_mini  代码拷贝到src 文件夹下面。

参考ReadMe.pdf 文件内容运行代码即可得到对应的结果

下面是运行的lio-sam 建图的结果

 

 录制数据包(rosbag record -a ),最后得到的一个结果

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值