ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    m500 ROS 2 Support

    ROS
    5
    5
    504
    Loading More Posts
    • 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.
    • B
      BryceH
      last edited by

      Hi.
      I am currently using an m500 drone with ROS1 and have been looking into upgrading to ROS2.

      Is ROS2 currently supported on the m500 drone? If not, does Modalai have any plans to provide ROS2 support on the m500?

      Regards,
      Bryce H.

      1 Reply Last reply Reply Quote 1
      • ?
        A Former User
        last edited by

        Hi Bryce,

        The voxl board in the M500 runs a system that we don't plan to support ROS2 on natively since it's a very custom yocto build. Our new VOXL2 platform has been intentionally designed to run on an ubuntu 18.04 image to allow installing libraries of all sorts from the standard ubuntu repos (such as ROS2).

        It is theoretically possible to get ros2 on a voxl, but you'd either have have to use an ubuntu docker image (we provide a sample 16.04 image for running ros kinetic on voxl) or rebuild the whole ROS2 project(and probably many of it's dependencies) manually.

        1 Reply Last reply Reply Quote 0
        • Connor FuhrmanC
          Connor Fuhrman
          last edited by

          Bryce - were you successful in running ROS2 on the VOXL? I'm working with a Docker container built from the official ROS2 Foxy container that just adds a simple proof-of-concept package for our use case and ran into some issues actually running a container from my image.

          The container itself runs fine but my ROS2 launch script won't execute. My issues, I believe, surround the pseudoterminal interface on the VOXL's Linux build. ROS2 launch is using the pty Python package and pty.openpty() looks for BSD-style pseudoterminals and I assume the onboard Linux kernel was compiled with the option to disable that depreciated interface (someone please chime in and correct me if I'm wrong). I'm currently wrestling the Docker image to work correctly on the VOXL Flight board.

          Am thinking about trying to run Singularity/Apptainer on the VOXL since it's computerization but focused on integration rather than isolation because I think my issues are Docker-related. Not sure if anyone has tried Singularity or not...

          1 Reply Last reply Reply Quote 0
          • I
            Ivan-Gambit
            last edited by

            Double checking to see if there were any updates in terms of getting ROS2 to work on the M500?

            Alex KushleyevA 1 Reply Last reply Reply Quote 0
            • Alex KushleyevA
              Alex Kushleyev ModalAI Team @Ivan-Gambit
              last edited by

              I just tried this real quick on VOXL1 and indeed there is an issue related to pty

              on PC:

              docker pull arm64v8/ros:rolling-ros-core
              docker image save arm64v8/ros:rolling-ros-core | gzip > rolling-ros-core-arm64v8.tar.gz
              adb push rolling-ros-core-arm64v8.tar.gz /data/
              

              on VOXL1:

              adb shell
              cd /data
              docker load < rolling-ros-core-arm64v8.tar.gz
              
              cd /home/root
              mkdir ros2
              cd ros2
              
              docker run -it --rm --privileged -v `pwd`:/home/user -w /home/user arm64v8/ros:rolling-ros-core
              
              #now inside docker container
              apt-get update
              apt install python3-colcon-common-extensions
              

              then follow example to set up a demo project : https://roboticsbackend.com/ros2-launch-file-example/

              run (inside docker container)
              colcon build

              Error:

                 stdout_descriptor, stdout = pty.openpty()
                File "/usr/lib/python3.10/pty.py", line 34, in openpty
                  master_fd, slave_name = _open_terminal()
                File "/usr/lib/python3.10/pty.py", line 64, in _open_terminal
                  raise OSError('out of pty devices')
              OSError: out of pty devices
              ---
              Failed   <<< my_robot_bringup [0.21s, exited with code 1]
              
              Summary: 0 packages finished [3.72s]
                1 package failed: my_robot_bringup
                1 package had stderr output: my_robot_bringup
              out of pty device
              

              After doing a quick search, cannot figure it out. It is probably related to very old docker version on VOXL1.. Not sure if anything can be done..

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Powered by NodeBB | Contributors