自学内容网 自学内容网

Gazebo仿真实现无人机+Apriltag码动态跟踪

目录

演示

一、环境

二、配置

创建模型

首先相机创建

 添加相机

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.5502icon-default.png?t=O83Ahttps://blog.csdn.net/2301_76165902/article/details/142000488?spm=1001.2014.3001.5502修改对应的相机话题即可

三、代码运行

github仓库,可以参考

https://github.com/jiezz12/apriltag_location.giticon-default.png?t=O83Ahttps://github.com/jiezz12/apriltag_location.git

 点点star,感谢

四、问题

仿真中的相机大小为320x240

现实中大多为640x480

所以在仿真中识别的相机坐标会以右下角为原点,现实中中心为原点。

修改相机模型的参数

usb_cam.sdf第45行

 

改为640x480即可

本教材提供静止二维码配置,如果需要移动码(开头那样),可以私信我。、

欢迎批评指正。


原文地址:https://blog.csdn.net/2301_76165902/article/details/143940319

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!