Simulator for simulating a F1-tenth car. Itegrated with ROS and uses range_libc for lidar simulations. Implemented to facilitate a Monte-Carlo Tree Search agent.
- ROS melodic
- Ackermann Messeges
- LaserScan Messeges
- Pose Messges
- Geometry Messages
- RViz
- range_libc
- Tensorflow 1.13, with cudaNN 7.3
- Numpy
Put the project folder into a ros workspace and run,
catkin_make
source devel/setup.bash
Tune the simulation and the agents using the param.yaml file. To change policy for MCTS, edit mcts.py and swap out generateActionXX().
Build racecar Build range_libc
To run the simulation as a ROS node run,
roslaunch PyRacecarSimulator simulate.launch
Build the libraries,
bash racecar/compile.sh
bash range_libc/pywrapper/compile_with_cuda.sh
bash followthegap/compile.sh
To run the simulation as a ROS node run,
roslaunch PyRacecarSimulator simulate.launch
Then run the MCTS agent,
roslaunch PyRacecarSimulator mcts_driver.launch
- Add multi-agent capabilities
- Add support for incremental map updates
- Try other roll-out policies
Thanks to the code below we were able to create this project.