GithubHelp home page GithubHelp logo

robertalab-ev3dev's People

Contributors

afgym-baeu avatar alexfh avatar bidaian avatar boonto avatar dlech avatar ensonic avatar jpotecki avatar rbudde avatar simonedegiacomi avatar vlebedynska avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

robertalab-ev3dev's Issues

received BT-message differs from sended one

When sending the message
Hello World!
using a bluetooth connection, the receiving brick gets (or at least has a string containig)
b'Hello World!'
as a message.

The additional characters do not depend on the string you send, it is always the prefix b'and the suffix '.

I did not find any reason for that in ev3.py.

My programs for testing this issue are here.

Support different font sizes for ShowText() ?

See ev3dev/ev3dev-lang-python#323 for some background

Current status:

Small text can be problematic in low light conditions.
The ShowText block uses Row/Col coordinates which makes it hard to mix text sizes.

We could add a DrawText command that takes x,y coordinates and a font from a list. Additionally we'd provide getFontHeight/getFontWidth 'Sensors' with the same font list.

Robot doesn't tell you when the server has the pairing code

When the robot generates the pairing code, it shows it on the screen. If the WiFi is unreliable, it may not yet be registered on the server, so when you try to enter it in the Lab you get an error.

If would be nice if we could have a string on the screen that starts eg "Connecting..." then changes to "Connected" when it's ready. This would save you repeated entering the code again and again until the server has it.

need to reenter a new code each time we reconnect usb

When using a usb connection either to a local server one needs to enter a new code each time.

The issue is that the http-push request will fail when the usb cable is pulled. The robot would need to keep retrying to connect using the same code. Also the server would need to re-allow the connection.

First step is the check if we can determine that the network is down, then we could keep trying. This is what we're getting:

Jan 21 20:54:04 ev3dev openrobertalab[581]: DEBUG:roberta.lab:URLError: URLError(gaierror(-2, 'Name or service not known'),)
Jan 21 20:54:04 ev3dev openrobertalab[581]: ERROR:roberta.lab:URLError: https://lab.open-roberta.org: [Errno -2] Name or service not known
Jan 21 20:54:04 ev3dev openrobertalab[581]: INFO:roberta.lab:network thread stopped
Jan 21 20:54:04 ev3dev openrobertalab[581]: INFO:roberta.lab:status changed: disconnected

Next we need to verify that the server lets us reconnect.

Robot shows code for a short period then it disappears

  1. On bad WiFi, try to connect to the OpenRoberta Lab.
  2. Robot shows code for a few seconds.
  3. Robot stops showing code and returns to "Connect" screen.
  4. You have to keep selecting "Connect" until the code stays on the screen long enough to connect.

Could this be fixed by retrying with the same code until we connect successfully?

Use espeak oder play a ".wav" file

Hi,
i have installed the ev3dev on my brick and use robertalab to program my robot.
Is there a posibility to use espeak oder play a ".wav" file with the robertalab?
It will be a cool feature :-)) especially for pupils.

missing quotes in setRegulatedMotorSpeed

