The following figure depicts all the nodes, topics, and messages that are used in the gps_nav package.
- Nodes are shown in ellipses.
- Topics are shown using lines with arrows.
- The messages used for each topic are shown. Black text is used for standard messages. Blue text is used for custom interface messages that are in the package gps_nav_interfaces.
- Parameters are shown in green.
- The vehicle_controller node is using an algorithm where a third order path is generated to move from the current vehicle pose to the current goal pose. The radius of curvature at the start of this path is used to generate the motion twist to send to the vehicle.
Create a development workspace by typing the following when in your home directory. Replace the text within the <> to be whatever you want.
mkdir -p <your_dev_ws>/src
Move into the src directory.
cd <your_dev_ws>/src
Download the repository using
git clone https://github.com/av-mae-uf/eml4842_gps_nav.git
The gps_nav package uses the ackermann_msgs package. Add the following:
sudo apt install ros-humble-ackermann-msgs
Change your directory to your root workspace directory (~/<your_dev_ws>) and build the workspace.
colcon build
Source your workspace with
source install/setup.bash
Note: If running on a Raspberry Pi 5 (Ubuntu 24.04) enter the following as an additional line to your .bashrc file:
export QT_QPA_PLATFORM="xcb"
This is required in order for the rviz2 simulator to be able to open a graphic window. Source the .bashrc file. Note: It will be sourced every time you open a new terminal window from here on.
Run the command below to see the simulation at work.
ros2 launch gps_nav simulation_demo.launch.py
Included in the gps_nav package are two additional launch files:
- vehicle.launch.py
- visualization.launch.py
You should use the vehicle.launch.py launch file when starting the code on the vehicle. This launch file does not include the visualizations and simulator.
ros2 launch gps_nav vehicle.launch.py
You can run the visualization.launch.py launch file on your own computer in order to bring up rviz and display the path and other visualizations.
ros2 launch gps_nav visualization.launch.py