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

wl's profile - activity

2023-04-02 13:25:26 -0500 received badge  Famous Question (source)
2023-02-24 06:10:28 -0500 received badge  Notable Question (source)
2023-02-19 11:12:03 -0500 received badge  Popular Question (source)
2023-02-19 10:04:43 -0500 commented answer Cross-compilation of ROS2 Humble for Raspberry PI

Thank you, it worked! Build of rclcpp took 73min, but it has finished, at least!

2023-02-19 10:04:18 -0500 marked best answer Cross-compilation of ROS2 Humble for Raspberry PI

I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Model B.

My board is not new, it has 32-bit CPU and 1Gb of RAM. I have installed Ubuntu 22.10 server on it.

I have failed to find binary ROS2 packages for it and now trying to build them from source.

However, building on the Raspberry directly often fails, because a compiler exhausts RAM and OS kills it. I have installed ros_cross_compile tool and now trying to cross-compile ROS2 on my laptop. However, this tool tries to download packages instead of building them and fails.

Commands

mkdir -p ros2_humble/src
cd  ros2_humble
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src    
ros_cross_compile . --arch armhf --os ubuntu --rosdistro humble

Here is the tail of their output

INFO:Docker Client:+ apt-get install -y cmake acl libacl1-dev libatomic1 python3-pytest python3-dev ros-humble-mimick-vendor libconsole-bridge-dev libeigen3-dev git uncrustify doxygen libignition-cmake2-dev libopencv-dev ros-humble-fastcdr libssl-dev libtinyxml2-dev libasio-dev libtinyxml-dev python3-numpy python3-yaml python3-pytest-timeout qtbase5-dev libspdlog-dev python3-pycodestyle python3-catkin-pkg-modules python3-empy python3-pkg-resources python3-minimal ros-humble-orocos-kdl-vendor libqt5core5a libqt5gui5 qt5-qmake libbenchmark-dev libqt5opengl5 libqt5widgets5 ros-humble-laser-geometry ros-humble-cv-bridge python3-mypy python3-pytest-mock libassimp-dev python3-importlib-metadata ros-humble-urdfdom-headers libfreetype6 libx11-dev libxaw7-dev libxrandr-dev libgl1-mesa-dev libglu1-mesa-dev pkg-config libfreetype6-dev python3-flake8 python3-lark libxml2-utils python3-psutil python3-rosdistro-modules openssl libcunit1-devros-humble-kdl-parser libsqlite3-dev python3-setuptools python3-argcomplete python3-netifaces python3-packaging graphviz libgtest-dev rti-connext-dds-6.0.1 pydocstyle clang-tidy python3-babeltrace libbullet-dev pyflakes3 python3-lxml python3-cryptography libzstd-dev libignition-math6-dev libcurl4-openssl-dev curl file pybind11-dev python3-nose clang-format libyaml-dev python3-pytest-cov google-mock python3-lttng cppcheck ros-humble-urdfdom libyaml-cpp-dev

INFO:Docker Client:Reading package lists...
INFO:Docker Client:Building dependency tree...
INFO:Docker Client:Reading state information...
INFO:Docker Client:E: Unable to locate package ros-humble-mimick-vendor
E: Unable to locate package ros-humble-fastcdr
E: Unable to locate package ros-humble-orocos-kdl-vendor
E: Unable to locate package ros-humble-laser-geometry
E: Unable to locate package ros-humble-cv-bridge

INFO:Docker Client:E: Unable to locate package ros-humble-urdfdom-headers
E: Unable to locate package ros-humble-kdl-parser

INFO:Docker Client:E: Unable to locate package ros-humble-urdfdom

It tries to install the packages with apt instead of building them.

This command is written in the file cc_internals/armhf-ubuntu-humble/install_rosdeps.sh. I've tried to edit it, however, ros_cross_compile tool overwrites it, and I cannot find how to make it to use my own file instead of generating it.

