EmbeddedMontiArc issueshttps://git.rwth-aachen.de/groups/monticore/EmbeddedMontiArc/-/issues2019-08-03T19:27:19+02:00https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/server/-/issues/31Password for user "Simulator" on the distributed Ubuntu 16.04 Image2019-08-03T19:27:19+02:00ulfetPassword for user "Simulator" on the distributed Ubuntu 16.04 ImageIf it was announced before, it was on my mistake to not hear it.
I tried running the image, and it asks me password for the user named "Simulator" on the login screen.
Should I opt for Guest session?
(I tried couple of cheesy guesses o...If it was announced before, it was on my mistake to not hear it.
I tried running the image, and it asks me password for the user named "Simulator" on the login screen.
Should I opt for Guest session?
(I tried couple of cheesy guesses of mine, to no avail)
The reason that I switched to this disk image is to have compatibility.
I pulled all the new changes from the repositories, and I encountered with the same situation I had before:
RPC does not update the car position.
If needed, I can provide what I encountered with, and how it is different from the previous one (that with the help of the superiors at the meeting, we solved and made it update the car's position).
Best.Hengwen Zhanghengwen.zhang@rwth-aachen.deHengwen Zhanghengwen.zhang@rwth-aachen.dehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/22Fix: create folder before writting files in generate method2019-08-29T14:00:50+02:00Alexander David HellwigFix: create folder before writting files in generate methode.g.
```java
File directory = new File(generationTargetPath);
directory.mkdirs();
```e.g.
```java
File directory = new File(generationTargetPath);
directory.mkdirs();
```https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/13Move to EMADL2020-10-29T16:22:18+01:00Evgeny KusmenkoMove to EMADLCan this clas be moved to EMADL language project?
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/blob/develop/src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.javaCan this clas be moved to EMADL language project?
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/blob/develop/src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.javaNicola GattoEyüp HarputluNicola Gattohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/cnnarch2x/-/issues/2Padding type2019-09-26T14:00:01+02:00Evgeny KusmenkoPadding typePadding is defined to be a string in the readme, but is actually a list of ints in the implementation.
both should be possiblePadding is defined to be a string in the readme, but is actually a list of ints in the implementation.
both should be possibleJulian Johannes Steinsberger-DührßenBo PengTim Benjamin SchuppJulian Johannes Steinsberger-Dührßenhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/17Toolchain: improve array handling2019-09-25T12:26:03+02:00Alexander David HellwigToolchain: improve array handling# Adapt the EMAM2RosCpp Project:
For the tag `topic=(/autopilot/trajectory_x, nav_msgs/Path), msgField=poses[:].pose.orientation.x)` something like this sould be generated:
```C++
void _autopilot_trajectory_xCallback(const nav_msgs::Path...# Adapt the EMAM2RosCpp Project:
For the tag `topic=(/autopilot/trajectory_x, nav_msgs/Path), msgField=poses[:].pose.orientation.x)` something like this sould be generated:
```C++
void _autopilot_trajectory_xCallback(const nav_msgs::Path::ConstPtr& msg) {
int counter = 0;
for (int i0 = 0; i0 < 1; i0++) {
for (int i1 = 0; i1 < 100; i1++) {
//START NEW GENERATED CODE
if (msg->poses.size() > counter) {
(component->trajectory_x)(i0, i1) =
msg->poses[counter].pose.orientation.x;
} else {
(component->trajectory_x)(i0, i1) = 0;
}
//END NEW GENERATED CODE
counter++;
}
}
}
```
With this change we will no longer need the python adapter for the autopilot wrapper.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistcalculator/-/issues/7Update EMADL2CPP version2020-07-01T13:23:08+02:00Evgeny KusmenkoUpdate EMADL2CPP versionPlease update the emadl version and make sure it runs with the old models.
Create a new dir with tagging.Please update the emadl version and make sure it runs with the old models.
Create a new dir with tagging.Baran DalgicAbdallah AtouaniBaran Dalgichttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/16Bumper Bot: use collision information2019-08-12T17:10:51+02:00Alexander David HellwigBumper Bot: use collision informationUse the resulting collision vector to adjust the Bumper Bots position after a collision.
A 90° would probably work.
You might need to safe your calculated new orientation in a static variable, since the rotation to that orientation will...Use the resulting collision vector to adjust the Bumper Bots position after a collision.
A 90° would probably work.
You might need to safe your calculated new orientation in a static variable, since the rotation to that orientation will take longer than the next calculation of the component.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/20Integration into EMAM2Middleware2019-08-25T20:47:10+02:00Alexander David HellwigIntegration into EMAM2MiddlewareIn EMAM2Middleware https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/tree/integrate-MQTT:
* [x] pom.xml
* [x] add the [dependency](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2M...In EMAM2Middleware https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/tree/integrate-MQTT:
* [x] pom.xml
* [x] add the [dependency](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L103) of your mw generator
* [x] (increment [project version](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L12))
* [x] New Class in de.monticore.lang.monticar.generator.middleware.impls
* [x] Wrapper for your generator
* [x] implements GeneratorImpl
* [x] similar to [RosCppGenImpl](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/RosCppGenImpl.java)
* [x] Changes for [DistributedTargetGeneratorCli](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java)
* [x] New Constant like [Line 47](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L47)
* [x] also add to [getGeneratorNames()](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L89)
* [x] add to [runGenerator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L164), ignoring TagSchema and TagHelper instructions for now
* [x] Add a new Test Class
* [x] Similar to [Ros2GenerationTest](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L17)
* [x] 1 or more TestCases
* [x] replace [resolveTags](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L28) with manual adding of your middleware Tags as in the previous Test cases
* [x] add the [CPP](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L32) and your middleware generator
* [x] compile the result using [gitlab-ci](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/.gitlab-ci.yml#L35) and your docker imageGeorg VinogradovJannis Joachim TölleMike GrüneGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/21Integration into EMAM2Middleware2019-08-23T14:35:18+02:00Alexander David HellwigIntegration into EMAM2MiddlewareIn EMAM2Middleware:
- pom.xml
- add the [dependency](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L103) of your mw generator
- (increment [project version](https://git.rwth...In EMAM2Middleware:
- pom.xml
- add the [dependency](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L103) of your mw generator
- (increment [project version](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L12))
- New Class in de.monticore.lang.monticar.generator.middleware.impls
- Wrapper for your generator
- implements GeneratorImpl
- similar to [RosCppGenImpl](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/RosCppGenImpl.java)
- Changes for [DistributedTargetGeneratorCli](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java)
- New Constant like [Line 47](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L47)
- also add to [getGeneratorNames()](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L89)
- add to [runGenerator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L164), ignoring TagSchema and TagHelper instructions for now
- Add a new Test Class
- Similar to [Ros2GenerationTest](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L17)
- 1 or more TestCases
- replace [resolveTags](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L28) with manual adding of your middleware Tags as in the previous Test cases
- add the [CPP](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L32) and your middleware generator
- compile the result using [gitlab-ci](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/.gitlab-ci.yml#L35) and your docker imagehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/20Prepare Templates for Integration2019-07-30T21:52:39+02:00Alexander David HellwigPrepare Templates for Integration- CMake.ftl
- add the code generated by EMAM2CPP to the imported libraries(will replace the mock you used until now): https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/mont...- CMake.ftl
- add the code generated by EMAM2CPP to the imported libraries(will replace the mock you used until now): https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl#L14
- add the IAdapter interface to the imported libraries: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl#L15
- Adapter.h.ftl/Adapter.cpp.ftl
- import the code generated by EMAM2CPP: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L8
- import the IAdapter interface to the imported libraries:https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L9
- implement the IAdapter interface: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L15https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/19Prepare Templates for Integration2019-08-25T17:33:55+02:00Alexander David HellwigPrepare Templates for Integration- CMake.ftl
- add the code generated by EMAM2CPP to the imported libraries(will replace the mock you used until now): https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/mont...- CMake.ftl
- add the code generated by EMAM2CPP to the imported libraries(will replace the mock you used until now): https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl#L14
- add the IAdapter interface to the imported libraries: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl#L15
- Adapter.h.ftl/Adapter.cpp.ftl
- import the code generated by EMAM2CPP: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L8
- import the IAdapter interface to the imported libraries:https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L9
- implement the IAdapter interface: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L15Georg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/19Add deploy job to gitlab-ci2019-07-30T21:52:16+02:00Alexander David HellwigAdd deploy job to gitlab-ci- Used to deploy the resulting jar to the se maven repository
- similar to [roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/.gitlab-ci.yml#L5)
- remove maven goal sonar:sonar for now
- onl...- Used to deploy the resulting jar to the se maven repository
- similar to [roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/.gitlab-ci.yml#L5)
- remove maven goal sonar:sonar for now
- only deploy on master branch!(use only,except)
- only deployed changes can be used in other Projects(except if both artifacts are build on the same machine)https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/18Add deploy job to gitlab-ci2019-07-28T15:26:31+02:00Alexander David HellwigAdd deploy job to gitlab-ci- Used to deploy the resulting jar to the se maven repository
- similar to [roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/.gitlab-ci.yml#L5)
- remove maven goal sonar:sonar for now
- onl...- Used to deploy the resulting jar to the se maven repository
- similar to [roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/.gitlab-ci.yml#L5)
- remove maven goal sonar:sonar for now
- only deploy on master branch!(use only,except)
- only deployed changes can be used in other Projects(except if both artifacts are build on the same machine)Jannis Joachim TölleJannis Joachim Töllehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/17Fix Subscribers/Publishers(MQTT)2019-07-28T14:47:00+02:00Alexander David HellwigFix Subscribers/Publishers(MQTT)- make sure that the value published to/(read from) your middleware is read from/(written to) the Port the MQTTConnectionSymbol is attached to
- Subscriber
- use variable port name instead of `mqttIn`(from [here](https://git.rwth-aac...- make sure that the value published to/(read from) your middleware is read from/(written to) the Port the MQTTConnectionSymbol is attached to
- Subscriber
- use variable port name instead of `mqttIn`(from [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/blob/16-add-basic-adapter-generation/src/main/resources/de/monticore/lang/monticar/generator/mqtt/template/Callback.cpp.ftl#L30))
- it must be possible to write to more than one port, since a MQTTConnectionSymbol could be added to each incomming Port. You might need to create multiple instances of Callback or multiple Callback classes.
- Publisher
- use variable port name instead of `mqttOut`(from [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/blob/16-add-basic-adapter-generation/src/main/resources/de/monticore/lang/monticar/generator/mqtt/template/Adapter.cpp.ftl#L50))https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/18Fix Subscribers/Publishers(SomeIP)2019-09-23T08:36:50+02:00Alexander David HellwigFix Subscribers/Publishers(SomeIP)- make sure that the value published to/(read from) your middleware is read from/(written to) the Port the SomeIPConnectionSymbol is attached to
- Subscriber
- use variable port name instead of `someIPIn`(from [here](https://git.rwth...- make sure that the value published to/(read from) your middleware is read from/(written to) the Port the SomeIPConnectionSymbol is attached to
- Subscriber
- use variable port name instead of `someIPIn`(from [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/blob/master/src/main/resources/de/monticore/lang/monticar/generator/someip/template/Adapter.cpp.ftl#L50))
- it must be possible to write to more than one port, since a SomeIPConnectionSymbol could be added to each incomming Port. You might need to create multiple callback methods in the Adapter.
- Publisher
- use variable port name instead of `someIPOut`(from [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/blob/master/src/main/resources/de/monticore/lang/monticar/generator/someip/template/Adapter.cpp.ftl#L61)). You will need to generate multiple publish methods.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/17Remove example Adapter from Dockerfile2019-07-14T22:07:17+02:00Alexander David HellwigRemove example Adapter from Dockerfilehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/-/issues/2Matrix type translation is not generated if the connectionsymbol contains a ...2022-04-28T12:58:53+02:00Alexander David HellwigMatrix type translation is not generated if the connectionsymbol contains a msgFieldAlexander David HellwigAlexander David Hellwighttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/server/-/issues/30Remote Procedure Call (RPC) not updating position at all2019-10-09T12:55:54+02:00ulfetRemote Procedure Call (RPC) not updating position at allUsing new commit in GitLab,\
while running the whole simulation,
RPC does not update the car(?)'s position at all.\
(This was also the case in the previous implementation where we were using SmartFoxServer).\
While I might be missing s...Using new commit in GitLab,\
while running the whole simulation,
RPC does not update the car(?)'s position at all.\
(This was also the case in the previous implementation where we were using SmartFoxServer).\
While I might be missing something along the lines,
I thought it is best to record this as an issue.
In the attachment one can found the logs from RMIServer(top-left), RPC (bottom-left), and restful (right column).
Also, here is the final install result of restful (it fails):\
`[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] RemoteAutopilotServiceTest.isAvailable:40
[ERROR] ZookeeperRegistryTest.getSimulator:69
[ERROR] Errors:
[ERROR] RemoteAutopilotServiceTest.reserveAndRelease:54 » ZkNoNode org.apache.zookeepe...
[ERROR] ZookeeperRegistryTest.getAutopilot:40 » NoService
[ERROR] ZookeeperRegistryTest.releaseAll:83 » ZkNoNode org.apache.zookeeper.KeeperExce...
[INFO]
[ERROR] Tests run: 42, Failures: 2, Errors: 3, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:25 min
[INFO] Finished at: 2019-07-01T13:14:41+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project restful: There are test failures.
[ERROR]
[ERROR] Please refer to /home/ulfet/Desktop/github_projects/MontiSim/server/restful/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
...
`
![ss](/uploads/f07b213eaa8b55b52d3e67241678bfeb/ss.png)https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/15Merge Dockerfile into master2019-07-12T14:16:33+02:00Alexander David HellwigMerge Dockerfile into masterClean up Project(with new subfolder for rosbridge)
or change the Dockerfile to use git clone so we dont have to host the rosbridge code
Merge your Dockerfile into masterClean up Project(with new subfolder for rosbridge)
or change the Dockerfile to use git clone so we dont have to host the rosbridge code
Merge your Dockerfile into masterhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/14Fix/Create BumperBot2019-07-12T14:16:49+02:00Alexander David HellwigFix/Create BumperBot