公司关于网站建设的通知优化关键词方法
一、创建机器人仿真模型
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 ),最后得到的一个结果