ROS core source code?

892 views
Skip to first unread message

Luke Keyes

unread,
Feb 18, 2017, 3:39:39 PM2/18/17
to HomeBrew Robotics Club
Does anyone know where the ROS source code is hosted?

The link talked about here.


Seems to have been down for years.

I found some git repositories, but they are a little harder to parse on what the actual core source code is.  I imagine the code has to be maintained somewhere if there are still distributions being made.

Thanks,
Luke

PS - I know this probably isn't the best place to post, but I'm comfortable asking here and am pretty sure someone here would know.

Hans

unread,
Feb 19, 2017, 3:23:49 PM2/19/17
to HomeBrew Robotics Club
Luke,
That's sort of an open-ended question.. The answer is on github.. but it depends on which section of ros you're looking for..

My suggestion is to narrow down which stack you're attempting to look at first.

If you're looking for anything in core:
https://github.com/ros

If you're looking for something in perception stack, for example:
https://github.com/ros-perception

Best of luck in your search.
Hans

Luke Keyes

unread,
Feb 19, 2017, 4:26:06 PM2/19/17
to HomeBrew Robotics Club
I am literally looking for a direct correlation of  what running this command (described in the wiki) used to do.

svn co https://code.ros.org/svn/ros/stacks/ros/tags/distro_name ros

I'm actually very surprised that the page hasn't been removed given that this URL has been dead for years.

Thanks,
Luke

Rohan Agrawal

unread,
Feb 19, 2017, 4:46:20 PM2/19/17
to HomeBrew Robotics Club
For getting the 'core' code, it depends on how you define 'core'. 
ROS is built as a loose federation of packages, and getting the 'core' depends on which packages you include as part of that. 

 https://github.com/ros/ros_comm has the standard client libraries, (roscpp, rospy, roslisp).
https://github.com/ros/catkin has the source for the catkin build system.

The source for all of ros-kinetic-desktop-full spans hundreds of repos.

For what purpose are you trying to get the source code? If you are looking for a specific package you can the url to the source on the wiki page for that package.

As for the command you are looking for an alternative for, I don't think there is a direct alternative, as the packages are more separated into repos after the transition to github.

The closest you can get is the commands here:


The wiki page you linked does have a notice at the top:
This wiki page is out-of-date. All source is available on GitHub and Bitbucket in a combination of git and hg repositories. See: http://wiki.ros.org/RecommendedRepositoryUsage/CommonGitHubOrganizations

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To post to this group, send email to hbrob...@googlegroups.com.
Visit this group at https://groups.google.com/group/hbrobotics.
For more options, visit https://groups.google.com/d/optout.
--
Rohan

Luke Keyes

unread,
Feb 19, 2017, 5:10:34 PM2/19/17
to HomeBrew Robotics Club
The loose federation of packages is actually one of my biggest problems with ROS.  Once you get past the initial installation and poking around Rviz, Gazebo, and Turtlebot simulator, figuring out what to use ROS for requires a relatively tribal knowledge of different packages.  When building software for a robot, there's a good chance that ROS has a solution either implemented or in-progress, but finding that solution may take just as much time and effort as building it yourself.

Ok, let me backtrack on why I want to poke around the ros core code.

After reading through ROS tutorials a few times, and after working on microservice architecture at my job for a couple years now, I'm starting to realize that ROS seems, at its core, a collection of microservices that utilize a message queue for communication between them.  With that being said, there seems to be no reason why ROS has to be 1 - so closely tied to Ubuntu, and 2 - so closely tied to C++ and/or Python.  So I want to poke around the roscore code, as in literally, all the code dependencies that are attached to what happens when I type "roscore" in the terminal.  I want to understand more about the communication process, if the underlying technology is a queueing system, like MQTT, RabbitMQ, or Kafka, and what is the communication payload - XML, JSON, plain binary, or something else entirely.

I want to do this because before ROS finally started clicking with me, I was building a distributed robotics architecture on my robots using dockerized microservices written in Node, Scala, Java, and Groovy that communicated via REST and websockets, and started experimenting with integrating a message queue using RabbitMQ before I realized that I may be doing something similar to the underlying architecture of ROS.

So after writing this, it sounds like ros_comm is where I want to start.  Does that sound right?

Thanks,
Luke

Alan Federman

unread,
Feb 19, 2017, 7:06:13 PM2/19/17
to luk...@gmail.com, hbrob...@googlegroups.com
Luke,

   I think a lot of people hear Robot Operating system, and think it is a computer operatingc system like Windows or Linux. It is not like that. It should have been named robot application framework, but RAF was an acronym already in use. Just like Amazon and Google weren't possible until there was an Internet, web servers and browsers, ROS is an infrastructure for controlling robots. The purpose was to bring about the rapid development of robots, not to be a fits all solution.

It has been remarkably successful in launching many successful robots, and had benefitted by being open source. I think the direction you are heading in sounds more like Industrial ROS.
Alan Federman, from my phone.

Austin Hendrix

unread,
Feb 19, 2017, 8:29:48 PM2/19/17
to hbrob...@googlegroups.com
If you're curious about how ROS works under the hood, start with the
Concepts page: http://wiki.ros.org/ROS/Concepts ; there's a few dozen
pages linked from there that describe the discovery, serialization and
message-passing pieces of the architecture.


There reason why most ROS systems and nodes are written in Python and
C++ is because the client libraries for Python and C++ are the most
featured and have official support from OSRF, but there are lots of
other client libraries that are maintained by the community:
http://wiki.ros.org/Client%20Libraries


ROS appears most closely tied to Ubuntu because there are binary builds
of ROS for Ubuntu, but it's possible to install ROS from source on most
other POSIX-compliant operating systems, including Debian, OS X, Gentoo
and Yocto: http://wiki.ros.org/ROS/Installation


Hopefully that answers some of your bigger-picture questions.

Regards,
-Austin
> email to hbrobotics+...@googlegroups.com <javascript:>. To
> post to this group, send email to hbrob...@googlegroups.com
> <javascript:>. Visit this group at
> https://groups.google.com/group/hbrobotics
> <https://groups.google.com/group/hbrobotics>. For more
> options, visit https://groups.google.com/d/optout
> <https://groups.google.com/d/optout>.
>
> --
> Rohan
>
> -- You received this message because you are subscribed to the Google
> Groups "HomeBrew Robotics Club" group. To unsubscribe from this group
> and stop receiving emails from it, send an email to
> hbrobotics+...@googlegroups.com
> <mailto:hbrobotics+...@googlegroups.com>. To post to this
> group, send email to hbrob...@googlegroups.com
> <mailto:hbrob...@googlegroups.com>. Visit this group at
Reply all
Reply to author
Forward
0 new messages