Skip to content

tbondar/ros-study-01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS Navigation and Localisation Study

This repository contains the setup for studying localisation and navigation with a vehicle emulator.

Components

It uses the navigation stack and the robot_localization package. The robot is emulated by a simple vehicle emulator.

Vehicle Emulator

A simple emulator with GPS, compass and odometry. It uses simple kinematics to calculate the vehicle's pose based on the velocity commands received at /cmd_vel.

Subscribed Topics

Published Topics

Parameters

  • ~publish_tf Whether to publish transform from odom frame to base_link frame
  • ~publish_odom Wheter to publish nav_msgs/Odometry messages
  • ~publish_twist Whether to publish geometry_msgs/TwistWithCovarianceStamped messages
  • ~publish_imu Whether to publish sensor_msgs/Imu messages
  • ~publish_path Wheter to publish nav_msgs/Path messages
  • ~publish_fix Whether to publish sensor_msgs/NavSatFix messages
  • ~gps_err Emulated GPS error: 0 = no error, 1 = small error, 2 = larger error
  • ~odom_left_err Emulated error of left wheel speed (default is 0.0)
  • ~odom_right_err Emulated error of right wheel speed (default is 0.0)
  • ~max_acc_linear Maximum linear acceleration (default is 10.0)
  • ~max_acc_angular Maximum angular acceleration (default is 10.0)

The odometry error parameters change the effective velocity that is used to calculate the vehicle's position and orientation:

v_left_eff = v_left * (1.0 + param_odom_left_err)
v_right_eff = v_right * (1.0 + param_odom_right_err)

where v_left and v_right are the nominal wheel speeds calculated from the /cmd_vel topic.

Usage

Set ROS environment variables.

$ source /opt/ros/melodic/setup.bash
$ source .../ros-study-01/devel/setup.bash

Use rviz to visualise robot motion and set navigation goals.

$ rosrun rviz rviz --display-config ros_study.rviz

Use rqt_reconfigure to set parameters of the navigation.

$ rosrun rqt_reconfigure rqt_reconfigure

Localisation only

$ roslaunch ros_study test_loca.launch

In this mode only the vehicle emulator and the localisation nodes are enabled. The configuration is based on this tutorial. It can be used to test how the robot_localization nodes fuse inaccurate sensor data.

Navigation only

$ roslaunch ros_study test_navi.launch

In this mode only the vehicle emulator and the navigation nodes are enabled. It can be used to test navigation algorithms assuming that the localisation of the vehicle is perfect. Navigation goals can be set using rviz.

Localisation and Navigation

$ roslaunch ros_study test_navi_loca.launch

In this mode the vehicle emulator and both the navigation and localisation nodes are enables. This mode emulates the real life scenario when sensor fusion and navigation algorithms have to work together. Navigation goals can be set using rviz.

About

ROS Navigation and Localisation Study

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published