howitzer

EV3 or Mindstorms Robot Innovator?

Recommended Posts

1 hour ago, Lok24 said:

But you don't have any onld huge programs?

 

No i don't have any programs at all, The reason i said that is because we want to new the RI limitations, Right?

1 hour ago, Lok24 said:

Why?

I'm not sure I understand the question. Obviously we need to debug code.

 

20 minutes ago, Jim said:

The EV3 has (imho) better support for Python, using a nice VSCode extensions. However, it takes about a minute or two to boot the EV3 for Python

Since I'm new to this I am not familiar with all the inner workings. You mean better support because of the ev3dev toolkit? Having the EV3 with full linux inside it means we can install additional packages via ssh to the machine. Is it why you say it haas better support?

 

About the long boot issue, how often do we need to restart the EV3? If it's the first time when we start doing things with it then it's ok, If it needs to restart every time we need to deploy something then yes it's an issue

Share this post


Link to post
Share on other sites
2 hours ago, Jim said:

Are you asking why we need debugging?

No, I'm asking why this has something to do with bluetooth.

As far as I know you can see the values of motors and sensors, check status of variables and so on. Am I wrong?

Share this post


Link to post
Share on other sites

By saying debugging i meant to set breakpoints to your your code. :)

Edited by sakis

Share this post


Link to post
Share on other sites

I see.
You can add stop or loop/wait everywhere you want to to examine what happens here and in which state the machine is .
Like with the EV3. Or what do your mean with "breakpoints" with EV3?

But obviosly you're looking for something different, so it would be good if someone else could give a precice answer.
And why this in conjunction with the BT, I didn't catch yet.

I'm still thinking about RI instead of my 4 EV3, perhaps that would give me a hint.

 

 

Edited by Lok24

Share this post


Link to post
Share on other sites
On 11/8/2020 at 3:15 PM, sakis said:

Someone said you can't debug on the new brick which is a little bummer if you want to build something a little more complicated. You have to know what code fails as it's been executed by the robot.

Also I believe I read somewhere that the ram situation of the new RI is worst that EV3's. People doing hackish things to make their (big) EV3's programs to work on the RI.

...

At what point would you consider the EV3 obsolete??

Yeah, I said that. By "debugging" on the brick I meant with RI you must have your robot connected to the computer to see the values etc. The new brick lacks a screen.

Re: RAM situation - I'm not sure which OS the thing runs, maybe the Linux that's on EV3 ate most of the memory so we actually haven't lost much in RI.

Depends on your definition of "obsolete" :)

On 11/9/2020 at 12:35 AM, Jim said:

The EV3 has (imho) better support for Python, using a nice VSCode extensions. However, it takes about a minute or two to boot the EV3 for Python :tongue:

oh yeah, btw - with EV3, there two libraries to choose from, the official LEGO one and the community one (the APIs are a bit different). And yeah, the extensions and autcomplete etc. RI might have these goodies later - other languages support, alternative Python libraries etc. but it won't happen by tomorrow for sure. (It might not happen at all too.)

Incidentally - does the RI have an IDE to code in Python? Does it have a breakpoint capability? I was having troubles setting that up in VS Code for EV3.

Edited by doughnut

Share this post


Link to post
Share on other sites
19 hours ago, Lok24 said:

Or what do your mean with "breakpoints" with EV3?

Setting breakpoints is when you can pause the execution of the code right before it breaks and examine the program state and all the values etc. After such a pause, you can continue executing the code instruction by instruction, again seeing the program state and all the variables after each instruction. That can help a lot finding bugs - by reasoning alone it's very hard to do (because if you could reason correctly about that piece of code you'd not write a bug in the first place). Breakpoints are impossible to do with the EV3 graphical language, and setting that up in VS Code proved difficult for me. I personally tend to just print values on the EV3 screen.

Anyways, I'm pretty sure the robot would have to be connected to computer to do breakpoint debugging. Sometimes wires are in the way (some of my robots could not move without gears flying all over when connected to the computer), so wireless connectivity would help with that. At least that's my vague understanding of the breakpoint + BT debugging conversation :)

Edited by doughnut

Share this post


Link to post
Share on other sites
6 hours ago, doughnut said:

does the RI have an IDE to code in Python? Does it have a breakpoint capability? I was having troubles setting that up in VS Code for EV3.

