Hi,I placed a (huge) logfile on the fileserver at <temp>/syskit_merge_error/syskit-debug.txt which contains syskits debugging output.
This was a run with successful merges (e.g. lines 129488...141740) at the beginning and the failed merge at the end (lines 143922...147087).
In the failed merge you can read
{{{
checking cycle Simulation::MarsActuator{1}[...]
looking to resolve cycle between Simulation::MarsActuator{1}:[...]
looking to resolve cycle between Skid4Control::SimpleController[...]
not a cycle: AriaSimulation::MotionCommandProxy[...] are not cycle \
candidates
not a cycle: cannot find mapping to merge \
Skid4Control::SimpleController[...]
cannot merge cycle Simulation::MarsActuator{1}[...]
}}}
In the log I cannot find any "checking cycle" with a successful merge.
I am wondering why merge fails as soon as you get in the "checking cycle
.." state and why this only happens sometimes.
Regards, Christian Am 17.03.2014 11:17, schrieb Matthias Goldhoorn:
Hmh i wondering regarding this, i thought we fixed this issue, the problem is here: Simulation::MarsActuator{1}:0x69a7f58 and Simulation::MarsActuator{1}:0x73ca0a8 This should be resolved by syskit and reused insted. There seems a problem in the nerwork_generation merge-phase. Try to look into this, why, during the transaction is applied the the component could not be reused. Increase the debug level for this, this should give you the right hin. It does not seems to be a design problem for syskit. Otherwise try to create a simple unit-testcase which i can work on... Matthias On 17.03.2014 10:48, Christian Rauch wrote:Am 17.03.2014 07:59, schrieb Matthias Goldhoorn:Are you using master? If you are using next the next commit after the merge phase should fix this problem.Yes, we are on next. With syskit commit 423fb288 (net_gen: properly synchronize finishing [...]) the error is still present. The error also occurs when switching completely with syskit and roby to master. Regards, ChristianWe had this a while ago. Best, Matthias On 14.03.2014 18:25, Christian Rauch wrote:Hello, we have a simulation composition (AriaSim) using some simulated devices. If we start this and an additional composition connected to simulated devices we get sometimes (not reproducible) this error message: {{{ Syskit[FATAL]: /home/christian/rock_virgo_next/tools/syskit/lib/syskit/network_generation/engine.rb:526:in `block (2 levels) in validate_generated_network': device locomotion is assigned to both Simulation::MarsActuator{1}:0x69a7f58{driver_dev => device(Dev::Simulation::Mars::Actuator, :as => locomotion), conf => [locomotion], locomotion_actuators_mappings => [1, 2, 3, 4]}[] and Simulation::MarsActuator{1}:0x73ca0a8{driver_dev => device(Dev::Simulation::Mars::Actuator, :as => locomotion), conf => [locomotion], locomotion_actuators_mappings => [1, 2, 3, 4]}[], but the tasks have mismatching inputs (Syskit::SpecError) }}} Where locomotion is a simulated devices defined by: {{{ define_simulated_device("locomotion", Dev::Simulation::Mars::Actuator) do |dev| ::Simulation::MarsActuator.dispatch('locomotion_actuators', (1..4).to_a ). use_deployments(/mars_locomotion/). with_arguments(dev.arguments). with_conf('locomotion') end locomotion_dev.period 0.01 }}} and used in: {{{ define 'aria', Virgo::AriaSim.use( 'actuators' => locomotion_def, [...] ) }}} In the network graph (see attached *.dot file) one can see that the simulation composition (Virgo::AriaSim) is started twice, and therefore also the Simulation::MarsActuator::Cmp. I guess that is not correct. It might be, that this problem does not occur when a second composition is started accessing a simulated device, but then it happens later when a third, ... composition is started. => Any ideas why this happens and only happens randomly? Our guess was to prevent the creation of multiple AriaSim instances by setting it as a driver by: {{{ class AriaSim < Syskit::Composition [...] driver_for Dev::Platforms::MobileRoboticsSim, :as=>'ariasimdev' end }}} Which results in the error: {{{ Syskit[FATAL]: cannot find a device to tie to 1 task(s) Syskit[FATAL]: for Virgo::AriaSim:0x64e5380{}[] Syskit[FATAL]: no candidates for Virgo::AriaSim:ariasimdev Syskit[FATAL]: Engine#resolve failed }}} => So the second question is if a composition could be set as a driver and if so, how? Regards, Christian _______________________________________________ Rock-dev mailing list [email protected] http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
-- Christian Rauch Space Robotics Universität Bremen FB 3 - Mathematik und Informatik AG Robotik Robert-Hooke-Straße 1 28359 Bremen, Germany Zentrale: +49 421 178 45-6611 Besuchsadresse der Nebengeschäftstelle: Robert-Hooke-Straße 5 28359 Bremen, Germany Tel: +49 421 178 45-6619 Empfang: +49 421 178 45-6600 Fax: +49 421 178 45-4150 E-Mail: [email protected] Weitere Informationen: http://www.informatik.uni-bremen.de/robotik
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ Rock-dev mailing list [email protected] http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
