i am trying to understand how the joystick work in the Mission Planner. I guess if i can use the joystick to control the Arducopter, Mission Planner has to send commands using MAVLink to the Arducopter.
I have read the joystick.cs file in the source but in this file don´t send command. I wonder if someone could help me, at least in which files the Mission Planner sends the joystick´s MAVLink commands.
Hello Antonio, What Joystick are you using? It has been some time since I have used mine, but setting it up in the planner was quite simple. Keep in mind that most joysticks do not have the resolution that your RC transmitter has, but setting up functions is quite simple.
If I remember correctly, the planner has a menu for selecting your controller. Once selected you must calibrate it. The Auto select feature worked well for me last time I used it. Also be advised that your telemetry module settings can also effect control outputs and delays over various ranges and environments.
I would recommend you calibrate your controller and test it on your copter with the props off. Pick up the copter and give it control inputs at low throttle. You can put small pieces of colored tape on the prop shafts so as to help you determine proper control inputs. I would also recommend initially not using the throttle on your joystick. Leave the throttle tied to your RC remote. Obvious reasons. Feel free to be more specific with your questions if need be. There are more than enough people here to help with whatever your needs may be.
thanks for your answer. But i think you didn't understand my question. I am trying to control the Arducopter from my laptop sending MAVLink command in a python script. So, my idea is simulating that i have a joystick.
I have found the kind of message that Mission Planner send to the drone. I wonder if someone has tried this before.
The method joysticksend() is responsible for sending the Mavlink messages, located in MainV2.cs. A thread is setup to run this in the background, periodically.
I did some work debugging a latency issue with joystick control in this thread:
Thanks. Yes, i have seen that method sends the message. The significant classes are MainV2, CurrentState and Joystick. However, i don´t know why in the chanX_raw assigns cs.rcoverridechX. cs is a CurrentState object. In the comments is written //(ushort)(((int)state.Rz / 65.535) + 1000);
can i ask whether you made progress here? I'm looking to do something similar.