Installing ROSRider Software

Notice: You have to finish Getting Started before following instructions on this document.

Open A Terminal Window, and execute the following commands:

cd catkin_ws/src
git clone https://gitlab.com/ROSRider/rosrider_description.git
git clone https://gitlab.com/ROSRider/rosrider_diff_drive.git
git clone https://gitlab.com/ROSRider/rosrider_teleop.git
git clone https://gitlab.com/ROSRider/rosrider_examples.git
git clone https://bitbucket.org/AndyZe/pid.git
cd ..
catkin_make
source devel/setup.bash

The explanation of the packages are as follows:

rosrider_description contains urdf files, rviz profiles, and gazebo launch files.

rosrider_diff_drive contains the differential drive controller, and odometry node, and the simple goal controller.

rosrider_teleop contains configuration files to use the robot with a gamepad. (Logitech F710)

rosrider_examples contains example programs, that use odometry, and camera. For more information click here

pid external pid controller, required by rosrider_diff_drive

To continue, click PARAMETERS

Installing IMAGE Package

Notice: This part is optional.

The example given is for RaspberryPI. You need your RaspberryPI configured for the camera, and the userland libraries need to be installed and in working condition.

rosrider_image package contains the necessary configuration files for image capturing, and rectification.

To get your camera working, execute the following commands.

cd ~/catkin_ws/src  
git clone https://gitlab.com/ROSRider/rosrider_image.git  
git clone https://github.com/UbiquityRobotics/raspicam_node.git
cd ..
catkin_make
source devel/setup.bash

image_proc.launch launches image processing node, that rectifies the images.

cam.launch launches raspicam_node and image_proc_node, enabling the camera and rectification. For rectification to work camera must be calibrated.

After the commands above have completed successfully, lets see how it works.

roscd rosrider/launch
roslaunch robot_cam.launch

This part is optional.

You can use Gazebo to run ROSRider on your computer. Provided that you have installed gazebo and the dependencies successfully as outlined in prerequisites

To install the rosrider_gazebo package, which contains the worlds and the launch files for simulations:

cd ~/catkin_ws/src
git clone https://gitlab.com/ROSRider/rosrider_gazebo

How to use the Gazebo simulations are explained in the gazebo section in detail.

Installing FXIMU

This part is optional.

Both FXIMU and ROSRider are USB serial devices. We want each device to get the same name each time the robot reboots, so the software can work reliably.

First, obtain the usb serial id of your FXIMU by executing the following command:

udevadm info -a -n /dev/ttyACM0 | grep '{serial}'

It will return:

ATTRS{serial}=="0000000A"
ATTRS{serial}=="0000:00:14.0"

In this case, the usb serial id is 0000000A, which is a string.

Create a new rules file by:

sudo nano /etc/udev/rules.d/99-usb-serial.rules

Add the following inside the file, after replacing the FXIMU usb serial id:

KERNEL=="ttyACM*", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="0002", ATTRS{serial}=="0000000A", SYMLINK+="fximu"

If you also have the ROSRider board, after replacing the ROSRider board usb serial id:

KERNEL=="ttyACM*", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="0002", ATTRS{serial}=="12345678", SYMLINK+="rosrider"

Reboot System

This will allow your system to assign symlinks from /dev/ttyACM* to /dev/rosrider and /dev/fximu Each time your system boots, the symlinks will point to the correct /dev/ttyACM*

You must modify the robot.launch and fximu.launch to open the symlinks instead of the hard coded /dev/ttyACM0, if you are using both ROSRider and FXIMU together.

There is no special install required for the FXIMU

The launch file loads fximu parameters from rosrider/config/fximu_params_000.yaml. To test if fximu is connecting:

roscd rosrider/launch
roslaunch fximu.launch

After connection, you should see topics /imu/data which contains the filtered orientation, and acceleration values and /imu/mag which contain magnetometer data.