Hi,
When trying to build the Docker, it seems the packaged from mujoco_ros2_control cannot be found.
Cannot locate rosdep definition for [mujoco ros2 control]
I tried to add the following lines to install the recommended fork at line 125:
# Clone mujoco_ros2_control to src directory
# https://github.com/tenfoldpaper/mujoco_ros_pkgs.git
RUN cd /home/user/humble_ws/src && git clone https://github.com/tenfoldpaper/mujoco_ros_pkgs.git
# Checkout the specific branch for ROS 2 Humble
RUN cd /home/user/humble_ws/src/mujoco_ros_pkgs && git checkout wip_ros_control_humble
With this change, when building I get errors from mujoco_ros
Docker output
sudo docker build -t "bimanual:franka" ./
[+] Building 135.2s (30/30) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 5.03kB 0.0s
=> [internal] load metadata for docker.io/library/ros:humble 1.5s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [ 1/26] FROM docker.io/library/ros:humble@sha256:d66b8a36f8c6cad03526188c8dcd2cb17096aff73a1af628990ab118794479ba 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 54.26kB 0.0s
=> CACHED [ 2/26] RUN groupadd --gid 1001 user && useradd --uid 1001 --gid 1001 -m user && apt-get update && apt-get install -y 0.0s
=> CACHED [ 3/26] RUN apt-get update -y && apt-get install -y --allow-unauthenticated curl 0.0s
=> CACHED [ 4/26] RUN mkdir /home/user/Libraries 0.0s
=> CACHED [ 5/26] RUN mkdir ~/source_code 0.0s
=> CACHED [ 6/26] RUN cd ~/source_code && curl https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz --output eigen.tar.g 0.0s
=> CACHED [ 7/26] RUN cd ~/source_code/eigen-3.3.9 && mkdir build && cd build && cmake .. && make && make install && 0.0s
=> CACHED [ 8/26] RUN apt-get update -y && apt-get install -y --allow-unauthenticated software-properties-common clang-14 clang- 0.0s
=> CACHED [ 9/26] RUN python3 -m pip install -U argcomplete flake8-blind-except flake8-builtins flake8-class-newline fla 0.0s
=> CACHED [10/26] RUN cd ~/source_code && git clone https://github.com/frankaemika/libfranka.git && mkdir /home/user/Libraries/libfranka 0.0s
=> CACHED [11/26] RUN apt-get update -y && apt-get install -y libglfw3 libglfw3-dev libgl1-mesa-dev libxinerama-dev libx 0.0s
=> CACHED [12/26] RUN add-apt-repository ppa:dqrobotics-dev/release && apt-get update && apt-get install libdqrobotics 0.0s
=> CACHED [13/26] RUN cd ~/source_code && git clone https://github.com/google-deepmind/mujoco.git && mkdir ~/source_code/mujoco/build 0.0s
=> CACHED [14/26] RUN mkdir -p ~/humble_ws/src/bimanual_architecture && cd ~/humble_ws 0.0s
=> [15/26] COPY . /home/user/humble_ws/src/bimanual_architecture/ 0.6s
=> [16/26] RUN cd /home/user/humble_ws/src && git clone https://github.com/tenfoldpaper/mujoco_ros_pkgs.git 1.7s
=> [17/26] RUN cd /home/user/humble_ws/src/mujoco_ros_pkgs && git checkout wip_ros_control_humble 1.2s
=> [18/26] RUN echo 'source /opt/ros/humble/setup.bash' >> /home/user/.bashrc 1.3s
=> [19/26] RUN echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/Libraries/libfranka/lib:/home/user/Libraries/mujoco/lib' >> /home/us 1.3s
=> [20/26] RUN echo 'export CMAKE_PREFIX_PATH=~/Libraries/libfranka/lib/cmake:~/Libraries/mujoco/lib/cmake' >> /home/user/.bashrc 1.4s
=> [21/26] RUN chown -R user:user /home/user/ 2.8s
=> [22/26] WORKDIR ~/ 0.1s
=> [23/26] RUN source ~/.bashrc && . /opt/ros/humble/setup.sh && cd ~/humble_ws && rosdep update && cd ~/humble_ws && rosdep in 27.4s
=> [24/26] RUN mkdir /tmp/${UID} 1.2s
=> [25/26] RUN chown -R user:user /tmp/${UID} 1.6s
=> ERROR [26/26] RUN cd ~/humble_ws && source ~/.bashrc && . /opt/ros/humble/setup.sh && colcon build --cmake-args -DCMAKE_BUIL 92.8s
------
> [26/26] RUN cd ~/humble_ws && source ~/.bashrc && . /opt/ros/humble/setup.sh && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release:
1.539 WARNING: Metapackage "mujoco_ros_pkgs" should not have other dependencies besides a buildtool_depend on catkin and exec_depends.
1.583 Starting >>> mujoco_ros_msgs
1.585 [0.315s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '~/Libraries/libfranka/lib/cmake' in the environment variable CMAKE_PREFIX_PATH doesn't exist
1.585 [0.315s] WARNING:colcon.colcon_ros.prefix_path.catkin:The path '~/Libraries/mujoco/lib/cmake' in the environment variable CMAKE_PREFIX_PATH doesn't exist
1.588 Starting >>> franka_msgs
1.591 Starting >>> franka_description
1.593 Starting >>> garmi_controllers
1.596 Starting >>> panda_motion_generator_msgs
1.599 Starting >>> franka_simple_publishers
1.603 Starting >>> garmi_moveit_config
2.535 Finished <<< franka_simple_publishers [0.94s]
2.631 Finished <<< garmi_moveit_config [1.03s]
2.804 Finished <<< franka_description [1.21s]
2.805 Starting >>> garmi_description
3.649 Finished <<< garmi_description [0.84s]
21.84 --- stderr: garmi_controllers
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp: In member function ‘virtual controller_interface::return_type garmi_controllers::MobileBaseController::update(const rclcpp::Time&, const rclcpp::Duration&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp:28:84: warning: unused parameter ‘time’ [-Wunused-parameter]
21.84 28 | controller_interface::return_type MobileBaseController::update(const rclcpp::Time& time,
21.84 | ~~~~~~~~~~~~~~~~~~~~^~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp:29:88: warning: unused parameter ‘period’ [-Wunused-parameter]
21.84 29 | const rclcpp::Duration& period){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp: In member function ‘virtual CallbackReturn garmi_controllers::MobileBaseController::on_configure(const rclcpp_lifecycle::State&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp:52:82: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
21.84 52 | CallbackReturn MobileBaseController::on_configure(const rclcpp_lifecycle::State& previous_state){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp: In member function ‘virtual CallbackReturn garmi_controllers::MobileBaseController::on_activate(const rclcpp_lifecycle::State&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp:60:81: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
21.84 60 | CallbackReturn MobileBaseController::on_activate(const rclcpp_lifecycle::State& previous_state){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp: In member function ‘virtual CallbackReturn garmi_controllers::MobileBaseController::on_deactivate(const rclcpp_lifecycle::State&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/mobile_base_controller.cpp:66:83: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
21.84 66 | CallbackReturn MobileBaseController::on_deactivate(const rclcpp_lifecycle::State& previous_state){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp: In member function ‘virtual controller_interface::return_type garmi_controllers::HeadController::update(const rclcpp::Time&, const rclcpp::Duration&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp:32:78: warning: unused parameter ‘time’ [-Wunused-parameter]
21.84 32 | controller_interface::return_type HeadController::update(const rclcpp::Time& time,
21.84 | ~~~~~~~~~~~~~~~~~~~~^~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp: In member function ‘virtual CallbackReturn garmi_controllers::HeadController::on_configure(const rclcpp_lifecycle::State&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp:78:76: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
21.84 78 | CallbackReturn HeadController::on_configure(const rclcpp_lifecycle::State& previous_state){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp: In member function ‘virtual CallbackReturn garmi_controllers::HeadController::on_activate(const rclcpp_lifecycle::State&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp:86:75: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
21.84 86 | CallbackReturn HeadController::on_activate(const rclcpp_lifecycle::State& previous_state){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp: In member function ‘virtual CallbackReturn garmi_controllers::HeadController::on_deactivate(const rclcpp_lifecycle::State&)’:
21.84 /home/user/humble_ws/src/bimanual_architecture/garmi_packages/garmi_controllers/src/head_controller.cpp:93:77: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
21.84 93 | CallbackReturn HeadController::on_deactivate(const rclcpp_lifecycle::State& previous_state){
21.84 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
21.84 ---
21.84 Finished <<< garmi_controllers [20.2s]
27.52 Finished <<< panda_motion_generator_msgs [25.9s]
42.46 Finished <<< franka_msgs [40.9s]
42.46 Starting >>> multi_mode_control_msgs
42.46 Starting >>> franka_gripper
42.46 Starting >>> franka_control2
49.34 --- stderr: franka_control2
49.34 In file included from /home/user/humble_ws/src/bimanual_architecture/franka_control2/src/franka_control2_node.cpp:24:
49.34 /opt/ros/humble/include/realtime_tools/realtime_tools/thread_priority.hpp:39:2: warning: #warning "This header include is deprecated. Please update your code to use 'realtime_helpers.hpp' header and link against 'realtime_tools' library." [-Wcpp]
49.34 39 | #warning \
49.34 | ^~~~~~~
49.34 ---
49.34 Finished <<< franka_control2 [6.88s]
60.78 Finished <<< franka_gripper [18.3s]
70.35 Finished <<< mujoco_ros_msgs [1min 9s]
70.35 Starting >>> mujoco_ros
81.45 Finished <<< multi_mode_control_msgs [39.0s]
86.62 --- stderr: mujoco_ros
86.62 CMake Warning at cmake/CompilerCache.cmake:33 (message):
86.62 ccache is enabled but was not found. Not using it
86.62 Call Stack (most recent call first):
86.62 cmake/CompilerCache.cmake:44 (_configure_ccache)
86.62 cmake/CompilerCache.cmake:44 (cmake_language)
86.62 cmake/ProjectOption.cmake:61 (configure_compiler_cache)
86.62 CMakeLists.txt:70 (configure_project_option)
86.62
86.62
86.62 CMake Warning at /opt/ros/humble/share/ament_cmake_export_include_directories/cmake/ament_export_include_directories.cmake:44 (message):
86.62 ament_export_include_directories() package 'mujoco_ros' exports the include
86.62 directory '/home/user/humble_ws/build/mujoco_ros/include' which doesn't
86.62 exist
86.62 Call Stack (most recent call first):
86.62 CMakeLists.txt:267 (ament_export_include_directories)
86.62
86.62
86.62 In file included from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/mujoco_env.hpp:87,
86.62 from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/src/mujoco_env.cpp:47:
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/viewer.hpp:183:9: error: ‘mjvSceneState’ does not name a type; did you mean ‘mjvScene_’?
86.62 183 | mjvSceneState scnstate_;
86.62 | ^~~~~~~~~~~~~
86.62 | mjvScene_
86.62 In file included from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/mujoco_env.hpp:87,
86.62 from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/src/ros_two/ros_api.cpp:40:
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/viewer.hpp:183:9: error: ‘mjvSceneState’ does not name a type; did you mean ‘mjvScene_’?
86.62 183 | mjvSceneState scnstate_;
86.62 | ^~~~~~~~~~~~~
86.62 | mjvScene_
86.62 In file included from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/src/mujoco_env.cpp:48:
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/offscreen_camera.hpp:133:9: error: ‘mjvSceneState’ does not name a type; did you mean ‘mjvScene_’?
86.62 133 | mjvSceneState scn_state_;
86.62 | ^~~~~~~~~~~~~
86.62 | mjvScene_
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/offscreen_camera.hpp: In destructor ‘mujoco_ros::rendering::OffscreenCamera::~OffscreenCamera()’:
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/offscreen_camera.hpp:98:37: error: ‘scn_state_’ was not declared in this scope
86.62 98 | mjv_freeSceneState(&scn_state_);
86.62 | ^~~~~~~~~~
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/offscreen_camera.hpp:98:17: error: ‘mjv_freeSceneState’ was not declared in this scope; did you mean ‘mjv_freeScene’?
86.62 98 | mjv_freeSceneState(&scn_state_);
86.62 | ^~~~~~~~~~~~~~~~~~
86.62 | mjv_freeScene
86.62 In file included from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/mujoco_env.hpp:87,
86.62 from /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/src/main.cpp:44:
86.62 /home/user/humble_ws/src/mujoco_ros_pkgs/mujoco_ros/include/mujoco_ros/viewer.hpp:183:9: error: ‘mjvSceneState’ does not name a type; did you mean ‘mjvScene_’?
86.62 183 | mjvSceneState scnstate_;
86.62 | ^~~~~~~~~~~~~
86.62 | mjvScene_
86.62 gmake[2]: *** [src/CMakeFiles/mujoco_ros.dir/build.make:90: src/CMakeFiles/mujoco_ros.dir/mujoco_env.cpp.o] Error 1
86.62 gmake[2]: *** Waiting for unfinished jobs....
86.62 gmake[2]: *** [src/CMakeFiles/mujoco_ros.dir/build.make:76: src/CMakeFiles/mujoco_ros.dir/main.cpp.o] Error 1
86.62 gmake[2]: *** [src/CMakeFiles/mujoco_ros.dir/build.make:104: src/CMakeFiles/mujoco_ros.dir/ros_two/ros_api.cpp.o] Error 1
86.62 gmake[1]: *** [CMakeFiles/Makefile2:267: src/CMakeFiles/mujoco_ros.dir/all] Error 2
86.62 gmake: *** [Makefile:146: all] Error 2
86.62 ---
86.62 Failed <<< mujoco_ros [16.3s, exited with code 2]
86.64
86.64 Summary: 11 packages finished [1min 25s]
86.64 1 package failed: mujoco_ros
86.64 3 packages had stderr output: franka_control2 garmi_controllers mujoco_ros
86.64 15 packages not processed
------
Dockerfile:151
--------------------
150 | ENV CMAKE_PREFIX_PATH=~/Libraries/libfranka/lib/cmake:~/Libraries/mujoco/lib/cmake
151 | >>> RUN cd ~/humble_ws \
152 | >>> && source ~/.bashrc \
153 | >>> && . /opt/ros/humble/setup.sh \
154 | >>> && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
--------------------
ERROR: failed to solve: process "/bin/bash -c cd ~/humble_ws && source ~/.bashrc && . /opt/ros/humble/setup.sh && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release" did not complete successfully: exit code: 2
Is there something that I am missing?
Hi,
When trying to build the Docker, it seems the packaged from
mujoco_ros2_controlcannot be found.I tried to add the following lines to install the recommended fork at line 125:
With this change, when building I get errors from mujoco_ros
Docker output
Is there something that I am missing?