Main
This is an experimental project to simulate and teach a robot control dynamics. The robot of choice is a simple model of the TARS robot seen in Interstellar.
The goal of this project is to teach the TARS robot to move forward in the simulated environment without moving any cones.
An example python control program can be found in the tars_sample_controller package. It demonstrates the ability to control the TARS robot while it is in a physical simulation:
The TARS robot is currently very simplified. It has 3 joints and 4 legs all acuated around the center.
Currently the project makes use of ROS and Gazebo for controlling and simulating the robot respectively.
- tars_core - Core packages used for robot description and client interfaces for the simulator.
- tars_corecpp - C++ shared library that abstracts control of the TARS simulated robot.
- tars_corepy - Python package that abstracts control of the TARS simulated robot
- tars_world - Describes the TARS robot model and world, simulation settings and launching simulation world.
- tars_controller_samples
- tars_sample_controller_cpp - C++ shared library that abstracts control of the TARS simulated robot
- tars_sample_controller_py - Python shared package that abstracts control of the TARS simulated robot
- tars_sim - Example simulation runner. Runs TARS robots for period and restarts periodically.
- tars_controller_nn - Example custom controller.
- Create framework for spawning, running, and resetting robots
- Make single random NN for robot control
- Implement NEAT evolutionary algorithm for training
- Implement database to store NEAT results
This is currently only tested and running on Ubuntu 14.04
Dependencies:
- Install ROS
- Install ROS Controller - See bottom of wiki page
- Install Ros Gazebo Ros Control -
sudo apt-get install ros-indigo-gazebo-ros-control
- Make a ROS Workspace
- Check this directory out into your catkin workspace
src/
folder - Go back to your catkin workspace folder
- Make your catkin workspace:
catkin_make; catkin_make install
- Source the environment setup:
source devel/setup.sh
- Install pygame for python graphics:
sudo apt-get install python-pygame
This project will compile packages as normal under ROS catkin make.
To open Gazebo to visualize the simulation run:
roslaunch tars_world tars_world.launch
To start running simulations run:
rosrun tars_sim tars_sim
Some articles and material that has been helpful:
- Tutorial: Using a URDF in Gazebo
- Tutorial: ROS Control
- Package: gazebo
- Building Modular ROS Packages
- Competitive Coevolution through Evolutionary Complexification - Details on NEAT algorithm
- A Comparative Analysis of Simplification and Complexification in the Evolution of Neural Network Topologies - Analysis of simplification in a NEAT algorithm
- Flexible Muscle-Based Locomotion for Bipedal Creatures - Interesting take on training gait (video)
Thanks for looking and please feel free to contact if you would like to help in any way. From 3D modelling to programming to AI to robot building - all is welcomed.