Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
B-Robot EVO2 Off-Road completed
12-27-2017, 04:22 PM (This post was last modified: 01-08-2018 01:31 PM by nikola-wan.)
Post: #1
B-Robot EVO2 Off-Road completed
I received my JJRobots EVO2 kit, and printed the B-Robot Stealth Remix body panels, created a 17mm off-road wheel nut and added a pair of Apex RC Products 1/8 Off-Road Buggy Black Star Wheels / Attack Tires #6041. Here is a picture of my completed EVO2 Off-Road. I left one of the two top covers off for this picture so you can see the JJRobots boards.

Monty's B-Robot EVO2 Off-Road

I am driving it with the latest EVO2 Github code - my attempt to modify that code as shown on the BROBOT EVO2 Off-Road webpage has not been successful. I even downloaded the off-road github code - but it is months older than the latest EVO2 code. I had to download a bootloader to my Leonardo first.

I'm also having problems getting the B-ROBOT started. I'm using fresh alkaline batteries in the battery pack, but it doesn't always start up like the video. I see the JROBOT Wifi access point on my iphone, but if the arm doesn't wiggle, then the power has to be recycled - until the arm wiggles (indicating the gyro has been calibrated?).

Anyone else built an B-Robot Off-Road?

Thanks for the great kit,
Monty - in Texas


Attached File(s) Thumbnail(s)
   
Find all posts by this user
Quote this message in a reply
01-02-2018, 11:32 AM
Post: #2
RE: B-Robot EVO2 Off-Road completed
Hi Monty!
My suggestion: Upload the latest code (attached to this message) and play a little with the PID controller values from the control APP (info here: https://www.jjrobots.com/b-robot-evo-pid...obots-app/
and here: https://www.jjrobots.com/robotic-challen...ic-waiter/
go to: "INFO: How do I improve the B-robot´s balance while I am carrying the can?" )

)

Once you have adjusted your B-robot behavior (making it more stable with the new wheels and the new frame´s center of gravity), modify the Arduino code updating the new PID parameters you got and upload it to the Arduino.

Regarding the "arm wiggling": yes, if the arm wiggles, everything is fine. If not: the GYRO has not been calibrated.


Attached File(s)
.zip  BROBOT_EVO2.zip (Size: 18.81 KB / Downloads: 1)
Visit this user's website Find all posts by this user
Quote this message in a reply
01-02-2018, 03:16 PM
Post: #3
RE: B-Robot EVO2 Off-Road completed
(01-02-2018 11:32 AM)JJrobots JP Wrote:  Hi Monty!
My suggestion: Upload the latest code (attached to this message) and play a little with the PID controller values from the control APP (info here: https://www.jjrobots.com/b-robot-evo-pid...obots-app/
and here: https://www.jjrobots.com/robotic-challen...ic-waiter/
go to: "INFO: How do I improve the B-robot´s balance while I am carrying the can?" )

)

Once you have adjusted your B-robot behavior (making it more stable with the new wheels and the new frame´s center of gravity), modify the Arduino code updating the new PID parameters you got and upload it to the Arduino.

Regarding the "arm wiggling": yes, if the arm wiggles, everything is fine. If not: the GYRO has not been calibrated.

Great, I'll try the new code with your suggestions when I get home tonight.

I'm using the Touch-OSC app with my iPhone. If I move the sliders for the PIDs - which slider (and button) does what? And how do I know the resulting change to that PID to use to update the code?

Thanks,

Monty
Find all posts by this user
Quote this message in a reply
01-02-2018, 06:31 PM
Post: #4
RE: B-Robot EVO2 Off-Road completed
My bad. I thought you were using the "official" control APP... The OSC layout does not display all the info I would like it to do. BUT! in this image you can see the relation between the PID controllers and the sliders on the OSCtouch version
[Image: PID-Brobot.png]

Actually that webpage (https://www.jjrobots.com/b-robot-evo-pid...bots-app/) explains the scope of every slider: if you move to the very top the slider you are doubling the value of the P, I o D control.

Let us know how it goes!
Visit this user's website Find all posts by this user
Quote this message in a reply
01-02-2018, 07:25 PM
Post: #5
RE: B-Robot EVO2 Off-Road completed
(01-02-2018 06:31 PM)JJrobots JP Wrote:  My bad. I thought you were using the "official" control APP... The OSC layout does not display all the info I would like it to do. BUT! in this image you can see the relation between the PID controllers and the sliders on the OSCtouch version
[Image: PID-Brobot.png]

Actually that webpage (https://www.jjrobots.com/b-robot-evo-pid...bots-app/) explains the scope of every slider: if you move to the very top the slider you are doubling the value of the P, I o D control.

Let us know how it goes!

There are the four sliders in the B-Robot EVO control and Battery Check OSC version, just different colors. Two red, two yellow. One difference that I see is they all start off with the slider at the bottom (0?) instead of the middle(1x?).

What do the buttons on the right side of that screen do? In the version I'm using I see purple, red, and green. I can toggle the purple and red buttons, but the green just changes to bright green when pressed and back to dark green when released.

Thanks for the link to the PID descriptions.
Find all posts by this user
Quote this message in a reply
01-03-2018, 03:06 AM
Post: #6
RE: B-Robot EVO2 Off-Road completed
(01-02-2018 03:16 PM)nikola-wan Wrote:  [quote='JJrobots JP' pid='3199' dateline='1514892769']
Hi Monty!
My suggestion: Upload the latest code (attached to this message) and play a little with the PID controller values from the control APP (info here: https://www.jjrobots.com/b-robot-evo-pid...obots-app/
and here: https://www.jjrobots.com/robotic-challen...ic-waiter/
go to: "INFO: How do I improve the B-robot´s balance while I am carrying the can?" )

)

Once you have adjusted your B-robot behavior (making it more stable with the new wheels and the new frame´s center of gravity), modify the Arduino code updating the new PID parameters you got and upload it to the Arduino.

Regarding the "arm wiggling": yes, if the arm wiggles, everything is fine. If not: the GYRO has not been calibrated.

Your EVO2 files looked like the ones I'm using from your Github post for B-Robot EVO2.

I used the TouchOSC editor to modify the 2nd page to center the faders, and even added text labels.

Monty's BROBOT3 OSC page 2

I've attached my BROBOT3.touchosc file in a zip file.

I increased the D slider slightly - how do I find out what value that is to change the code?

Monty


Attached File(s)
.zip  BROBOT3.zip (Size: 1.28 KB / Downloads: 1)
Find all posts by this user
Quote this message in a reply
01-03-2018, 06:52 PM (This post was last modified: 01-03-2018 06:53 PM by JJrobots JP.)
Post: #7
RE: B-Robot EVO2 Off-Road completed
"Kill robot", I like it! perfect for the Skynet uprising! :-D
We left those buttons for "user customization"

Thanks for the new LAYOUT, we will update the webpage if we have your permission.

Regarding this question: How do I find out what value that is to change the code?
It is a little bit tricky using the OSC touch. Let me try to explain this with and example:
Consider the position of the slider P (Stability control Proportional value). If you move it 50% up to the top you are multiplying its value by 1.5 (in the ARDUINO CODE as by default the P value is 0.06 :#define KP_POSITION 0.06) you will get a REAL TIME new value for the P of 0.06x1.5=0.09.
Imagine now that your modified B.robot is stable with that new value and you want it to behave like that from now on: As the TOUCHosc does not allow to send values back to the Arduino, you will need to update in the ARDUINO code the P value manually -> in the CODE:#define KP_POSITION 0.09

Then you should do the same with the rest of the PID parameters. Every frame has a different mass and center of gravity so a different SET of PID values will work better for every case. Play a little with all of them and update them once you are happy with the new behavior.
Visit this user's website Find all posts by this user
Quote this message in a reply
01-05-2018, 01:18 PM (This post was last modified: 01-05-2018 01:20 PM by nikola-wan.)
Post: #8
RE: B-Robot EVO2 Off-Road completed
(01-03-2018 06:52 PM)JJrobots JP Wrote:  "Kill robot", I like it! perfect for the Skynet uprising! :-D
We left those buttons for "user customization"

Thanks for the new LAYOUT, we will update the webpage if we have your permission.

Right now I'm working on the TouchOSC template and BRobot code to get the battery and PID telemetry working like your Android app. I saw in your original BRobot code the code to transmit the battery level to the TouchOSC - I'll start with that. One of the TouchOSC example templates showed live text readouts - they used the same OSC address for the text and corresponding slider - I think if the Brobot code sent the battery value - that TouchOSC would update the rotary position AND the text label with the same OSC address.

I found that some of my brobot issues were the alkaline batteries had run low - but I couldn't tell from the TouchOSC app.

Monty
Find all posts by this user
Quote this message in a reply
01-08-2018, 12:00 PM (This post was last modified: 01-08-2018 12:02 PM by JJrobots JP.)
Post: #9
RE: B-Robot EVO2 Off-Road completed
Cool Nikola! Keep us updated please ;-)

We are testing your new OSC touch layout. Thanks for the contribution!
Visit this user's website Find all posts by this user
Quote this message in a reply
01-08-2018, 01:09 PM (This post was last modified: 01-08-2018 01:22 PM by nikola-wan.)
Post: #10
RE: B-Robot EVO2 Off-Road completed
(01-08-2018 12:00 PM)JJrobots JP Wrote:  Cool Nikola! Keep us updated please ;-)

We are testing your new OSC touch layout. Thanks for the contribution!

I'm able to get text labels to update (like the actual battery voltage reading). I made a new OSC_StrSend subroutine to send the label an update with a String variable.

I plan to also have the brobot telemetry send the actual modified PID values back to the TouchOSC as text labels above each graph - so you know exactly what value to change to in the code, based on the change to that PID fader in TouchOSC.

i'm still working on getting the battery monitor rotary graph to update. I suspect the float32 value is not aligned on a four byte boundary like the OSC spec examples of the various integer, string and float message examples at the following URI:

OpenSoundControl Spec Examples

I created a new subroutine to send a text string to a label, but sending the float32 value to the rotary is not working through OSC_MsgSend with the original BROBOT.INO syntax. I tried to create some debug code to print to the Arduino serial console the HEX characters in the char array, but the debug code is not working yet.

Monty
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)