From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

FIRST Robotics Competition Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Using RAD on the RoboRIO

Unfortunately I can't link to the setup script just yet otherwise I would but it's a bunch of stuff to install ROS on the RoboRIO.  We aren't doing anything with the FPGA outside of what FIRST is doing to it with their default installation - which is to say that is yet another black box in all of this that I have no insight into.  Yes, we can see the FPGA with our software stack as we ran a robot on it this year.

 

Here's the bit of the setup script that shows vaguely what is installed on the RoboRIO:

 

# Set time and date on Rio to match the system
# we're installing from. This should be close enough
# to reality to get past ssl errors from pip if the
# date on the Rio is totally wacky
ssh admin@$1 date -u --set="\"`date -u +"%Y.%m.%d-%T"`\""

ssh admin@$1 'swapon /dev/sda5'
if false; then

ssh admin@$1 'opkg update'

# Split these up so the disk doesn't fill up with temp files
# Also need to install pyyaml first for some reason to avoid
# weird dependency hell issues with opkg
ssh admin@$1 'opkg install python-pyyaml'
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libeigen python-dev libpython2 python-core '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libcurl4 lz4 libboost-filesystem1.60.0 libboost-program-options1.60.0 libboost-signals1.60.0 libboost-regex1.60.0 libboost-thread1.60.0 libboost-chrono1.60.0 libboost-date-time1.60.0 libboost-atomic1.60.0'
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libbz2 cmake libxml2 libgnutls-bin libgnutls-openssl27 '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libgnutls30 libgnutlsxx28 nettle libgmp10 libgmpxx4 libz1 git make '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install gcc g++ gcc-symlinks g++-symlinks binutils python-setuptools python-docutils '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install python-pkgutil python-dateutil python-argparse python-nose '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install python-netifaces libglog0 python-pip coreutils gdb i2c-tools '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install ntp ntp-tickadj ntp-utils ntpdate rsync htop curl'
ssh admin@$1 'opkg clean'

ssh admin@$1 'pip install catkin_pkg rospkg rosdistro vcstools rosdep wstool rosinstall rosinstall_generator defusedxml empy'

# Copy over ROS tar.bz2 file, extract to / on the Rio
wget -O /tmp/roscore_roborio_2018.tar.bz2 "*******"
scp /tmp/roscore_roborio_2018.tar.bz2 admin@$1:.
rm /tmp/roscore_roborio_2018.tar.bz2
ssh admin@$1 'cd / && tar -xjf ~/roscore_roborio_2018.tar.bz2'
scp ~/2018RobotCode/os_detect.py admin@$1:/usr/lib/python2.7/site-packages/rospkg/
ssh admin@$1 'rm ~/roscore_roborio_2018.tar.bz2'

# Try to simulate what the cross-build environment
# looks like
ssh admin@$1 'ln -s / /usr/arm-frc-linux-gnueabi'
ssh admin@$1 'ln -s /usr/include /include'

# Create workspace. Do a build in the empty workspace to set
# up various scripts for later use
ssh admin@$1 'mkdir -p 2018RobotCode/zebROS_ws/src'
ssh admin@$1 'source /opt/ros/kinetic/setup.bash && cd 2018RobotCode/zebROS_ws && catkin_make_isolated --install'

 

I don't think any of that is causing these errors but I'm happy to learn otherwise.

0 Kudos
Message 11 of 13
(696 Views)

Unfortunately I can't link to the setup script just yet otherwise I would but it's a bunch of stuff to install ROS on the RoboRIO.  We aren't doing anything with the FPGA outside of what FIRST is doing to it with their default installation - which is to say that is yet another black box in all of this that I have no insight into.  Yes, we can see the FPGA with our software stack as we ran a robot on it this year.

 

Here's the bit of the setup script that shows vaguely what is installed on the RoboRIO:

 

# Set time and date on Rio to match the system
# we're installing from. This should be close enough
# to reality to get past ssl errors from pip if the
# date on the Rio is totally wacky
ssh admin@$1 date -u --set="\"`date -u +"%Y.%m.%d-%T"`\""

ssh admin@$1 'swapon /dev/sda5'
if false; then

ssh admin@$1 'opkg update'

# Split these up so the disk doesn't fill up with temp files
# Also need to install pyyaml first for some reason to avoid
# weird dependency hell issues with opkg
ssh admin@$1 'opkg install python-pyyaml'
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libeigen python-dev libpython2 python-core '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libcurl4 lz4 libboost-filesystem1.60.0 libboost-program-options1.60.0 libboost-signals1.60.0 libboost-regex1.60.0 libboost-thread1.60.0 libboost-chrono1.60.0 libboost-date-time1.60.0 libboost-atomic1.60.0'
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libbz2 cmake libxml2 libgnutls-bin libgnutls-openssl27 '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libgnutls30 libgnutlsxx28 nettle libgmp10 libgmpxx4 libz1 git make '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install gcc g++ gcc-symlinks g++-symlinks binutils python-setuptools python-docutils '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install python-pkgutil python-dateutil python-argparse python-nose '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install python-netifaces libglog0 python-pip coreutils gdb i2c-tools '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install ntp ntp-tickadj ntp-utils ntpdate rsync htop curl'
ssh admin@$1 'opkg clean'

