Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to...

15
Integrating an Inertial Navigation System with the ROS Navigation Stack Presenters: Sarika Ramroop & Shivan Ramdhanie

Transcript of Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to...

Page 1: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Integrating an Inertial Navigation System with the ROS Navigation StackPresenters:Sarika Ramroop & Shivan Ramdhanie

Page 2: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Overview

● Highlighting an approach for integrating an Inertial

Navigation System (INS) as a localisation source

● AMCL

○ Sensor data used for localisation

● Our use case: Outdoor scenario and large map

● Our Robot:

○ Large ground robot operating in an airfield

○ Sensors: velodyne, SiCK lasers, pixhawk or similar

2

Fig. 1: Airfields have few obstacles

Page 3: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Overview cont’d

● INS (GPS + IMU) data is used to generate transforms between various reference frames.

● Converts GPS readings from latitude, longitude, altitude format to the map’s cartesian coordinate

frame and uses heading information from IMU readings to discern orientation.

3

Fig. 2: System Concept

GPS

IMU

OurWorkflow

Transform between frames

Page 4: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

System I/O

4

ins_to_tf

move_base

/gps_fix

/imu

/tf

/odom

/tf

Fig. 3: Node inputs and outputs

/robot_pose(geometry_msgs/PoseStamped)

(world_T_odom or world_T_robot)(odom_T_robot)

Page 5: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Frame Relations

● If both INS and Odometry data are

available, the transform tree is:

Map->Odom->Robot

where transforms between the map

and odom are provided by our node.

● If odometry data is not available, the

transform tree is:

Map->Robot

where the node publishes the map to

robot base_link transform.

5

/map

/odom

/base_link

MAP

Fig. 4: Frame relations when INS and odom are available

Page 6: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Frame Relations

● If both INS and Odometry data are

available, the transform tree is:

Map->Odom->Robot

where transforms between the map

and odom are provided by our node.

● If odometry data is not available, the

transform tree is:

Map->Robot

where the node publishes the map to

robot base_link transform.

6

/map

/base_link

MAP

Fig. 5: Frame relations when only INS data is available

Page 7: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Rationale

1. To allow for navigation in the global

frame (map) when a goal is specified

2. To allow the local frame (odom) to be

placed within the global frame

3. To allow the robot to be placed in the

global frame such that it is able to

locate it position.

4. Robot is able to navigate using the

global and local planners in

move_base

7

/map

/odom

/base_link

MAPGoal

Global plan outline

Local plan outline

Fig. 6: Using the nav stack with these frame relations

Page 8: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

TF tree comparison

8

map

odom

robot

map

odom

robot

/amcl /ins_to_tf

/stageros /wheel_state_to_odom

Fig. 7a: TF tree for turtlebot using amcl for navigation

Fig. 7b:TF tree using INS data for navigation

Page 9: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

INS data without odometry

● Generates nav_msgs/Odometry

messages on the “odom” topic.

● Velocity calculated based on the

change in pose over time between

successive messages.

● Robot uses the map as both local and

global frames.

9

ins_to_tf

move_base

/gps_fix

/imu

/odom

/tf

Fig. 8: Node inputs and outputs

pose_to_odom

/robot_pose

(world_T_robot)

Page 10: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

CONCLUSION

10

Page 11: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

Performance

● Able to set and reach goals effectively in simulations (provided they are valid).

● Simulations were done in Gazebo 7.14.

● Hardware testing will be carried out later on.

11

Page 12: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

QUESTIONS?

12

Page 14: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

TF Tree Comparison

14

Fig. 9a: TF tree for turtlebot using amcl for navigation

Fig. 9b:TF tree using INS data for navigation

Page 15: Integrating an Inertial ROS Navigation Stack · Overview cont’d INS (GPS + IMU) data is used to generate transforms between various reference frames. Converts GPS readings from

INS data without odometry

Fig. 10: TF tree when odometry is unavailable

15