fmrchallenge / fmrbenchmark

benchmark problems for research in formal methods for robotics
http://docs.fmrchallenge.org
Other
14 stars 3 forks source link

LQR trial generator help #5

Closed robotjsorg closed 8 years ago

robotjsorg commented 8 years ago

On this step in the tutorial: $FMRBENCHMARK/domains/integrator_chains/trial-runner.py -l -f mydata.json src/sci_concrete_examples/trialconf/mc-small-out3-order3.json

We a have two independent machines recieving this error, from log.cpp, over and over again: [ INFO] [1459547897.266532762]: dynamaestro_logger: number_integrators parameter not present; will try again soon...

How do we correct this so the number_integrators is in fact found? Thank you.

robotjsorg commented 8 years ago

More specifically - the automatically generated trials do not work. We need them to test the example LQR controller.

slivingston commented 8 years ago

In a separate terminal on the same computer, are you also running the following?

roslaunch sci_concrete_examples lqr.launch
slivingston commented 8 years ago

The number of integrators is not selected until a trial begins, but a trial will not begin until a controller requests for a trial to begin, hence the need in the example to launch lqr.launch from the sci_concrete_examples ROS package.

The message is printed from the logger because it is waiting for the parameter to be declared.

robotjsorg commented 8 years ago

Thank you for your reply. As you suggested, I tried to launch lqr.launch from sci_concrete_examples. I did so, then tried to generate the tests. I got this error when using roslaunch.

joe@joe-Lenovo-Y50-70-Touch ~/Desktop/fmrbenchmark-0.0.0/fmrb_demo
 % roslaunch sci_concrete_examples lqr.launch
... logging to /home/joe/.ros/log/c03630e0-f877-11e5-bd1b-e8b1fc86dff3/roslaunch-joe-Lenovo-Y50-70-Touch-15542.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://joe-Lenovo-Y50-70-Touch:43754/

SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.16

NODES
  /
    lqr_joe_Lenovo_Y50_70_Touch_15542_70635571694633581 (sci_concrete_examples/lqr.py)

auto-starting new master
process[master]: started with pid [15554]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to c03630e0-f877-11e5-bd1b-e8b1fc86dff3
process[rosout-1]: started with pid [15567]
started core service [/rosout]
process[lqr_joe_Lenovo_Y50_70_Touch_15542_70635571694633581-2]: started with pid [15570]
Traceback (most recent call last):
  File "/home/joe/Desktop/fmrbenchmark-0.0.0/fmrb_demo/install/lib/sci_concrete_examples/lqr.py", line 114, in <module>
    main(imon)
  File "/home/joe/Desktop/fmrbenchmark-0.0.0/fmrb_demo/install/lib/sci_concrete_examples/lqr.py", line 71, in main
    while not dmmode(DMModeRequest.READY):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in __call__
    return self.call(*args, **kwds)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 495, in call
    service_uri = self._get_service_uri(request)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 463, in _get_service_uri
    raise ServiceException("service [%s] unavailable"%self.resolved_name)
rospy.service.ServiceException: service [/dynamaestro/mode] unavailable
[lqr_joe_Lenovo_Y50_70_Touch_15542_70635571694633581-2] process has died [pid 15570, exit code 1, cmd /home/joe/Desktop/fmrbenchmark-0.0.0/fmrb_demo/install/lib/sci_concrete_examples/lqr.py __name:=lqr_joe_Lenovo_Y50_70_Touch_15542_70635571694633581 __log:=/home/joe/.ros/log/c03630e0-f877-11e5-bd1b-e8b1fc86dff3/lqr_joe_Lenovo_Y50_70_Touch_15542_70635571694633581-2.log].
log file: /home/joe/.ros/log/c03630e0-f877-11e5-bd1b-e8b1fc86dff3/lqr_joe_Lenovo_Y50_70_Touch_15542_70635571694633581-2*.log
slivingston commented 8 years ago

Could you run trial-runner.py first, i.e., before the lqr.launch roslaunch?

slivingston commented 8 years ago

@jmcmahon443 any news on this?

robotjsorg commented 8 years ago

@slivingston Hey. Yes, it works as you suggested. The mydata.json file populates more than it used to. Now the issue is that the LQR controller does not work without Slycot! I will close and update this issue as operator error now.