Embrio Forum
»
Discussions
»
Feature Requests / Suggestions
»
Expand working range of node in/outs or new type of in/out
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)
|
|
|
|
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.
|
 1 user thanked EmbrioAdmin for this useful post.
|
|
|
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.
|
|
|
|
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.
|
 2 users thanked EmbrioAdmin for this useful post.
|
|
|
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 Typesvoid 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
|
|
|
|
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.
|
|
|
|
Embrio Forum
»
Discussions
»
Feature Requests / Suggestions
»
Expand working range of node in/outs or new type of in/out
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.