Hi,First of all I'd like say thanks to every developper that worked this awesome project, I've been working with the ardupilot and mission planner code for 2 month (7 hours per day) and I really enjoy what you guys did.I'm quite new to the drone world (only worked 6 month on the AR-Drone from parrot) and I'm willing to understand how thing really works, and I was wondering if you could help me figure out the answer of the following.I saw this architecture and I wanted to know if something similar exist for the "real" version of the ardupilot ? is there a .elf executable runing on the board ? if yes what is the difference between the sitl and the real one (except the fact that the motor, gps,... are simulated) ?
I'm also having trouble to understand what the ArduCopter.elf is responsable for. I though it was generating the whole simulation but I know MAVProxy has some role to play (since when I connected the mission planner to the ArduCopter executable I couldn't simulate a mission). Can anyone help me understand that ?My main goal is to manage to make an hitl work so if anyone has some advice I'm also taking them :)thanks in advance,Sam
--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
If anyone does get around to adding more developer documentation it should be in this section of the developer wiki I think:
http://dev.ardupilot.com/wiki/apmcopter-code-overview/
At some point after AVC + AC3.2 I’ll go through and update the existing documentation to match the post onion code structure.
-Randy
@Randy, speaking of Oion you posted a good overview of the Onion struxture somewhere, but I can't find it. Do you have a link please!?? Sorry.
On Tuesday, May 20, 2014 10:55:01 PM UTC-4, Randy Mackay wrote:
If anyone does get around to adding more developer documentation it should be in this section of the developer wiki I think:
http://dev.ardupilot.com/wiki/apmcopter-code-overview/
At some point after AVC + AC3.2 I’ll go through and update the existing documentation to match the post onion code structure.
-Randy
btw, there's no similar architecture diagram for "real" i.e. non-SITL Ardupilot as it'd be pretty boring - the Ardupilot code running on a board optionally connected to a GCS via a (usually radio) telemetry link.
Ben.
On Wed, May 21, 2014 at 9:10 AM, Ben Nizette <benni...@gmail.com> wrote:
Hi Sam,
As Kevin says, the ELF may or may not be running on the board per se, depending on the particular board, however the code /in/ the ELF is certainly running on the board.
The SITL architecture is as in that picture: Ardu*.elf is the Ardupilot code only, the simulation is done by an external physics engine. In that diagram, you can think of MAVProxy as most of the green lines in the middle and also the GCS in the bottom-left. It's responsible for routing packets around the place but also has the ability to monitor/interact with the MAVLink telemetry stream. If you want to connect mission planner to a SITL mission, you need to run the SITL MAVProxy instance with another "--out=" command line switch specifying the IP address and port number mission planner will be running on.
The difference between a SITL binary (ELF, hex, whatever) and one for download to a board is just the compiler used and the hardware abstraction layer wired in. If you look in libraries/ you'll see a bunch of AP_HAL_* that contains the board-specific code for all supported hardware and SITL. The SITL HAL is responsible for a small part of the simulation: Taking perfect data from the simulator and making it look like it came from sensors. A simple example is the SITL barometer, it takes altitude from the simulator, adds some noise and drift then makes it look like it came from a real baro (in terms of drivers).
What kind of HIL do you need and why? Ardupilot already has fairly decent HIL support, as far as it goes, but it doesn't find regular use - there's not much that it does that isn't done better my SITL.
HTH.
Ben.
On Wed, May 21, 2014 at 9:10 AM, Ben Nizette <benni...@gmail.com> wrote:
Hi Sam,
As Kevin says, the ELF may or may not be running on the board per se, depending on the particular board, however the code /in/ the ELF is certainly running on the board.
The SITL architecture is as in that picture: Ardu*.elf is the Ardupilot code only, the simulation is done by an external physics engine. In that diagram, you can think of MAVProxy as most of the green lines in the middle and also the GCS in the bottom-left. It's responsible for routing packets around the place but also has the ability to monitor/interact with the MAVLink telemetry stream. If you want to connect mission planner to a SITL mission, you need to run the SITL MAVProxy instance with another "--out=" command line switch specifying the IP address and port number mission planner will be running on.
If i'm understanding well, this mean that MAVProxy is mainly transmitting the packets to the ArduPilot (which is the Ardu*.elf on the sitl case) ?
I managed to connect my mission planner to the MAVProxy interface using UDP. Then I tried to connect Mission Planner to the sitl through the TCP port (by placing it on the bottom left in the diagram) and I had some "bad gyro health" message and wasn't able to order the sitl to arm the motor for example.
So I though maybe MAVProxy was simulated some hardware part, but then i read that "The APM code is built and run on a PC. A simulator provides sensor inputs" on this website : http://tridge.github.io/MAVProxy/simulation.html
The difference between a SITL binary (ELF, hex, whatever) and one for download to a board is just the compiler used and the hardware abstraction layer wired in. If you look in libraries/ you'll see a bunch of AP_HAL_* that contains the board-specific code for all supported hardware and SITL. The SITL HAL is responsible for a small part of the simulation: Taking perfect data from the simulator and making it look like it came from sensors. A simple example is the SITL barometer, it takes altitude from the simulator, adds some noise and drift then makes it look like it came from a real baro (in terms of drivers).
So if I get it correctly the libs are compiled and made into an executable file that can run on a PC, the AP_HAL_* (can you also tell me what HAL stand for ?) folder contains the code that add noise and such to make the data generated by a simulator look like it comes from a real sensor ?
So if this is correct what is the simulator MAVProxy ? I'm really sorry but I'm confuse :s
What kind of HIL do you need and why? Ardupilot already has fairly decent HIL support, as far as it goes, but it doesn't find regular use - there's not much that it does that isn't done better my SITL.
Just the board and no other hardware, It's a goal i fixed to myself mainly to understand the code, how things really works in low level and to get started. I saw that the SITL is really accurate and really well done :-)
HTH.
Ben.
I’ve added the post-onion code structure pids to the arducopter code overview landing page. This is probably not the perfect place to put it. Instead it should probably go on an “Overview page” but for now you can find it at the link below.
-Randy
From: drones-...@googlegroups.com [mailto:drones-...@googlegroups.com] On Behalf Of Ben Nizette
Sent: May 22, 2014 10:54 AM
To: drones-...@googlegroups.com
Subject: Re: [drones-discuss] looking for the ArduCopter software architecture
On Wed, May 21, 2014 at 9:10 AM, Ben Nizette <benni...@gmail.com> wrote: