最近搞apriltag码的识别和定位,但是制作实体码需要的成本有些高,因此想着在gazebo下搞一个仿真环境去开发。网上已经有人提供了一些gazebo下生成apriltag码的方法,我这里提供一种另外的方法。
生成黑块白块
先分别制作一个50mm×50mm×10mm毫米的白块和黑块(大小可根据自己需求进行修改。)。gazebo本来就提供一个默认1m×1m×1m的立方体模型,修改一下大小,调整颜色
黑白块拼接
将这些黑块白块都生成若干个,然后每隔50mm(具体看自己生成的黑白块的大小决定)依次摆放,即可拼接出一个大的标识板(这一步可能比较耗时)
标识码制作
到上面这一步,其实已经有了基本的标识码的样子了,只需要把其中对应位置的黑块修改颜色成白块,就行了。
如果想制作多块,可以自己写一个程序,读取标识码的png文件的各个像素值,然后修改对应坐标下的方块颜色。
棋盘格制作
也可以用这些黑白块依次拼接,形成一个较大的棋盘格
优缺点
缺点: 这个方法缺点就是做黑白块拼接需要花点时间,但是也只需要做一次即可
优点:复用性比较高,各个标识码都是一个单独的model.sdf文件,如果在其他电脑上想继续用,只需要添加过去即可立即使用
注意事项
- 建议把所有方块的collision配置都去掉,以及质量设为0
- 必须从Y轴方向看过去才是正面,如果仿真相机所在位置在标识码后方,需要将标识码pose的yaw角值改为3.1415926