ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

[ROS2] image_transport only advertising raw option

asked 2020-01-14 10:29:37 -0500

tlaci gravatar image

Hi,

I created a ROS2 stereo camera node using image transport. I have two publisher:

m_publisher_left_image = image_transport::create_publisher(this, "stereo/left/image_raw");
m_publisher_right_image = image_transport::create_publisher(this, "stereo/right/image_raw");
m_publisher_left_info = this->create_publisher<sensor_msgs::msg::CameraInfo>("stereo/left/camera_info", 10);
m_publisher_right_info = this->create_publisher<sensor_msgs::msg::CameraInfo>("stereo/right/camera_info", 10);

When I start the node on my laptop I can see the following topics with ros2 topic list:

/stereo/left/camera_info
/stereo/left/image_raw
/stereo/left/image_raw/compressed
/stereo/left/image_raw/compressedDepth
/stereo/left/image_raw/theora
/stereo/right/camera_info
/stereo/right/image_raw
/stereo/right/image_raw/compressed
/stereo/right/image_raw/compressedDepth
/stereo/right/image_raw/theora

Now I run the exact same code on a Jetson Nano, also using eloquent distro but I can only see

/stereo/left/camera_info
/stereo/left/image_raw
/stereo/right/camera_info
/stereo/right/image_raw

I install eloquent via debian packages in late Nov on my laptop. On the Jetson it was installed on 6th Jan.

I would be glad if someone could explain me the cause of the different behavior.

edit retag flag offensive close merge delete

Comments

Do you have the image transport plugins installed on your jetson nano?

stevemacenski gravatar image stevemacenski  ( 2020-01-14 15:38:58 -0500 )edit

Yes, I have.

ros-eloquent-image-transport-plugins/bionic 2.2.1-1bionic.20191213.060222 amd64
A set of plugins for publishing and subscribing to sensor_msgs/Image topics in representations other than raw pixel data.

Edit: I have just realized that it says amd64 for all my packages. Shouldn't it be arm64? I installed ros2 according to the eloquent (debian packages) tutorial.

tlaci gravatar image tlaci  ( 2020-01-15 03:14:16 -0500 )edit
2

If you're on the Jetson you should have arm64 assuming you're running an arm64 os image. The plugins certainly won't load if they are the wrong architecture.

tfoote gravatar image tfoote  ( 2020-01-15 12:09:41 -0500 )edit

Sounds like we have a diagnosis!

stevemacenski gravatar image stevemacenski  ( 2020-01-15 14:19:37 -0500 )edit

It works now. I thought image_transport_plugins should be installed with eloquent, for me it did not.

tlaci gravatar image tlaci  ( 2020-01-16 06:08:19 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-01-16 06:05:02 -0500

tlaci gravatar image

I reinstalled eloquent choosing the right architecture. Somehow it is a problem if amd64 is listed in the brackets too, maybe because it finds amd64 packages first.

sudo sh -c 'echo "deb [arch=arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

After that I installed image_transport_plugins and now it works fine.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2020-01-14 10:29:37 -0500

Seen: 1,381 times

Last updated: Jan 16 '20