porting behavioral settings from a webots darwin onto a real darwin
This reflects the update for DARWIN-OP Framework 1.6.1.
|resources||From DARWIN-OP Framework 1.6.1|
|README||simplified setup procedure regarding Makefile.darwin-op for managers …|
|copy.py||Changed script copy.py in order to not copy the ChangeLog|
|webots_to_repository.py||Renamed webots development directory|
----- Project goals ----- - Create a simulation of the DARwIn-OP robot on the Webots simulator as realisitc as possible. - Allow to run a controller written using exclusively the Webots API (and not the Robotis API) in simulation and in reality ----- Project structure ----- The root of the project should match with the root of Webots. At each new Webots release, this project can be merged in the root directory of Webots. ----- Installation (beta) ----- A. Get the git repository - 1. Let say its git repository path is called $GIT_REPOSITORY B. Install Webots - 1. Follow the instructions of the user manual of Webots to install Webots - 2. Let say its installation path is called $WEBOTS_HOME C. Install default software on the DARwIn-OP - 1. Let say the root path of the DARwIn-OP is called $DARWINOP D. Run the simulation - 1. Merge the "resources" directory git repository with the "resources" directory of Webots $ cp -R $GIT_REPOSITORY/resources $WEBOTS_HOME - 2. Compile the darwin and manager libraries by typing: $ cd $WEBOTS_HOME/resources/projects/robots/darwin-op/libraries/darwin $ make => $WEBOTS_HOME/resources/projects/robots/darwin-op/libraries/darwin/libdarwin is generated $ cd $WEBOTS_HOME/resources/projects/robots/darwin-op/libraries/managers $ make => $WEBOTS_HOME/resources/projects/robots/darwin-op/libraries/managers/libmanagers is generated - 3. Compile a Soccer controller Open Webots and compile the controller: $ webots $GIT_REPOSITORY/projects/robots/darwin-op/worlds/soccer.wbt From the Webots GUI, open $GIT_REPOSITORY/projects/robots/darwin-op/controllers/soccer/Soccer.cpp and hit the "Build / Build" menu item. Revert and play the simulation. E. Run the same controller on the DARwIn-OP - 1. Make sure you have version 1.5.0 of DARwIn-OP's Framework installed on the robot. The version of the Framework can be checked in /darwin/ReleaseNote.txt If version 1.5.0 is not installed you can found it here : http://sourceforge.net/projects/darwinop/files/Software/Main%20Controller/Source%20Code/ You simply have to merge /darwin with the files present in DARwIn-OP_ROBOTIS_v1.5.0.zip - 2. On the DARwIn-OP, merge $GIT_REPOSITORY/resources/projects/robots/darwin-op/libraries/darwin/darwin/ with existing DARwIn-OP source code in /darwin/ directory $ cp -R $GIT_REPOSITORY/resources/projects/robots/darwin-op/libraries/darwin/darwin/* /darwin/ - 3. On the DARwIn-OP, recompile the Framework $ cd /darwin/Linux/build $ make clean $ make $ cd /darwin/Linux/project/demo $ make distclean $ make $ chown darwin.darwin /darwin - 4. On the DARwIn-OP, create a /darwin/Linux/project/webots directory - 5. Copy-paste the "libraries/managers/include", "libraries/managers/lib", "transfer", and "libraries/managers/src" directories of the $GIT_REPOSITORY/resources/projects/robots/darwin-op directory directly in the /darwin/Linux/project/webots directory - 6. Do the same with the $GIT_REPOSITORY/projects/robots/darwin-op/controllers directory. Note: From now, on the real DARwIn-OP, you should have these directories: /darwin/Linux/project/webots/include /darwin/Linux/project/webots/lib /darwin/Linux/project/webots/transfer /darwin/Linux/project/webots/src /darwin/Linux/project/webots/controllers - 7. Compile the wrapper library $ cd /darwin/Linux/project/webots/transfer/lib $ make - 8. Compile the managers library $ cd /darwin/Linux/project/webots/lib $ make -f Makefile.darwin-op - 9. Compile the controller $ cd /darwin/Linux/project/webots/controllers/symmetry $ make -f Makefile.darwin-op -10. Start the controller $ ./symmetry To stop the controller press Ctrl+c You can now try the other examples presents in the directory "controllers" F. Run your controller on the robot from Webots (remote-control) - 1. On the DARwIn-OP, copy paste $GIT_REPOSITORY/resources/projects/robots/darwin-op/remote_control directory in /darwin/Linux/project/webots - 2. Compile remote control serveur on the DARwIn-OP $ cd /darwin/Linux/project/webots/remote_control $ make -f Makefile.darwin-op - 3. Start the remote serveur $ /darwin/Linux/project/webots/remote_control/remote_control 1 1 (adjust parameters if camera resolution is not 320x240, example 2 1 for a resolution of 160x240) - 4. Set the robot in remote-control mode on Webots by adding the following lines in the controller const char arguments = "192.168.123.1"; // adjust IP adress if the robot is connected by wifi setMode(MODE_REMOTE_CONTROL, (void *)arguments); - 5. Compile controller and revert world ----- Known issues ----- - 1. In simulation, in the DARwInOPGaitManager, the lateral balance do not work as expected. It is recommended to set balance_hip_roll_gain and balance_ankle_roll_gain to 0.0, this must be done in the file 'config.ini' attached to the controller. - 2. In simulation the P gain of the servo affects the speed but on the real robot it affects the torque. This can cause differences between simulation and reality in some specific cases. Especially when P is small. ----- Contributors ----- Robotis, Cyberbotics, and users ^^