I have tried to submit my customized install_rosdeps.sh with --custom-rosdep-script flag, but it didn't help.

2023-02-19 09:26:43 -0500 commented answer Cross-compilation of ROS2 Humble for Raspberry PI

Thank you, it worked! Build of rclcpp took 73min, but it has finished, at least! While I was waiting for it to finish, I

2023-02-19 09:26:18 -0500 commented answer Cross-compilation of ROS2 Humble for Raspberry PI

Thank you, it worked! Build of rclcpp took 73min, but it has finished, at least! While I was waiting for it to finish, I

2023-02-19 08:11:29 -0500 received badge  Supporter (source)
2023-02-18 13:50:46 -0500 edited question Cross-compilation of ROS2 Humble for Raspberry PI

Cross-compilation of ROS2 Humble for Raspberry PI I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Mode

2023-02-18 13:50:06 -0500 edited question Cross-compilation of ROS2 Humble for Raspberry PI

Cross-compilation of ROS2 Humble for Raspberry PI I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Mode

2023-02-18 13:37:15 -0500 edited question Cross-compilation of ROS2 Humble for Raspberry PI

Cross-compilation of ROS2 Humble for Raspberry PI I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Mode

2023-02-18 13:36:27 -0500 edited question Cross-compilation of ROS2 Humble for Raspberry PI

Cross-compilation of ROS2 Humble for Raspberry PI I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Mode

2023-02-18 09:14:02 -0500 edited question Cross-compilation of ROS2 Humble for Raspberry PI

Cross-compilation of ROS2 Humble for Raspberry PI I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Mode

2023-02-18 09:07:48 -0500 asked a question Cross-compilation of ROS2 Humble for Raspberry PI

Cross-compilation of ROS2 Humble for Raspberry PI I'm trying to cross-compile ROS2 Humble itself for Raspberry Pi 3 Mode

2022-11-07 09:56:05 -0500 commented answer ROS2 node communication across WSL2 border

I don't remember exactly what I have done, but after some manipulations Windows Defender Firewall started to ask what to

2022-11-07 09:10:47 -0500 commented answer ROS2 node communication across WSL2 border

I don't remember exactly what I have done, but after some manipulations Windows Defender Firewall started to ask what to

2022-09-12 09:39:17 -0500 received badge  Famous Question (source)
2022-06-23 09:07:09 -0500 received badge  Good Answer (source)
2022-03-31 12:35:08 -0500 received badge  Notable Question (source)
2022-03-11 14:37:59 -0500 received badge  Famous Question (source)
2022-01-10 14:45:38 -0500 received badge  Notable Question (source)
2022-01-06 03:35:39 -0500 marked best answer ROS2-foxy nodes can't communicate through docker container border

I'm new to ROS2. I've got a somewhat weird setup that I'm trying to launch. My issue is that minimal publisher and subscriber from examples don't hear each other.

I've got a docker container, based on Ubuntu 18.04, with ROS2 Foxy installed from sources. This container has installed environment that I have to use, namely, CUDA 10.0 and some software using it.

This container is run on Ubuntu 20.04 host. This host has also installed ROS2 Foxy from Debian packages.

I run the container with --net host, then launch minimal subscriber from examples in it. Then I run minimal publisher on the host.

That is on host:

$ docker run --rm -it --net host container

In container:

# ros2 run examples_rclpy_minimal_subscriber subscriber_member_function

On host in another terminal:

$ source /opt/ros/foxy/setup.zsh
$ ros2 run examples_rclpy_minimal_publisher publisher_local_function

The issue is that the subscriber doesn't hear anything from the publisher. The same issue is observed, if I swap subscriber and publisher, that is run publisher in the container and subscriber on the host.

If I execute both subscriber and publisher in the container, subscriber hears it. On host:

docker exec -it container /bin/bash

In container:

ros2 run examples_rclpy_minimal_publisher publisher_local_function

And subscriber prints "I heard hello".

At the same time, multicast messages (ros2 multicast send, ros2 multicast receive) are sent and received successfully.

If I run the container without --net key, then the subscriber running in it, sees messages from the publisher. However, this limits usage of the container. It won't be seen from another PC.

I've pasted the minimal Dockerfile illustrating the issue at the bottom of this message (unfortunately, I cannot attach it).

I've also pushed image to the dockerhub, and it can be downloaded with the command docker pull wl2776/nvidia-ros:latest

What I've also checked.

  1. Running netcat both in container and on host shows that the traffic is passed through the container boundary. If I replace subsriber in the container with netcat it prints several packets. That is, on host:

    $ docker run --rm -it --net host container
    $ docker cp /bin/nc.openbsd container:/tmp
    

    In container:

    # /tmp/nc.openbsd -l -u -p 7400 | od -
    

    On host in another terminal:

    $ source /opt/ros/foxy/setup.zsh
    $ ros2 run examples_rclpy_minimal_publisher publisher_local_function
    

    And I see several dumps from nc

  2. I've also tried the experiment with minimal publisher and subscriber using docker image tagged osrf/ros:foxy-desktop from dockerhub. Everything has worked perfectly.

  3. When minimal subscriber runs in the container, its node and topic are seen on the host. On host, while subscriber in the container is running:

    $ ros2 topic list
    /parameter_events
    /rosout
    /topic
    $ ros2 node list
    /minimal_subscriber
    

    If I stop minimal subsriber in the container with Ctrl-C, then it disappears from ros2 node list

  4. Sniffing packets with tcpdump shows that subscriber in OSRF's container sends RTPS packets with version 2.3, but mine - with version 2.2. They also have different sizes (252 bytes from OSRF's ...

(more)
2021-12-27 07:04:19 -0500 received badge  Notable Question (source)
2021-11-09 03:36:41 -0500 received badge  Good Question (source)
2021-10-27 16:01:41 -0500 received badge  Popular Question (source)
2021-10-12 18:27:12 -0500 received badge  Popular Question (source)
2021-09-23 11:16:19 -0500 commented answer List sourced workspaces

Indeed, this variable contains the list of of sourced workspaces. Thank you! Unfortunately, my initial idea is not very

2021-09-23 11:10:31 -0500 marked best answer List sourced workspaces

I'm experimenting with shell plugins, dynamically updating command line prompt.

Currently I'm running Zsh + OhMyZsh + powerlevel10k

I've managed to add ROS2 distro name and ROS2 domain ID to the command prompt. That was easy: I've added a shell function looking at environment vars ROS_DISTRO and ROS_DOMAIN_ID:

function prompt_my_ros2_env() {
    if [[ -v ROS_DISTRO ]]; then
        local ros_domain_id=""
        if [[ -v ROS_DOMAIN_ID ]]; then
            ros_domain_id="[$ROS_DOMAIN_ID]"
        fi

        p10k segment -t "$ROS_DISTRO$ros_domain_id"
    fi
}
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS+=my_ros2_env

Now I wonder, is it possible to create a list of sourced ROS2 workspaces?

I can see that some environment variables change after execution of source ./install/local_setup.zsh command, for example AMENT_PREFIX_PATH, PYTHONPATH, LD_LIBRARY_PATH. But sourcing one workspace adds several directories to almost each of them.

2021-09-20 22:45:17 -0500 received badge  Popular Question (source)
2021-09-19 10:44:28 -0500 edited question List sourced workspaces

List sourced workspaces I'm experimenting with shell plugins, dynamically updating command line prompt. Currently I'm r

2021-09-19 10:44:18 -0500 edited question List sourced workspaces

List sourced workspaces I'm experimenting with shell plugins, dynamically updating command line prompt. Currently I'm r

2021-09-19 10:39:50 -0500 commented answer List sourced workspaces