Oh yes. The new officially app which runs on windows, mac, ios and android has a build in python editor and with autocomplete. Quite handy. Regarding the breakpoint capability nope, doesn't have it to my findings.

 

6 hours ago, doughnut said:

RI might have these goodies later - other languages support, alternative Python libraries etc. but it won't happen by tomorrow for sure. (It might not happen at all too.)

 

Personally I'm ok not having the other languages available yet. I'm very pleased they have python support out of the box with the integrated IDE. It will get attraction as the time goes by. People had complaints about EV3 once it was out but now is a great piece. I see no reason the RI won't have the same treatment by the community.

I will get with the RI. It's quite capable. IMO it is the safe bet for now because it will only get better support and third parties as the time passes. If not there will be the EV3 there to buy. But we must not forget the hardware is 7 years old. We do need to move on at somepoint.

 

Share this post


Link to post
Share on other sites
8 hours ago, doughnut said:

Yeah, I said that. By "debugging" on the brick I meant with RI you must have your robot connected to the computer to see the values etc. The new brick lacks a screen.

 

True. But where is the problem with that? Therefore the RI Software offers an area to show variable values and sensor values togethet with your program, which is much more useful.

8 hours ago, doughnut said:

 Breakpoints are impossible to do with the EV3 graphical language, and setting that up in VS Code proved difficult for me. I personally tend to just print values on the EV3 screen.

 

I know what breakpoints are, but don't know why this discussion comes up with EV3 and RI.

Did you ever set up breakpoints with a python-program running in different threads?
As far as I remember you have to start pbc instead of your program. It's not that simple.

As you say: it's not common with EV3. There are some workarounds, like inserting a loop to expose values etc while looping. But setting breakpoints isn't simple in general, because they often stop your program at a certain point, but don't infect other threads running.

8 hours ago, doughnut said:

Anyways, I'm pretty sure the robot would have to be connected to computer to do breakpoint debugging.


Yes, it has to be connected. As with the EV3, because it's nearly impossible to read debugging values on the screen of an EV3 on a moving(!) robot . And you never see your values and the sensors on one screen, you have to switch the display, while machine is moving around....

For huge projects you should program a dashboard or something like that, cause picking Infos for 2-4 small screens isn't funny.

Anyway: there are no "breakpoints" in the meaning , that this is functionality of the IDE, neither with EV3 nor with RI.
The only thing that's missing with RI is to write "messages" to a screen, cause there is none.
 

 

Edited by Lok24

Share this post


Link to post
Share on other sites
6 hours ago, sakis said:

People had complaints about EV3 once it was out but now is a great piece. I see no reason the RI won't have the same treatment by the community.

Oh, interesting, what kinds of complaints did people have? It seems like a plain upgrade compared to NXT, was it not?

 

4 hours ago, Lok24 said:

Did you ever set up breakpoints with a python-program running in different threads?

Like I mentioned - I am not a Python programmer, but I do routinely set breakpoints in multithreaded Java and C++ with no issue. I'm not sure why would that be a problem in robotics - I guess you just need a good IDE.

 

4 hours ago, Lok24 said:

As with the EV3, because it's nearly impossible to read debugging values on the screen of an EV3 on a moving(!) robot

Yeah, the screen is quite dim, I use a little flashlight practically all the time :) If you mean you can't access the Port View screen - you can print the values on the screen for debugging yourself.

Share this post


Link to post
Share on other sites
1 minute ago, doughnut said:

Oh, interesting, what kinds of complaints did people have? It seems like a plain upgrade compared to NXT, was it not?

I was surprised too when I friend of mine told me so. Things like bout the start time, that it had 3 sensors included instead of four, that the ev3rstorm robot didn't walk like alpha rex, and much more.

Share this post


Link to post
Share on other sites

Ok, so I got myself the Robot Innovator. Now I am somewhat confused about the parts and compatibility, specifically motors: Are the motors the same as those included in Spike Prime? If not, what are the differences? Another thing, I have the App-Controlled Batmobile (79112) and it has two motors which I assume are the same as Powered Up medium motors (part 21980), so should I be able to control those with my RI hub? I'm expecting only speed and direction control (not position control or feedback.)

Share this post


Link to post
Share on other sites
7 minutes ago, howitzer said:

