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
(697 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
(696 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
(704 Views)