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