Try giving your usb device root permissions. Do the following:
sudo chmod 777 /dev/ttyUSB0
and then try rerunning all the same code. I think this might be a permissions issue. @Taylor-Presley
Try giving your usb device root permissions. Do the following:
sudo chmod 777 /dev/ttyUSB0
and then try rerunning all the same code. I think this might be a permissions issue. @Taylor-Presley
Does /dev/ttyUSB0 show up in your dev environment when you plug in your FTDI cable?
Zach
@Youngjoo-Kim said in Serial port for HITL and building gazebo target:
mavlink start -d /dev/uart_esc -b 921600 -m onboard -r 80000
You cannot leverage that serial port to connect to QGC and run HITL at the same time. There will be conflicting mavlink packets and it will not work. You either neither connect to QGC via voxl-vision-px4 and have those serial mavlink packets be passing the gazebo packets, or not run gazebo at all and only have a serial connection going to QGC. If I put my money on it - the /dev/uart_esc actually isnt the name of the wire in the dev environment. In px4 for the voxl2 these ports are usually represented by numbers instead of paths - so I would recommend putting a value of '2' which should be the dsp port you are connected to (the 4 pin jst connector on the bottom of the voxl2).
You can run any version of px4 for whichever computer is running gazebo. I always just checkout PX4-Autopilot v1.12.3 to run gazebo.
Let me know if this helps out.
Zach
@Anubhav are you still flying gazebo with the iris_vision instead of just the iris_hitl in the gazebo world?
@Anubhav looks like the links to your videos are private so I am unable to view. USUALLY TX queue overflow occurs when your autopilot is trying to communicate to both QGC and the simulation at the same time and the bandwidth going over the serial connection cannot be split. The solution although simple tends to work - just have gazebo open first - connect to the drone and run PX4 on the VOXL2. Once the serial connection between gazebo and the voxl2 have been established - THEN open QGC and that will connect over UDP and not leverage the serial connection.
TX Overflow happens because you are trying to connect to QGC with the serial connection being leveraged by gazebo for HITL. So what you need to do is open QGC after gazebo is running and connected to the VOXL2. Once this is done, you can only connect to QGC via the UDP connectoin. This can be done by enabling voxl-vision-px4 and voxl-mavlink-server services.
So you connect to the gazebo via the serial, and QGC via the UDP connection.
Hi Tamas, what is your setup inside the gazebo world? Are you leveraging the iris_vision inside the world setup? Furthermore, are you leveraging the iris_hitl inside the iris_vision.sdf file?
Those parameters are expected to be missing. Inside the hitl_iris.world file what sdf model are you leveraging? Also I always use PX4 v1.12.3 when running simulation with gazebo and almost never got this issue you are saying above and usually the echo 1 sudo tee line tends to fix that as it relays data as fast as possible. Are you trying to run the voxl2 in VIO or GPS mode for hitl?
Also is there a specific baudrate max on your FTDI cable?
Based off the terminal output, looks like you have a good connection between your computer and the voxl2 - Did you ever run the following before running gazebo:
echo 1 | sudo tee /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
@Tamas-Pal-0 the more I think about this, the more I believe you are running HITL in VIO while the drone is expecting GPS or vice versa, you are running HITL in GPS mode but the drone is in VIO mode.
@Tamas-Pal-0 said in HITL on VOXL 2 : Preflight fail EKF couldn't get status:
Why it is there and how to solve this issue?
Hi Tamas - can you please post the entire log from PX4 shell when you run hitl - my biggest inclination is that you have a bad connection or that you are not using the proper flags when you execute px4 in HITL mode.
Hi Anubhav - the reason why this is not working is because you are running your code in SITL mode and not HITL mode right now - the teller is that you ran make XXX
in your executable. To run HITL, run the following:
<uri>model://iris_hitl</uri>
--> <uri>model://iris_vision</uri>
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
`gazebo Tools/sitl_gazebo/worlds/hitl_iris.world
Hi Tamas - please run a chmod +x /usr/bin/voxl-px4-hitl
and that will enable permissions. After running that, you can run voxl-px4-hitl
from any directory and it will work.
@Tamas-Pal-0 said in HITL with voxl 2:
0
This seems like a permissions issue on your end and that your user doesnt have super user permissions.
Hi Tamas, this video is how to get the voxl2 running with HITL: https://www.youtube.com/watch?v=ysvpJdXFWaM&ab_channel=AscendEngineering
Also - unless you are running the voxl-dev branch, then you will not be able to do a SERIAL connection from the voxl2 to QGC, you can only leverage a UDP connection. If you are running the voxl-dev branch and flashed the board, then you can leverage the voxl-px4-hitl
executable and connect to QGC. However, you cannot have gazebo open simultaneously because the serial connection will then be interrupted.
If you wish to run HITL while running QGC, then run this using an FTDI cable and then turn on the required services (voxl-vision-px4, voxl-mavlink-server) and then connect to gazebo serially, and QGC via UDP signal.
Let me know if this makes sense.
Hi @Tamas-Pal-0 - looks like you are correct in that the voxl-px4-hitl has not been pulled into voxl-master. I would recommend for now switching over to the voxl-dev
branch and running with the steps through there. Once it has been pulled into voxl-master, then you can recompile, reflash, and run through it on that branch. Other options as well is you can copy the file voxl-px4-hitl
from the voxl-dev
branch into your current working voxl-master
, recompile, and reflash the voxl2 with the newer firmware containing the correct executable.
Trying to update the voxl2 IO board via a jlink/stlink connection but I am receiving the following output:
****** Error: Failed to prepare RAMCode using RAM
Communication timed out: Requested 24 bytes, received 0 bytes !
Target voltage too low (1 Volt is required, Measured: 0.0 Volt).
Unspecified error -1
J-Link>loadbin v1.11.4-0.0.2-modalai_voxl2io-v2.bin,0x08001000
Downloading file [v1.11.4-0.0.2-modalai_voxl2io-v2.bin]...
CPU could not be halted
****** Error: Failed to prepare for programming.
Could not preserve target memory.
Cannot read register 16 (XPSR) while CPU is running
Cannot read register 20 (CFBP) while CPU is running
Cannot read register 0 (R0) while CPU is running
Cannot read register 1 (R1) while CPU is running
Cannot read register 2 (R2) while CPU is running
Cannot read register 3 (R3) while CPU is running
Cannot read register 4 (R4) while CPU is running
Cannot read register 5 (R5) while CPU is running
Cannot read register 6 (R6) while CPU is running
Cannot read register 7 (R7) while CPU is running
Cannot read register 8 (R8) while CPU is running
Cannot read register 9 (R9) while CPU is running
Cannot read register 10 (R10) while CPU is running
Cannot read register 11 (R11) while CPU is running
Cannot read register 12 (R12) while CPU is running
Cannot read register 14 (R14) while CPU is running
Cannot read register 15 (R15) while CPU is running
Cannot read register 17 (MSP) while CPU is running
Cannot read register 18 (PSP) while CPU is running
Tar
Unspecified error -1
J-Link>r
Reset delay: 0 ms
Reset type UNKNOWN: ???
J-Link>q
Script processing completed.
Any direction would be great.
I have spliced a holy bro pixhawk 4 GPS to J19 on the voxl2 and am getting power to the device, but there is no GPS_CONFIG parameters to set to the serial port inside QGC. Any specific parameters I need to set to tell the firmware where the GPS is plugged into? Currently running the modalai base iteration of PX4 on the voxl2.
@keil odomotry should be out the box via gazebo. A minor edit needs to be changed inside PX4-Autopilot. Please do the following:
PX4-Autopilot/Tools/sitl_gazebo/models/iris_vision
directory and edit the following file: iris_vision.sdf
<uri>model://iris</uri>
TO <uri>model://iris_hitl</uri>
make px4_sitl_default gazebo_iris_vision
That will build a gazebo environment with a hitl iris that leverages vision to run VIO - AKA this will return odometry data.