ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

interbotix_footswitch_driver interbotix_footswitch_msgs interbotix_ros_slate interbotix_slate_driver interbotix_slate_msgs dynamixel_workbench_toolbox interbotix_ros_xseries interbotix_xs_driver interbotix_xs_msgs interbotix_xs_sdk interbotix_ros_xsarms_examples interbotix_xsarm_diagnostic_tool interbotix_xsarm_dual interbotix_xsarm_dual_joy interbotix_xsarm_joy interbotix_xsarm_moveit_interface interbotix_xsarm_pid interbotix_xsarm_puppet interbotix_ros_xsarms interbotix_xsarm_control interbotix_xsarm_descriptions interbotix_xsarm_moveit interbotix_xsarm_perception interbotix_xsarm_ros_control interbotix_xsarm_sim interbotix_common_modules interbotix_common_sim interbotix_common_toolbox interbotix_landmark_modules interbotix_moveit_interface interbotix_moveit_interface_msgs interbotix_tf_tools interbotix_io_modules interbotix_io_toolbox interbotix_perception_modules interbotix_perception_msgs interbotix_perception_pipelines interbotix_perception_toolbox interbotix_rpi_modules interbotix_rpi_msgs interbotix_rpi_toolbox interbotix_xs_modules interbotix_xs_ros_control interbotix_xs_rviz interbotix_xs_toolbox moveit_visual_tools cartographer_demo multi_lidar_desp multi_lidar_gazebo aws_robomaker_hospital_world aws_robomaker_small_house_world aws_robomaker_small_warehouse_world citysim clearpath_playpen gazebo_launch turtlebot3_gazebo lms1xx husky_base husky_bringup husky_control husky_description husky_desktop husky_gazebo husky_msgs husky_navigation husky_robot husky_simulator husky_viz cmd_vel_mux ecl_command_line ecl_concepts ecl_containers ecl_converters ecl_core ecl_core_apps ecl_devices ecl_eigen ecl_exceptions ecl_filesystem ecl_formatters ecl_geometry ecl_ipc ecl_linear_algebra ecl_manipulators ecl_math ecl_mobile_robot ecl_mpl ecl_sigslots ecl_statistics ecl_streams ecl_threads ecl_time ecl_type_traits ecl_utilities ecl_config ecl_console ecl_converters_lite ecl_errors ecl_io ecl_lite ecl_sigslots_lite ecl_time_lite kobuki_core kobuki_keyop kobuki_node kobuki_ros kobuki_ros_interfaces sophus kobuki_control kobuki_description kobuki_gazebo kobuki_launch kobuki_navigation kobuki_rviz velodyne_description velodyne_gazebo_plugins velodyne_simulator rtabmap_sim minimal_pkg turtlebot3 turtlebot3_bringup turtlebot3_cartographer turtlebot3_description turtlebot3_example turtlebot3_navigation2 turtlebot3_node turtlebot3_teleop turtlebot3_cartographer_ex turtlebot3_fake_node turtlebot3_simulations vlp_cartographer

Repository Summary

