Welcome Guest! To enable all features please Login or Register.
Options
Go to last post Go to first unread
IngmarGuillaume  
#1 Posted : Saturday, April 11, 2015 12:58:07 AM(UTC)
IngmarGuillaume

Rank: Member

Groups: BetaUser, Registered
Joined: 4/4/2015(UTC)
Posts: 25

Thanks: 3 times
Was thanked: 1 time(s) in 1 post(s)
All nodes currently are limited between 0 and 1 values (or -1 and 1).

I suggest to eliminate that restriction and let nodes pass any value between them. Or add another type of in/out on a node that allows for this. It is e.g. possible now to pass text values, so why not real values (or integers for that matter)
EmbrioAdmin  
#2 Posted : Saturday, April 11, 2015 5:17:37 AM(UTC)
EmbrioAdmin

Rank: Administration

Groups: Administrators
Joined: 12/11/2014(UTC)
Posts: 661

Thanks: 1 times
Was thanked: 109 time(s) in 104 post(s)
I'm considering this... I'm going to leave the "activation" input/output type clamped between -1 and 1, that's an important part of the agent based architecture. I might add other data types, like int and double, which let you use the whole range. I'm worried that will end up making the software harder to use though, and move away from the main agent based philosophy that it is build around. The way I see it a an Embrio program is kind of "brain based". The brain doesn't pass around different data types, it's just neurons firing or not firing (or in a simple math model you can think of neurons having an activation between 0 and 1) So like a brain where incoming and outgoing data first needs to be converted to neuron activations, value needs to be transformed to an activation before it becomes part of the control program, then transformed back to a number when it's ready to be used in the world. I'm really not sure what effect it would have on the usage of the software if real numbers could be used throughout. It's worth an experiment at least. In the mean time I'm curious if you could answer the question of whether real numbers in this architecture would really make things easier, or if adjusting to thinking about all numbers as activations is just part of the learning curve. I'd be interested in your thoughts after realizing how and why it's like this.
thanks 1 user thanked EmbrioAdmin for this useful post.
IngmarGuillaume on 4/11/2015(UTC)
IngmarGuillaume  
#3 Posted : Saturday, April 11, 2015 11:03:21 AM(UTC)
IngmarGuillaume

Rank: Member

Groups: BetaUser, Registered
Joined: 4/4/2015(UTC)
Posts: 25

Thanks: 3 times
Was thanked: 1 time(s) in 1 post(s)
I do understand your concern about deviating from the chosen path, but although thinking in terms of fuzzy logic of 0 to 1 (or -1 to 1) is indeed possible for the largest part of the logic, it is a lot harder to do the same with real life readings as temperature, pressure, speed, distance, weight and so on. You just cannot imagine temperature being between 0 and 1 (at least I can't, lol).

So yes, I truly believe that passing real values between nodes would be of benefit. And now that I understand your idea, I would certainly not recommend lifting the range restriction on the already existing in/out/triggers anymore, but I'd rather overload the Text in/outs to also accept other types like char, int, real or double, thereby making it a more general field. Or, if that is not possible, add a real in/out.
EmbrioAdmin  
#4 Posted : Saturday, April 11, 2015 11:18:00 AM(UTC)
EmbrioAdmin

Rank: Administration

Groups: Administrators
Joined: 12/11/2014(UTC)
Posts: 661

Thanks: 1 times
Was thanked: 109 time(s) in 104 post(s)
Yeah you've convinced me, having to convert things like temperatures to and from an activation is silly.
thanks 2 users thanked EmbrioAdmin for this useful post.
IngmarGuillaume on 4/11/2015(UTC), microspace on 4/11/2015(UTC)
microspace  
#5 Posted : Friday, April 17, 2015 9:22:43 AM(UTC)
microspace

Rank: Member

Groups: BetaUser, Registered
Joined: 2/7/2015(UTC)
Posts: 17

Thanks: 4 times
I also think that it would be better if nodes could exchange with various data types as in this list from Arduino site:

Data Types
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
short
float
double
string - char array
String - object
array

Maybe not all of them are needed.

It would be nice to add more native nodes to implement common method to work with these data types:
For strings:
-concatenate
-to_lower
-to_upper
-split
-get char by index

For data type conversion
char()
byte()
int()
word()
long()
float()

etc
bLackburst  
#6 Posted : Monday, May 11, 2015 3:00:25 PM(UTC)
bLackburst

Rank: Newbie

Groups: Registered
Joined: 5/11/2015(UTC)
Posts: 8

Thanks: 1 times
I'd like to second this, please. The first thing I tried with Embrio was a 4-pin Ultrasonic sensor. While I understand it now, it was more difficult than I thought considering the packaged custom node returns nothing"out of the box" and even when it was outputting it was capping at 1 when i wanted the distance. I've since outputted a string.
In a broader sense, the node approach is great with embrio (I've used dozens of node-based programmers) but some of the value of node programmers is to be able to take one original value, transform it to whatever ranges you need but often just for the ability to mentally/visually follow the signal path at a glance.
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Notification

Icon
Error