Skip to content
dureduck edited this page May 28, 2024 · 4 revisions

Welcome to the robocar wiki!

Ways to get familiar with the stack:

  • Try running the stack on the car
  • Attach the available

Overview ofrobocar stack structure

basestation_launch image

A Note for Submodule Management

We want to avoid using Git Submodule by using vcs-tool. vcs-tool helps you manage multiple external packages at once.

We can vcs import the vcs file. For example:

vcs import < my.repos

Subpackages:

vesc_odom: launch package. Its goal is to launch other packages. This is because the actual vesc package is in external

sensors: uses livox-SDK2 and [livox_ros_driver2](https://github.com/Livox-SDK/livox_ros_driver2)

state_estimation: for localization. uses EKF from robot_localization

external: External repositories containing binary packages that were built from source during docker build. The benefit of using binary packages is that we can use the package from ros2 C++ or python and not necessarily the languages/frameworks the packages were written in.

# Want the environment to know package locations
source source_ros2.sh

build_ros2_pkg basestation_launch
  • planner: local planner
    • contains: planner, nav2_planner, nav2_controller, nav2_recovery
    • nav2_recovery deals with when we go off the track. Might not be needed since we're racing.
    • The controller we're using Regulated Pure Pursuit (RPP)
      • A possible alternative is Model Predicted Control (MPC)

global_planner: global planner

An approach: use nav_2 global planner as local planner for head-to-head race.

Try use obstacle avoidance on global planner.

Fun notes about ROS2:

After colcon build, the following directories will be created:

  • The build directory will be where intermediate files are stored. For each package, a subfolder will be created in which, e.g., CMake is being invoked.

  • The install directory is where each package will be installed. By default, each package will be installed in a separate subdirectory.

  • The log directory contains various logging information about each colcon invocation.

For more information, read the ROS2 Documentation

Clone this wiki locally