#创建虚拟机器人URDF模型

题外话:作业发布已有一两天了,之所以今天才编辑这篇博客,是因为我也遇到问题了,现在以及解决了。(小细节:创建功能包之前先编译工作空间确保里面已有的功能包没有错误!)

1、创建新的功能包

lzw08@ubuntu:~$ cd ros_ws/src
lzw08@ubuntu:~/ros_ws/src$ catkin_create_pkg xqrobot_description urdf xacro

首先进入到工作空间内的src目录下,然后创建一个名为xqrobot_description的功能包,urdf和xacro是这个功能包的依赖项。

2、进入功能包创建几个文件目录

lzw08@ubuntu:~/ros_ws/src$ cd xqrobot_description/
lzw08@ubuntu:~/ros_ws/src/xqrobot_description$ mkdir urdf
lzw08@ubuntu:~/ros_ws/src/xqrobot_description$ mkdir meshes
lzw08@ubuntu:~/ros_ws/src/xqrobot_description$ mkdir launch
lzw08@ubuntu:~/ros_ws/src/xqrobot_description$ mkdir config


这几个目录的作用分别是:

urdf:⽤于存放机器⼈模型的 URDF 或 xacro ⽂件。
meshes:⽤于放置 URDF 中引⽤的模型渲染⽂件。
launch:⽤于保存相关启动⽂件。
config:⽤于保存 rviz 的配置⽂件。

3、进入urdf目录创建.urdf文件

lzw08@ubuntu:~/ros_ws/src/xqrobot_description$ cd urdf/        
lzw08@ubuntu:~/ros_ws/src/xqrobot_description/urdf$ touch xqrobot_base.urdf
lzw08@ubuntu:~/ros_ws/src/xqrobot_description/urdf$ gedit xqrobot_base.urdf

粘贴以下代码:

<?xml version="1.0" ?>
<robot name="xqrobot"> <link name="base_link"> <visual> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <cylinder length="0.16" radius="0.20"/> </geometry> <material name="yellow"><color rgba="1 0.4 0 1"/></material></visual>
</link><joint name="left_wheel_joint" type="continuous"><origin xyz="0 0.19 -0.05" rpy="0 0 0"/><parent link="base_link"/><child link="left_wheel_link"/><axis xyz="0 1 0"/>
</joint><link name="left_wheel_link"><visual><origin xyz="0 0 0" rpy="1.5707 0 0" /><geometry><cylinder radius="0.06" length = "0.025"/></geometry><material name="white"><color rgba="1 1 1 0.9"/></material></visual>
</link><joint name="right_wheel_joint" type="continuous"><origin xyz="0 -0.19 -0.05" rpy="0 0 0"/><parent link="base_link"/><child link="right_wheel_link"/><axis xyz="0 1 0"/>
</joint><link name="right_wheel_link"><visual><origin xyz="0 0 0" rpy="1.5707 0 0" /><geometry><cylinder radius="0.06" length = "0.025"/></geometry><material name="white"><color rgba="1 1 1 0.9"/></material></visual>
</link><joint name="front_caster_joint" type="continuous"><origin xyz="0.18 0 -0.095" rpy="0 0 0"/><parent link="base_link"/><child link="front_caster_link"/><axis xyz="0 1 0"/>
</joint><link name="front_caster_link"><visual><origin xyz="0 0 0" rpy="0 0 0"/><geometry><sphere radius="0.015" /></geometry><material name="black"><color rgba="0 0 0 0.95"/></material></visual>
</link><joint name="back_caster_joint" type="continuous"><origin xyz="-0.18 0 -0.095" rpy="0 0 0"/><parent link="base_link"/><child link="back_caster_link"/><axis xyz="0 1 0"/>
</joint><link name="back_caster_link"><visual><origin xyz="0 0 0" rpy="0 0 0"/><geometry><sphere radius="0.015" /></geometry><material name="black"><color rgba="0 0 0 0.95"/></material></visual></link>
</robot>

