@@ -48,7 +48,8 @@ sdf::ElementPtr cameraToBadSdf()
4848
4949sdf::ElementPtr CameraToSdf (const std::string &_type,
5050 const std::string &_name, double _updateRate,
51- const std::string &_topic, bool _alwaysOn, bool _visualize)
51+ const std::string &_topic, const std::string &_cameraInfoTopic,
52+ bool _alwaysOn, bool _visualize)
5253{
5354 std::ostringstream stream;
5455 stream
@@ -58,6 +59,7 @@ sdf::ElementPtr CameraToSdf(const std::string &_type,
5859 << " <link name='link1'>"
5960 << " <sensor name='" << _name << " ' type='" << _type << " '>"
6061 << " <topic>" << _topic << " </topic>"
62+ << " <topic>" << _cameraInfoTopic << " </topic>"
6163 << " <update_rate>" << _updateRate <<" </update_rate>"
6264 << " <always_on>" << _alwaysOn <<" </always_on>"
6365 << " <visualize>" << _visualize << " </visualize>"
@@ -146,8 +148,8 @@ TEST(Camera_TEST, CreateCamera)
146148{
147149 gz::sensors::Manager mgr;
148150
149- sdf::ElementPtr camSdf = CameraToSdf (" camera" , " my_camera" , 60.0 , " /cam " ,
150- true , true );
151+ sdf::ElementPtr camSdf = CameraToSdf (" camera" , " my_camera" , 60.0 ,
152+ " /cam " , " my_camera/camera_info " , true , true );
151153
152154 // Create a CameraSensor
153155 gz::sensors::CameraSensor *cam =
@@ -190,8 +192,9 @@ TEST(Camera_TEST, Topic)
190192 // Default topic
191193 {
192194 const std::string topic;
193- auto cameraSdf = CameraToSdf (type, name, updateRate, topic, alwaysOn,
194- visualize);
195+ const std::string cameraInfoTopic;
196+ auto cameraSdf = CameraToSdf (type, name, updateRate, topic, cameraInfoTopic,
197+ alwaysOn, visualize);
195198
196199 auto sensorId = mgr.CreateSensor (cameraSdf);
197200 EXPECT_NE (gz::sensors::NO_SENSOR, sensorId);
@@ -203,12 +206,13 @@ TEST(Camera_TEST, Topic)
203206 ASSERT_NE (nullptr , camera);
204207
205208 EXPECT_EQ (" /camera" , camera->Topic ());
209+ EXPECT_EQ (" /camera_info" , camera->InfoTopic ());
206210 }
207211
208212 // Convert to valid topic
209213 {
210214 const std::string topic = " /topic with spaces/@~characters//" ;
211- auto cameraSdf = CameraToSdf (type, name, updateRate, topic, alwaysOn,
215+ auto cameraSdf = CameraToSdf (type, name, updateRate, topic, " " , alwaysOn,
212216 visualize);
213217
214218 auto sensorId = mgr.CreateSensor (cameraSdf);
@@ -221,12 +225,13 @@ TEST(Camera_TEST, Topic)
221225 ASSERT_NE (nullptr , camera);
222226
223227 EXPECT_EQ (" /topic_with_spaces/characters" , camera->Topic ());
228+ EXPECT_EQ (" /topic_with_spaces/camera_info" , camera->InfoTopic ());
224229 }
225230
226231 // Invalid topic
227232 {
228233 const std::string topic = " @@@" ;
229- auto cameraSdf = CameraToSdf (type, name, updateRate, topic, alwaysOn,
234+ auto cameraSdf = CameraToSdf (type, name, updateRate, topic, " " , alwaysOn,
230235 visualize);
231236
232237 auto sensorId = mgr.CreateSensor (cameraSdf);
0 commit comments