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

Unable to install rosbag2

asked 2019-10-25 05:42:40 -0600

jlepers gravatar image

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

$ 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 !

edit retag flag offensive close merge delete

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.

MCornelis gravatar image MCornelis  ( 2019-10-25 07:57:43 -0600 )edit

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.

MCornelis gravatar image MCornelis  ( 2019-10-25 08:01:31 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2019-10-25 08:17:14 -0600

MCornelis gravatar image

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*
edit flag offensive delete link more

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

MCornelis gravatar image MCornelis  ( 2019-10-25 08:19:14 -0600 )edit

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
MCornelis gravatar image MCornelis  ( 2019-10-25 08:23:26 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2019-10-25 05:42:40 -0600

Seen: 2,448 times

Last updated: Oct 25 '19