4、检查.urdf文件是否有误

lzw08@ubuntu:~/ros_ws/src/xqrobot_description/urdf$ check_urdf xqrobot_base.urdf

没错误会显示如下图:

图形化工具查看 URDF 模型的整体结构

lzw08@ubuntu:~/ros_ws/src/xqrobot_description/urdf$ urdf_to_graphiz xqrobot_base.urdf
lzw08@ubuntu:~/ros_ws/src/xqrobot_description/urdf$ evince xqrobot.pdf

5、进入launch目录创建.launch文件

lzw08@ubuntu:~/ros_ws/src/xqrobot_description/urdf$ cd ..
lzw08@ubuntu:~/ros_ws/src/xqrobot_description$ cd launch/
lzw08@ubuntu:~/ros_ws/src/xqrobot_description/launch$ touch display_xq.launch
lzw08@ubuntu:~/ros_ws/src/xqrobot_description/launch$ gedit display_xq.launch


粘贴以下代码:

<?xml version="1.0"?> <launch>
<param name="robot_description" textfile="$(find xqrobot_description)/urdf/xqrobot_base.urdf" />
<!-- 设置 GUI 参数,显⽰关节控制插件 -->
<param name="use_gui" value="true"/>
<!-- 运⾏ joint_state_publisher 节点,发布机器⼈的关节状态 -->
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<!-- 运⾏ robot_state_publisher 节点,发布 tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
<!-- 运⾏ rviz 可视化界⾯ -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find xqrobot_description)/config/xqrobot_urdf.rviz" required="true" />
</launch>

6、运行.launch文件

lzw08@ubuntu:~/ros_ws/src/xqrobot_description/launch$ cd ~/ros_ws
lzw08@ubuntu:~/ros_ws$ source devel/setup.bash
lzw08@ubuntu:~/ros_ws$ roslaunch xqrobot_description display_xq.launch

(.launch文件运行不了的话回到工作空间source一下就行了。)

然后我就出现了以上错误,但是rviz是可以正常运行起来的,调整一下参数,发现我的urdf机器人没有轮子!

参数调整:
1、Fixed Frame 选择base_link(这里手动打上去先)。

2、点击“Add”添加“RobotModel”。

没有显示轮子的原因是,运行roslaunch时提示的错误信息:功能包没有安装。
解决方法:运行下面这句命令(联网操作)

lzw08@ubuntu:~$ sudo apt-get install ros-kinetic-joint-state-publisher-gui


安装完成后,把刚才运行roslaunch显示错误的命令终止(Ctrl + C),重新运行,就完成啦 ~
最终效果:

7、补充

1)保存键在这 ~(要先点击rviz那个窗口才会出现)

2)调这个小窗口可以urdf模型的轮子转起来

下期见咯 ~

