Phase 1: Planning and Design
- Driver: Vivek Sood (UID 117504279)
- Navigator: Charu Sharma (UID 117555448)
Phase 2: Implementation
- Driver: Charu Sharma (UID 117555448)
- Navigator: Vivek Sood (UID 117504279)
In this project we implement a controller for an Ackermann kinematic model with a maximum steering angle constraint (e.g. < 45 degrees) (input robot target heading and velocity, output steering and the two drive wheel velocities, demonstrating convergence to the set points).
We have been following the agile methodology in this project to track all the tasks involved. We have been utilizing the notion platform to achieve this which can be seen in the link below:
- Link for proposal: Proposal
- Link for proposal video: Proposal Video
- Link for proposal presentation: Proposal Presentation
- Link for quad chart: Quad Chart
- Product Backlog: AIP
- Sprint notes: Sprint Notes
git clone --recursive https://github.com/viveksood97/Robot_Contoller
cd <path to repository>
mkdir build
cd build
cmake ..
make
Run tests: ./test/cpp-test
Run program: ./app/shell-app
Install code-coverage tool, else the code coverage command will not work. It is a one time installation:
sudo apt-get install lcov
cmake -D COVERAGE=ON -D CMAKE_BUILD_TYPE=Debug ../
make
make code_coverage
This generates a index.html page in the build/coverage sub-directory that can be viewed locally in a web browser.
Run cppcheck: Results are stored in ./results/cppcheck.txt
cppcheck --enable=all --std=c++11 -I include/ --suppress=missingIncludeSystem $( find . -name *.cpp | grep -vE -e "^./build/" -e "^./vendor/" -e "^./lib") > results/cppcheck.txt 2>&1
Run cpplint: Results are stored in ./results/cpplint.txt
cpplint $( find . -name \*.hpp -or -name \*.cpp | grep -vE -e "^./build/" -e "^./vendor/" -e "^./docs/" -e "^./results" -e "^./lib/") > results/cpplint.txt 2>&1
Run Doxygen: Results are stored in ./docs/html/index.htlm
doxygen docs/doxygen-file
We have the following library dependencies:
- time.h
- gnuPlot - http://stahlke.org/dan/gnuplot-iostream/
Install gnuplot
sudo apt-get install gnuplot
Install boost
sudo apt-get install libboost-all-dev
Run the program. Once the velocities and headings are converged to the target then graphs will be displayed as below. Also, converged values will be shown in the terminal.