Skip to content

Roger-random/phoebe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS Package For Phoebe TurtleBot

This is a software package for running ROS (Robot Operating System) on Phoebe. Phoebe is a DIY variant of TurtleBot, the introductory hardware platform for ROS. Like the TurtleBots, Phoebe has a small onboard computer (Raspberry Pi 3) that can handle some ROS tasks, but there are robot tasks that require heavy computation beyond what the onboard computer can handle. Such tasks must be offloaded to a more powerful computer operating on the same network.

Phoebe leverages the extensive ROS component ecosystem for functionality, as a result there is almost no source code in this repository. Most of the files here composes open source ROS modules together to run Phoebe.

Dependencies

This package depends on a few pieces of code outside of standard ROS libraries.

Phoebe Capabilities

  • Human operation by joystick/gamepad. (Drive around like a remote control car.)
  • Simultaneous location and mapping (SLAM) using GMapping. This typically requires assistance from a more powerful computer.
  • Autonomous navigation using the ROS Navigation stack.

Current status: Phoebe is capable of the above, but at the moment only crudely. There is a great deal of room for improvement in tuning system parameters for better performance.

Directory Structure

  • launch - collection of files for running roslaunch
    • chassis.launch - ROS nodes to interface with chassis hardware. (Launch onboard Raspberry Pi.)
    • gmapping.launch - Launch ROS GMapping SLAM node. (Launch on networked, more powerful computer.)
    • joystick.launch - Launch ROS joystick control node. (Launch on networked computer with attached joystick.)
    • move_base.launch - Launch ROS Navigation stack. (Can be run onboard for simple maps.)
    • rviz_gmapping.launch - Launch RViz to visualize GMapping in progress. (Launch on networked computer with screen.)
    • rviz_nav2d.launch - Launch RViz to visualize navigation in progress. (Launch on networked computer with screen.)
  • nav2d - configuration files for ROS navigation. Mostly copied from this section of ROS tutorial with minor modifications described here.
  • rviz - Configuration files for RViz, the ROS Visualization tool. Used by rviz_*.launch files in the launch subdirectory.
  • scripts - Hard coded transform for debugging purposes, not typically used.
    • baseneato.py - Publish a fixed transform to relate Neato LIDAR to robot base link. Used to isolate whether a problem is due to misconfigured robot state publisher and/or URDF bugs.
    • mapodom.py - Publish a fixed transform to relate map frame to odometry frame. Used to isolate whether a problem is due to misconfigured localization algorithm.
  • urdf - A simplified geometry description of Phoebe in URDF format, used for RViz visualization and for publishing robot state transforms.

Launching Tasks

'on Phoebe' means launching on Phoebe's onboard Raspberry Pi 3

'on PC' means launching on a computer on the same network as Phoebe.

One of the two need to be running roscore and the two computers need to be in communication via ROS_MASTER_URI, ROS_IP, and related parameters.

  • Human operation (drive like a remote control car)
    • Launch chassis.launch on Phoebe
    • Launch joystick.launch on PC
  • Human-directed SLAM with GMapping
    • Launch chassis.launch on Phoebe
    • Launch joystick.launch on PC
    • Launch gmapping.launch on PC
    • (Optional) Launch rviz_gmapping.launch on PC
  • Autonomous navigation
    • Launch chassis.launch on Phoebe
    • Launch map server
    • Launch amcl
    • Launch move_base.launch
    • (Optional) Launch rviz_nav2d.launch on PC

Additional Resources