Robotics StackExchange | Archived questions

Unable to install rosbag2

I'm following this installation guide: https://github.com/ros2/rosbag2/tree/dashing

$ export CHOOSE_ROS_DISTRO=crystal # rosbag2 is available starting from crystal
$ sudo apt-get install ros-$CHOOSE_ROS_DISTRO-ros2bag* ros-$CHOOSE_ROS_DISTRO-rosbag2*

The fact that I need to mention crystal instead of dashing seems suspicious to me.

I tried (without succes):

$ export CHOOSE_ROS_DISTRO=dashing

Error message:

The following packages have unmet dependencies:
ros-dashing-rosbag2-bag-v2-plugins : Depends: ros-dashing-ros1-bridge but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Is it possible to show me my mistake ?

Thanks in advance !

Asked by jlepers on 2019-10-25 05:42:40 UTC

Comments

I have quickly tried the install and I also run into the same error. I'll see if I can resolve it on my end, otherwise look at the rosbag2 packages and see if you can skip the bag-v2-plugins one.

Asked by MCornelis on 2019-10-25 07:57:43 UTC

The real question is why the plugin depends on the ros1-bridge and why the ros1-bridge is broken. In case my previous comment was unclear, what I suggest you do is: type

sudo apt-get install ros-dashing-rosbag2

into a terminal and quickly press tab twice to see the tab-completion. It will show all the rosbag2 related packages. Then manually install the ones you actually need one by one, instead of all of them (which is what the * will do). Hopefully this will suffice as a workaround for what you are trying to do.

Asked by MCornelis on 2019-10-25 08:01:31 UTC

Answers

Ok so the error stems from the fact that: ros-dashing-rosbag2-bag-v2-plugins : depends on ros-dashing-ros1-bridge

So you you could do

sudo apt-get install ros-dashing-ros1-bridge

you will most likely get the error that certain dependencies are missing and they can not be installed (all the messages for ROS1). This is because the ros1-bridge assumes a melodic install and a dashing install, between which it can bridge. From here you have 2 solutions.

Solution 1: just don't install

ros-dashing-rosbag2-bag-v2-plugins
ros-dashing-rosbag2-bag-v2-plugins-dbgsym

and only install the other rosbag2 packages.

Solution 2:

sudo apt-get install ros-melodic-desktop-full

sudo apt-get install ros-dashing-ros1-bridge

then try

sudo apt-get install ros-dashing-rosbag2*

Asked by MCornelis on 2019-10-25 08:17:14 UTC

Comments

Not sure if you actually need the desktop full install of melodic, but this worked for me (only 600Mb so if you work on a laptop it should be fine). Maybe try a smaller install if you don't have unlimited space available :P

Asked by MCornelis on 2019-10-25 08:19:14 UTC

In reality you only need these pkgs for the ros-dashing-ros1-bridge:

ros-melodic-actionlib-msgs
ros-melodic-catkin
ros-melodic-common-msgs
ros-melodic-gazebo-msgs
ros-melodic-geometry-msgs
ros-melodic-nav-msgs
ros-melodic-rosbash
ros-melodic-roscpp
ros-melodic-roscpp-tutorials
ros-melodic-roslaunch
ros-melodic-rosmsg
ros-melodic-rospy-tutorials
ros-melodic-sensor-msgs
ros-melodic-std-msgs
ros-melodic-std-srvs
ros-melodic-stereo-msgs
ros-melodic-tf2-msgs
ros-melodic-trajectory-msgs
ros-melodic-visualization-msgs

Asked by MCornelis on 2019-10-25 08:23:26 UTC