Checkout URI https://github.com/j3soon/ros2-essentials.git
VCS Type git
VCS Version main
Last Updated 2025-02-20
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
interbotix_footswitch_driver 0.0.0
interbotix_footswitch_msgs 0.0.0
interbotix_ros_slate 0.0.0
interbotix_slate_driver 0.0.0
interbotix_slate_msgs 0.0.0
dynamixel_workbench_toolbox 2.2.2
interbotix_ros_xseries 0.0.0
interbotix_xs_driver 0.3.7
interbotix_xs_msgs 0.0.0
interbotix_xs_sdk 0.0.0
interbotix_ros_xsarms_examples 0.0.0
interbotix_xsarm_diagnostic_tool 0.0.0
interbotix_xsarm_dual 0.0.0
interbotix_xsarm_dual_joy 0.0.0
interbotix_xsarm_joy 0.0.0
interbotix_xsarm_moveit_interface 0.0.0
interbotix_xsarm_pid 0.0.0
interbotix_xsarm_puppet 0.0.0
interbotix_ros_xsarms 0.0.0
interbotix_xsarm_control 0.0.0
interbotix_xsarm_descriptions 0.0.0
interbotix_xsarm_moveit 0.3.0
interbotix_xsarm_perception 0.0.0
interbotix_xsarm_ros_control 0.0.0
interbotix_xsarm_sim 0.0.0
interbotix_common_modules 0.0.0
interbotix_common_sim 0.0.0
interbotix_common_toolbox 0.0.0
interbotix_landmark_modules 0.0.0
interbotix_moveit_interface 0.0.0
interbotix_moveit_interface_msgs 0.0.0
interbotix_tf_tools 0.0.0
interbotix_io_modules 0.0.0
interbotix_io_toolbox 0.0.0
interbotix_perception_modules 0.0.0
interbotix_perception_msgs 0.0.0
interbotix_perception_pipelines 0.0.0
interbotix_perception_toolbox 0.0.0
interbotix_rpi_modules 0.0.0
interbotix_rpi_msgs 0.0.0
interbotix_rpi_toolbox 0.0.0
interbotix_xs_modules 0.0.0
interbotix_xs_ros_control 0.0.0
interbotix_xs_rviz 0.0.0
interbotix_xs_toolbox 0.0.0
moveit_visual_tools 4.1.0
cartographer_demo 0.0.0
multi_lidar_desp 0.0.0
multi_lidar_gazebo 0.0.0
aws_robomaker_hospital_world 1.0.0
aws_robomaker_small_house_world 1.0.0
aws_robomaker_small_warehouse_world 1.0.5
citysim 0.0.0
clearpath_playpen 0.0.0
gazebo_launch 0.0.0
turtlebot3_gazebo 2.2.6
lms1xx 1.0.1
husky_base 1.0.8
husky_bringup 1.0.8
husky_control 1.0.8
husky_description 1.0.8
husky_desktop 1.0.8
husky_gazebo 1.0.8
husky_msgs 1.0.8
husky_navigation 0.0.0
husky_robot 1.0.8
husky_simulator 1.0.8
husky_viz 1.0.8
cmd_vel_mux 0.12.1
ecl_command_line 1.2.1
ecl_concepts 1.2.1
ecl_containers 1.2.1
ecl_converters 1.2.1
ecl_core 1.2.1
ecl_core_apps 1.2.1
ecl_devices 1.2.1
ecl_eigen 1.2.1
ecl_exceptions 1.2.1
ecl_filesystem 1.2.1
ecl_formatters 1.2.1
ecl_geometry 1.2.1
ecl_ipc 1.2.1
ecl_linear_algebra 1.2.1
ecl_manipulators 1.2.1
ecl_math 1.2.1
ecl_mobile_robot 1.2.1
ecl_mpl 1.2.1
ecl_sigslots 1.2.1
ecl_statistics 1.2.1
ecl_streams 1.2.1
ecl_threads 1.2.1
ecl_time 1.2.1
ecl_type_traits 1.2.1
ecl_utilities 1.2.1
ecl_config 1.2.0
ecl_console 1.2.0
ecl_converters_lite 1.2.0
ecl_errors 1.2.0
ecl_io 1.2.0
ecl_lite 1.2.0
ecl_sigslots_lite 1.2.0
ecl_time_lite 1.2.0
kobuki_core 1.3.1
kobuki_keyop 1.0.0
kobuki_node 1.0.0
kobuki_ros 1.0.0
kobuki_ros_interfaces 1.0.0
sophus 1.3.1
kobuki_control 0.0.0
kobuki_description 1.0.0
kobuki_gazebo 0.0.0
kobuki_launch 0.0.0
kobuki_navigation 0.0.0
kobuki_rviz 0.0.0
velodyne_description 2.0.3
velodyne_gazebo_plugins 2.0.3
velodyne_simulator 2.0.3
rtabmap_sim 0.0.0
minimal_pkg 0.0.0
turtlebot3 2.1.5
turtlebot3_bringup 2.1.5
turtlebot3_cartographer 2.1.5
turtlebot3_description 2.1.5
turtlebot3_example 2.1.5
turtlebot3_navigation2 2.1.5
turtlebot3_node 2.1.5
turtlebot3_teleop 2.1.5
turtlebot3_cartographer_ex 0.0.0
turtlebot3_fake_node 2.2.6
turtlebot3_simulations 2.2.6
vlp_cartographer 0.0.0

README

ROS 2 Essentials

tests docs

A repo containing essential ROS2 Humble features for controlling Autonomous Mobile Robots (AMRs) and robotic arm manipulators. Please setup an Ubuntu environment before using this repo.

The goal of this repo is to allow seamless robot policy reuse between simulation and reality powered by Omniverse Isaac Sim and Isaac ROS. In general, the amd64 images support both simulation and real robot control, while the arm64 images only supports real robot control.

Please note that this repo is under rapid development. The code is not guaranteed to be stable, and breaking changes may occur.

The documentation is hosted on https://j3soon.github.io/ros2-essentials/.

Cloning the Repository

git clone https://github.com/j3soon/ros2-essentials.git
cd ros2-essentials

Pre-built Workspaces

Pre-built Docker images for each workspace can be pulled by running docker compose pull in the corresponding workspace directory. Pulling these images bypasses the time-consuming build process (for both Docker Compose and Dev Containers).

