目录
演示
一、环境
二、配置
创建模型
首先相机创建
添加相机
Apriltag创建
地图添加apriltag码
Apriltag_ros配置
三、代码运行
四、问题
修改相机模型的参数
演示
一、环境
ROS+gazebo配置
Px4+Mavros
Apriltag_ros编译
二、配置
在默认的mavros_posix_sitl.launch的基础上添加,mavros_posix_sitl.launch中为一个四轴无人机,需要添加朝下的摄像头和一个移动平台(附有Apriltag码)。
创建模型
个人习惯是创建新的模型,而不是在原有的上面更改
首先相机创建
在~/PX4_Firmware/Tools/sitl_gazebo/models/下找到fpv_cam和iris_fpv_cam
分别复制,修改名称为usb_cam和iris_usb_cam ,包括里面的sdf文件名
打开usb_cam.sdf
第三行修改如图
(这是模型名称)
如图位置修改
(这是话题名称)
这个位置为机器人名称
(会在话题前生成前缀,和group一个效果)
由于launch会自己检测robotNamespace这个参数,所以课改可不改,如果不改或出现iris_0的前缀。
打开model.config修改如图
然后修改iris_usb_cam模型
iris_usb_cam.sdf文件
model.config文件
添加相机
在px4launch文件夹下创建新的launch文件
修改如图,增加一个参数 my_model
注:引用的是模型irir_usb_cam不是usb_cam,相当于引用的是封装而不是原零件
运行后即可看到一个装有摄像头的小四轴
话题信息如图
如果没有修改robotNamespace参数,则会出现irir_0/usb_cam/...
Apriltag创建
基于Xtdrone生成Apriltag 0 模型
cd ~/XTDrone/sensing/object_detection_and_tracking/apriltag/script
python3 make_tag.py --nx 1 --ny 1 --marginx 0.00 --marginy 0.00 --tsize 0.36 --tspace 0.5 --startid 0 --tfam t36h11 --borderbits 1 #生成Apriltag0的pdf
会在同一路径下生成target.pdf修改名称为apriltag0.pdf,放入路径~/XTDrone/sitl_config/make_gazebo_model/image下
然后运行make_gazebo_model.py
cd ~/XTDrone/sitl_config/make_gazebo_model/script
python3 make_gazebo_model.py
运动脚本后,会在~/.gazebo/models中生成与AprilTag图片名同名的目录,然后就可以使用该模型了。
地图添加apriltag码
~PX4_Firmware/Tools/sitl_gazebo/worlds下的empty.world
复制并重命名
添加代码如下
<model name='apriltag0'>
<pose frame=''>0 5 0.05 0 1.57 0</pose>
<include>
<scale>5 5 2</scale>
<uri>model://apriltag0</uri>
</include>
</model>
修改launch文件中的地图
然后运行会生成一个带有Apriltag码的世界
到这里模型配置就结束了
Apriltag_ros配置
可以参考我之前的博客
https://blog.csdn.net/2301_76165902/article/details/142000488?spm=1001.2014.3001.5502https://blog.csdn.net/2301_76165902/article/details/142000488?spm=1001.2014.3001.5502修改对应的相机话题即可
三、代码运行
github仓库,可以参考
https://github.com/jiezz12/apriltag_location.githttps://github.com/jiezz12/apriltag_location.git
点点star,感谢
四、问题
仿真中的相机大小为320x240
现实中大多为640x480
所以在仿真中识别的相机坐标会以右下角为原点,现实中中心为原点。
修改相机模型的参数
usb_cam.sdf第45行
改为640x480即可
本教材提供静止二维码配置,如果需要移动码(开头那样),可以私信我。、
欢迎批评指正。