Closed xabierolaz closed 4 years ago
Nice! The docker stuff is still very experimental but how it currently is set up it allows you to run any command inside container. The README.md has one such example of how this can be done. I haven't been able to get the GUI working though which would make many of the test scripts how they are unusable put supposedly it works on osx. A better use case would be to use the container to run a headless training session.
If you have a clean copy of ubuntu I would suggest just following the commands in this travis file or the docker file to set up the environment.
Thanks @wil3 I've just followed the commands in the travis file from a clean copy of ubuntu 18.04 .
What's the last step for?
pip install .
After following all commands in a clean system,
created projects folder
virtual environment inside folder
git cloned gymfc
pip3 install -e .
And still getting the same failed building wheel for gym error
It's a completely clean ubuntu, followed travis commands and then tried to install gymfc.
Has anyone been successful following these steps in a clean system? Are there any extra packages or anything a clean 18.04 system needs to have in order to get gymfc running?
Thanks
Okay, test_axis does work! Will try the other scripts
All the issues are regarding the test_start script, cant get it to work whatever system Im using, so it must be something wrong with that specific script. Even if I'm getting the dart setanchor error, still working
Pretty sure the setanchor is normal behaviour. That surprises me test_axis works but test_start does not since test_axis essentially just extends test_start. What happens when you run the script? Are the gzserver and gzclient processes running (could check with ps -aux | grep gzclient
)? What is the output when verbose flag is set to True?
There has been a recent change that does not exist in test_axis but is in test_start however. On this line, can you remove .wait()
and see if you observe different behavior? Make sure you have installed gymfc installed in development/editable mode (i.e., -e
flag in pip3 install -e .
) otherwise changes won't take affect. You can put a print statement before the line you change as a sanity check you have it installed the expected way.
Confirmed Gymfc was installed in development mode (pip3 install -e .)
Short video of both scripts running https://www.youtube.com/watch?v=mGiiOtZX4m0
test_axis --verbose output: (output is pretty long as it loops SetLinearVel() and SetAngularVel() joint parent warnings for a while)
(env) xabi@xabi:~/projects/gymfc/tests$ python3 test_axis.py ../modules/digitaltwins/nf1/model.sdf --verbose
Sending motor control signals to port 9803
Gazebo Model Path = /home/xabi/local/share/gazebo-10/models::/home/xabi/projects/gymfc/gymfc/envs/assets/gazebo/models:/home/xabi/projects/gymfc/modules/digitaltwins
Gazebo Plugin Path = /home/xabi/local/lib/gazebo-10/plugins::/home/xabi/projects/gymfc/gymfc/envs/assets/gazebo/plugins/build:/home/xabi/projects/gymfc/modules/digitaltwins/nf1/plugins/build
Starting gzserver with process ID= 4749
Roll Left
-----------------------------------
Gazebo multi-robot simulator, version 10.1.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11346
[Msg] Publicized address: 10.0.2.15
[Dbg] [DARTModel.cc:72] Initializing DART model attitude_control_training_rig
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'pivot' and joint 'base_joint'.
[Err] [DARTJoint.cc:195] DARTJoint: SetAnchor is not implemented.
[Dbg] [FlightControllerPlugin.cpp:225] Binding on port 9803
[Dbg] [FlightControllerPlugin.cpp:408] CoT link=battery
[Dbg] [FlightControllerPlugin.cpp:410] Got COT from plugin 0 0 0.058
[Dbg] [FlightControllerPlugin.cpp:413] Num motors 4
[Dbg] [FlightControllerPlugin.cpp:443] Inserting digital twin from SDF, ../modules/digitaltwins/nf1/model.sdf.
[Dbg] [DARTModel.cc:72] Initializing DART model nf1
[Dbg] [DARTModel.cc:128] Building DART BodyNode for link 'frame' with a free joint.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'battery' and joint 'battery_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'motor_1' and joint 'motor_1_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'motor_2' and joint 'motor_2_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'motor_3' and joint 'motor_3_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'motor_4' and joint 'motor_4_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'prop_1' and joint 'prop_1_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'prop_2' and joint 'prop_2_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'prop_3' and joint 'prop_3_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'prop_4' and joint 'prop_4_joint'.
[Dbg] [DARTModel.cc:166] Building DART BodyNode for link 'fc_stack' and joint 'fc_stack_joint'.
[Dbg] [gazebo_motor_model.cpp:204] Loading Motor number=0 Subscribed to /aircraft/command/motor
[Dbg] [gazebo_motor_model.cpp:204] Loading Motor number=1 Subscribed to /aircraft/command/motor
[Dbg] [gazebo_motor_model.cpp:204] Loading Motor number=2 Subscribed to /aircraft/command/motor
[Dbg] [gazebo_motor_model.cpp:204] Loading Motor number=3 Subscribed to /aircraft/command/motor
[Dbg] [gazebo_imu_plugin.cpp:55] Loading IMU sensor
[Dbg] [FlightControllerPlugin.cpp:527] Setting link to center battery
[Dbg] [FlightControllerPlugin.cpp:542] Aircraft model fixed to world
[Dbg] [DARTLink.cc:482] DARTLink::SetAngularVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:411] DARTLink::SetLinearVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:482] DARTLink::SetAngularVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:411] DARTLink::SetLinearVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:482] DARTLink::SetAngularVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:411] DARTLink::SetLinearVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:482] DARTLink::SetAngularVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:411] DARTLink::SetLinearVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:482] DARTLink::SetAngularVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [gazebo_motor_model.cpp:263] Motor 0 force=0 vel=0
[Dbg] [gazebo_motor_model.cpp:263] Motor 1 force=0 vel=0
[Dbg] [gazebo_motor_model.cpp:263] Motor 2 force=0 vel=0
[Dbg] [gazebo_motor_model.cpp:263] Motor 3 force=0 vel=0
[Dbg] [DARTLink.cc:482] DARTLink::SetAngularVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [DARTLink.cc:411] DARTLink::SetLinearVel() doesn't make sense if the parent joint is not free joint (6-dof).
[Dbg] [gazebo_motor_model.cpp:263] Motor 0 force=0 vel=0
[Dbg] [gazebo_motor_model.cpp:263] Motor 1 force=0 vel=0
[Dbg] [gazebo_motor_model.cpp:263] Motor 2 force=0 vel=0
[Dbg] [gazebo_motor_model.cpp:263] Motor 3 force=0 vel=0
Roll=0.0000 Pitch=0.0000 Yaw=0.0000
X=0.0000 Y=0.0000 Z=9.8000
X=1.0000 Y=0.0000 Z=0.0000 W=0.0000
M1=0.0000 M2=0.0000 M3=0.0000 M4=0.0000
[enter] = Step, n = Next Command, q = Quit
I'm using a brand new computer with 18.04 installed (ubuntu, GNOME desktop)
Tested if my system is able to run dockers, and it seems so.
Now I downloaded the gymfc git and run dockerfile, after modifying the line: ENV USER=gymfc to ENV USER=xabi (my current username, maybe not needed)
Some red lines appear, but overall docker gets built after finishing 23 steps
How can I run the docker and test it with the test_axis or other scripts now? I'm not used to run dockers and dont know where to locate it.
Thanks!