def run():
    if TRUE:
        while not (hal.isKeyPressed('enter') == True) :
            hal.setRegulatedMotorSpeed('B, 30)

causes

Feb 29 09:49:06 ev3dev openrobertalab[758]: Traceback (most recent call last):
Feb 29 09:49:06 ev3dev openrobertalab[758]: File "/usr/lib/python2.7/dist-packages/roberta/lab.py", line 210, in _exec_code
Feb 29 09:49:06 ev3dev openrobertalab[758]: compiled_code = compile(code, filename, 'exec')
Feb 29 09:49:06 ev3dev openrobertalab[758]: File "/home/robot/setRegulatedMotorSpeedTest.py", line 29
Feb 29 09:49:06 ev3dev openrobertalab[758]: hal.setRegulatedMotorSpeed('B, 30)
Feb 29 09:49:06 ev3dev openrobertalab[758]: ^
Feb 29 09:49:06 ev3dev openrobertalab[758]: SyntaxError: EOL while scanning string literal

need to update the interpreter in generated code to run via python3

Good evening. Finally open roberta works for me from the webbrowser :-) but now, if I try to run NEPOprog.py from the command line I get the following error and it doesn't work.
Thank you and regards

Antonio

File "NEPOprog.py", line 4, in
from roberta.ev3 import Hal

robertalab failes on Debian Stretch

I'm using images that descend from the ev3dev-stretch-ev3-generic docker builds on ev3 bricks.

When starting robertlab I get a File not found error since it tries to use /dev/input/by-path/platform-gpio-keys.0-event, which apperently got replaced by /dev/input/by-path/platform-gpio_keys-event.
Since both linked to /dev/input/event0 I can simply add that file, but then I get another error:

INFO:roberta:--- starting ---
INFO:roberta.lab:python path: /usr/bin:/usr/lib/python35.zip:/usr/lib/python3.5:/usr/lib/python3.5/plat-arm-linux-gnueabi:/usr/lib/python3.5/lib-dynload:/usr/local/lib/python3.5/dist-packages:/usr/lib/python3/dist-packages

INFO:roberta.lab:status changed: disconnected
Traceback (most recent call last):
  File "/usr/bin/openrobertalab", line 41, in <module>
    main()
  File "/usr/bin/openrobertalab", line 36, in main
    service = Service('/org/openroberta/Lab1')
  File "/usr/lib/python3/dist-packages/roberta/lab.py", line 88, in __init__
    self.hal.clearDisplay()
  File "/usr/lib/python3/dist-packages/roberta/ev3.py", line 179, in clearDisplay
    self.lcd.update()
  File "/usr/lib/python3/dist-packages/ev3dev/core.py", line 3135, in update
    self.mmap[:] = self._img.tobytes("raw", "1;IR")
IndexError: mmap slice assignment is wrong size
INFO:roberta:--- done ---

I asked @dlech about it who told me that OpenRoberta/ev3dev-lang-python hasn't been updated for stretch yet and redirected me here.

connection to robot works but nothing happens when clicking play

Hi,

I installed ev3dev, updated all packaged and now brickman has a open robert lab option.
then I made a deb packaged from your rep and installed it on ev3dev
the systemd service refused to start but if running openroberta from shell it seems brickman is happy and connects and gives me a code.
Then I go to http://lab.open-roberta.org/# connect to robot with code, everything looks good. Then I write a simple program (drive forward for example) and click play. But clicking on play does not seem to do anything. nothing on the shell in ev3dev from openroberta script either. nothing interresting in lab.open-roberta.org log either.

clicking on show code shows some java code. Is there a way to see python code (I understood openroberta is supposed to send python code in this case.

am I missing something to make it work?
Thanks
Olivier
(I can make python scripts on ev3dev and run robot so that works, ut I would like to use open roberta for the kids)

Crashes on non-EV3 hardware.

This should be able to work on PiStorms and soon EVB as well. There are a few issues that need to be addressed though.

The first issue I ran into is that the path for the buttons is hard coded. I think it would be better to search by name rather than by path as paths may change in future versions anyway.

This is probably something that is best solved in ev3dev-lang-python, but robertalab-ev3dev will need to be adapted to use it.

The pairing code is shown before it has reached the server

With the current code we show the pairing code in the UI and send a push-request with 'cmd=register' and the pairing code to the server. If the robot is on a slow network, the user can enter the code already and then gets this warning from the openroberta lab:

Check if your robot is switched on and connected to the server.

We can't wait for the request to reach the server, since this is a http-push api where, we intentionall fire requests and keep them waiting at the server side. There is no hook for getting notified when the request was sent.
https://docs.python.org/3/library/urllib.request.html#module-urllib.request

A better wait would be to:

  1. send the 'init' to the server without a token and receive the token from the server (small timeout)
  2. send 'register' with the received token to the server (long timeout)

This way we know that we have connected in 1) and can show the token. See OpenRoberta/robertalab#32

See also #28.

Can't import BlocklyMethods

#5 gets me farther than I was, but now I am getting an error when trying to run a program. I presume this error is in the code that is sent from the lab.open-roberta.org server.

Dec 28 21:29:59 ev3dev openrobertalab[1261]: INFO:roberta.lab:status changed: executing
Dec 28 21:30:00 ev3dev openrobertalab[1261]: INFO:roberta.lab:code downloaded to: /home/robot/NEPOprog.py
Dec 28 21:30:00 ev3dev openrobertalab[1261]: ERROR:roberta.lab:Ooops:
Dec 28 21:30:00 ev3dev openrobertalab[1261]: Traceback (most recent call last):
Dec 28 21:30:00 ev3dev openrobertalab[1261]: File "/usr/lib/python2.7/dist-packages/roberta/lab.py", line 237, in run
Dec 28 21:30:00 ev3dev openrobertalab[1261]: exec(code, globals(), globals())
Dec 28 21:30:00 ev3dev openrobertalab[1261]: File "/home/robot/NEPOprog.py", line 4, in <module>
Dec 28 21:30:00 ev3dev openrobertalab[1261]: from roberta.ev3 import Hal,BlocklyMethods
Dec 28 21:30:00 ev3dev openrobertalab[1261]: ImportError: cannot import name BlocklyMethods
Dec 28 21:30:00 ev3dev openrobertalab[1261]: INFO:roberta.lab:status changed: registered

It looks like BlocklyMethods may have moved? I think it should be from roberta import BlocklyMethods as a separate line.

server error when using message blocks

The lab (lab.open-roberta.org, release 2.2.5, ev3dev) shows a "Attention - Server error" popup when starting a program that contains a message block, even a simple wait for connection. The gui switches to a new project and all unsaved programming is lost.

detect local server when using a Point-to-Point conenction

When we are online, check if we can detect a local open roberta server. This would help using p2p-connections like usb/bt. We would e.g. do a mdns discovery on the robot and mdns announcements of local clients.

Ideally we'd just try to connect to :1999. On the machine that hosts the server:

$ ifconfig usb0
usb0      Link encap:Ethernet  HWaddr 12:16:53:48:af:38  
          inet addr:172.16.243.1  Bcast:172.16.243.255  Mask:255.255.255.0
          inet6 addr: fe80::1016:53ff:fe48:af38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:77 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2917 (2.9 KB)  TX bytes:10592 (10.5 KB)
$ route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.243.0    0.0.0.0         255.255.255.0   U     1      0        0 usb0

On the ev3:

$  ifconfig usb0
 usb0      Link encap:Ethernet  HWaddr 02:16:53:48:af:38  
          inet addr:172.16.243.50  Bcast:172.16.243.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:8151 errors:0 dropped:220 overruns:0 frame:0
          TX packets:6056 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2337065 (2.2 MiB)  TX bytes:837457 (817.8 KiB)
$ route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.243.1    0.0.0.0         UG    0      0        0 usb0
172.16.243.0    0.0.0.0         255.255.255.0   U     0      0        0 usb0
172.16.243.1    0.0.0.0         255.255.255.255 UH    0      0        0 usb0

So we could grab the gateway address for usbX or hciX and try to connect to :1999.

First step would be a local python prototype. If that works, we'd need changes in the UI to support a "discovered server" and changes on this module to run a thread an periodically run the discovery (the code from the previously mentioned prototype).

AttributeError: 'module' object has no attribute 'isEven'

def run():
    if BlocklyMethods.isEven(BlocklyMethods.randInt(1, 100)) :
        hal.rotateDirectionAngle('C', 'B', False, 'right', 30, 45)
    else:
        hal.rotateDirectionAngle('C', 'B', False, 'left', 30, 45)

causes

Feb 29 09:09:59 ev3dev openrobertalab[363]: Traceback (most recent call last):
Feb 29 09:09:59 ev3dev openrobertalab[363]: File "/usr/lib/python2.7/dist-packages/roberta/lab.py", line 214, in _exec_code
Feb 29 09:10:00 ev3dev openrobertalab[363]: exec(compiled_code, scope)
Feb 29 09:10:00 ev3dev openrobertalab[363]: File "/home/robot/blocklyMethodsRandIntTest.py", line 59, in <module>
Feb 29 09:10:00 ev3dev openrobertalab[363]: main()
Feb 29 09:10:00 ev3dev openrobertalab[363]: File "/home/robot/blocklyMethodsRandIntTest.py", line 49, in main
Feb 29 09:10:00 ev3dev openrobertalab[363]: run()
Feb 29 09:10:00 ev3dev openrobertalab[363]: File "/home/robot/blocklyMethodsRandIntTest.py", line 27, in run
Feb 29 09:10:00 ev3dev openrobertalab[363]: if BlocklyMethods.isEven(BlocklyMethods.randInt(1, 100)) :
Feb 29 09:10:00 ev3dev openrobertalab[363]: AttributeError: 'module' object has no attribute 'isEven'

robertalab-ev3dev hangs when motor stalls

Hi,

I'm using using the latest snapshot-ev3dev-jessie-ev3-generic-2017-02-08.img on EV3, with the SPIK3R robot.
If a motor is blocked (stalled) then robertalab hangs forever.

We are trying to find the range of movement, but each time it hangs. Is there a way not to have the connector hang forever?

"You are trying to connect a robot of a different type [...]"

Hi. I am working in Windows 10 x64 with a openroberta local server (2.2.4).

Recently I have discovered any EV3 fails in connecting. I have test with the Open Roberta connector (updated in 2017.06.03).

I get:
You are trying to connect a robot of a different type as selected in the menu.
Please switch the robot type in the robot's menu and try to connect again!

However another bricks connect without troubles.

I have any research.

  • openroberta local server (2.2.4)
  • In this test the connector openroberta-ev3dev is closed at the end of April, 2017.

I have two EV3 bricks, I am using USB cable.

  1. I load the openroberta page. I select Ev3->EV3dev
  2. I try to connect the first EV3. The code is 27Z92WHQ.
  3. The connection is successfully.
  4. I disconnect the first EV3.
  5. I reload the openroberta page. I select Ev3->EV3dev
  6. I try to connect the second EV3. The code is HKQGZN3T.
  7. The connection fails.

You are trying to connect a robot of a different type as selected in the menu.
Please switch the robot type in the robot's menu and try to connect again!

Here the openroberta server log:
LINK

I think It is remarkable the text:

token HKQGZN3T belongs to a robot of type ev3, client is set to ev3dev

There is at least one difference between the 'good' EV3 and the 'bad' units. The 'problematic' EV3s had/have a Netgear wifi dongle. The wifi was enabled and it worked perfectly but, casually, we don´t work with Open Roberta with those units... For that reason I had not detected this problem before.

However the wifi is disabled now. No dongle. The problem persists. No idea it it is related. I am going to test more deeply this way... but i need time.

DJuego

Trouble with the EV3 Gyrosensor

For instance;

i want to show the Gyro values in EV3 screen:
http://imgur.com/a/Y1d1w

I get the code:
[https://paste.ofcode.org/MLV6ttyg5VcRXHmamfHqua]

Now I spin the robot with my hands. The expected values are:

0.0
12.0
18.0
32.0
Now i stop. The final value must be 32.0

HOWEVER

I get:

0.0
12.0
18.0
32.0
Now i stop, and...
14.0
11.0
4.0
0.0

Why???

P.S: I have a fully upgraded ev3dev. (2017.03.18)
P.S: I have attached the XML file program in a .zip file. (2017.03.22)
NEPOprog.zip

Trouble with motor port on speed?

I have the next code:
http://imgur.com/a/jBPtd

openrobertalab translate to the next python code:
http://paste.ofcode.org/3zkwC5v33ZRHdWTm7AJRdC

The EV3 behaviour is not expected. I expected:

When the touch sensor is pressed, the medium motor stops. However the program does not finish.
In any moment, when it the console up button is pressed, the program finish.

The EV3 behaviour i got:

The medium motor turn on a second and stop.
The touch sensor is not stop the medium motor.
The console up button is not stop the program.
Blank screen
I have to reboot the EV3 with ENTER+LEFT+BACK

The problem happen with motor B and C too.

My configuration is:

Medium motor (A)
Big motor (B)
Big motor (C)

Touch sensor (1)
Gyroscope sensor (2)
Light/colour sensor (3)
Ultrasonic sensor (4)

I am working with the 2017-01-25 fully updated. (2017-01-28)

systemd service should not restart on failiure

I tried running openrobertalab.service on my FatcatLab EVB just to see what happens. It crashes because of #8. But, because systemd service tell it to always restart (Restart=always), it creates an infinite loop of crashing. Fortunately, systemd is smart enough to see this and kill the loop eventually, but it left brickman thinking the service was still available because it restarted so many times so quickly.

Bluetooth message blocks are not interruptible

See OpenRoberta/robertalab#680

We'll need to make the socket non-blocking and poll:
https://docs.python.org/3.3/howto/sockets.html#non-blocking-sockets
https://docs.python.org/3.3/library/socket.html#socket.socket.setblocking
or we can use a timeout:
https://docs.python.org/3.3/library/socket.html#socket.socket.settimeout
catch the timeout exception and loop, so that canceling works.

For reference the pybluez code: https://github.com/karulis/pybluez/

AttributeError

"Fehler im EV3
AttributeError
'NoneType' object has no attributes

Press any key"

This showed up on the screen when trying to run a simple motor program.
How to fix it?

I am running this on the latest version of ev3dev

Timer does not work

Using any of the timer blocks leads to an error on the EV3 (both ev3dev and ev3lejos).
With ev3dev this error message is shown on the bricks display (just using a reset timer 1 block:

Fehler im EV3
KeyError
1

Press any key

The digit in the third line equals the timer number the block referres to.
Same issue on ev3lejos, but no error message is shown - the program simply crashes.

Unable to connect

I have an EV3 device with an internet connection, I get the pairing code, type it in Roberta Lab and get the following:

image

How can I diagnose what's wrong?

Don't let the user connect if there is no network

Right now the user can click connect and sees the pairing code, even though the server is not actually reachable. Somewhat related to #30 .
Maybe we can handle this on the brickman UI. Right now the NetworkController does not expose the online state though.

handle updates automatically

The robots sends its client library version along with the connection to the server. If the server is newer (server=1.4.X, client=1.3.X) it assumes that the client-libraries should be updated. The UI will suggest the user to update the libs and if the user chooses so, the server sends an update request to the robot.

This does not work for ev3dev:

  • the server would unconditionally offer java libs
  • on ev3dev updates come from the debian repositories
  • the ev3dev client libarries would actually work for 1.3-1.4

Maybe we can do something along the lines of:

mkdir -p /tmp/sources.list.d/
# echo "deb http://ev3dev.org/debian jessie main" > /tmp/sources.list.d/ev3dev.list
grep  "ev3dev.org" /etc/apt/sources.list > /tmp/sources.list.d/ev3dev.list
sudo chrt -b 0 apt-get update -o APT::List-Cleanup=0 \
  -o Dir::Etc::sourcelist="/dev/null" \
  -o Dir::Etc::sourceparts="/tmp/sources.list.d/"
sudo apt-get install -o APT::List-Cleanup=0 \
  -o Dir::Etc::sourcelist="/dev/null" \
  -o Dir::Etc::sourceparts="/tmp/sources.list.d/"  \
  --only-upgrade openrobertalab

We can also use this to check what would be upgraded (as suggested on http://unix.stackexchange.com/questions/19470/list-available-updates-but-do-not-install-them):

sudo chrt -b 0 apt-get --just-print upgrade \
  -o APT::List-Cleanup=0 \
  -o Dir::Etc::sourcelist="/dev/null" \
  -o Dir::Etc::sourceparts="/tmp/sources.list.d/" \
 | LANG=C perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "PROGRAM: $1 INSTALLED: $2 AVAILABLE: $3\n"}'
PROGRAM: libavahi-common-data INSTALLED: 0.6.31-5 AVAILABLE: 0.6.32-1ev3dev1
PROGRAM: libavahi-common3 INSTALLED: 0.6.31-5 AVAILABLE: 0.6.32-1ev3dev1
PROGRAM: libavahi-client3 INSTALLED: 0.6.31-5 AVAILABLE: 0.6.32-1ev3dev1
PROGRAM: libavahi-core7 INSTALLED: 0.6.31-5 AVAILABLE: 0.6.32-1ev3dev1
PROGRAM: avahi-daemon INSTALLED: 0.6.31-5 AVAILABLE: 0.6.32-1ev3dev1
PROGRAM: connman INSTALLED: 1.31-0ev3dev1 AVAILABLE: 1.32-0ev3dev1
PROGRAM: flash-kernel INSTALLED: 3.35ev3dev5 AVAILABLE: 3.35ev3dev8
PROGRAM: zram-init INSTALLED: 3.5ev3dev1 AVAILABLE: 3.5ev3dev2

starting programs on the ev3dev with no motors/sensors connected throws

When sending a program that does not use motors/sensors to an ev3 that has nothing connected, we still instantiate them in the robot config. This will throw an exception that we don't handle.

Exception AttributeError: "'MediumMotor' object has no attribute '_path'" in <bound method MediumMotor.del of <ev3dev.core.MediumMotor object at 0xb5dc9410>> ignored

None dereference error when only one motor is connected

Connect only one motor to the brick and try to send a program to drive a short distance.

robot@ev3dev:~$ python NEPOprog.py 
Exception AttributeError: "'LargeMotor' object has no attribute '_path'" in <bound method LargeMotor.__del__ of <ev3dev.core.LargeMotor object at 0xb65f7d50>> ignored
Traceback (most recent call last):
  File "NEPOprog.py", line 44, in <module>
    main()
  File "NEPOprog.py", line 33, in main
    run()
  File "NEPOprog.py", line 29, in run
    hal.driveDistance('C', 'B', False, 'foreward', 30, 20)
  File "/usr/lib/python2.7/dist-packages/roberta/ev3.py", line 353, in driveDistance
    ml.run_to_rel_pos(speed_regulation_enabled='on',
AttributeError: 'NoneType' object has no attribute 'run_to_rel_pos'

NEPOprog.py:

#!/usr/bin/python

from __future__ import absolute_import
from roberta.ev3 import Hal
from roberta.BlocklyMethods import BlocklyMethods
from sets import Set
from ev3dev import ev3 as ev3dev
import math

TRUE = True
_brickConfiguration = {
    'wheel-diameter': 5.6,
    'track-width': 18.0,
    'actors': {
        'B':Hal.makeLargeMotor(ev3dev.OUTPUT_B, 'on', 'foreward', 'right'),
        'C':Hal.makeLargeMotor(ev3dev.OUTPUT_C, 'on', 'foreward', 'left'),
    },
    'sensors': {
        '1':Hal.makeTouchSensor(ev3dev.INPUT_1),
        '2':Hal.makeGyroSensor(ev3dev.INPUT_2),
        '3':Hal.makeColorSensor(ev3dev.INPUT_3),
        '4':Hal.makeUltrasonicSensor(ev3dev.INPUT_4),
    },
}
_usedSensors = Set([])
hal = Hal(_brickConfiguration, _usedSensors)

def run():
    hal.driveDistance('C', 'B', False, 'foreward', 30, 20)

def main():
    try:
        run()
    except Exception as e:
        hal.drawText('Fehler im EV3', 0, 0)
        hal.drawText(e.__class__.__name__, 0, 1)
        if e.message:
            hal.drawText(e.message, 0, 2)
        hal.drawText('Press any key', 0, 4)
        while not hal.isKeyPressed('any'): hal.waitFor(500)
        raise

if __name__ == "__main__":
    main()

KeyError when trying to control medium motor

Hi, I just got started with ev3dev and Open Roberta, so forgive me if I've missed something obvious or am reporting in the wrong place. I have the EV3 basic track3r robot, which in addition to the tracks has a medium motor on port A for controlling various tools. So one of the first things I tried was controlling that motor.

So I logged in to OpenRoberta and set up my robot so it has a medium motor on Port A on the Robot Settings page. I also switched to the expert mode in Open Roberta to be able to access the blocks that control motors directly.

Then I created a very basic Nepo program which simply has one block that turns the motor on port A for 1 turn on speed 30.

Trying to run that program on my EV3 gives this error both on the EV3 screen and in the systemd journal:

Jan 04 07:45:18 ev3dev openrobertalab[392]: ERROR:roberta.lab:Ooops:
Jan 04 07:45:18 ev3dev openrobertalab[392]: Traceback (most recent call last):
Jan 04 07:45:18 ev3dev openrobertalab[392]: File "/usr/lib/python3/dist-packages/roberta/lab.py", line 272, in _exec_code
Jan 04 07:45:18 ev3dev openrobertalab[392]: exec(compiled_code, scope)
Jan 04 07:45:18 ev3dev openrobertalab[392]: File "/home/robot/NEPOprog.py", line 33, in <module>
Jan 04 07:45:18 ev3dev openrobertalab[392]: main()
Jan 04 07:45:19 ev3dev openrobertalab[392]: File "/home/robot/NEPOprog.py", line 23, in main
Jan 04 07:45:19 ev3dev openrobertalab[392]: run()
Jan 04 07:45:19 ev3dev openrobertalab[392]: File "/home/robot/NEPOprog.py", line 19, in run
Jan 04 07:45:19 ev3dev openrobertalab[392]: hal.rotateRegulatedMotor('A', 30, 'rotations', 1)
Jan 04 07:45:19 ev3dev openrobertalab[392]: File "/usr/lib/python3/dist-packages/roberta/ev3.py", line 268, in rotateRegulatedMotor
Jan 04 07:45:19 ev3dev openrobertalab[392]: m = self.cfg['actors'][port]
Jan 04 07:45:19 ev3dev openrobertalab[392]: KeyError: 'A'
Jan 04 07:45:19 ev3dev openrobertalab[392]: INFO:roberta.lab:status changed: registered

The EV3 display says "Press any key" in addition to the KeyError.

I'm using the most recent ev3dev build (ev3dev-jessie-ev3-generic-2016-12-21) and the openrobertalab package is version 1.6.0+1.0.0.

rename robots to establish BT connections

I'd like to have one EV3 communicate with multiple other ones. The fundamental problem seems to me that there is no way to rename the devices in ev3dev without loosing the ability to connect to the brick in open-roberta lab.

I changed the hostname of each brick to different values (e.g. "robot01", "robot02", ...) by calling
sudo ev3dev-config
(tried sudo hostname robotXY, too) via ssh and restarted them. I thought the hostname is the "robot name" I need to establish the BT connection.
spectacle k31192

But if the hostname is not "ev3dev" the lab does not connect to the robot, because the hostname string seems to be the identifier for the type of robot.
nepo-differentrobot

Is there any way to set the name for the BT connection without changing the hostname?

EV3 not working after OpenRoberta upgrade

Good morning. After the last OpenRoberta update all I get is a white screen when trying to run any program from the openroberta web or offline server. I can access via ssh.
Thank you and regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.