0.前言
上一篇文章教大家如何在宇树机器狗go2的仿真环境中添加3d雷达livox mid360(宇树机器狗go2 添加3d雷达(上)添加livox系列雷达),本期文章会教大家添加lvelodyne的系列雷达,是添加3d雷达的下期。宇树机器狗go2仿真会作为一个长期项目来进行不定期更新,仿真不只限于在gazebo上实现,后面还会在isaac sim等仿真平台上教大家如何搭建,其目的还是帮助各位都能以较低的成本加入到宇树机器狗go2的学习中。gazebo的仿真对电脑的需求会低于isaac sim等仿真平台,这对实验条件要求会低很多,更很适合学校小实验室或个人进行仿真实验。
同时我也希望能有更多的开发者加入近来一起完成机器狗go2的仿真实验项目的建设,如有更好的方案和建议可以私聊或申请共创作者。
注意:推荐在使用3d雷达的时候将深度相机和单目相机进行屏蔽,这样电脑仿真负载会降低,这样能保证机器狗go2的平衡控制器的正常运算,本文飞书文档:https://t11n5ozh20.feishu.cn/docx/RVz0dlCeVoeQMjxjx8ccF44znWd
1.安装velodyne功能包
Velodyne功能包安装有两种方式,一种是使用ros命令直接进行安装,另一种是使用源码编译,个人推荐使用源码进行安装。下方是velodyne雷达的公司官网:High-resolution digital lidar sensors: autonomous vehicles, robotics, drones | Ouster
1.ros命令安装
1.安装功能包
使用下面的命令在ros上安装Velodyne功能包
sudo apt-get install ros-noetic-velodyne-simulator
2.启动仿真验证
roslaunch velodyne_description exampl.launch
启动上述指令后会看到在gazebo中出现一个velodyne的雷达,rviz里面会显示其雷达消息。
2.使用源码编译
1.获取功能包
git clone https://bitbucket.org/DataspeedInc/velodyne_simulator
2.进行编译
catkin_make
source devel/setup.bash
3.启动仿真验证
roslaunch velodyne_description example.launch
启动上述指令后会看到在gazebo中出现一个velodyne的雷达,rviz里面会显示其雷达消息。
2.在机器狗go2上添加Velodyne雷达
在宇树机器狗go2上添加velodyne雷达有两种方式,一种是直接调用xacro文件,另一种是单独配置velodyne雷达模型和gazebo插件,吐槽velodyne雷达的dae文件无法导入blender中进行模型调整,但可以导入stl文件后转换成白模版。
下方是我使用stl文件转换和简单的颜色调整后得到的统一的Vlp16雷达的dae文件。 VLP16.dae
1.直接调用xacro文件
本人是更喜欢这种方式,虽然会增加robot.xacro的文本量,但阅读上更直观一些,在更改模型参数时也更方便一些,同理也是应该可以使用在宇树机器狗go2 添加3d雷达(上)添加livox系列雷达中的livox雷达配置中,如果后期有机会我再折腾一下livox系列的雷达。
打开go2的robot.xacro文件:
在robot.xacro文件中添加如下的velogyne的VLP-16雷达的描述和gazebo仿真插件。
<!-- velogyne --><xacro:include filename="$(find velodyne_description)/urdf/VLP-16.urdf.xacro"/><xacro:VLP-16 parent="base" name="velodyne" topic="/velodyne_points" organize_cloud="false" hz="10" samples="1024" gpu="false"><origin xyz="0.23 0 0.11" rpy="0 0 0" /></xacro:VLP-16>
-->
2.单独添加模型和gazebo仿真插件
1.添加velodyne雷达模型
官方给出的VLP-16雷达的模型配置文件有3份,且无法放入blender进行组建,因此其模型描述要比livox系列雷达的模型配置要麻烦一些,但其本质也是将原本的vlp-16雷达的xacro文件中的模型描述单独提取出来加入到go2的模型描述中,但在使用stl文件转换后的统一dae文件可以简化。
1.不使用统一的dae文件
打开go2的robot.xacro文件,将官方给出的3个VLP16雷达模型文件导入:
<!-- velogyne --><joint name="VLP16_base_mount_joint" type="fixed"><origin xyz="0.23 0.0 0.10" rpy="0.0 0.0 0.0"/><parent link="base"/><child link="VLP16_base_link"/></joint><link name="VLP16_base_link"><visual><geometry><mesh filename="package://velodyne_description/meshes/VLP16_base_1.dae" /></geometry></visual><visual><geometry><mesh filename="package://velodyne_description/meshes/VLP16_base_2.dae" /></geometry></visual><collision><origin rpy="0 0 0" xyz="0 0 0.03585"/><geometry><cylinder radius="0.0516" length="0.0717"/></geometry></collision></link><joint name="VLP16_base_scan_joint" type="fixed" ><origin xyz="0 0 0.0377" rpy="0 0 0" /><parent link="VLP16_base_link" /><child link="velodyne"/></joint><link name="velodyne"><inertial><mass value="0.01"/><origin xyz="0 0 0"/><inertia ixx="1e-7" ixy="0" ixz="0" iyy="1e-7" iyz="0" izz="1e-7"/></inertial><visual><origin xyz="0 0 -0.0377" /><geometry><mesh filename="package://velodyne_description/meshes/VLP16_scan.dae" /></geometry></visual></link>
2.使用统一的dae文件
将上面获取到的Vlp16.dae文件导入到/unitree_ros/robots/go2_description/meshes中
然后打开go2的robot.xacro文件,将统一的VLP16雷达模型文件导入:
点击宇树机器狗go2添加3d雷达(下)添加velodyne系列雷达查看全文