robot.launch
launches the ROSRider board, differential drive controller, goal controller, odometry node, and is the basic robot bringup file.
robot_cam.launch
is robot.launch, but with camera. You have to have a camera attached to your robot and configured.
robot_ekf.launch
is robot.launch, but with fximu, and robot localization package configured. You need an IMU for this to work. Current configuration is for FXIMU.
robot_ekf_cam_launch
is robot_ekf.launch, but with camera configured.
remote.launch
launches rviz with everything configured for ROSRider.
robot.launch
Execute the following commands:
roscd rosrider/launch
roslaunch/robot.launch
To see output, click here
In another window, list topics by typing rostopic list
, and you should see:
/cmd_vel
/diff_drive_go_to_goal/cancel
/diff_drive_go_to_goal/distance_to_goal
/diff_drive_go_to_goal/feedback
/diff_drive_go_to_goal/goal
/diff_drive_go_to_goal/result
/diff_drive_go_to_goal/status
/goal_achieved
/initialpose
/joint_states
/joy
/left_wheel/control_effort
/left_wheel/pid_debug
/left_wheel/pid_enable
/left_wheel/position
/left_wheel/setpoint
/left_wheel/state
/move_base_simple/goal
/odom
/right_wheel/control_effort
/right_wheel/pid_debug
/right_wheel/pid_enable
/right_wheel/position
/right_wheel/setpoint
/right_wheel/state
/rosrider/diagnostics
/tf
/tf_static
/wheel_states
List services by typing the following command:
rosservice list
You should see the list of services, which includes the services below:
/rosrider/led_emitter
/rosrider/sysctl
robot_cam.launch
Notice: In order to launch the
robot_cam.launch
you need a camera attached and configured to your robot.
Execute the following commands:
roscd rosrider/launch
roslaunch/robot_cam.launch
To see output, click here
In another window, list topics by typing rostopic list
, and you should see topics including:
/raspicam_node/camera_info
/raspicam_node/image_color
/raspicam_node/image_color/compressed
/raspicam_node/image_mono
/raspicam_node/image_mono/compressed
/raspicam_node/image_raw
/raspicam_node/image_raw/compressed
/raspicam_node/image_rect
/raspicam_node/image_rect/compressed
/raspicam_node/image_rect_color
/raspicam_node/image_rect_color/compressed
raspicam_node/camera_info
contains camera info, frame rate
raspicam_node/image_raw
is the unprocessed image from camera, usually with fish eye lens
raspicam_node/image_mono
is the processed mono image
raspicam_node/image_color
is the processed color image
raspicam_node/image_rect
is the rectified mono image
raspicam_node/image_rect_color
is the rectified color image
If you add /compressed
at the end of the image name, you will get the compressed image
When using a fish eye lens the image is distorted. Rectification is the process to undistort the image, which is necessary for many image processing algorithms to work effectively.
For rectification to work, you need your lens calibrated. Consult to CALIBRATION for instructions.
Connecting to camera on the robot, viewing video:
rqt_image_view /raspicam_node/image_color/compressed
You should see a window pop up, and display the image that the robot captures like below:
robot_ekf.launch
Notice: In order to launch the
robot_ekf.launch
you need an imu sensor attached and configured to your robot. The instructions and launch files are for FXIMU2. Please consult to FXIMU2 documentation for more information.
Execute the following commands:
roscd rosrider/launch
roslaunch/robot_ekf.launch
To see output, click here
In another window, list topics by typing rostopic list
, and you should see topics containing:
/imu/data
/imu/data_viz
/imu/mag
/odometry/filtered
imu_data
and imu/data_viz
are imu topics, the latter is slowed down for visualization purposes. /imu/mag
topic has the magnetometer data. If you type rostopic echo /imu/data
you will see a stream of imu data.
If your EKF is configured correctly and running you will see the /odometry/filtered
topic.
rostopic echo /odometry/filtered
will stream the odometry fused with imu data.
In this mode, for example if the wheel slips while executing a turn while /odom
will show wrong data /odometry/filtered
will not be effected. See EKF for more information.
remote.launch
This file launches rviz
with a configuration file for ROSRider. This is usually done in a remote computer, connected to roscore
running at your robot. To accomplish this first set ROS_MASTER_URI
and ROS_HOST
environment variables.
RVIZ
is the ROS visualization program. Whatever the state your robot is in, is depicted in rviz, along with other data such as camera, sensory, etc.
On your laptop type:
export ROS_MASTER_URI=http://robot.local:11311
export ROS_HOSTNAME=laptop.local
robot
is the hostname of the robot, and laptop
is the hostname of the client that you are connecting from. Both robot and client must be able to resolve and contact each other on the network.
Consult to NETWORKING for detailed explanation, testing and troubleshooting.
Once networking is in order, type the following commands:
roscd rosrider/launch
roslaunch/remote.launch
RVIZ program should pop up, showing a model of a ROSRider robot. ROSRider's position, heading, and wheel joint angles will be depicted on RVIZ
. Also, if the IMU and EKF is deployed, then if the robot is turned maually, it would also be depicted in RVIZ
Click on the image below to see a video of ROSRider executing a 2D Nav Goal
given by RVIZ. Click here for screencast.
You should see a robot like in the image below: