• RAE
  • Device shows only RAE

Hi Adam,
Great, we are getting closer. Ok, I have the firmware Luxonis OD 1.12 installed. Is that ok?
I also entered the given commands and restarted the RAE but nothing happend. Actually I expected the lights underneath going on and to change something on the display. What else do I have to do?
Such a python library would be good - especially with some simple examples to get started. When do you think that will be released?

Ok, I finally managed to make a proper factory reset (it looks like the device has to be switched off) and I am connected the RobotHub again. Nice!
Can you tell me what the easiest way is to test the cameras and the motors?

    Thanks, but how do I get this app started on the device?
    In the meanwhile I installed the RaeStartetApp but whatever I do when trying to start it in the Code Editor I get 'Modul not found Robot Hub'. Tried to uninstall and install again - not change.
    One thing I have to mention: After the HW reset the FW was on 1.14. Do you suggest to downgrade it to the 1.12?

    Here is the correct error message I get in the RobotHub Studio with the RaeStarterApp: No module named 'robothub'. Thanks for any hint.

    Ok, update on this and for all who just got an RAE lately: After a HW reset (with the needle) then the firmware is on 1.14 and the RaeStrterApp just doesn't work. I recommend to install the 1.12 and start again. Then the RaeStarterApp runs- not reliable and outputs many errors in the beginning but at least it works sometimes. I call this at least it is a start.

    To Adam: What is currently the right firmware to install? And what version of the RaeDefaultApp should work with it?

    I'm back to the situation I had at the beginning of this post: I downgraded the firmware to 1.12, made a HW reset , was able to QR and could pretty well work with the RaeStarterApp and the RaeDefaultApp. But when starting up the device a day later it first showed 'Connected to RobotHub' and then in RH started an Upgrade:

    After some minutes the display went off and later showed just 'rae'. In RH it continued to show 'Waiting for the device to connect'.
    BTW: The device is visible in my network.
    What am I supposed to do in this situation?

    a month later

    In RH is a new firmware published:

    Shall we install this one? (A month ago the 1.14 worked not stabile … )

    Hi @IvoGermann
    It should have updated RH agent. I think the 1.14 a month ago was a beta version. Let me know if you experience any issues so we can quickly iron them out.

    Thanks,
    Jaka

    Hi Jaka,
    Yes, that works indeed - great. I was just a bit irritated as the display doesn't show 'Connected to RH' anymore but displays just 'RAE'.
    Question: With this new release we also got a Python SDK. Can you tell me how to run i.e. the LED program? Shall I run that with first installing the docker? Or can I run that with the RaeStarterApp in RH?
    Maybe you can provide a quick and dirty step-by-step tutorial how to get started. Thanks!

    Hey,
    We will add bit more descriptive displays depending on apps (but display is controlled app side). If you are seeing just RAE that means your device is provisioned and that process has just not started.

    You can run LEDs in your apps, that is intended way to do it. Initializing Robot class will start hardware processes (that run on ROS2 in background) that will listen to messages created from your app. You can check out already published apps to just quickly check if everything works well there. To send a message to LED interface you will need to create ROS2 message of correct type and then send it - which is a function that exists in sdk. For example if you want your RAE to act like a car (which is one of the apps) you can create message the following way:

    def car_mode_leds(self, linear_velocity, angular_velocity):
            # Set LEDs based on battery level
            # Define colors for LEDs
            colors = {
                "white": ColorPeriod(color = ColorRGBA(r=1.0, g=1.0, b=1.0, a=1.0), frequency =0.0),
                "yellow": ColorPeriod(color =ColorRGBA(r=1.0, g=1.0, b=0.0, a=1.0), frequency =8.0),
                "red": ColorPeriod(color =ColorRGBA(r=1.0, g=0.0, b=0.0, a=1.0), frequency =0.0),
                "blue": ColorPeriod(color =ColorRGBA(r=0.0, g=0.0, b=1.0, a=1.0), frequency =0.0)
            }
    
    
    
            # Create and publish LEDControl message for each LED
            led_msg = LEDControl()
            
            led_msg.data = [ColorPeriod(color =ColorRGBA(r=0.0, g=0.0, b=0.0, a=0.0), frequency =0.0)]*40
            for i in range(38):
                led_msg.single_led_n = 0
                led_msg.control_type = 4 
                if i < 8:
                    color = "white"
                    led_msg.data[i]=(colors[color])
                if i >9 and i < 14 and angular_velocity > 0.0:
                    color = "yellow"
                    led_msg.data[i]=(colors[color])
                if i > 20 and i < 29 and linear_velocity < 0.0:
                    color = "red"
                    led_msg.data[i]=(colors[color])
                if i> 34 and i < 39 and angular_velocity < 0.0:
                    color = "yellow"
                    led_msg.data[i]=(colors[color])
    
            self.robot.led.set_leds_from_msg(led_msg)

    As you can see that function will create different looking LEDs, based on what is value of linear and angular velocity and then in the last line uses robot class to send that message to hardware interface. Then insert that function somewhere where movement is controlled, like for example:

    def on_fe_notification(self, session_id, unique_key, payload):
            if unique_key == "cmd_vel" and self.mode == AppMode.manual:
                self.robot.navigation.move(payload['linear'], payload['angular'])
                self.car_mode_leds(payload['linear'], payload['angular']) 

    Hopefully this clears something up, we will release source code of couple of apps soon so they can use as a guide and will update documentation soon so it is more helpful.

    Hi Danilo,
    Thanks for all the explanations - that really helps a lot. With the new SDK I was just able to read odometry information and switching on/off the LEDs with Python. Small steps - but it feels very good to finally have a grip on things.