项目作者: yz9

项目描述 :
:car: a robot using PID control for distance calibration
高级语言: C++
项目地址: git://github.com/yz9/wall_following_pid_robot.git
创建时间: 2018-02-13T23:41:57Z
项目社区:https://github.com/yz9/wall_following_pid_robot

开源协议:MIT License

下载


Wall Following PID Robot

Assignment designed to write a feedback controller that controls the yaw of a ground robot via PID control based on proportional, integral, and derivative terms (denoted P, I, and D respectively), mainly relying on gazebo for simulated scenarios.

Demo:

pid_controller

Prerequisites

  • Ubuntu 16.04
  • ROS kinetic: Installation instruction can be found here.
  • Required ROS packages:
    1. $ sudo apt-get install ros-kinetic-control-toolbox ros-kinetic-joystick-drivers ros-kineticrealtime-tools ros-kinetic-ros-control ros-kinetic-gazebo-ros-control ros-kinetic-roscontrollers

NOTE: By default the HOME environment variable is not set. Set this up doing the following:

  1. export ROS_HOME=~/.ros
  2. source /opt/ros/kinetic/setup.bash

Build

compile the code

  1. $ catkin_make

How to Use

Start gazebo simulator
Bring up a world with walls in the gazebo simulator

  1. $ roslaunch wall_following_assignment gazebo_world.launch world_name:=walls_one_sided

Start husky follower robot
Bring up the robot in that world

  1. $ roslaunch wall_following_assignment husky_follower.launch

The only error that should appear after these two commands is that no joystick can be found.

Start PID controller
Then launch the PID controller

  1. $ roslaunch wall_following_assignment wall_follower_python.launch

Parameter Tuning

You can tweak the PID parameters using the dynamic reconfigure server.

  1. $ rosrun rqt_reconfgure rqt_reconfgure

License

This project is licensed under the MIT License - see the LICENSE file for details