前言:
在学习ros系统过程中,购买实际的机器人价格昂贵,为了降低学习成本,ros提供了一系列的仿真系统和环境搭建,渲染可视化工具,在此使用到的时urdf。
一.环境搭建
1.在构建的工作空间下在创建新的功能包,添加依赖urdf,xacro
2.在功能包下新建如下几个文件夹:
urdf
: 存储 urdf 文件的目录
meshes
:机器人模型渲染文件(暂不使用)
config
: 配置文件
launch
: 存储 launch 启动文件
二.具体代码实现
1.首先在urdf下新建一个urdf文件夹,新建一个urdf文件,注意!后缀是.urdf,如demo01.urdf
2.紧接着输入以下代码:(这串代码的具体含义在此不做要求)
<robot name="mycar">
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
3.接着在编写launch文件,在launch目录下创建一个新的launch文件,具体实现代码如下:
<launch>
<!--在这里设置参数,注意param的名字是固定的,就是“robot——description”,后面跟的textfile就是刚才构建的文件-->
<param name="robot_description" textfile="$(find 创建的功能包名)/urdf/urdf/XXXX.urdf" />
<!--在这里启动rviz节点-->
<node pkg="rviz" type= "rviz" name="rviz"/>
</launch>
4.接着就在终端中输入launch命令即可
5.但是执行后会出现看不到模型的情况(如图),此时在add中添加robot——model,坐标系设置成上面代码中的base_link即可(效果如图)
三.遇到的问题及其解决方法
1.显示找不到包,要检查一下代码中的包名有无写错,文件有无保存(按下crtl+s即可快速保存文件)。
2.显示路径错误,检查launch文件中的textfile一行有无写错,注意!在括号右侧还有一个/
,检查一下根目录结尾的地方有没有多打空格或者/。
3.如果出现其他问题,可以尝试在终端中刷新一下或者重新构建一个功能包。
目录
前言:在上述的实现案例中,当我们在次启动节点时会发现robot_model等选项需要我们自己再次配置,为了解决这个问题,在此进行优化与改进
1.在打开的rivz中,配置好相关的选项,然后点击左上角的file,选择save config as,进行保存,原则上这个文件可以保存到任意地方,但是为了后续方便,我们把它保存到之前创立的config目录下,文件格式默认即可。保存完后应该有图二的效果
2.进行配置,在launch文件的rviz文件根下,添加args,具体代码实现如下
<launch>
<!--在这里设置参数,注意param的名字是固定的,就是“robot——description”,后面跟的textfile就是刚才构建的文件-->
<param name="robot_description" textfile="$(find 创建的功能包名)/urdf/urdf/XXXX.urdf" />
<!--在这里启动rviz节点-->
<node pkg="rviz" type= "rviz" name="rviz" args="-d $(find 功能包名)/config/文件名.rviz"/>
</launch>
3.再次重新启动节点即可实现
4.注意事项及改进
1.在代码中要严格控制代码缩进,在-d 后需要有一个空格
2.注意文件名不要打错。
3.代码编写完成后,记得保存和刷新环境变量
总结:以上就是一个用urdf和rviz实现仿真机器人可视化的简单案例,如有错误的地方欢迎指出。