This project is being developed as an educational platform for undergraduate students to get exposure into the domain of autonomous vehicles.
This platform will allow students to delve into:
This repository holds some documentation for the electrical and mechanical design but is mainly a set of ROS packages to interface with the car platform in simulation or real life.
The easiest way to get up and running with the environment is Docker.
docker image ls
sudo service docker stop
sudo service docker start
sudo apt-get install nvidia-cuda-toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
git clone https://github.com/RVSagar/uw-auto-rc-car.git
cd uw-auto-rc-car
git submodule update --init --recursive
make
(make vnc
if running on remote server)./start_docker.sh latest yes
or ./start_docker_no_nvidia.sh latest yes
if you don't have an NVIDIA card.cd catkin_ws
catkin build
to build all the packagessource devel/setup.bash
roslaunch auto_rc_car_demos simple_lane_demo_sim.launch
to launch Gazebo and rvizrosrun auto_rc_car_demos simple_lane_drive.py
simple_lane_demo_sim.launch
has a few optional command line arguments such as record:=true
to enable logging via a rosbag, bag_prefix:=MY_PREFIX
to specify a file name prefix for that rosbag, and topics:="TOPIC1 TOPIC2"
to choose what topics to record (record all if left unspecified). If multiple arguments are supplemented, separate them with whitespace.
git clone https://github.com/RVSagar/uw-auto-rc-car.git
cd uw-auto-rc-car
git submodule update --init --recursive
docker pull ghcr.io/rvsagar/uw-auto-rc-car/uw_rc_car:tf-cpu
(this will take a while, it'll download the latest tf-cpu image from the GitHub Container Registry)./start_docker_no_nvidia.sh tf-cpu yes
auto_rc_car_api
: core package that contains custom messages, services and nodes to interface with a simulated or real carauto_rc_car_control
: controllers for simulating the car in Gazeboauto_rc_car_demos
: demo nodes and launch files for lane-following and obstacle avoidanceauto_rc_car_description
: URDF file and configurations for simulating car platform in Gazebo/rviz. Contains kinematic and dynamic modelauto_rc_car_worlds
: nodes, launch files, textures and images for creating Gazebo worlds for more realistic simulationshardware_testing
: scripts and launch files to test sensors on the vehiclesensor_wrappers
: lightweight wrappers that remap default sensor topics to ones used by the car API