Source:
- Top level ROS node:/src/cyborg_ros_navigation
- Required libraries: /src/navigation
- Required ROS node: /src/rosaria
Report:
- 2020, Lasse Gøncz
Navigation stack
Takes desired goal on topic move_base_simple/goal as input.
Publishes velocity commads on topic cmd/vel
Requires URDF file of robot model
Requires .yaml and .png file of the map
A high-level overview of the system architecture in the navigation stack is shown below:
A more detailed architecture of the navigation stack is shown below:
Node descriptions:
- AMCL
- Responsible for localization
- Include an implementation of the Adaptive Monte Carlo Localization (AMCL) algorithm
- joint_state_publisher
- Takes a model of the Cyborg as input and outputs joint values.
- Used to generate correct coordinate transforms.
- robot_state_publisher
- Works in conjunction with joint_state_publisher.
- Takes joint values as input and output correct coordinate transforms between the frames on the Cyborg (base_link, left and right wheel, laser)
- RosAria
- Responsible for interfacing the robot controller on the Pioneer LX for navigation and to receive data from the sensors and odometry.
- map_server
- Takes a pre-generated static map as input and servers it to the move_base node.
- move_base
- The move_base package provides an implementation of an action (see the actionlib package) that, given a goal in the world, will attempt to reach it with a mobile base. The move_base node links together a global and local planner to accomplish its global navigation task.