#创建虚拟机器人URDF模型相关推荐

  1. 在Simscape中创建虚拟机器人环境(一):组装机器人并从CAD中导入

    在Simscape中创建虚拟机器人环境:组装机器人并从CAD中导入 在接下来的两个博客中,我们希望教授如何在机器人设计和编程中使用动态三维模拟,因此我们与马特·谢弗谁是应用程序支持工程师.他将教你如何 ...

  2. 在Simscape中创建虚拟机器人环境(二):添加物理、对象交互和自主

    在Simscape中创建虚拟机器人环境:添加物理.对象交互和自主 由阿列克莎·桑切斯, (2020年8月31日),转载博客地址:https://blogs.mathworks.com/racing-l ...

  3. 在ROS中创建并优化机器人URDF模型

    创建URDF模型 1.创建机器人描述功能包,在工作空间的src文件夹中打开终端,输入以下命令: $ catkin_create_pkg mbot_description urdf xacro 2.在m ...

  4. ROS:创建机器人URDF模型

    目录 1创建功能包: 2.编写urdf模型文件: 3.检查urdf文件 4.launch文件编写 5.启动launch文件并打开rviz. 1创建功能包: catkin_create_pkg robo ...

  5. 创建一个urdf机器人_ROS机械臂开发:创建机器人URDF模型

    1. URDF建模原理 URDF是一种使用XML格式描述的机器人模型文件 Links:坐标系与几何关系 Joints:Links之间的关系 标签 描述机器人某个刚体部分的外观和物理属性: 描述连杆尺寸 ...

  6. ROS(Noetic)学习笔记 创建机器人URDF模型并在rviz中显示过程中遇到的一些问题

    背景环境: Ubuntu 20.04 ROS-Noetic 所学教程:<ROS机器人开发实践>chapter 6_2 问题描述及解决方法: 报错:无法启动节点<robot_state ...

  7. ROS机器人建模与仿真(一)——URDF模型的建立和改进

    申明:本系列参考古月大神教材<ROS机器人开发实践>第六章内容,结合自己学习过程和遇到的问题逐一分解,争取能够吃透!欢迎大家一起讨论! URDF 是 ROS 中机器人模型的描述格式,包含对 ...

  8. 从零手写移动机器人URDF模型学习记录(一)

    目录 前言 一.创建工作空间 1.新建工作空间文件夹moveit_ws 2.对工作空间moveit_ws进行编译 3.设置环境变量 二.创建机器人建模的功能包 三.创建URDF模型 1.添加robot ...

  9. ROS学习笔记(十三)—— URDF 模型文件学习

    一. URDF简介 1.1 初步认识URDF RDF全称(United Robotics Description Format)统一机器人描述格式,是一个XML语法框架下用来描述机器人的语言格式,UR ...

  10. 如何从solidworks导出URDF模型

    1.sw_urdf_exporter插件介绍 下载与安装 下载地址:http://wiki.ros.org/sw_urdf_exporter 下载插件之前确保已经安装solidworks软件. 打开s ...

最新文章

  1. 命令行下django-admin.py参数不起作用的问题解决
  2. 串口通信模块2:串口通信编程基础(打开、配置)
  3. 飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南
  4. 移动WEB开发之JS内置touch事件[转]
  5. SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右
  6. 电钻有刷好还是无刷好_高中物理好的来看看,永磁同步直流电机是怎样实现无刷驱动的?...
  7. [ACM_数学] Fibonacci Nim(另类取石子,2-4组合游戏)
  8. 在DataList、Repeater的HeaderTemplate和FooterTemplate模板中寻找控件FindControl
  9. https无法识别证书(unable to find valid certification path to requested target)的另类解法
  10. 软考试题希赛网爬取过程分享一
  11. MATLAB内外插值
  12. window xp共享文件夹
  13. 制作后台首页详细步骤
  14. 资本资产定价模型CAPM
  15. 快捷键调出计算机桌面小工具,工具推荐:巧用快捷键秒变电脑高手
  16. java模拟登录新版正方_java 模拟登陆正方教务系统
  17. python使用turtle库绘制一个红色五角星_使用turtle库绘制红色五角星图形
  18. Android社招面经分享!2021华为Android高级面试题及答案,附相关架构及资料
  19. linux 修改微秒时间,Linux系统下精确到微秒级的时间操作函数
  20. CodeForces - 940E Cashback (DP+思维模型)

热门文章

  1. excel单元格内换行的方法
  2. 2017.8.18总结3-沙耶的玩偶
  3. android获取ssid,有关WiFi SSID的获取
  4. 在html中如何做SEO优化
  5. 如何将mp3合并在一起?
  6. JavaSE学习笔记-0225-ArrayList+案例
  7. 程序员涨工资大多数靠跳槽吗?
  8. Opencv项目实战:09 物体尺寸测量
  9. 考研经验计算机信息技术,考研经验:失败者的4条血泪教训
  10. matlab如何打开flt文件,科学网—grb文件的读取 (更新) - 张凌的博文