Next version 'Nixie' is coming soon !

Help us to get ready with MyRobotLab version Nixie: try it !
Javadoc link
Example code (from branch develop):
# TODO: Implement this script fpr
servomixer = runtime.start("servomixer","ServoMixer")...

General purpose service to orchestrate servos.

Javadoc link
Example code (from branch develop):
#file : Random.py (github)
#########################################
# Random.py
# description: Random message generator - sends messages
# at random intervales with random parameters
# categories: general
# more info @: http://myrobotlab.org/service/Random
#########################################
 
# start the service
python = runtime.start("python","Python")
random = runtime.start("random","Random")
clock = runtime.start("clock","Clock")
 
# enable random events
random.enable()
# roll the dice every 1 to 2 seonds
random.addRandom(1000, 2000, "python", "roll_dice", random.intRange(1, 6))
def roll_dice(value):
    print("roll_dice " + str(value))
 
# add a complex dice
random.addRandom(1000, 2000, "python", "roll_complex_dice", random.doubleRange(1, 6))
def roll_complex_dice(value):
    print("roll_complex_dice " + str(value))
 
 
# roll the dice every 1 to 2 seonds
random.addRandom(1000, 2000, "python", "random_color", random.setRange("red","green","blue","yellow"))
def random_color(value):
    print("random_color " + str(value))
 
 
# do a complex multi parameter, multi-type method
random.addRandom(1000, 2000, "python", "kitchen_sink", random.intRange(1, 6), random.doubleRange(1, 6), random.setRange("red","green","blue","yellow"), random.setRange("bob","jane","fred","mary"))
def kitchen_sink(dice, complex_dice, colors, names):
    print("kitchen_sink ", dice, complex_dice, colors, names)
 
# set the interval on a clock between 1000 and 8000
# if you look in the UI you can see the clock interval changing
random.addRandom(200, 500, "clock", "setInterval", random.intRange(1000, 8000))
 
# Chaos monkey clock starting and stopping !
random.addRandom(200, 500, "clock", "startClock")
random.addRandom(200, 500, "clock", "stopClock")
 
 
# run it all for 8 seconds
sleep(8)
 
# disable single random event generator - must be explicit with name.method key
random.disable("python.roll_dice")
sleep(8)
 
# you know longer should see the python.roll_dice event firing - since it was explicitly disabled
 
# stop events - but leave all random event data
# allows re-enabling
# random.disable()
 
# enable events
# random.enable()
 
# stop events and clear all random event ata
# random.purge()

The Random service can create random messages with random parameters.  Any method accessable can be called at some interval with ranges of parameters.  For example, if you wanted a Servo to move at some interval between 1 and 5 seconds between 35 and 165.

random = Runtime.start('random','Random')
random.addRandom(1000, 5000, 'servo01', 'moveTo', random.intRange(35, 165))

 

Example of Web UI list of current random method events

Javadoc link
Example code (from branch develop):
#file : Mpr121.py (github)
#########################################
# Mpr121.py
# description: MPR121 Touch sensor & LED Driver
# categories: shield, sensor, i2c
# more info @: http://myrobotlab.org/service/Mpr121
#########################################
 
# start the service
mpr121 = runtime.start('mpr121','Mpr121')

The Mpr121 service

Hello, enybody can explain me how the signals from MRL serial to Arduino is coded?
I am trying to decode but have no idea what method is used to code serial messages going to arduino.
Example from serial readings that:

Javadoc link
Example code (from branch develop):
#file : Hd44780.py (github)
#################################################################
# Example Code                                                  #
#################################################################
 
#################################################################
# First start your I2C Bus Master Device                        #
#################################################################
# If your using the Arduino Nano, comment out this line and
# uncomment the ArDuino Nano lines
raspi = runtime.start("raspi","RasPi")
#################################################################
# Start the Arduino Nano connected using /dev/ttyUSB0           #
#################################################################
#arduinoNano = runtime.start("arduinoNano","Arduino")
#arduinoNano.setBoardNano()
#arduinoNano.connect("/dev/ttyUSB0")
 
#################################################################
# Next start the PCF8574 service                                #
#################################################################
pcf = runtime.start("pcf","Pcf8574")
# Then attach it to the I2C Bus Master
# When attaching, we specify the Bus Master Device,
# the I2C Bus Number
# and the I2C address
pcf.setBus("1")
pcf.setAddress("0x27")
pcf.attach(raspi)
 
#pcf.attach(arduinoNano,"0","0x27")
 
#################################################################
# Next start the Hd44780 service                                #
#################################################################
lcd = runtime.start("lcd","Hd44780")
 
# Once the service has been started, we need to attach it to
# the PCF service
lcd.attach(pcf)
 
# this will initalise the display.
# not needed now unless you want to manually reset
# lcd.reset() 
 
# when we want to clear the screen call this
lcd.clear()
 
# You can turn the backlight on or off.
# True will turn it on, False will turn it off.
lcd.setBackLight(True)
 
# Filally to send text to the display
lcd.display("Hello World", 0)

 
The HD44780 is the primary chip for a 16 character x 2  or 16 x 4 line LCD display.
 
These small displays can be found cheap online and are easy to use with a device with an I2C bus master.

I think perhaps the individual pixels for the UI might be a bit too clunky ...
but its nice to know the update to MrlComm can handle 8x32 matrix.
Needs to have a scroll text function ... hmmm

Good Day everyone,

 

Hope every one is well and healthy. I am trying to write a program for kinematics of the left hand without using myrobotlb. I already have the DH parameters as below.

 

Hi guys,

beside a screenshot of the opencv surface areas.
 
Can anyone give me explanations what these areas (blue) mean and which settings make which results ?
 
Thanks.
 
Regards
Tricia279