ESC Calibration issues
-
Hi @Riley-Dove ,
Ok thanks. Let me get someone to check into this this AM.
We use the tool a lot with our production release of 1.10, https://docs.modalai.com/flight-core-firmware/#px4-v110
We haven’t moved to 1.11 in production on our side so the tools might need an update.
A work around should be to go back to the release in the link above, but ideally we get the tool working with 1.11.
I’ll keep you posted.
Thanks!
Travis -
I just reverted back to the ModalAI version of V1.10 and still having the same issues. It must be somehow related to my system.
-
In the end goal, When I arm the copter, the motors stay at the ESC armed throttle level, despite seeing throttle input from the RC. Once I get this resolved, should it work, or are they unrelated?
-
ESC cal "shouldn't" matter for this (it does set min/max range, but typically bad ESC cal just results in some iffy flights).
I've seen throttling up occurring if the estimator isn't running. Are you using a magnetometer in the setup?
PX4 expects an external mag by default, our custom FW is basically to handle this use case for indoor flight without a mag, there's work arounds for this so let me know and I can show you if this is the case.
Thanks!
-
@modaltb No magnetometer. I installed the No mag params file, as well as a few others, but I'd like to get your instructions. Mavlink inspector shows it not going above 1075.
-
On VOXL, what happens if you run
systemctl status voxl-vision-px4
?In our 1.10, to fly without mag, the system expects VIO data from VOXL. The FlightDeck should have this setup by default (e.g VOXL is sending VIO data to FlightCore). This is setup via EKF2_AID_MASK which is seems like you loaded, can you check this step to make sure PX4 is getting VIO data? https://docs.modalai.com/flying-with-vio/#confirm-px4-is-getting-vio-data
In our 1.11, we've reduced the requirement so simply check if EKF2_AID_MASK is configured (and doesn't care if there's actual vision data...)
-
This is what I see. I also cannot get to QGC through VOXL.
~ # systemctl status voxl-vision-px4
● voxl-vision-px4.service - voxl-vision-px4
Loaded: loaded (/usr/bin/voxl-vision-px4; disabled; vendor preset: enabled)
Active: failed (Result: signal) since Thu 1970-01-01 00:44:44 UTC; 5min ago
Process: 3084 ExecStart=/usr/bin/voxl-vision-px4 (code=killed, signal=SEGV)
Main PID: 3084 (code=killed, signal=SEGV)Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_send_voa_to_qgc": false,
Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_mvl_video_stream": false,
Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_adsb" false,
Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "adsb_uart_bus": 7,
Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "adsb_uart_baudrate": 57600,
Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_offboard_figure_eight": true,
Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "vio_to_ned_rotation_matrix":...]
Jan 01 00:44:44 apq8096 systemd[1]: voxl-vision-px4.service: Main process e...GV
Jan 01 00:44:44 apq8096 systemd[1]: voxl-vision-px4.service: Unit entered f...e.
Jan 01 00:44:44 apq8096 systemd[1]: voxl-vision-px4.service: Failed with re...'.
Hint: Some lines were ellipsized, use -l to show in full.
~ # -
OK without that service running, the QGC link through VOXL won't work, and this would also prevent VIO data making it's way to PX4, and then flying without a mag won't work....
How about
systemctl stop voxl-vision-px4
and then running manually with the debug flag:voxl-vision-px4 -d
This service is used when we calibrate the cameras before shipping so I'm wondering what's going on.
-
This is what I typed and what I get.
~ # systemctl stop voxl-vision-px4
~ # voxl-vision-px4 -d
loading config file
Error parsing config file before: en_vao": false,
"en_send_vio_to_qgc": false,
"en_send_voa_to_qgc": false,
"en_mvl_video_stream": false,
"en_adsb" false,
"adsb_uart_bus": 7,
"adsb_uart_baudrate": 57600,
"en_offboard_figure_eight": true,
"vio_to_ned_rotation_matrix": [[0, 1, 0], [1, 0, 0], [0, 0, -1]]Segmentation fault
~ # -
Hi @Riley-Dove , I think the config file got messed up. Perhaps around the "offboard_mode" setting.
This lives at /etc/modalai/voxl-vision-px4.conf
Here's an example, where the
qgc_ip
is your system with QGC's IP address:{ "qgc_ip": "192.168.8.47", "en_localhost_mavlink_udp": true, "en_secondary_qgc": false, "secondary_qgc_ip": "192.168.1.214", "offboard_mode": "none", "en_vio": false, "en_voa": false, "en_send_vio_to_qgc": false, "en_send_voa_to_qgc": false, "en_adsb": false, "adsb_uart_bus": 7, "adsb_uart_baudrate": 57600, "px4_uart_bus": 5, "px4_uart_baudrate": 921600, "R_imu_to_body": [[0, 1, 0], [1, 0, 0], [0, 0, -1]], "T_imu_wrt_body": [0.068, -0.015, -0.008], "height_body_above_ground_m": 0.05, "T_stereo_wrt_body": [0.10, -0.04, 0.0], "land_on_tag_id": 0, "follow_tag_id": 0, "en_apriltag_fixed_frame": false, "fixed_apriltags": [{ "tag_id": 0, "R_tag_to_fixed": [[0, -1, 0], [1, 0, 0], [0, 0, 1]], "T_tag_wrt_fixed": [0, 0, 0] }], "en_transform_mavlink_pos_setpoints_from_fixed_frame": true, "en_fixed_frame_pipe": false, "fixed_frame_filter_len": 5 }
-
Also, if you didn't modify this file and this is how it shipped let me know so I can look into what happened. We enable VOA during flight testing and then disable so if there's a typo introduced causing this issue I want to inform the team over here. Thanks!
-
Now it says only "error parsing config file before: ?
Segmentation fault" -
@modaltb I may have modified it, not even sure. I'm still learning the hardcore software side of this. I'm a hardware guy.
-
@Riley-Dove ok, we can reset it to factory defaults, maybe that's easiest! If you can delete that file
/etc/modalai/voxl-vision-px4.conf
and then run the following command:voxl-configure-vision-px4 -f
it will set the factory settings.Restart the service:
systemctl restart voxl-vision-px4
Check status:
systemctl status voxl-vision-px4
If all looks good, you can set your IP back up:
vi /etc/modalai/voxl-vision-px4.conf
vi isn't easy to use. But this should get you going:
- hit 'i' to enter edit mode
- move cursor to text using arrows, edit the ip address following the same format that's there
- hit 'esc' to exit edit mode
- to save, enter
:wq
Restart the service:
systemctl restart voxl-vision-px4
Check status:
systemctl status voxl-vision-px4
Then you should have a connection to QGC.
-
I run into the same issue when I check the voxl vision status. Active: Failed. There is nothing on the voxl-vision-px4.conf file. It's not properly configuring that file.
-
Hi @Riley-Dove ,
Sorry, something is happening when editing maybe... This setup is heavily used all over so trying to see what up, we can do a screen share if the following fails.
What if you do the following, without editing the file at all.
systemctl stop voxl-vision-px4
voxl-configure-vision-px4 -f
cat /etc/modalai/voxl-vision-px4.conf
Can you then copy paste the output of the last command here?
Then if the JSON output looks OK above, try to start again...
systemctl start voxl-vision-px4
.This is where I'm getting the file.
-
Looks like that worked.
~ # systemctl stop voxl-vision-px4
~ # voxl-configure-vision-px4 -f
loading and updating config file with voxl-vision-px4 -c
Error parsing config file before:
/usr/bin/voxl-configure-vision-px4: line 120: 3072 Segmentation fault voxl-vision-px4 -c
^ don't worry about the segfault ^attempting to use camera configuration 3
adding override_cam_id value=1 to /etc/snav/camera.downward.xml
adding override_cam_id value=2 to /etc/snav/camera.stereo.xml
reloading systemd services
disabling all the snav services
starting imu_app
Created symlink from /etc/systemd/system/multi-user.target.wants/imu_app.service to /etc/systemd/system/imu_app.service.
WARNING: Missing stereo calibration file. Follow instructions here to
calibrate if you wish to use stereo visual obstacle avoidance.
https://docs.modalai.com/docs/quickstarts/calibrate-cameras/DONE configuring ModalAI Vision Lib
enabling voxl-vision-px4 systemd service
Created symlink from /etc/systemd/system/multi-user.target.wants/voxl-vision-px4.service to /etc/systemd/system/voxl-vision-px4.service.
starting voxl-vision-px4 systemd service
DONE configuring voxl-vision-px4
~ # cat /etc/modalai/voxl-vision-px4.conf
{
"qgc_ip": "192.168.8.60",
"en_localhost_mavlink_udp": true,
"en_secondary_qgc": false,
"secondary_qgc_ip": "192.168.1.214",
"offboard_mode": "figure_eight",
"en_vio": true,
"en_voa": false,
"en_send_vio_to_qgc": false,
"en_send_voa_to_qgc": false,
"en_adsb": false,
"adsb_uart_bus": 7,
"adsb_uart_baudrate": 57600,
"px4_uart_bus": 5,
"px4_uart_baudrate": 921600,
"R_imu_to_body": [[0, 1, 0], [1, 0, 0], [0, 0, -1]],
"T_imu_wrt_body": [0.068, -0.015, -0.008],
"height_body_above_ground_m": 0.05,
"T_stereo_wrt_body": [0.10, -0.04, 0.0],
"land_on_tag_id": 0,
"follow_tag_id": 0,
"en_apriltag_fixed_frame": false,
"fixed_apriltags": [{
"tag_id": 0,
"R_tag_to_fixed": [[0, -1, 0], [1, 0, 0], [0, 0, 1]],
"T_tag_wrt_fixed": [0, 0, 0]
}],
"en_transform_mavlink_pos_setpoints_from_fixed_frame": true,
"en_fixed_frame_pipe": false,
"fixed_frame_filter_len": 5
}
~ #I edited the QGC IP to my laptop's IP and QGC still doesnt see it. I will try from a different computer.
-
No luck on different computer. I just tried the ESC cal as well and no luck.
-
What kind of computer are you using, Linux, Windows?
If Windows, you likely need to configure the firewall (maybe easier to just disable the windows firewall for this test).
You can use the USB connection straight to the blue connector to get a connection to QGC.
But, if you have QGC running, the ESC calibration tool won't work because QGC will have taken ownership of the port.
-
I've been testing on a Macbook Pro. I can get QGC via the USB port, just not via Wifi. And the motors dont spin above minimum armed PWM.