Servers by jDrones

Allowing Ardupilot to interact with a multi-legs robot


(chris rey) #1

Hi all,

Just reading this interesting publication and was simply asking if it was possible to imagine a module that can interact between Ardupilot and a 2 legs or multilegs robot.

We have already Rover, that can allows to pilot different wheel based or even tank based robots.

Everything we need is to manage stability in a different way (this is already done with the FC algorithms)

The goal is not to create a full operational code for piloting a “standard” (to be defined) robot, but just maybe a basic interface allowing to do the link with another opensource robot project.

In theory, seems to be simple as this: :grinning:


void loop() {

Set_Leg_Position_0Cartes(‘A’, 50,10,down);
Set_Leg_Position_0Cartes(‘B’, 50, -10,down);
Set_Leg_Position_0Cartes(‘C’, -50,50,down);
Set_Leg_Position_0Cartes(‘D’, -50, -50,down);

//STEP 1
Step_in_Y(‘B’, -10,110);

Move_in_Y(‘A’, 10,-50);
Move_in_Y(‘B’, 110,50);
Move_in_Y(‘C’, 50,-10);
Move_in_Y(‘D’, -50,-110);

//STEP 2
Step_in_Y(‘D’, -110,10);

//STEP 3
Step_in_Y(‘C’, -10,110);

Move_in_Y(‘A’, -50,-110);
Move_in_Y(‘B’, 50,-10);
Move_in_Y(‘C’, 110,50);
Move_in_Y(‘D’, 10,-50);

//STEP 4
Step_in_Y(‘A’, -110,10);

I totally agree if someone tells me that this is out of the strategic scope of Ardupilot. This blog is just to open the discussion :grinning:

Some interresting links:

(rmackay9) #2


I’m really happy to see you raise this question. It’s not on the official roadmap (yet) but I’ve been thinking about this recently now that we’ve got basic support for balance bots and sailboats. I think the balance bot in particular is a good example of something similar in that it’s a frame that actively tries to control it’s attitude (other Rovers/boats can only control their speed, heading and position). I think, as you imply, that Rover now has a good architecture to support a walking robot.

Personally I’m most interested in a 4 legged walking robot because I think it would be stable while also not being too complex. Are you seriously thinking of getting one of these robots? Any interest in trying to tackle the software development part? In any case, a bit like Balance Bot and Sailboats, if we can collect 2 or 3 people together to tackle it the project tends to go well.

(chris rey) #3

Hi Randy,

Thanks for your interest. In fact instead of getting one of these robots, I was more oriented building it with a 3D printer, that I just get and playing with OpenSCAD, so interesting and more flexible! At this time I’m prospecting to see what is available. I’ve seen the Poppy project which seems interesting, but expensive (around 9’000€) due to the hardware they use Dynamixel Actuators, not very cheap ones. But you can also use standard servos with adapters you can also print.

But now I think this project (Poppy) is too much complex for starting. So I found the ROFI project BoM 350$, more accessible and less complex. I didn’t took the time to look further, but I’m sure there are plenty of very intereresting projects (2 legs, 4 legs), but would be difficult to choose the right one at first time.

example of 4 legs robot: Spider robot(quad robot, quadruped)-SG90 found on #Thingiverse

Of course I’ve interest taking part in a project, as I’ve some availabilities yet. And some unused sensors I have to place.

(Brian Riskas) #4

I just wanted to say that I am also interested in this as well, but unfortunately I am not much use on the software development front.

A thought: it might be better to start with a hexapod, as there are a variety of statically stable gaits that are well documented, as opposed to a quadruped that has a limited number of statically stable gaits (unless you want to make it dynamically stable, which is a much, much more difficult undertaking)

(chris rey) #5

Thanks for your interest.

Sure, it’s difficult, I’m not a programmer too, but can understand some parts of the code when I see it. But for the stability, I’m just doing an easy parallel with PosHold or AltHold? Do not we have everything available in this project to manage this? Instead of interacting with propellers power for stabilization, need to adapt the right position of the implicated servos. Sure this is not easy as this, but there are plenty of solutions from simple to complex, open, close code we can get inspiration.

And choose the way it will move, like a Spider, looks simpler, or like a cat, could be more interesting, but more difficult.

I’ve seen this project OpenCat If you look at the video, it’s promizing. And then later: SpotMini :wink:

Other 3D printed projects:

(ppoirier) #6

Have you looked at this
I build one like this a few years ago and I liked the modularity of ros for the kinematic control as you could independently set/use different gaits and walk patterns.
I see there is some similarities with the Antdroid showned above

(Peter Hall) #7

something like this might be a relatively easy extension to the balance bot code, it just has variable length legs so it can lean into corners and change height. I think the arms and movable torso are just to allow it to pick stuff up rather than being required for balancing.

The trouble with legged robots is they are so expensive and don’t really offer much advantage over wheels or tracks unless you can do leg placement based on 3D information about the environment.

They are very cool tho

(Jean-Philippe Hell) #8

Well, Paul Mac Cready himself expressed his concern about robotic cockroaches on a TED talk .
So, who will be the first to cross a four trapezeoidal direct-drive legged robot such as the one from Ghost Robotics Minitaur with an aerial platform like a tailsitter flying wing for instance ?

Insane landings / takeoffs are to be expected !

(rmackay9) #9

I guess there are a least two main frame types. There’s the cat/dog style with legs basically under the body and with hip-knee-ankle servos, and then the more insect/crab-like style (i.e. the ros hexapod, the antdroid) with legs out to the side.

I suspect the cat/dog style ideally also needs another servo at the hip to allow a bit more 2D control. Boston Dynamic animals have this I think although Sony’s Aibo doesn’t. It looks like OpenDog does have this extra control in the frame.

(Jean-Philippe Hell) #10

There is this cheaper alternative to OpenDog with the exact same cinematic.

(Chris Albertson) #11

To leg robots are actually cheaper and easier to build because they have half as many legs.

The BIG distinction is not the number of legs but if the robot is “dynamically” or “statically” balanced. If you have large enough feet a two-leg robot can be statically balanced. That means to stand on one leg even with the power disconnected and many 4-leg robots are dynamically balanced. In most for-leg gaits are un-balanced and running is always un-balanced.

How to interface ArduPilot Rover to a walking robot is exactly the same as for a rolling robot. In both cases, the robot should present an interface that accepts translational and rotational rates. ROS’ “twist” message interface is completely usable for aircraft, rovers and walking robots and there is a huge amount of examples of this. There is no need to reinvent things.

Ardupilot needs to be designed to an interface and not worry what is on the other side be it wheels or legs. Ardi=upilot does need a list of capabilities such as limits on the rates imposed by the hardware like speeds and if the platform is holonomic or must face in the direction of movement.

Realitically Ardupilotis never goingto be able to control an advanced robot. It is an autopilot and lacks even the concept of reaching around objects with an arm or SLAM. But Ardupoilot could be used to drive a walking robot as if it where a car but adfet that it get way out of scope quickly. Thinks like maintaining balance while lifting objects is not an autopilot feature.

(ptegler) #12

VERY interesting…as I posed this exact question on a couple Hexapod forums just recently.
I know a couple of our matrons here have existed in that realm previous to being here in the uav realm.
Invers kinematic efforts are well documented by a couple we all know and follow on youtube. I can’t see putting a pixhawk on a large hexapod being an issue.
Me personally… mine is up and running