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.