Canopen

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