Skip to content

Conversation

@yuhsiang1117
Copy link
Collaborator

Summary of PR

  • Add an installation script for the RealSense camera plugin for ROS2.
    • add install_realsense.sh in docker_modules
  • Add a simple example demonstrating the use of a RealSense camera in Gazebo.
    • create realsense_examples in template_ws
    • add new packagerealsense_desp for adding realsense d435 camera model on turtlebot
    • add new packagerealsense_gazebo for launching the robot and camera in gazebo
    • add new package realsense_gazebo_plugin and realsense_ros in realsense_pkg
      • realsense_gazebo_plugin: bridges the simulated camera data to ROS2 topics
      • realsense_ros: official ROS 2 wrapper for Intel RealSense, used for interfacing with physical camera hardware in real-world applications
  • Add basic documentation explaining how to run and use the example.
    • add realsense.md in docs/docker-modules

Related commit

closed: #91

- Add install_realsense.sh under docker_modules/
- Update Dockerfile and compose.yaml to let user decide installation via ARG REALSENSE
…space

- Add turtlebot3_burger.urdf and model.sdf with realsense camera link
- Add realsense_desp.launch.py
- Add realsense gazebo.launch.py to spawn turtlebot3 burger with realsense in gazebo
- Add rviz configuration for realsense visualization
- Add realsense_gazebo_plugin package for Gazebo simulation of RealSense cameras.
- Add realsense_ros package for ROS integration with RealSense cameras.
- Add realsense.md in docs/docker-modules/
- Fix install_realsense.sh permissions to be executable
    - add rviz_config variable to specify the path to the rviz config file
    - update rviz node arguments to use the rviz_config variable instead of hardcoded path
    - Adjusted the pose of the Realsense D435 camera in both the SDF and URDF files to ensure correct orientation and positioning on the TurtleBot3 Burger model.
    - added installation of ros-${ROS_DISTRO}-launch-pytest and python3-tqdm in docker_modules/install_realsense.sh
@coderabbitai
Copy link

coderabbitai bot commented Jan 4, 2026

Important

Review skipped

Too many files!

31 files out of 181 files are above the max files limit of 150.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@YuZhong-Chen YuZhong-Chen self-requested a review January 7, 2026 21:48
Copy link
Collaborator

@YuZhong-Chen YuZhong-Chen left a comment

Choose a reason for hiding this comment

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

This is my first time doing a full PR review. If anything is unclear, please don't hesitate to let me know!

Also, please follow the PR guidelines when submitting changes:

  • Attribution: If you're copying code from elsewhere, please include the source link in the commit message or comments (or both).
  • Atomic Commits: If you need to modify copied code, please split the copy and the modifications into separate commits. This makes the review process much easier for us.
  • Credit: If this commit was done collaboratively or you want to give credit, remember to add a Co-authored-by tag.

<sdf version="1.4">model-1_4.sdf</sdf>
<sdf version="1.5">model.sdf</sdf>

<author>
Copy link
Collaborator

Choose a reason for hiding this comment

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

It looks like these models were copied from another repo. Could you include the source link in the commit message? It’ll really help us track down the origin later.

Copy link
Collaborator

Choose a reason for hiding this comment

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

As mentioned earlier, please include the source link if this is copied from another repo. Also, if modifications are needed, please split the copy and the modifications into separate commits.

# Other nodes

# RViz
rviz_config = PathJoinSubstitution([FindPackageShare("realsense_gazebo"), "rviz", "realsense.rviz"])
Copy link
Collaborator

Choose a reason for hiding this comment

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

If you intend to load the RViz config this way, please make sure to install the rviz folder (e.g., in CMakeLists.txt). Otherwise, it won't be able to open by default.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Side note: this commit looks like a good candidate for a Co-authored-by tag.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Same issue here. Please provide the source link for this .dae file.

ros-humble-realsense2-* \
ros-${ROS_DISTRO}-turtlebot3* \
ros-${ROS_DISTRO}-rqt-robot-steering \
ros-${ROS_DISTRO}-launch-pytest \
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm not entirely sure what's going wrong, but adding this line seems to break the Docker build (it says the package can't be found). Theoretically, it should be able to locate it, so I'm a bit puzzled here. Ref

Copy link
Collaborator

Choose a reason for hiding this comment

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

Also, could you clarify why these files need to be installed? I tried removing them locally, and the workspace seems to work just fine without them.

# Mount root workspace to allow easy access to all workspaces.
- ../..:/home/ros2-essentials
# Add device cgroup rules to allow access to specific devices (like realsense).
# Ref: https://github.com/2b-t/realsense-ros2-docker
Copy link
Collaborator

Choose a reason for hiding this comment

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

Adding reference docs here feels a bit out of place. It might be better to make this a standalone commit or include it in another one.

@YuZhong-Chen
Copy link
Collaborator

YuZhong-Chen commented Jan 7, 2026

Self-note: Isaac Sim actually provides a USD asset for RealSense, so we can plan to support Isaac Sim in the future. I've used it in other repo before, so it should be pretty straightforward.

@YuZhong-Chen
Copy link
Collaborator

Even though the cache should already be created (since I've launched Gazebo before), the startup time is consistently longer than expected. After investigating the logs in ~/.gazebo/client-11345, I found a massive amount of errors. This seems to be the bottleneck causing the delay. Please look into resolving these errors.

@YuZhong-Chen
Copy link
Collaborator

If the package is available via apt and no modifications required, please use the installed version and remove the local copy from the workspace. However, if you do need to modify the code, it's better to avoid installing the apt version, as having both can make debugging and code tracking difficult.

user@yuzhong-desktop:/home/ros2-essentials/template_ws$ colcon build --symlink-install 
[0.153s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
        'realsense2_camera' is in: /home/ros2-essentials/template_ws/install/realsense2_camera, /opt/ros/humble
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
        --allow-overriding realsense2_camera

@YuZhong-Chen
Copy link
Collaborator

I haven't had a chance to run this on a physical RealSense camera yet. I'll probably wait until these comments are fixed to do a full test, but I might jump in earlier if time permits.

@YuZhong-Chen YuZhong-Chen added the enhancement New feature or request label Jan 7, 2026
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.

[Discuss] Add realsense docker module and include examples

2 participants