/outdoor_ros2

A ROS2 based repository for outdoor SLAM and navigation at DWSL and Zhou Robotics, Drexel

Primary LanguagePythonMIT LicenseMIT

Outdoor SLAM and Autonomous Navigation

This is the mono repo for the outdoor SLAM and Autonomous Navigation project at Drexel University. The project is a collaboration between Drexel Wireless Systems Lab and Zhou Robotics Lab at Drexel College of Engineering.

Supported Configurations:

  • Ubuntu 22.04 + ROS2 Humble
  • Ubuntu 20.04 + ROS2 Rolling
  • Architecture: x86_64 (amd64), aarch64 (experimental) and Mac M1/Apple Silicon (all plannning/* targets)
  • Bazel >= 5.0

Steps to build and run the projects

  • Run the ros-humble-install.sh for installing all the prereqs needed!

  • To build: bazel build <target> and to run bazel run <target>; For more please read the Bazel documentation. For building the whole repo, run bazel build ...

  • [Optional/Skip unless you know what you are doing] If you want to create an overlay ROS2 workspace and use the that. You can use outdoor.repos to pull in the required packages via the following steps-

    mkdir -p outdoor_ws/src
    cd outdoor_ws
    vcs import < `path_to_this_repo`/outdoor.repos src 
    sudo apt-get update
    rosdep init #(if not already done)
    rosdep update
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install
    • Bind a local ROS 2 workspace underlay in your WORKSPACE (given in the root of this project):
      ros2_local_repository(
          name = "ros2",
          workspace = ["/opt/ros/<distro>", "<path_to_your_outdoor_ws>/install"],
      )
      NOTE: Multiple ROS workspaces can be added and just need to be added as a string in a workspace list as shown.

Features

  • Created an example directory to show how to pull in and build external useful libs like drake-ros, drake, OpenCV and use it in your project for both Python and C++ targets.
  • This package uses Bazel ROS2 rules from drake-ros
  • List of external packages being pulled in currently and available to use:

Maintainers: