(ROS)差分轮式机械臂机器人(一)模型搭建

模型搭建

源码地址

https://gitee.com/HOY_Z/ros_-visual-nav_-arm

ROS版本:noetic

文件结构

vn_robot_description
<<< config
<<< launch
<<< urdf
------<<<gazebo
-----------<<< worlds
-----------<<< sensors
<<< meshes

创建功能包

  • 依赖于xacro urdf
  • 建立四个文件夹
    • config:放置rviz中的配置文件
    • launch
    • urdf:存放描述模型的文件
    • meshes

编写模型描述文件.xacro

基本语法

* a 属性和算术运算(用于封装 URDF 中的一些字段,比如: PAI 值,小车的尺寸,轮子半径 ....)

在这里插入图片描述

* b 宏(类似于函数实现,提高代码复用率,优化代码结构,提高安全性)

在这里插入图片描述 * c 文件包含(机器人由多部件组成,不同部件可能封装为单独的 xacro 文件,最后再将不同的文件集成,组合为完整机器人,可以使用文件包含实现)
在这里插入图片描述## rviz配置
在这里插入图片描述

描述文件为

gazebo/arm_gazebo.xacro  #机械臂描述文件
gazebo/vnbot_base_gazebo.xacro  #底盘描述文件
gazebo/vnbot_gazebo.xacro	#机器人描述文件

显示机器人模型

  • 左下角Add —> 选择RobotModel
  • 隐藏显示可以点击Visual Enable

显示坐标系

  • 左下角Add --> 选择TF
  • 坐标系的大小可以通过 Marker Scale配置

保存配置

左上角File --> Save Config As --> 保存到config文件夹下xxx.rviz

每次打开rviz并加载上次保存

  • launch文件中写入
 <!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find vn_robot_description)/config/vnbot.rviz" required="true" />

launch文件

urdf

文件为launch/display_vnbot_gazebo.launch

<launch>
	<arg name="model" default="$(find xacro)/xacro '$(find vn_robot_description)/urdf/xacro/gazebo/vnbot_gazebo.xacro'" />
	<arg name="gui" default="true" />

	<param name="robot_description" command="$(arg model)" />

    <!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="$(arg gui)"/>

    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<!-- <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> -->
	<node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" output="screen" />
	
	<!-- 运行robot_state_publisher节点,发布tf  -->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
	
    <!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find vn_robot_description)/config/vnbot.rviz" required="true" />

</launch>

gazebo

文件为 launch/display_vnbot_rviz.launch
<launch>

    <!-- 设置launch文件的参数 -->
    <arg name="world_name" value="$(find vn_robot_description)/urdf/xacro/gazebo/worlds/room.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  '$(find vn_robot_description)/urdf/xacro/gazebo/vnbot_gazebo.xacro'" /> 

    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
    <node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" output="screen" />

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

gazebo创建地图

直接添加模型

在这里插入图片描述

使用editor

在这里插入图片描述#### 打开gazebo的同时加载world

  • 建立完模型后File --> Save World As --> xxx.world
  • 在这里插入图片描述

最后效果

在这里插入图片描述

下一节 六轴机械臂Moveit配置&深度相机kinect配置

`

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值