Installers and Instructions:
Please refer to the Upennalizers Development Workstation Setup guide for the github repository and necessary installs needed.
To compile the UPenn code for use with MiniHUBO, we need to compile for the generic version (not Darwin or Nao).
cd ~/UPennalizers/Lib sudo make setup_webots_generic
After that, for ease of use later, we will create a symbolic link between one of the default Darwin Controllers and the Webots default controllers folder
cd $WEBOTS_HOME/resources/projects/default/controllers$ sudo ln -s ~/UPennalizers/WebotsController darwin-op_team_1
where $WEBOTS_HOME likely resides in usr/local/.
In UPennalizers/WebotsController/, edit start.lua by commenting out the line dofile(“Player/player.lua”); and uncommenting dofile(“Player/Test/test_walk_webots_op.lua”);. Save it. NOTE: If you are unable to copy the code without the line numbers, try Firefox.
Edited start.lua:
require('controller'); print("\nStarting Webots Lua controller..."); playerID = os.getenv('PLAYER_ID') + 0; teamID = os.getenv('TEAM_ID') + 0; --dofile("Player/player.lua"); -- Run test_vision --dofile("Player/Test/test_vision_webots_op.lua"); dofile("Player/Test/test_walk_webots_op.lua");
test_walk_webots_op.lua is located in Upennalizers/Player/Test/. Comment out the two lines (39 and 40)
... require('shm') require('Body') require('vector') -- BodyFSM=require('BodyFSM'); -- HeadFSM=require('HeadFSM'); require('getch') require('Motion'); require('walk'); require('Speak') require('util') darwin = false; webots = false; ...
GenericWebotsBody.lua is located in UPennalizers/Lib/Platform/WebotsGeneric/Body/.
Edited GenericWebotsBody.lua:
module(..., package.seeall); require('controller'); controller.wb_robot_init(); timeStep = controller.wb_robot_get_basic_time_step(); tDelta = .001*timeStep; -- Get webots tags: tags = {}; jointNames = {"HeadYaw", "HeadPitch", "LShoulderPitch", "LShoulderRoll", "LShoulderYaw", "LElbowPitch", "LHipYaw", "LHipRoll", "LHipPitch", "LKneePitch", "LAnklePitch", "LAnkleRoll", "RHipYaw", "RHipRoll", "RHipPitch", "RKneePitch", "RAnklePitch", "RAnkleRoll", "RShoulderPitch", "RShoulderRoll", "RShoulderYaw", "RElbowPitch", "CHipYaw"}; -- Added this joint nJoint = #jointNames; indexHead = 1; nJointHead = 2; indexLArm = 3; nJointLArm = 4; indexLLeg = 7; nJointLLeg = 6; indexRLeg = 13; nJointRLeg = 6; indexRArm = 19; nJointRArm = 4; indexCHipYaw = 23; -- Added for "CHipYaw" ...
YOU MUST MAKE THE SYSTEM EVERY TIME YOU EDIT GENERIC WEBOTS BODY
you must now cd to the UPennalizers/Lib directory and make.
make setup_webots_generic
This will copy the changed files into the Player/Lib directory.
Now, if you open up the world file for Penn's MiniHUBO model, he should start walking in place when you push play.