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.
This package depends on a few pieces of code outside of standard ROS libraries.
- Neato XV-11 LIDAR - ROS driver for the LIDAR unit used on Phoebe. See documentation here.
- Roboclaw ROS - ROS driver for the motor control module used on Phoebe. IMPORTANT: Until my bug fix pull requests are accepted, use my fork of this code.
- 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.
- launch - collection of files for running
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
rviz_*.launchfiles 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.
'on Phoebe' means launching on Phoebe's onboard Raspberry Pi 3
'on PC' means launching on a computer on the same network as Phoebe.
- Human operation (drive like a remote control car)
- Human-directed SLAM with GMapping
- (Optional) Launch
- Autonomous navigation