This is the repository for all my work regarding the software side of the polarisation experiment. This was made using ROS2 with a complicated setup of an RPi and RoboStack.
- Install the ArenaSDK
- Clone this repository onto the Raspberry Pi into a ROS2 Workspace
- Clone ds4_driver, lucid_vision_driver and vrpn_mocap into the
src
directory of this repository - Run
sudo apt update && rosdep update
- Run
rosdep install --from-paths src -y --ignore-src
- Run
colcon build
and hope it all builds - Use
bluetoothctl
to connect to a PS4 controller - Run
ros2 launch calibrate_process launch_project.py
- Clone this repository into a ROS2 Workspace
- Run
rosdep update
- Run
rosdep install --from-paths src -y --ignore-src
- Change
parent_path
incalibrate_process.py
5Runros2 launch calibrate_process calibrate_process
ROS2 tries to transmit over what ever interface it wants and when the polarisation camera is attached, it will try and transmit it over the polarisation camera... This is obviously incorrect.
Steps to fix (run on RPi)
- Run
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
- Run
export interface=$(for dev in /sys/class/net/*; do [ -e "$dev"/wireless ] && echo ${dev##*/}; done)
- Run
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?> <CycloneDDS xmlns=\"https://cdds.io/config\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd\"> <Domain id=\"any\"> <General> <NetworkInterfaceAddress>$interface</NetworkInterfaceAddress> </General> </Domain> </CycloneDDS>" > /tmp/cyclonedds_interface.xml
- Run
export CYCLONEDDS_URI="file:///tmp/cyclonedds_interface.xml"
More information can be found on: https://dds-demonstrators.readthedocs.io/en/latest/Teams/1.Hurricane/setupCycloneDDS.html