Hi,
I am interested in doing hardware-in-the-loop simulation with my ArduPilot Mega 2.5. We are developing a new controller architecture and I have implemented it in some firmware changes I've made.
When I look for information about HIL simulation, I mostly see people download a version of the firmware meant to do the simulation. My question is, is creating an HIL version as simple as changing these parameters:
#define HIL_MODE HIL_MODE_DISABLED (to HIL_MODE_SENSORS)
#define HIL_PORT 0 (to 3 for USB, or still 0?)
#define HIL_PROTOCOL HIL_PROTOCOL_MAVLINK
Could I just modify my custom firmware to include these changes, and load it as a hex the way I've been loading any custom firmware?
Also, do I have to use FlightGear (not Xplane) if I want the plane to know the raw sensor values? Or is that just a protocol issue?
Cheers!
Jon
University of Kentucky
Replies
hello, i want to ask to you, now i activate hil mode from source code and build that, but in parameter is still 0 for hil mode
Menno Hochstenbach said:
Hi Jon,
Did you get solution for this? I am looking for a solution to similar problem. I need to use my modified code to work with HIL. Please help if you have a solution.
Sorry to drop the thread.
I did manage to get HIL simulation working with my customized version of the 2.74b firmware and Flightgear. In my APM_Config.h file I put
#define HIL_MODE HIL_MODE_SENSORS
#define HIL_PORT 0
#define GPS_PROTOCOL GPS_PROTOCOL_HIL
It worked very well with the exception of the airspeed. Although the airspeed appeared in Mission Planner, the hardware did not appear to be receiving it. I managed to simulate AUTO mode by forcing the plane to use constant throttle (change min and max to same value).
Are you using ArduCopter or ArduPlane? For ArduPlane it should work, check: https://www.youtube.com/watch?v=tKr2C_Lrq_4.
Menno
Hi Menno,
This video describes HIL with built in code. I am looking for solution with my modified code. Please help if you have solution.
For ArduPlane is assume? ->
Uncomment or add these lines to APM_Config.h file:
#define HIL_MODE HIL_MODE_SENSORS
#define HIL_PROTOCOL HIL_PROTOCOL_MAVLINK
#define HIL_PORT 0
Then just upload this custom code with ArduPilot Arduino IDE to your ArduPilot and it should work..
Hi,
Have you already found a solution to do HIL with custom firmware because I want to do it to :)
Menno