roborescue / rcrs-server Goto Github PK
View Code? Open in Web Editor NEWRoboCup Rescue Simulator
License: BSD 3-Clause "New" or "Revised" License
RoboCup Rescue Simulator
License: BSD 3-Clause "New" or "Revised" License
Yes, We knew that the same tools can be run via Gradle.
By the way, these scripts are for the time that we do not use Gradle or having problem with Gradle.
I tried to run the tools using Gradle and faced problem and could not run the tools, so started to write these shell scripts.
By the way, I should mention that I could not run the tools using gradlew as follow
$ ./gradlew scenarioEditor
But I could run the tools as follow
$ gradle scenarioEditor
This issue was opened by the request of @ffaraji
I have seen that in the ProtoBuf branch URN_PREFIX has been eliminated. This will make an inconsistency in the old version logs. However, I agree that the prefix is useless and maybe waste a lot of memory.
I think two ways exist to have compatibility with traditional version of the simulator:
I think it would be nice if we can have an API that controls the simulation server.
use case:
In WebViewer we want to simulate the current run, stop, step buttons of the kernel and to connect WebViewer to the kernel.
possible solution:
preparing a port dedicated to web API and WebSocket in the kernel.
the run, stop and step can be done using a simple web API query.
the web viewer can be connected using WebSocket.
When I attempt to run the server and launch the sample-agents an error occurs. I've been having trouble figuring out the reason, so any help is greatly appreciated.
computer: hp
os: ubuntu 20.0.4 virtual machine
java: openjdk version "17.0.4" 2022-07-19
gradle: Gradle 7.5.1
git: git 2.25.1
logs:
logs.zip
I git clone this repository and checked my version of ant and java:
Apache Ant(TM) version 1.10.5 compiled on July 10 2018
java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
so I meet the prerequisites
cd in my local rcrs-server
directory
ant clean-all
is successful
however
ant complete-build
gives me the following error
BUILD FAILED
.\rcrs-server\build-javadoc.xml:5: org.mozilla.javascript.EcmaError: ReferenceError: "load" is not defined.
why is this happening?
Thanks
JapanOpen 2021 will be held next week.
We want to use our web viewer, which my student in RoboCup 2021 presented, in the event.
But, we guess that we can not use the web viewer because it seems that log files of the new server lack compatibility with the previous server.
Can the latest server output the old-style log file?
If it is possible, we can use the web viewer.
In the sight of reusability, it is important to keep compatibility with past resources such as log files and some programs.
At least, we need an option to use the old one.
My students said they found the descriptions for outputting the old-style log file in the server.
Can you activate them?
I have take a look at this class. You can see that the main part is still in the traditional way.
I think we should change it.
/rcrs-server/modules/rescuecore2/src/rescuecore2/connection/AbstractConnection.java
Cloning the RCRS-Server repository and running the commands
ant clean
ant
generates the following error
BUILD FAILED
/home/gnardin/rcrs-server/build-javadoc.xml:5: javax.script.ScriptException: ReferenceError: "importClass" is not defined in at line number 3
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectUtil.java:109)
at org.apache.tools.ant.util.ReflectWrapper.invoke(ReflectWrapper.java:81)
at org.apache.tools.ant.util.optional.JavaxScriptRunner.evaluateScript(JavaxScriptRunner.java:103)
at org.apache.tools.ant.util.optional.JavaxScriptRunner.executeScript(JavaxScriptRunner.java:67)
at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:53)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
at org.apache.tools.ant.Main.runBuild(Main.java:854)
at org.apache.tools.ant.Main.startAnt(Main.java:236)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: :3 ReferenceError: "importClass" is not defined
at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319)
at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291)
at jdk.nashorn.internal.objects.Global.noSuchProperty(Global.java:1441)
at jdk.nashorn.internal.scripts.Script$^eval_.:program(:3)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449)
... 29 moreTotal time: 6 seconds
_
If the value of the parameter resq-fire.wind_speed
is greater than 0, the fire spreads too fast and it does not make difference if the value is 1 or a greater value.
To observe and reproduce the problem, run any scenario with the parameter resq-fire.wind_speed
in the resq-fire.cfg
set to 0 and then run the same scenario with the same parameter set to 1.
I want to treat the civilian who has suffered more critical damage. Therefore, I tried to move the civilian who is already in bed by the "load" command.
But, the following happens:
Hello, I'm a student at Nobuhiro's lab.
I'm involved in map creation. I have a question related to maps.
It is about the method of calculating scores for maps.
In the score.cfg file of each map, the score calculation method is set to
score.function : rescuecore2.standard.score.LegacyScoreFunction
However, I think this method also affects the score of fires that are not currently occurring.
Therefore, by using the following program, it is possible to calculate the score based only on the health of the citizens.
score.function : rescuecore2.standard.score.RSL21ScoreFunction
Could you please confirm and make the necessary modifications ?
On map "Day2/Mexico1" of roboCup 2014, some entrances/roads are not wide enough for the agent to be able to pass it. Sometimes when the agent tries to pass it, it will get stuck, but sometimes it will pass.
These are some of those roads:
119077-117012-116642-51369-116567
Creator: Maryam G (https://sourceforge.net/p/roborescue/bugs/115/)
Terminal log:
user@user-pc:rcrs-server $ gradle clean
FAILURE: Build failed with an exception.
* Where:
Build file '/home/oscar/repos_cloned/rcrs-server/build.gradle' line: 10
* What went wrong:
A problem occurred evaluating root project 'rcrs-server'.
> Could not find method implementation() for arguments [directory '/home/oscar/repos_cloned/rcrs-server/lib'] on root project 'rcrs-server'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 2.671 secs
When I try to change a map, he keeps getting the following error
I am creating maps in RRS and have a question about the gml-editor functionality implemented in rcrs-server.
The question is regarding the function "merge nodes" within gml-editor. From its name, I expected it to merge one node with another node. However, it actually appears to be a process of superimposing one node on another.
It seems that using this "merge nodes" function causes errors in the nodes that overlap in the "validate map" (a function that can check the location of bugs that occur during simulation). Is there any documentation on what conditions each feature works under or is there any documentation on it?
I ran the simulation according to the README in this repository and got rescue.log.xz.
I ran LogViewer with rescue.log.xz as input and got the following error message:
The following is a list of commands executed before this error occurred.
server side (rcrs-server)
$ cd rcrs-server/scripts
$ ./gradlew completeBuild
$ ./start.sh -m ../maps/test/map -c ../maps/test/config
After the simulation is over.
$./gradlew logViewer --args="'-c' 'maps/test/config/logviewer.cfg' 'logs/log/rescue.log.xz'"
client side (adf-sample-agent-java)
$ cd adf-sample-agent-java
$ ./gradlew clean
$ ./gradlew build
$ ./launch.sh -all
Please refer to the attached file: rcrs-sever/logs/log
logs.zip
Hi, I'm a graduation student, and I'm trying to use this version of the simulator. I'm new at this, and I'm having problems at the beggining of the simulation. It starts with a lot of blockades in the test map, and for my tests I would like it was a bit lower... Could someone help me?
On map "day3/VC2" of world 2013, when an agent try to move from 52634 to 4462, it would be thrown into the building 52698. But actually the MoveCommand has path [52634, 724, 4462], and there is no blockade at all.
In the attached picture, the blue line shows the ideal path, and the pink line is the actual position history return by traffic simulator.
Creator: Hongyu Zhao (https://sourceforge.net/p/roborescue/bugs/113/)
after aftershock,civilians damage will not be equal in 2 different runs!
Creator: reyhaneh (https://sourceforge.net/p/roborescue/bugs/114/)
In protobuf v5+ there is two enum
enum_v1 and enum
so they can be merged
Gradle is mentioned in the pre-installation section of the README. However, given that rcrs-server employs Gradlew (Gradle Wrapper), it may not be required. Is my understanding correct?
I think there is an inconsistency in protobuf. for Command a string urn is used but for others urn id is used.
Is there any reason for that?
Log files created by the simulators have arbitrary zero bytes at the beginning of them. Therefore, actual text log messages cannot be opened by a regular text file and investigated.
Expected Behaviour:
using --nogui parameters should have everything running without any graphical interfaces.
Behaviour:
Even if using --nogui on simulators, kernel and viewers the SampleViewer will start on postConnect.
Hi, The last issue is completely resolved! Thank you again.
There seems to be a bug in logextract.sh and logviewer.sh.
When I type the command ./logextract.sh logs/traffic-out.log ./ ,
Exception in thread "main" java.lang.IllegalArgumentException: Unrecognised RecordType: 1414676803
at rescuecore2.log.RecordType.fromID(RecordType.java:48)
at rescuecore2.log.FileLogReader.index(FileLogReader.java:181)
at rescuecore2.log.FileLogReader.(FileLogReader.java:64)
at rescuecore2.log.FileLogReader.(FileLogReader.java:50)
at rescuecore2.log.LogExtractor.main(LogExtractor.java:179)
An error such as is shown on the last output line.
Also, type the ./logviewer.sh ./logs/civilian.log ,
The basic class sample.SampleLogViewer cannot found.
Is it a bug or is it not yet implemented? I want to know the location of the citizens in real time when running simulations.
Best regards,
When we use the command bash start.sh
, the terminal keeps showing "Still waiting for 'Listening for connections'...". We tried for a long time but couldn't figure out what the problem was
When I run the simulator based on introduction manual(start.sh -m ../maps/gml/Kobe2013/maps -c ../maps/gml/Kobe2013/config), it takes 5 seconds for each time steps.
Does it usually take five seconds for each step? Is there a way to change it?
On map "Day1/Paris1" of roboCup 2014, there is a building (ID: 64458) that -in some parts- is not wide enough for the agent to be able to pass it.
Creator: Maryam G (https://sourceforge.net/p/roborescue/bugs/116/)
Is there support for ROS in this simulator?
Currently, we cannot get refill rate with a config.
Maybe, it is a bug.
I think it can be fixed rewriting like below.
modules/standard/src/rescuecore2/standard/kernel/StandardAgentRegistrar.java:L48 VISIBLE_CONFIG_OPTIONS.add("fire.tank.refill-rate");
->
VISIBLE_CONFIG_OPTIONS.add("fire.tank.refill_rate");
The Log4j has been discontinued. Log4j2 provides improved and up-to-date features.
https://logging.apache.org/log4j/2.x/manual/migration.html
I think it can be interesting to use docker and Gradle alpine image (gradle:jdk17-alpine or openjdk:17-jdk-alpine)
In this case, it can be easier for some newcomers to start using the ADF and also the simulator.
each time they can easily run the code by
docker-compose up
The usage instructions to run the RCRS do no correspond exactly to the available options and required arguments.
I understand the urn id saves more memory than using string and I completely agree with that however I think it would be better to use enum in protobuf.
I think this will be more consistent and we can consider and maintain all enums ids in protobuf file.
On map "Berlin1" of IranOpen2015, there is a an angent(ID: 891293044), located in a road (ID: 16555) which contains some blockades, which can not handle move command properly from cycle 11 to 37.
As we followed , this is happening due to calling getPathElements2
function in line 388 ("steps.addAll(getPathElements2(human, currentArea, lastEdge, nextArea, edge));") in "handleMove" method in "rescue2014/modules/traffic3/src/traffic3/simulator/TrafficSimulator.java" file.
This is interesting that using "getPathElements" instead of "getPathElements2" fixes the problem.
Attached is the log which contains this bug.
https://sourceforge.net/p/roborescue/bugs/117/attachment/Berlin1.log.7z
Creator: Rozhina Pourmoghaddam (https://sourceforge.net/p/roborescue/bugs/117/)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.