firefly飞机中原本只有一个相机,由于项目需要一个飞机去识别前方两架飞机,因此需要增加一个相机。在rotors_descriptioin>urdf>mav_with_vi_sensor中可以看到此处"mount a VI-sensor in front of the Firefly",首先考虑将本段代码复制一份,并修改namespace和相机位置和朝向“origin xyz” "origin rpy"。但运行launch文件得到了报错:
虽然飞机能够正常飞行,在gazebo中也显示出了两个摄像头,但是topic中没有我们第二个摄像头的topic(没有/firefly1/vi_sensor/left/image_raw的topic),实际上还是无法使用。猜测原因是引用了相同的宏导致话题名称相同,无法使用。
找到rotors_description>urdf>component_snippers.xacro文件中与mav_with_vi_sensor中macro对应的vi_sensor_macro,复制一份并改为vi_sensor_macro_my。
运行程序,仍然报错。继续寻找原因,发现是在vi_sensor_macro_my里调用了加载相机的宏vi_sensor_stereo_camera,因此再找到这个宏并复制一份。
在vi_sensor_macro_my中对应处修改即可。
运行仿真,没有报错,且出现了两个topic,都可以用。大功告成!