urdf文件可以使用的一些工具(urdf检查和可视化)
一. xacro转换为urdf
现在在ROS中主要常用的机器人模型还是xacro或者urdf模型,要不然就是mujoco的mjcf模型,但是这篇文章不涉及
然后xacro可以通过下面的这个命令转换为urdf模型
xacro ./xacro_path/robot_name.xacro ./urdf_path/urdf_robot_name.urdf
转换后在你的目标路径下会出现一个urdf
文件
二. 解析检查urdf文件
然后ROS还提供了解析检查urdf模型文件的check_urdf
方法,命令如下:
check_urdf ./robot.urdf
解析之后会把每一级的子级关系输出出来,但是只有link
,结果如下所示:
robot name is: go1
---------- Successfully Parsed XML ---------------
root Link: base has 1 child(ren)child(1): trunkchild(1): FL_hipchild(1): FL_thighchild(1): FL_calfchild(1): FL_footchild(2): FL_calf_rotorchild(2): FL_thigh_rotorchild(2): FL_hip_rotorchild(3): FR_hipchild(1): FR_thighchild(1): FR_calfchild(1): FR_footchild(2): FR_calf_rotorchild(2): FR_thigh_rotorchild(4): FR_hip_rotorchild(5): RL_hipchild(1): RL_thighchild(1): RL_calfchild(1): RL_footchild(2): RL_calf_rotorchild(2): RL_thigh_rotorchild(6): RL_hip_rotorchild(7): RR_hipchild(1): RR_thighchild(1): RR_calfchild(1): RR_footchild(2): RR_calf_rotorchild(2): RR_thigh_rotorchild(8): RR_hip_rotorchild(9): camera_chinchild(1): camera_optical_chinchild(10): camera_facechild(1): camera_optical_facechild(11): camera_leftchild(1): camera_laserscan_link_leftchild(2): camera_optical_leftchild(12): camera_rearDownchild(1): camera_optical_rearDownchild(13): camera_rightchild(1): camera_laserscan_link_rightchild(2): camera_optical_rightchild(14): imu_linkchild(15): ultraSound_facechild(16): ultraSound_leftchild(17): ultraSound_right
三. 可视化urdf文件
刚才提到的check_urdf
可以解析urdf文件,输出link的层级关系,然后urdf_to_graphiz
命令可以输出包含joint
的层级关系。
urdf_to_graphiz ./robot.urdf
然后就会在使用这个命令的目录下生成两个文件,一个pdf和一个gv文件,pdf如下所示: