Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate dev #17

Merged
merged 6 commits into from
Feb 13, 2024
Merged

Separate dev #17

merged 6 commits into from
Feb 13, 2024

Conversation

marc-hanheide
Copy link
Member

@marc-hanheide marc-hanheide commented Feb 12, 2024

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update

Description

This now does the following:

  • installs zenoh-bridge-dds (see https://zenoh.io/blog/2021-04-28-ros2-integration/) which allows to easily bridge the two ROS networks (using cyclone DDS, at least only tested with Cyclone!). E.g. running zenoh-bridge-ros2dds -l tcp/0.0.0.0:8888 on the robot now starts a single TCP port server that any client can connect to via e.g zenoh-bridge-ros2dds -e tcp/IP_OF_ROBOT:8888 and it makes all ROS DDS available on the client.
  • configures the setup to use Cyclone DDS (was there before!), but now is configured to only work with the local address space and not use multicast (as we connect via Zenoh, see above).
  • it now has 2 separate dev containers, on for development on the desktop (amd64) and one to work on the actual robot (arm64). They are called on_amd64 and on_limo respectively. One should choose the right one depending on the situation (vscode prompts).
  • correct the devcontainer format to comply with the standard, e.g. customisations
  • it also installs a compiled version of the limo_ros2 repo into /opt/ros/lcas and configures its use, so this also now works without having to compile the workspace first (which can still be overlaid)

Related Tickets & Documents

  • Related Issue #
  • Closes #

QA Instructions, Screenshots, Recordings

Please try out the new on_amd64 dev container, e.g. run

  • ros2 launch limo_gazebosim limo_gazebo_diff.launch.py
  • zenoh-bridge-ros2dds -l tcp/0.0.0.0:8888

and confirm that working. Optionally, try on the real platform

[optional] Are there any post deployment tasks we need to perform?

@marc-hanheide marc-hanheide self-assigned this Feb 12, 2024
RUN bash -c "source '$HOME/.cargo/env'; cargo build --release -p zenoh-bridge-ros2dds"
RUN install target/release/zenoh-bridge-ros2dds /usr/local/bin/
WORKDIR /

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install zenoh DDS ROS2 bridge

pip install -U argcomplete

rm -rf /opt/ros/lcas
mkdir -p /opt/ros/lcas/src
cd /opt/ros/lcas/src
vcs import < /tmp/.devcontainer/dds.repos
#rosdep install --from-paths . -r -i -y
vcs import < /tmp/.devcontainer/lcas.repos
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

install the version from this repo globally (not just as workspace)


#cd /home/lcas/ws
#colcon build
echo "source /opt/ros/lcas/install/setup.bash" >> ~/.bashrc
echo "source /opt/ros/lcas/install/setup.bash" >> /etc/bash.bashrc
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

configure globally, not just for root user

@@ -0,0 +1,64 @@
// https://github.com/athackst/vscode_ros2_workspace
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new dev container for desktop, that shouldn't use host networking and elevated permissions (and GPU)

@@ -0,0 +1,64 @@
// https://github.com/athackst/vscode_ros2_workspace
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the devcontainer to use on the robot

RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use CYCLONE and configure it without multicast to avoid the robots all talking over one another.

@@ -74,7 +74,7 @@ jobs:
uses: docker/setup-qemu-action@v3
- name: Build and push limo_ros2 for arm64
# only build for arm if not PR to speed things up
#if: ${{ github.event_name != 'pull_request' }}
if: ${{ github.event_name != 'pull_request' }}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only build arm when it is not a PR (to save time)

@marc-hanheide marc-hanheide marked this pull request as ready for review February 12, 2024 16:36
@marc-hanheide
Copy link
Member Author

@LeonardoGuevara and @francescodelduchetto let me know if you see any issues with this as I'd like to merge for my teaching. I think this is a substantial improvement, but I still need to test on the robots. But it compiles fine for arm64 already.

@francescodelduchetto
Copy link
Member

@LeonardoGuevara and @francescodelduchetto let me know if you see any issues with this as I'd like to merge for my teaching. I think this is a substantial improvement, but I still need to test on the robots. But it compiles fine for arm64 already.

I am not using the LIMOs for RBT1001, so I don't know :-)

@marc-hanheide
Copy link
Member Author

ah. okay. then it shouldn't worry you.

@marc-hanheide marc-hanheide removed the request for review from francescodelduchetto February 12, 2024 17:33
@marc-hanheide
Copy link
Member Author

ah. okay. then it shouldn't worry you.

@marc-hanheide
Copy link
Member Author

@LeonardoGuevara, this Zenoh stuff is also the way I propose talking to our real robots in AOC!

@LeonardoGuevara
Copy link
Collaborator

Adding @jondave to this since he is the one covering the use of LIMOs.

@marc-hanheide
Copy link
Member Author

I'd like to merge tomorrow for my workshop on Wednesday if possible, please

@jondave
Copy link

jondave commented Feb 12, 2024

I don't see any issues as we are getting the students to use the limos by remotely accessing them via SSH the same as the MSc module last semester.

@marc-hanheide marc-hanheide merged commit 0a7a30f into humble Feb 13, 2024
2 checks passed
@marc-hanheide marc-hanheide deleted the separate-dev branch February 13, 2024 07:16
@cooperj
Copy link
Member

cooperj commented Feb 13, 2024

Resolves #15 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants