Germany
Asked
Resolved Resolved by DJ Sures!

Operating Servos Under BLOCKLY

Hi all,

just finished the hardware for my large Hexapod (1 m diameter !). I am using an EZ-B v4/2 as a controller, powered by a 2S Lipo. My servos are high quality robot servos (brushless motors): Longrunner B07K68MK3Y.

I intend to use BLOCKLY, since I gained experience for this tool during recent projects.

My current questions:D -    Does anyone have a link to a short demo program in BLOCKLY, showing the required syntax ? -    Which servo speed is meaningful and which position values should be used for a servo, running from -90 through 90 ?

Currently they are just moving around a bit, but not as they should.

Thanks very much in advance !

Cheers

Volker


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

ARC Pro is your passport to a world of endless possibilities in robot programming, waiting for you to explore.

PRO
Synthiam
#1  

Wow that is going to be amazing to see:)

Referencing the getting started guide, sounds like you have the first few steps identified. Selecting a Movement Panel is the step I believe you are on. Here’s the link: https://synthiam.com/Support/Get-Started/Planning%20Your%20Robot/Movement-Style

The movement style that suits your need will be gait driven, so the Movement Panel will be Auto Position movement panel

To start, create the frames for having the robot walk in different directions (turn left, right, walk forward, reverse). Assign the frames to the respective actions. The manual for the Auto Position explains and lots of videos so it isn’t as dry:)

lastly, once the movements are done, you can determine how the robot is controlled. If it’s going to be autonomous, I’d first start with simple remote control to get started. Select a joystick or wii controller or something.

Also you can use the camera to start giving the robot personality and make it chase balls or point at objects it recognizes. It’s going to be a lot of Fun with a robot that size

Germany
#2  

Thanks for the link, but - to be honest - it could not help:

-    With my scratch-built Hexapod I am totally within the DIY region and have to control the 18 leg servos.

-    In fact, I need to position them at defined angles.

-    I am currently calibrating these servos and found out that center position is around 105 (for the Blockly command "Set Position").

-    Available angles are not theoretical servo angles (180), but are by far large enough.

-    Strangely a servo SPEED value of 1 produces a servo speed appr. 3 times higher than a value of 3.

Cheers

Volker

PRO
Synthiam
#3   — Edited

Hi there again - To begin, you'll want to use the Auto Position Movement Panel robot skill to create a gait for walking forward, reverse, and turning left and right.

Here's a link to the getting started manual explaining what a gait is and a link to the Auto Position Movement Panel manual: https://synthiam.com/Support/Get-Started/Planning%20Your%20Robot/Movement-Style

Once you create a gait, you can then control it from blockly, or a joystick, or how ever you wish. But let's begin by getting your robot walking with Auto Position frames and action.

Blockly (or any other programming language you choose) will connect the various behaviors together. WALKING is a gait, and a behavior. In this case, the behavior is controlled by the Auto Position robot skill.

Here's a link to the Auto Position manual: https://synthiam.com/Support/Skills/Movement-Panels/Auto-Positioner-Gait?id=16057

PS, the speed values are reversed than expected. The manual explains more. Here's a copy and paste from https://synthiam.com/Support/javascript-api/Servo/setSpeed

Quote:

Sets the speed of the servo port to speed. speed is a value between 0 (fastest) and 10 (slowest).

PRO
Synthiam
#4  
Germany
#5  

Hi,

thanks again for your suggestions, but this auto position feature is obviously something for "upright walking" robots.

My hexapod robot is based on  an insect-type design --> totally different geometry and servo distribution.

But - never mind - during the last two days I have realised the complete code in BLOCKLY. Is quite complex now, comprising individual servo calibration (speed & positioning) and in Java it shows some 600+ lines up to now :-) .

Experimenting with servos was going straight with your hints and from there it was a pleasure to create the Blockly code.

There is only one question left: Robot remote  control under BLOCKLY. I could not find any block, addressing something like "getkey", "if keypressed", or similar. Only the script version is offering something similar.

Any suggestion how to realise robot remote control via keyboard under Blockly ?

Thanks very much in advance !

Cheers

Volker

PRO
Synthiam
#6  

The Auto Position is used in tens of thousands of Hexapod robots in arc. I highly recommend using the Auto Position control. Create each frame of a walking movement of each direction (forward, left, right, reverse, stop) and assign them to the appropriate actions.

If you still wish to create complicated Blockly servo animations, then assign each loop of walking to a custom movement panel. The problem you will face is the transitions between directions will be lost this way, and the servos will jerk and cause havoc. Here’s a link to the custom movement panel: https://synthiam.com/Support/Skills/Movement-Panels/Custom-Movement-Panel?id=16077

Again, I really really really recommend you use the auto position.

anyway, once you’ve finished what ever Movement Panel you use (hopefully auto position), then you can choose multiple ways to control it. The getting started guide has a section on that. Here’s the link, again: https://synthiam.com/Support/Get-Started/Planning%20Your%20Robot/remote-control-robot

good luck - and please use the Auto Position control.

Germany
#7  

Hi

and thanks for your concerns and - please don't be worried.

BLOCKLY is working marvellously here, since mechanical behaviour of my hexapod is broken down on six basic motions (forward, backward, turn left/right and crab left/right); no intermediate motion details required.

These motions as well as overall "insect"  behaviour are broken down in nested functions (currently six levels). In addition all control parameters are indexed (multiple layers) as well. This is a comfortable approach to create software very close to machine (bit) level.

Looking back on a 35+ yrs career as a physicist, phd in space industry - having worked with some 10 programming languages, including ASSEMBLER, FORTRAN, FORTH, PASCAL, etc. - I am confident that Blockly will fulfill my needs for the current private project.

In a nutshell: Many thanks again for your suggestions and support; I will report first success concerning my walking insect by a link to a video clip.

Cheers

Volker

PRO
Synthiam
#8   — Edited

Okay - i want you to have the best experience with your robot and surpass what was expected of it. Know that the Auto Position uses algorithms for fluent movements of each frame transition. It also binds to ARCs movement system, so all other controls can utilize the direction movements. Including things like the Camera and Joysticks and Speech Recognition, etc.. The Auto Position is designed specifically for movement gaits, exactly like you're creating

Here is how movement directions are used in ARC: https://synthiam.com/Support/ARC-Overview/movement-panels