ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Largest ROS Example App/Robot Source Code

I’ve been learning ROS for a while now, and would benefit from being able to read an entire, hopefully somewhat involved robot’s source code.

Are there any complete source codes available? I’ve done some googling and have found the PR2’s source code here: https://github.com/PR2.

Are there any others? Perhaps not as extensive as the PR2?

2 Likes

A good place to start is here:

I guess you want to pick a software stack that

  • is fully open source (part of the software for some commercial robots isn’t)
  • is high quality (the quality of the software linked from that page really differs a lot)
  • provides a Gazebo simulation of the robot, so you can actually run the parts of the software that don’t directly interface hardware

One example of a robot that fits those criteria (AFAIK) is the Care-O-Bot 3 , but it’s as extensive as the PR2. Can you be more specific about what parts you want to learn first? Obviously, the “more involved” a robot is, the more extensive the software. Some general categories are:

  • controlling motors – you want a robot that uses the ros_control stack (can be used both for mobile bases and arms)
  • moving a robot base, localization, 2D navigation, obstacle avoidance, SLAM – you probably only need to look at a mobile base with a 2D laser scanner and no robot arm
  • moving a robot arm, manipulation, grasp planning, collision avoidance – you want to look at a mobile arm that has a moveit config, or perhaps at a full mobile manipulator
  • legged locomotion, humanoids – don’t ask me
  • controlling UAVs – don’t ask me

Rethink robotics Baxter SDK was a good place for me to learn. I also looked at the Meka Robotics code as another example

hi John,

The Turtlebot stack is a good starting point. Other robot software stacks may have proprietary closed-source drivers or controllers with an open source user-facing API, but I believe Turtlebot is almost completely open, and it has great ROS and Gazebo support:
https://github.com/turtlebot/
It even has some minimal manipulation software, although I wouldn’t think of the Turtlebot arm attachment as a canonical example of a ROS robot with manipulation capabilities…

As Shawn said, the Rethink Baxter SDK is extensive and well-documented. The Github org is:
https://github.com/RethinkRobotics

Martin makes several great points. You could try looking at these resources for some of the missing categories:
humanoid robotics:

drones:
the Hector quadrotor stack: http://wiki.ros.org/hector_quadrotor
the MAV (micro-air vehicles) stack: http://wiki.ros.org/mav_tools

have fun,

Jackie

1 Like

Thanks everyone, that will keep me going for a while :slight_smile: