- middleware, i.e. inter-process communication
- hardware abstraction for robots
- message definitions (for RPC)
- package management system, tailored towards development
- collection of open-source software packages
- multi language: C++, Python, Java
- topics (publish - subscribe)
- services (remote procedure calls)
- nodes: logical computing components, several per process possible
- central naming service (roscore)
- remapping: renaming of nodes, topics, etc.
- central parameter storage
- extends cmake to facilitate package management dependencies, installation to standard locations
- catkin_make, catkin_make_isolated, catkin tools
- hierarchical stacking of workspaces
/opt/ros/indigo
/vol/nirobots/ros/indigo
/homes/juser/ros
- load config with source <base dir>/setup.bash
- workspace structure
- src/
- build/
- devel/
- setup.bash
mkdir ~/ros cd ~/ros source /opt/ros/indigo/setup.bash catkin config –init mkdir src cd src catkin create pkg lecture git clone https://github.com/rhaschke/lecture cd lecture catkin build
- package.xml
- defines folder as a ROS package
- defines dependencies: build, test, run
- author, license, package information
- CMakeLists.txt
source ~/ros/devel/setup.bash roscore & rostopic list rostopic pub -r 1 chatter std_msgs/String “Hello World” & rostopic echo chatter
rosrun roscpp_tutorials talker chatter:=foobar rosrun roscpp_tutorials listener chatter:=foobar