ssh admin@$1 'pip install catkin_pkg rospkg rosdistro vcstools rosdep wstool rosinstall rosinstall_generator defusedxml empy'

# Copy over ROS tar.bz2 file, extract to / on the Rio
wget -O /tmp/roscore_roborio_2018.tar.bz2 "*******"
scp /tmp/roscore_roborio_2018.tar.bz2 admin@$1:.
rm /tmp/roscore_roborio_2018.tar.bz2
ssh admin@$1 'cd / && tar -xjf ~/roscore_roborio_2018.tar.bz2'
scp ~/2018RobotCode/os_detect.py admin@$1:/usr/lib/python2.7/site-packages/rospkg/
ssh admin@$1 'rm ~/roscore_roborio_2018.tar.bz2'

# Try to simulate what the cross-build environment
# looks like
ssh admin@$1 'ln -s / /usr/arm-frc-linux-gnueabi'
ssh admin@$1 'ln -s /usr/include /include'

# Create workspace. Do a build in the empty workspace to set
# up various scripts for later use
ssh admin@$1 'mkdir -p 2018RobotCode/zebROS_ws/src'
ssh admin@$1 'source /opt/ros/kinetic/setup.bash && cd 2018RobotCode/zebROS_ws && catkin_make_isolated --install'

 

I don't think any of that is causing these errors but I'm happy to learn otherwise.

0 Kudos
Message 12 of 13
(695 Views)

Seriously, this isn't spam... it's code.

 

Unfortunately I can't link to the setup script just yet otherwise I would but it's a bunch of stuff to install ROS on the RoboRIO.  We aren't doing anything with the FPGA outside of what FIRST is doing to it with their default installation - which is to say that is yet another black box in all of this that I have no insight into.  Yes, we can see the FPGA with our software stack as we ran a robot on it this year.

 

Here's the bit of the setup script that shows vaguely what is installed on the RoboRIO:

 

# Set time and date on Rio to match the system
# we're installing from. This should be close enough
# to reality to get past ssl errors from pip if the 
# date on the Rio is totally wacky
ssh admin@$1 date -u --set="\"`date -u +"%Y.%m.%d-%T"`\""
ssh admin@$1 'swapon /dev/sda5'
if false; then
ssh admin@$1 'opkg update'
# Split these up so the disk doesn't fill up with temp files
# Also need to install pyyaml first for some reason to avoid
# weird dependency hell issues with opkg
ssh admin@$1 'opkg install python-pyyaml'
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libeigen python-dev libpython2 python-core '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libcurl4 lz4 libboost-filesystem1.60.0 libboost-program-options1.60.0 libboost-signals1.60.0 libboost-regex1.60.0 libboost-thread1.60.0 libboost-chrono1.60.0 libboost-date-time1.60.0 libboost-atomic1.60.0'
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libbz2 cmake libxml2 libgnutls-bin libgnutls-openssl27 '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install libgnutls30 libgnutlsxx28 nettle libgmp10 libgmpxx4 libz1 git make '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install gcc g++ gcc-symlinks g++-symlinks binutils python-setuptools python-docutils '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install python-pkgutil python-dateutil python-argparse python-nose '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install python-netifaces libglog0 python-pip coreutils gdb i2c-tools '
ssh admin@$1 'opkg clean'
ssh admin@$1 'opkg install ntp ntp-tickadj ntp-utils ntpdate rsync htop curl'
ssh admin@$1 'opkg clean'
ssh admin@$1 'pip install catkin_pkg rospkg rosdistro vcstools rosdep wstool rosinstall rosinstall_generator defusedxml empy'
# Copy over ROS tar.bz2 file, extract to / on the Rio
wget -O /tmp/roscore_roborio_2018.tar.bz2 "*******"
scp /tmp/roscore_roborio_2018.tar.bz2 admin@$1:.
rm /tmp/roscore_roborio_2018.tar.bz2 
ssh admin@$1 'cd / && tar -xjf ~/roscore_roborio_2018.tar.bz2'
scp ~/2018RobotCode/os_detect.py admin@$1:/usr/lib/python2.7/site-packages/rospkg/
ssh admin@$1 'rm ~/roscore_roborio_2018.tar.bz2'
# Try to simulate what the cross-build environment
# looks like 
ssh admin@$1 'ln -s / /usr/arm-frc-linux-gnueabi'
ssh admin@$1 'ln -s /usr/include /include'
# Create workspace. Do a build in the empty workspace to set
# up various scripts for later use
ssh admin@$1 'mkdir -p 2018RobotCode/zebROS_ws/src'
ssh admin@$1 'source /opt/ros/kinetic/setup.bash && cd 2018RobotCode/zebROS_ws && catkin_make_isolated --install'

 

 

 

I don't think any of that is causing these errors but I'm happy to learn otherwise.

0 Kudos
Message 13 of 13
(703 Views)