checkout the MCBL-00011 which can act as a cable coming from power regulator that powers both voxl and flight core
Best posts made by ryan_meagher
-
RE: VOXL flight connection with PX4posted in Ask your questions right here!
-
RE: BAR30 on Flight Coreposted in Flight Core
I know this is kinda an old post but I have created a driver for px4 that can use both flavors of the MS5837 the bar2 and bar30. I will create a pull request with px4 so it will be available.
-
RE: How to copy your MAVSDK Python Docker container and edit the files?posted in Ask your questions right here!
You can add a directory from your host machine which has whatever python files you wish to add via adding a src directory path and mapping it to a path in the containers file structure.
docker run -it --rm -v /host_src_dir_path:/container_dir_path --privileged --net=host <img>:<tag>Upon running the docker container, the directory from /host_src_dir_path will be available at /container_dir_path
-
RE: Trouble configuring m500 into Station Modeposted in Ask your questions right here!
In the future if you need to quickly change the ip address of where the voxl looks for qgc you can do
voxl-vision-px4 -i <ip> -
RE: Building ROS node with OpenCVposted in Ask your questions right here!
@Eric-Katzfey Thanks for the suggestion.
For anyone else interested in doing this, these are the steps I took to accomplish this.
-
In order to change where the root of the docker runtime points to in the docker service go to
/etc/systemd/system/docker-start.serviceand change the following line so that it uses the sd card(ext4 format) in the voxlExecStart=/usr/bin/docker daemon -g /mnt/sdcard -
restart the service for the changes to take effect:
systemctl restart docker-start.service -
Delete the directories that docker uses in the data partition:
cd /data; rm -rf containers linkgraph.db overlay tmp volumes graph network repositories-overlay trust -
[NOTE] The previous commands will delete any images that were previously available.
-
You can now run
voxl-configure-docker-support.shand a hello world image will be created
and the directories that were deleted from the/datapartition will be in the/mnt/sdcard
directory. -
You can verify that you have freed up the /data partition via
df -h
-
-
Setting up network interfacesposted in Ask your questions right here!
So I am trying to find the place where I can setup network interfaces in order to assign a static ip address for eth0. On the rb5 I can do this via modifying the
/etc/dhcpcd.conffile; however, this isn't present on the voxl. I see all the interfaces viaifconfig -aand the correspondingsys/class/netbut there doesn't seem to be .network of ifcfg files there.I would have thought that the interfaces would either be in
/etc/sysconfig/network-scripts/ifcfg-eth*or in/etc/network/interfaceswhere I could modify files that could be brought up viaifconfig eth0 upbut this doesn't seem to be the case.Right now I am doing this via enabling a
systemdserviceset -e ETH_ADD=192.168.2.120 ifconfig eth0 up || (echo " failed to open eth0" && exit 1) ip addr add ${ETH_ADD}/24 dev eth0 || (echo " failed to add ip link eth0" && exit 1)I see that this can be done in the poky_build but any suggestions as to where this can be done on the voxl in a more Linux-esque way?
Thanks,
Ryan Meagher -
RE: micrortps setup via voxl_ioposted in Ask your questions right here!
I was able to get the microRTPS_client and microRTPS_agent working between the flight core and the voxl. My ROS2 setup is now complete and I have done various testing between the flight core and voxl to confirm this. It turned out to be more work than I expected.
I created a compact microRTPS parser on the hexagon sDSP in the voxl_io on the receive side to minimize the snapdragon’s involvement with assembling messages. The messages are passed through the shared memory from the hexagon sDSP to the ARM CPU. I created a UDP tunnel in the voxl_vision (running on yocto Jethro) to tunnel UDP microRTPS messages between the host os and the Ubuntu 20.04 docker container running the micrortps_agent and ros2 px4_ros_com launch file.
There are a couple gotchas that I faced. The first is that some characters are being dropped between the flight core and the voxl every so often. I have not isolated which side is at fault (need to connect a logic analyzer and capture the event on the wire), but these cause CRC errors in the messages. Neither side reports an error on the write or read that I was able to log. If I get some additional equipment, I’ll probably try to track down which side is at fault.
I wrote a utility program that captures characters on any of the serial buses and logs the data to a file. I’ve verified that even in this simple setup, characters are being dropped. I have the baud rate set at 921600. With only about 6 messages being sent, I’m sending about 650kbps over the wire so this baud rate may need to be increased as the px4 guys recommend a minimum of 1MB.
There is also an issue with the way the micrortps_agent handles errors that can cause an eventual lockup if you have CRC errors in the messages that required some modification, which is what I believe you are facing @benjamin-linne . It seemed like the UDP messages were stopping but with tcpdump and voxl-perfmon, I was able to isolate it to the way the transport was handling errors. The fix is reasonably straightforward, but eliminating any CRC errors beforehand avoids this issue.
@benjamin-linne not sure if I’m allowed to give out the code but send me you contact info and we can talk offline.