Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. Software Development
  3. ROS
  4. Ros2 Humble on Voxl2

Ros2 Humble on Voxl2

Scheduled Pinned Locked Moved ROS
4 Posts 2 Posters 2.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Online
    J Online
    jmltt
    Regular
    wrote on last edited by
    #1

    I have several Sentinel drones with ros2 foxy installed via voxl-ros2-foxy and I need to switch to running ros2 humble on the quads. From what I've seen there's no way to get around having to run it via docker, but I have a few questions:

    1. Are there instructions on installing docker on target? The modalai guide (https://docs.modalai.com/docker-on-voxl/) references to just use the docker instructions to install via apt, but the docker install instructions linked to require an ubuntu o.s. newer than 20.04 so I wasn't sure if it would work.

    2. In switching to ros2 humble onboard the voxl2 do I need to update the dds client module and rebuild voxl-px4 and rebuild the voxl-microdds-agent as well? I'm assuming that if they're built to work with ros2 foxy they're going to be dependent on older versions of fast-dds than what humble would be using and might not be compatible

    3. Are there any example docker run commands that are recommended for running containers onboard voxl2 with proper permissions for using the networking interfaces and mounting whatever volumes ros2 would need to run and work with px4?

    Basically if you guys are running ros2 humble out of docker on voxl2 what did your set-up look like and did you run into any compatibility issues?

    Thanks!

    1 Reply Last reply
    0
    • Zachary Lowell 0Z Offline
      Zachary Lowell 0Z Offline
      Zachary Lowell 0
      ModalAI Team
      wrote on last edited by
      #2

      @jmltt said in Ros2 Humble on Voxl2:

      Are there instructions on installing docker on target? The modalai guide (https://docs.modalai.com/docker-on-voxl/) references to just use the docker instructions to install via apt, but the docker install instructions linked to require an ubuntu o.s. newer than 20.04 so I wasn't sure if it would work.

      @jmltt please find answers for your questions below:

      1. Are there instructions on installing docker on target? The modalai guide (https://docs.modalai.com/docker-on-voxl/) references to just use the docker instructions to install via apt, but the docker install instructions linked to require an ubuntu o.s. newer than 20.04 so I wasn't sure if it would work. --> I always just use this file to install docker on target on the voxl2 (works for any ubuntu device as well btw): https://github.com/docker/docker-install/blob/master/install.sh

      2. In switching to ros2 humble onboard the voxl2 do I need to update the dds client module and rebuild voxl-px4 and rebuild the voxl-microdds-agent as well? I'm assuming that if they're built to work with ros2 foxy they're going to be dependent on older versions of fast-dds than what humble would be using and might not be compatible -> No you do not need to reinstall the fast dds with a different instance. Keep in mind the DDS is ros2 agnostic and runs as the middleware BUT I will test this out this morning.

      3. For examples the best I can do is show you what I do when running something like ros2 docker containers:

      E.G:

                      -v /usr/include/modal_pipe_common.h:/usr/include/modal_pipe_common.h \
                      -v /usr/include/modal_pipe_client.h:/usr/include/modal_pipe_client.h \
                      -v /usr/include/c_library_v2:/usr/include/c_library_v2 \
                      -v /run/mpa:/run/mpa \
                      -v /usr/bin/voxl-list-pipes:/usr/bin/voxl-list-pipes \
                      -v /usr/include/voxl_cutils.h:/usr/include/voxl_cutils.h \
                      -v /usr/include/cJSON.h:/usr/include/cJSON.h \
                      -v /usr/include/modal_pipe_deprecated.h:/usr/include/modal_pipe_deprecated.h \
                      -v /usr/include/modal_pipe_interfaces.h:/usr/include/modal_pipe_interfaces.h \
                      -v /usr/include/modal_pipe_common.h:/usr/include/modal_pipe_common.h \
                      -v /usr/include/modal_pipe_client.h:/usr/include/modal_pipe_client.h \
                      -v /usr/include/modal_start_stop.h:/usr/include/modal_start_stop.h \
                      -v /usr/lib64/libvoxl_cutils.so:/usr/lib/libvoxl_cutils.so \
                      -v /usr/lib64/libmodal_json.so:/usr/lib/libmodal_json.so \
                      -v /usr/lib64/libmodal_pipe.so:/usr/lib/libmodal_pipe.so \
      		-v /usr/lib/libgbm.so:/usr/lib/aarch64-linux-gnu/libgbm.so \
                      -v /tmp:/tmp \
                      -v /etc/modalai:/etc/modalai \
                      -v /dev:/host/dev"
      
                  docker run --rm -it \
                      --privileged \
                      --net=host \
                      --ipc=host \
                      ${VOLUMES} \
                      -e ROS_DOMAIN_ID=$ROS_DOMAIN_ID \
                      --entrypoint "/bin/bash" \
                      DOCKER_IMAGE_NAME_AND_TAG -c /bin/bash
      
      1 Reply Last reply
      1
      • Zachary Lowell 0Z Offline
        Zachary Lowell 0Z Offline
        Zachary Lowell 0
        ModalAI Team
        wrote on last edited by
        #3

        Confirmed - can run the dds with humble running in the docker container:

        voxl2 (M0054):~$ apt-get install voxl-microdds-agent
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        The following NEW packages will be installed:
          voxl-microdds-agent
        0 upgraded, 1 newly installed, 0 to remove and 40 not upgraded.
        Need to get 0 B/4874 kB of archives.
        After this operation, 0 B of additional disk space will be used.
        Get:1 file:/data/voxl-suite-offline-packages ./ voxl-microdds-agent 3.0.0-0 [4874 kB]
        debconf: delaying package configuration, since apt-utils is not installed
        Selecting previously unselected package voxl-microdds-agent.
        (Reading database ... 104493 files and directories currently installed.)
        Preparing to unpack .../voxl-microdds-agent_3.0.0-0_arm64.deb ...
        Unpacking voxl-microdds-agent (3.0.0-0) ...
        Setting up voxl-microdds-agent (3.0.0-0) ...
        voxl2 (M0054):~$ systemctl start voxl-microdds-agent
        voxl2 (M0054):~$ systemctl status voxl-microdds-agent
        ● voxl-microdds-agent.service - voxl-microdds-agent
           Loaded: loaded (/usr/bin/MicroXRCEAgent; disabled; vendor preset: enabled)
           Active: active (running) since Tue 2025-11-25 15:13:37 UTC; 14s ago
         Main PID: 3370 (MicroXRCEAgent)
            Tasks: 28 (limit: 4915)
           CGroup: /system.slice/voxl-microdds-agent.service
                   └─3370 /usr/bin/MicroXRCEAgent udp4 -p 8888
        
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.308177] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0DF(5), publisher_id: 0x0DF(3)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.308829] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x00000001, topic_id: 0x0E6(2), participant_id: 0x001(1)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.308994] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x00000001, publisher_id: 0x0E6(3), participant_id: 0x001(1)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.309525] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0E6(5), publisher_id: 0x0E6(3)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310013] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x00000001, topic_id: 0x0EB(2), participant_id: 0x001(1)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310133] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x00000001, publisher_id: 0x0EB(3), participant_id: 0x001(1)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310468] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0EB(5), publisher_id: 0x0EB(3)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310981] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x00000001, topic_id: 0x0F0(2), participant_id: 0x001(1)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.311145] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x00000001, publisher_id: 0x0F0(3), participant_id: 0x001(1)
        Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.311488] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0F0(5), publisher_id: 0x0F0(3)
        voxl2 (M0054):~$ docker images
        REPOSITORY                               TAG        IMAGE ID       CREATED       SIZE
        ros2-image   ed11b766   1040efe3dc33   2 weeks ago   2.33GB
        voxl2 (M0054):~$ docker run -it --rm --net=host --ipc=host ros2-image /bin/bash
        root@m0054:/# cd
        root@m0054:~# ls
        root@m0054:~# source /opt/ros/humble/setup.bash
        root@m0054:~# ros2 topic list
        /fmu/in/obstacle_distance
        /fmu/in/offboard_control_mode
        /fmu/in/onboard_computer_status
        /fmu/in/sensor_optical_flow
        /fmu/in/telemetry_status
        /fmu/in/trajectory_setpoint
        /fmu/in/vehicle_attitude_setpoint
        /fmu/in/vehicle_command
        /fmu/in/vehicle_mocap_odometry
        /fmu/in/vehicle_rates_setpoint
        /fmu/in/vehicle_trajectory_bezier
        /fmu/in/vehicle_trajectory_waypoint
        /fmu/in/vehicle_visual_odometry
        /fmu/out/battery_status
        /fmu/out/failsafe_flags
        /fmu/out/position_setpoint_triplet
        /fmu/out/sensor_combined
        /fmu/out/timesync_status
        /fmu/out/vehicle_attitude
        /fmu/out/vehicle_control_mode
        /fmu/out/vehicle_local_position
        /fmu/out/vehicle_odometry
        /fmu/out/vehicle_status
        /parameter_events
        /rosout
        
        J 1 Reply Last reply
        1
        • Zachary Lowell 0Z Zachary Lowell 0

          Confirmed - can run the dds with humble running in the docker container:

          voxl2 (M0054):~$ apt-get install voxl-microdds-agent
          Reading package lists... Done
          Building dependency tree
          Reading state information... Done
          The following NEW packages will be installed:
            voxl-microdds-agent
          0 upgraded, 1 newly installed, 0 to remove and 40 not upgraded.
          Need to get 0 B/4874 kB of archives.
          After this operation, 0 B of additional disk space will be used.
          Get:1 file:/data/voxl-suite-offline-packages ./ voxl-microdds-agent 3.0.0-0 [4874 kB]
          debconf: delaying package configuration, since apt-utils is not installed
          Selecting previously unselected package voxl-microdds-agent.
          (Reading database ... 104493 files and directories currently installed.)
          Preparing to unpack .../voxl-microdds-agent_3.0.0-0_arm64.deb ...
          Unpacking voxl-microdds-agent (3.0.0-0) ...
          Setting up voxl-microdds-agent (3.0.0-0) ...
          voxl2 (M0054):~$ systemctl start voxl-microdds-agent
          voxl2 (M0054):~$ systemctl status voxl-microdds-agent
          ● voxl-microdds-agent.service - voxl-microdds-agent
             Loaded: loaded (/usr/bin/MicroXRCEAgent; disabled; vendor preset: enabled)
             Active: active (running) since Tue 2025-11-25 15:13:37 UTC; 14s ago
           Main PID: 3370 (MicroXRCEAgent)
              Tasks: 28 (limit: 4915)
             CGroup: /system.slice/voxl-microdds-agent.service
                     └─3370 /usr/bin/MicroXRCEAgent udp4 -p 8888
          
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.308177] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0DF(5), publisher_id: 0x0DF(3)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.308829] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x00000001, topic_id: 0x0E6(2), participant_id: 0x001(1)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.308994] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x00000001, publisher_id: 0x0E6(3), participant_id: 0x001(1)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.309525] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0E6(5), publisher_id: 0x0E6(3)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310013] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x00000001, topic_id: 0x0EB(2), participant_id: 0x001(1)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310133] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x00000001, publisher_id: 0x0EB(3), participant_id: 0x001(1)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310468] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0EB(5), publisher_id: 0x0EB(3)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.310981] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x00000001, topic_id: 0x0F0(2), participant_id: 0x001(1)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.311145] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x00000001, publisher_id: 0x0F0(3), participant_id: 0x001(1)
          Nov 25 15:13:38 m0054 MicroXRCEAgent[3370]: [1764083618.311488] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x00000001, datawriter_id: 0x0F0(5), publisher_id: 0x0F0(3)
          voxl2 (M0054):~$ docker images
          REPOSITORY                               TAG        IMAGE ID       CREATED       SIZE
          ros2-image   ed11b766   1040efe3dc33   2 weeks ago   2.33GB
          voxl2 (M0054):~$ docker run -it --rm --net=host --ipc=host ros2-image /bin/bash
          root@m0054:/# cd
          root@m0054:~# ls
          root@m0054:~# source /opt/ros/humble/setup.bash
          root@m0054:~# ros2 topic list
          /fmu/in/obstacle_distance
          /fmu/in/offboard_control_mode
          /fmu/in/onboard_computer_status
          /fmu/in/sensor_optical_flow
          /fmu/in/telemetry_status
          /fmu/in/trajectory_setpoint
          /fmu/in/vehicle_attitude_setpoint
          /fmu/in/vehicle_command
          /fmu/in/vehicle_mocap_odometry
          /fmu/in/vehicle_rates_setpoint
          /fmu/in/vehicle_trajectory_bezier
          /fmu/in/vehicle_trajectory_waypoint
          /fmu/in/vehicle_visual_odometry
          /fmu/out/battery_status
          /fmu/out/failsafe_flags
          /fmu/out/position_setpoint_triplet
          /fmu/out/sensor_combined
          /fmu/out/timesync_status
          /fmu/out/vehicle_attitude
          /fmu/out/vehicle_control_mode
          /fmu/out/vehicle_local_position
          /fmu/out/vehicle_odometry
          /fmu/out/vehicle_status
          /parameter_events
          /rosout
          
          J Online
          J Online
          jmltt
          Regular
          wrote on last edited by
          #4

          @Zachary-Lowell-0

          Thank you for the feedback! This was very helpful

          1 Reply Last reply
          0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          ModalAI
          Categories Recent Tags ModalAI.com Docs
          © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups