[go: nahoru, domu]

Skip to content

A controller with ackermann kinematic model for steering and PID for velocity control <Completed>#

License

Notifications You must be signed in to change notification settings

viveksood97/Robot_Contoller

Repository files navigation

Robot Controller

Build Status Coverage Status License: MIT

Authors

Phase 1: Planning and Design

Phase 2: Implementation

Overview

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).

Agile Iterative Process

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:

Notion Agile Board

All the necessary links

Standard install via command-line

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

Building for code coverage

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 and cpplint

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

Run Doxygen: Results are stored in ./docs/html/index.htlm

doxygen docs/doxygen-file

Dependencies

We have the following library dependencies:

Install gnuplot

sudo apt-get install gnuplot

Install boost

sudo apt-get install libboost-all-dev

Demo

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.

Heading Convergence

Velocity Convergence

Terminal Output

References

About

A controller with ackermann kinematic model for steering and PID for velocity control <Completed>#

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published