Currently I've got only one workspace, and maybe add one more in the future. The issue I'm solving is to provide a visua

2021-09-19 10:17:10 -0500 asked a question List sourced workspaces

List sourced workspaces I'm experimenting with shell plugins, dynamically updating command line prompt. Currently I'm r

2021-09-02 09:32:14 -0500 marked best answer ROS2 node communication across WSL2 border

Setup.

Windows 10 with all recent updates.

Ubuntu 20.04 inside WSL2 on that Windows. Also, all recent updates.

ROS2 rolling release, installed in Windows 10. The release uses CycloneDDS. For some reason I cannot run neither Foxy, nor Galactic installation. Here is the description of the bug: https://github.com/ros2/ros2/issues/1164

ROS2 Galactic, installed on Ubuntu inside WSL2 from Debian packages, recently updated.

Problem

Limited communication between ROS2 nodes, running on Windows and on Ubuntu/WSL2.

Default interface

ROS2 node on windows always tries to use Ethernet instead of WSL2 virtual network. This was solved by setting following CycloneDDS config:

<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain id="any">
    <General>
        <NetworkInterfaceAddress>172.30.224.1</NetworkInterfaceAddress>
        <AllowMulticast>true</AllowMulticast>
        <MaxMessageSize>65500B</MaxMessageSize>
        <FragmentSize>4000B</FragmentSize>
        <Transport>udp</Transport>
    </General>
<!--        <Discovery>-->
        <!--<Peers>-->
            <!--<Peer address="172.30.227.89"/>-->
            <!--<Peer address="172.30.224.1"/>-->
        <!--</Peers>-->
        <!--<ParticipantIndex>auto</ParticipantIndex>-->
    <!--</Discovery>-->
    <Tracing>
        <Verbosity>fine</Verbosity>
        <OutputFile>c:/work/cyclonedds/cdds-win.${CYCLONEDDS_PID}.log</OutputFile>
    </Tracing>
</Domain>
</CycloneDDS>


set CYCLONEDDS_URI=c:/work/cyclonedds/cdds_wsl2_win.xml

Similar config has been set for ros2 on Ubuntu/WSL

I've tried commenting and uncommenting "Discovery" tag, the situation doesn't change.

Multicast

Commands

ros2 multicast send
ros2 multicast receive

don't show any output, if one of them is run on Windows and another - on Ubuntu/WSL, no matter, what OS runs receive.

Talker/listener from demo nodes

I've got the following table, showing when the listener listens "Hellos" from the talker. Only two combinations out of 8. Any version of talker on Linux (Python or C++) and C++ listener on Windows.

Windows        Linux     
cpp talker     cpp listener  -> no connection
cpp listener   cpp talker    -> connected!
py talker      py listener    -> no connection
py listener    py talker        -> no connection
py talker      cpp listener    -> no connection
cpp talker     py listener     -> no connection
py listener    cpp talker     -> no connection
cpp listener   py talker      -> connected!

Question

How can I debug and resolve it?

2021-09-02 09:32:09 -0500 answered a question ROS2 node communication across WSL2 border

The issue was in the windows firewall settings.

2021-09-02 09:32:09 -0500 received badge  Rapid Responder (source)
2021-09-02 03:31:46 -0500 edited question ROS2 node communication across WSL2 border

ROS2 node communication across WSL2 border Setup. Windows 10 with all recent updates. Ubuntu 20.04 inside WSL2 on that

2021-09-01 11:19:50 -0500 edited question ROS2 node communication across WSL2 border

ROS2 node communication across WSL2 border Setup. Windows 10 with all recent updates. Ubuntu 20.04 inside WSL2 on that

2021-09-01 11:18:59 -0500 asked a question ROS2 node communication across WSL2 border

ROS2 node communication across WSL2 border Setup. Windows 10 with all recent updates. Ubuntu 20.04 inside WSL2 on that