Ok, so I got myself the Robot Innovator. Now I am somewhat confused about the parts and compatibility, specifically motors: Are the motors the same as those included in Spike Prime? If not, what are the differences? Another thing, I have the App-Controlled Batmobile (79112) and it has two motors which I assume are the same as Powered Up medium motors (part 21980), so should I be able to control those with my RI hub? I'm expecting only speed and direction control (not position control or feedback.)

The motors are almost the same as in SPIKE, but they have another color and another internal ID (so it might cause software issues for hubs that don't support the ID).

The "dumb" motors from the batmobile work with power control, not with speed control (important difference in this case!). You can use them with the RI hub (I think that they work with the scratch software environment but I'm not 100% sure. They work with python 100%).

Share this post


Link to post
Share on other sites
4 minutes ago, Tcm0 said:

The motors are almost the same as in SPIKE, but they have another color and another internal ID (so it might cause software issues for hubs that don't support the ID).

The "dumb" motors from the batmobile work with power control, not with speed control (important difference in this case!). You can use them with the RI hub (I think that they work with the scratch software environment but I'm not 100% sure. They work with python 100%).

I tested the dumb motors on the scratch environment, but couldn't find any obvious way to get them to move, at least not with the same commands as those used to move the angular motors. So I guess I'll have to use Python in this case, which I planned to do anyway. I find the limitation of not being able to control speed curious, as the Batmobile includes speed control, so how come it works with the official app but would not work with user-made code? Or maybe there's some way to control speed with Python but it's somehow not obvious? Speed control isn't critical for my first project though, so it's not a big deal.

Share this post


Link to post
Share on other sites
27 minutes ago, howitzer said:

Ok, so I got myself the Robot Innovator.

Have fun dude! Do you like it? I have ordered mine, my main goal is to use python. :D

Share this post


Link to post
Share on other sites
6 minutes ago, howitzer said:

I tested the dumb motors on the scratch environment, but couldn't find any obvious way to get them to move, at least not with the same commands as those used to move the angular motors. So I guess I'll have to use Python in this case, which I planned to do anyway. I find the limitation of not being able to control speed curious, as the Batmobile includes speed control, so how come it works with the official app but would not work with user-made code? Or maybe there's some way to control speed with Python but it's somehow not obvious? Speed control isn't critical for my first project though, so it's not a big deal.

If you use scratch, you have to go into the left column and enable extra blocks for the motors. There you can select power control. You can use the angular motors with the power blocks but not dumb motors with the speed blocks.

Maybe this will become more clear if I explain the backgrounds.
Speed normally refers to the actual speed. Let's say that you stop a motor with the hand. Which speed does it have? Yes, it's 0 although there is power on the motor.
So power controls the actual power that the motor can use to spin.
Speed is not a value that the hub can directly control. It sets a certain power and measures how fast the motor is spinning. Then it can give more power if the actual speed is below the expected value or it can give less power if it's above the expected value.

That's the reason why speed control only works with tachomotors and power control works with all motors.

Share this post


Link to post
Share on other sites
51 minutes ago, sakis said:

Have fun dude! Do you like it? I have ordered mine, my main goal is to use python. :D

I haven't had much time yet to play around, but it seems that it takes quite a bit of effort to build something more than very basic stuff so I don't expect results soon. Learning some Python was also a goal for myself, so I hope it will be useful for that.

52 minutes ago, Tcm0 said:

If you use scratch, you have to go into the left column and enable extra blocks for the motors. There you can select power control. You can use the angular motors with the power blocks but not dumb motors with the speed blocks.

Maybe this will become more clear if I explain the backgrounds.
Speed normally refers to the actual speed. Let's say that you stop a motor with the hand. Which speed does it have? Yes, it's 0 although there is power on the motor.
So power controls the actual power that the motor can use to spin.
Speed is not a value that the hub can directly control. It sets a certain power and measures how fast the motor is spinning. Then it can give more power if the actual speed is below the expected value or it can give less power if it's above the expected value.

That's the reason why speed control only works with tachomotors and power control works with all motors.

Thanks for the info. I should've been more precise in my previous post, I meant power control instead of speed control. My aim would be to be able to control the dumb motors with variable speed similar to the Batmobile, which of course does the controlling by power control.

Another thing about the motors: both the Batmobile motors and RI motors emit a high-pitched whine when powered, which I find weird. Anyone else have experienced this? PF motors don't do it and neither do the old 9V motors.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.