### Example of Commented-out ROS Setup in Shell Config Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Illustrates lines in shell configuration files (like .bashrc) that should be removed or commented out to avoid conflicts with Pixi's environment management. ```bash # source /opt/ros/jazzy/setup.bash # source ~/ros_ws/install/setup.bash ``` -------------------------------- ### Install Dependencies with Pixi Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Installs all project dependencies defined in the pixi.toml file. ```bash pixi install ``` -------------------------------- ### Start Zenoh Server Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Launches the zenoh server, typically used for communication in distributed systems. ```bash pixi run zenoh ``` -------------------------------- ### Package Configuration Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/navigation/isaac_ros_navigation_goal/CMakeLists.txt Configures the package for installation, ensuring that all necessary files are placed in the share directory. ```cmake ament_auto_package(INSTALL_TO_SHARE) ``` -------------------------------- ### Start Isaac Sim Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Launches the Isaac Sim application. This is one of the tasks available in the Pixi workspace. ```bash pixi run sim ``` -------------------------------- ### Install Python Executables Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/navigation/isaac_ros_navigation_goal/CMakeLists.txt Installs Python executable scripts from the project to the appropriate installation directory, making them available in the system's PATH. ```cmake # Install Python executables install( PROGRAMS isaac_ros_navigation_goal/set_goal.py DESTINATION lib/${PROJECT_NAME} ) ``` -------------------------------- ### Basic CMakeLists.txt Configuration Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/navigation/isaacsim_clearpath_nav2/CMakeLists.txt Standard CMake configuration for a ROS 2 package. Includes minimum version, project name, finding ament_cmake, and package installation. ```cmake cmake_minimum_required(VERSION 3.8) project(isaacsim_clearpath_nav2) find_package(ament_cmake REQUIRED) install(DIRECTORY launch params DESTINATION share/${PROJECT_NAME}) ament_package() ``` -------------------------------- ### Build the Workspace Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Compiles the ROS workspace packages after dependencies are installed. ```bash pixi run build ``` -------------------------------- ### List ROS2 Topics Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Checks if ROS2 topics are visible after starting the simulator and configuring the ROS2 clock publisher. ```bash pixi run ros2 topic list ``` -------------------------------- ### Find Dependencies and Install Python Package Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/navigation/isaac_ros_navigation_goal/CMakeLists.txt Finds necessary ROS 2 build system dependencies (ament_cmake, ament_cmake_auto, ament_cmake_python, rclpy) and automatically discovers build dependencies. It then installs the Python package for the project. ```cmake # Find dependencies find_package(ament_cmake REQUIRED) find_package(ament_cmake_auto REQUIRED) find_package(ament_cmake_python REQUIRED) find_package(rclpy REQUIRED) ament_auto_find_build_dependencies() # Install Python modules ament_python_install_package(${PROJECT_NAME}) ``` -------------------------------- ### Activate Pixi Shell Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Starts a new shell with the ROS environment sourced automatically. Alternatively, prefix commands with 'pixi run'. ```bash pixi shell ``` -------------------------------- ### ROS 2 CMakeLists.txt Configuration Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/isaac_tutorials/CMakeLists.txt This CMakeLists.txt file sets up a ROS 2 package, finds necessary dependencies like ament_cmake and rclpy, and defines installation rules for scripts and directories. ```cmake cmake_minimum_required(VERSION 3.5) project(isaac_tutorials) find_package(ament_cmake REQUIRED) find_package(rclpy REQUIRED) install(DIRECTORY rviz2 scripts DESTINATION share/${PROJECT_NAME}) # Install Python executables install(PROGRAMS scripts/ros2_publisher.py scripts/ros2_ackermann_publisher.py scripts/ros2_object_id_subscriber.py DESTINATION lib/${PROJECT_NAME}) ament_package() ``` -------------------------------- ### Initialize ROS2 Workspace with Pixi Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Updates pixi.toml after adding new dependencies to package.xml files. Specify the ROS distro. ```bash pixi ros init --distro jazzy ``` -------------------------------- ### Add Apache-2.0 License Header Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/CONTRIBUTING.md All new source files must include the Apache-2.0 SPDX license header. ```python # SPDX-License-Identifier: Apache-2.0 ``` -------------------------------- ### Initialize Git Submodules Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Ensures all git submodules are initialized, which is necessary for packages under src/moveit/. ```bash git submodule update --init --recursive ``` -------------------------------- ### Initialize ROS2 Workspace with Custom Channel Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Re-initializes the ROS workspace with Pixi, specifying a custom channel URL for package resolution. ```bash pixi ros init --distro jazzy --channel https://prefix.dev/my-channel ``` -------------------------------- ### Add PyPI Package Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Adds a PyPI package to the Pixi environment. Replace with the actual package name. ```bash pixi add --pypi ``` -------------------------------- ### Configure Testing and Linting Dependencies Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/custom_message/CMakeLists.txt If testing is enabled, this section finds `ament_lint_auto` test dependencies. It also includes commented-out options to skip copyright checks or cpplint if necessary, typically for non-Git repositories or when copyright information is absent. ```cmake if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) # the following line skips the linter which checks for copyrights # uncomment the line when a copyright and license is not present in all source files #set(ament_cmake_copyright_FOUND TRUE) # the following line skips cpplint (only works in a git repo) # uncomment the line when this package is not in a git repo #set(ament_cmake_cpplint_FOUND TRUE) ament_lint_auto_find_test_dependencies() endif() ament_package() ``` -------------------------------- ### Clean and Rebuild Workspace Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Cleans previous build artifacts and then rebuilds the workspace. Useful for resolving build issues. ```bash pixi run clean && pixi run build ``` -------------------------------- ### Add Custom Channel Manually Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Adds a custom channel to the Pixi project configuration. Replace with the actual URL. ```bash pixi project channel add ``` -------------------------------- ### Add Conda Package Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/README_PIXI.md Adds a Conda package to the Pixi environment. Replace with the actual package name. ```bash pixi add ``` -------------------------------- ### Configure C++ Standard and Compiler Flags Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/custom_message/CMakeLists.txt Sets the C++ standard to C++14 and enables common compiler warnings for GCC and Clang. Ensure your compiler supports these standards and flags. ```cmake cmake_minimum_required(VERSION 3.5) project(custom_message) # Default to C99 if(NOT CMAKE_C_STANDARD) set(CMAKE_C_STANDARD 99) endif() # Default to C++14 if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic) endif() ``` -------------------------------- ### Find ROS 2 Dependencies and Generate Interfaces Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/jazzy_ws/src/custom_message/CMakeLists.txt Finds required ROS 2 packages like `ament_cmake`, `std_msgs`, and `rosidl_default_generators`. It then uses `rosidl_generate_interfaces` to process the message definition file `msg/SampleMsg.msg`. ```cmake # find dependencies find_package(ament_cmake REQUIRED) find_package(std_msgs REQUIRED) find_package(rosidl_default_generators REQUIRED) rosidl_generate_interfaces(${PROJECT_NAME} "msg/SampleMsg.msg" DEPENDENCIES std_msgs ) ``` -------------------------------- ### Sign Off Commits Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/CONTRIBUTING.md Ensure all commits are signed off using the '-s' flag with your commit message. ```bash git commit -s -m "Your commit message" ``` -------------------------------- ### Commit Signature Format Source: https://github.com/isaac-sim/isaacsim-ros_workspaces/blob/main/CONTRIBUTING.md All commits must include a 'Signed-off-by' line to certify adherence to the Developer Certificate of Origin. This is typically added automatically by Git when using the '-s' flag. ```git Signed-off-by: Your Name ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.