This package contains the launch and configuration files needed to bring up a physical or simulated CDA1Tenth vehicle. Some functionality may depend on the companion packages from navigation2_extensions which provides route server and CDA additions to the CDA1Tenth system.
The following configuration steps must be completed before a CDA1Tenth vehicle or simulation will be ready for bringup.
-
Download the
nav2_route_server
branch and build it from source, which can be found here. -
Install the following udev rules to the
/etc/udev/rules.d/
directory if using a physical vehicle:99-joypad-f710.rules
99-vesc6.rules
rplidar.rules
[NOTE] See 1. udev Rules Setup in the F1Tenth build documentation for details.
-
Source the Nav2 install for future terminal instances with
echo 'source /home/$USER/cda_ws/install/setup.bash' >> ~/.bashrc
-
A map and route graph will need to be created for physical test environments. The
turtlebot
configuration includes these for reference. Maps can be created using slam_toolbox and graphs should follow the examples given in this package. New maps and graphs will need to manually updated in the launch and parameter files.
Run the following command to launch the CDA1Tenth system:
$ ros2 launch cda1tenth_bringup cda1tenth_bringup_launch.xml vehicle:=[red_truck, blue_truck, turtlebot] record_bag:=[true, false]
This will launch all necessary subsystems, such as drivers, localization, and navigation.
-
vehicle
controls the parameter file used to launch the system and requires an input-
red_truck
andblue_truck
target parameter files specific to their respective CDA1Tenth vehicles -
turtlebot
runs a Gazebo-based simulation that allows for running corecda1tenth_bringup
packages locally without hardware interface nodes
-
-
record_bag
is a boolean argument for recording all data from the system in a ROS2 rosbag and defaults tofalse
. Bags are saved in~/cda_bags
along with a copy of the parameter file used
After launching the nodes included in cda1tenth_bringup
, additional actions are needed to finalize the system on a physical vehicle.
-
If using a physical vehicle, RViz will need to be launched on an external PC on the same network and
ROS_DOMAIN_ID
as the vehicle. A specific RViz configuration is needed for visualizing and interacting with Nav2, which can be found in this package under therviz
directory. Run RViz in a terminal using the commandrviz2
and open this file usingFile > Open Config
. -
In RViz, set the vehicle's initial pose estimate by selecting the
2D Pose Estimate
button at the top and drawing the approximate pose of the vehicle with respect to the map. The ROS2 nodes being used by the vehicle should be visualized after the estimate is drawn. -
A navigation command can now be sent to the CDA1Tenth vehicle by using the
2D Goal Pose
button to draw a goal pose on the map using the RViz GUI.
To shut down the system, use CTRL + C
on the cda1tenth_bringup
and rviz2
terminals. Run ros2 node list
to verify all nodes are shut down before relaunching the system.
Welcome to the CARMA contributing guide. Please read this guide to learn about our development process, how to propose pull requests and improvements, and how to build and test your changes to this project. CARMA Contributing Guide
Please read our CARMA Code of Conduct which outlines our expectations for participants within the CARMA community, as well as steps to reporting unacceptable behavior. We are committed to providing a welcoming and inspiring community for all and expect our code of conduct to be honored. Anyone who violates this code of conduct may be banned from the community.
The development team would like to acknowledge the people who have made direct contributions to the design and code in this repository. CARMA Attribution
By contributing to the Federal Highway Administration (FHWA) Connected Automated Research Mobility Applications (CARMA), you agree that your contributions will be licensed under its Apache License 2.0 license. CARMA License
Please click on the CARMA logo below to visit the Federal Highway Adminstration(FHWA) CARMA website.