We are mostly using ROS_Canopen. Has this protocol already been applied on the TX2?
Although ROS isn’t officially under the scope of JetPack-L4T, Kinetic can be installed following the normal OSRF procedure (they have arm64 in their repo) or follow the JetsonHacks series:
http://www.jetsonhacks.com/2017/03/27/robot-operating-system-ros-nvidia-jetson-tx2/
If it turns out you need to recompile to enable ROS_Can, you can compile ROS from source using procedure similar to:
#!/bin/bash
# make sure you have the ros repo
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
sudo apt-get update
# start with some basic dependencies
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
# SSL certificate authority error with raw.githubusercontent.com
sudo apt-get install -y ca-cacert
sudo rosdep init
rosdep update
mkdir ros_catkin_ws
cd ros_catkin_ws
echo 'stage 1' >> ~/log_desktop
rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall
echo 'stage 2' >> ~/log_desktop
wstool init -j8 src kinetic-desktop-wet.rosinstall
echo 'stage 3' >> ~/log_desktop
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
echo 'stage 4' >> ~/log_desktop
### start patches
# there is no nppi_graphcuts in CUDA 8; disable cudalegacy and stitching modules
# patch disables cudalegacy and stitching
sed -i -e '1 i ocv_module_disable(cudalegacy)' src/opencv3/modules/cudalegacy/CMakeLists.txt
sed -i -e '1 i ocv_module_disable(stitching)' src/opencv3/modules/stitching/CMakeLists.txt
echo 'stage 5' >> ~/log_desktop
# weird libGL thing, fix found at https://devtalk.nvidia.com/default/topic/946136/
# this just redirects a soft link
sudo rm /usr/lib/aarch64-linux-gnu/libGL.so
sudo ln -s tegra/libGL.so /usr/lib/aarch64-linux-gnu/libGL.so
echo 'stage 6' >> ~/log_desktop
### end patches
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
echo 'stage 7' >> ~/log_desktop
# clean up opencv patches, bug will be submitted to opencv for longer-term fix
sed -i -e '/^ocv_module_disable(cudalegacy)/ d' src/opencv3/modules/cudalegacy/CMakeLists.txt
sed -i -e '/^ocv_module_disable(stitching)/ d' src/opencv3/modules/stitching/CMakeLists.txt
echo 'stage 8, done' >> ~/log_desktop
Thanks. We will try this.
Btw the Linux based mttcan driver is verified on TX2. The repo is here: [url]https://github.com/hartkopp/nvidia-t18x-can[/url]
The driver uses SocketCAN, which in turn CANopen and ros_canopen use.
1 Like