The docker image of the template workspace is share by most of the workspace, allowing saving spaces by sharing common packages. Click on the following workspaces to navigate to their respective documentation.

Workspace amd64 arm64 Notes Maintainer
Template ✔️ ✔️   Yu-Zhong Chen, Johnson
ORB-SLAM3 ✔️   Assume Zhan
RTAB-Map ✔️   Assume Zhan
ROS1 Bridge ✔️ ✔️ Skip linting Yu-Zhong Chen
Cartographer ✔️ ✔️   Assume Zhan
Clearpath Husky ✔️ ✔️ Real-world support Yu-Zhong Chen, Johnson
Yujin Robot Kobuki ✔️ ✔️ Real-world support Yu-Zhong Chen
Velodyne VLP-16 ✔️ ✔️ Real-world support Assume Zhan
Gazebo World ✔️ ❌️   Yu-Zhong Chen
ALOHA ✔️ ✔️ Simulation only Johnson
Turtlebot3 ✔️ ❌️ Simulation only Johnson

If you have trouble using a workspace, please open an issue and tag the current maintainers mentioned above.

System Requirements

Use Case Platform Hardware Software Notes
Simulation/Deployment x86_64 RTX GPU, 500GB+ SSD Ubuntu 22.04, NVIDIA Driver, Docker, NVIDIA Container Toolkit See this page for more details.
Deployment-Only Jetson Jetson Orin, 500GB+ SSD JetPack 6.0 See this page for more details.

Some functionalities may still work on lower-spec systems, such as those without GPUs or on operating systems other than Ubuntu 22.04. However, these configurations are not officially supported and may require manual adjustments. Use them with caution.

Building Documentation

# (Optional) Create and activate python virtual environment
virtualenv venv -p python3
source venv/bin/activate
# Install dependencies and start serving
cd docs
pip install -r requirements.txt
mkdocs serve
# Go to https://127.0.0.1:8000 to view the site.

scripts/setup_docs_link.sh

VSCode Intellisense

If you have installed Isaac Sim 4.2.0 from Omniverse Launcher to the default path ~/.local/share/ov/pkg/isaac-sim-4.2.0, you can simply enable IntelliSense for editing any Isaac Sim scripts by running the following script:

scripts/setup_isaac_link.sh

Reusing Docker Build Cache

The default (docker) build driver does not support pulling pre-built build cache from Docker Hub. Changing to the docker-container build driver allow reusing build cache from Docker Hub, however may introduce a few minute overhead after building any image (for sending tarballs). This is a tradeoff you should consider.

The default docker build driver cannot pull pre-built caches from Docker Hub. Using the docker-container driver enables cache reuse but may add a few minutes of overhead for sending tarballs after the build. You should consider this tradeoff if you choose to switch the build driver.

Switching to docker-container Build Driver

# Install buildx as `docker build` alias
docker buildx install
# Create and use new builder
docker buildx create --name docker-container --driver docker-container --driver-opt default-load=true --use

After setting this, using docker compose build will use the build cache from Docker Hub. If you want to switch back to the default docker build driver, follow the instructions below.

Switching back to docker Build Driver

# Uninstall buildx as `docker build` alias
docker buildx uninstall
# Unuse the created builder and remove it
docker buildx use default
docker buildx stop docker-container
docker buildx rm -f --all-inactive

Developer Notes

GitHub Actions

The GitHub Actions workflow is designed to share build caches between workspaces efficiently. The template workspace is built first, and its cache is then reused by other workspaces. This means that while the template workspace build appears in the commit history, other workspace builds are triggered indirectly and only show up in the GitHub Actions tab. For implementation details, see commit 024f52a.

Acknowledgement

The code is mainly contributed by Johnson, Yu-Zhong Chen, Assume Zhan, Lam Chon Hang, and others. For a full list of contributors, please refer to the contribution list.

We extend our gratitude to ElsaLab and NVIDIA AI Technology Center (NVAITC) for their support in making this project possible.

Disclaimer: this is not an official NVIDIA product.

License

All modifications are licensed under Apache License 2.0.

However, this repository includes many dependencies released under different licenses. For information on these licenses, please check the commit history. Make sure to review the license of each dependency before using this repository.

The licenses for dependencies will be clearly documented in the workspace README in the future.

Supplementary

Installing Docker

Follow this post for the installation instructions.

Installing NVIDIA Container Toolkit

Follow this post for the installation instructions.

CONTRIBUTING

No CONTRIBUTING.md found.

Indexing Errors

  • Could not update repo, using old version: Could not fetch git repository from uri: https://github.com/j3soon/ros2-essentials.git: SSL error: unknown error
  • github-j3soon-ros2-essentials: Could not find any valid version.

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository

ros2-essentials repository